Mercurial > emacs
changeset 35645:141f70353995
Add two items with solutions for Calc problems.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 27 Jan 2001 13:00:18 +0000 |
parents | e504a8bd3e9a |
children | a3e5066d2077 |
files | etc/PROBLEMS |
diffstat | 1 files changed, 258 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/PROBLEMS Sat Jan 27 12:43:56 2001 +0000 +++ b/etc/PROBLEMS Sat Jan 27 13:00:18 2001 +0000 @@ -220,6 +220,264 @@ + (setq after-change-functions '(sgml-set-face-after-change)) ) +* The Calc package fails to build and signals errors with Emacs 21. + +Apply the following patches which reportedly fix several problems: + +--- calc-ext.el.~1~ Sun Apr 3 02:26:34 1994 ++++ calc-ext.el Wed Sep 18 17:35:01 1996 +@@ -1354,6 +1354,25 @@ + (calc-fancy-prefix 'calc-inverse-flag "Inverse..." n) + ) + ++(defconst calc-fancy-prefix-map ++ (let ((map (make-sparse-keymap))) ++ (define-key map [t] 'calc-fancy-prefix-other-key) ++ (define-key map (vector meta-prefix-char t) 'calc-fancy-prefix-other-key) ++ (define-key map [switch-frame] nil) ++ (define-key map [?\C-u] 'universal-argument) ++ (define-key map [?0] 'digit-argument) ++ (define-key map [?1] 'digit-argument) ++ (define-key map [?2] 'digit-argument) ++ (define-key map [?3] 'digit-argument) ++ (define-key map [?4] 'digit-argument) ++ (define-key map [?5] 'digit-argument) ++ (define-key map [?6] 'digit-argument) ++ (define-key map [?7] 'digit-argument) ++ (define-key map [?8] 'digit-argument) ++ (define-key map [?9] 'digit-argument) ++ map) ++ "Keymap used while processing calc-fancy-prefix.") ++ + (defun calc-fancy-prefix (flag msg n) + (let (prefix) + (calc-wrapper +@@ -1364,6 +1383,8 @@ + (message (if prefix msg ""))) + (and prefix + (not calc-is-keypad-press) ++ (if (boundp 'overriding-terminal-local-map) ++ (setq overriding-terminal-local-map calc-fancy-prefix-map) + (let ((event (calc-read-key t))) + (if (eq (setq last-command-char (car event)) ?\C-u) + (universal-argument) +@@ -1376,9 +1397,18 @@ + (if (or (not (integerp last-command-char)) + (eq last-command-char ?-)) + (calc-unread-command) +- (digit-argument n)))))) ++ (digit-argument n))))))) + ) + (setq calc-is-keypad-press nil) ++ ++(defun calc-fancy-prefix-other-key (arg) ++ (interactive "P") ++ (if (or (not (integerp last-command-char)) ++ (and (>= last-command-char 0) (< last-command-char ? ) ++ (not (eq last-command-char meta-prefix-char)))) ++ (calc-wrapper)) ; clear flags if not a Calc command. ++ (calc-unread-command) ++ (setq overriding-terminal-local-map nil)) + + (defun calc-invert-func () + (save-excursion + +--- Makefile.~1~ Sun Dec 15 23:50:45 1996 ++++ Makefile Thu Nov 30 15:09:45 2000 +@@ -41,7 +41,7 @@ + + # Other macros. + EFLAGS = -batch +-MAINT = -l calc-maint.elc ++MAINT = -l calc-maint.el + + # Control whether intermediate files are kept. + PURGE = -rm -f +@@ -154,10 +154,7 @@ + + + # All this because "-l calc-maint" doesn't work. +-maint: calc-maint.elc +-calc-maint.elc: calc-maint.el +- cp calc-maint.el calc-maint.elc +- ++maint: calc-maint.el + + # Create an Emacs TAGS file + tags: TAGS + +--- calc-aent.el.~1~ Sun Dec 15 23:50:36 1996 ++++ calc-aent.el Tue Nov 21 18:34:33 2000 +@@ -385,7 +385,7 @@ + (calc-minibuffer-contains + "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'")) + (insert "`") +- (setq alg-exp (buffer-string)) ++ (setq alg-exp (field-string)) + (and (> (length alg-exp) 0) (setq calc-previous-alg-entry alg-exp)) + (exit-minibuffer)) + ) +@@ -393,14 +393,14 @@ + + (defun calcAlg-enter () + (interactive) +- (let* ((str (buffer-string)) ++ (let* ((str (field-string)) + (exp (and (> (length str) 0) + (save-excursion + (set-buffer calc-buffer) + (math-read-exprs str))))) + (if (eq (car-safe exp) 'error) + (progn +- (goto-char (point-min)) ++ (goto-char (field-beginning)) + (forward-char (nth 1 exp)) + (beep) + (calc-temp-minibuffer-message +@@ -455,14 +455,14 @@ + (interactive) + (if (calc-minibuffer-contains ".*[@oh] *[^'m ]+[^'m]*\\'") + (calcDigit-key) +- (setq calc-digit-value (buffer-string)) ++ (setq calc-digit-value (field-string)) + (exit-minibuffer)) + ) + + (defun calcDigit-edit () + (interactive) + (calc-unread-command) +- (setq calc-digit-value (buffer-string)) ++ (setq calc-digit-value (field-string)) + (exit-minibuffer) + ) + +--- calc.el.~1~ Sun Dec 15 23:50:47 1996 ++++ calc.el Wed Nov 22 13:08:49 2000 +@@ -2051,11 +2051,11 @@ + ;; Exercise for the reader: Figure out why this is a good precaution! + (or (boundp 'calc-buffer) + (use-local-map minibuffer-local-map)) +- (let ((str (buffer-string))) ++ (let ((str (field-string))) + (setq calc-digit-value (save-excursion + (set-buffer calc-buffer) + (math-read-number str)))) +- (if (and (null calc-digit-value) (> (buffer-size) 0)) ++ (if (and (null calc-digit-value) (> (field-end) (field-beginning))) + (progn + (beep) + (calc-temp-minibuffer-message " [Bad format]")) +@@ -2071,7 +2071,7 @@ + + (defun calc-minibuffer-contains (rex) + (save-excursion +- (goto-char (point-min)) ++ (goto-char (field-end (point-min))) + (looking-at rex)) + ) + +@@ -2158,10 +2158,8 @@ + (upcase last-command-char)))) + (and dig + (< dig radix))))))) +- (save-excursion +- (goto-char (point-min)) +- (looking-at +- "[-+]?\\(.*\\+/- *\\|.*mod *\\)?\\([0-9]+\\.?0*[@oh] *\\)?\\([0-9]+\\.?0*['m] *\\)?[0-9]*\\(\\.?[0-9]*\\(e[-+]?[0-3]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?\\)?\\|[0-9]:\\([0-9]+:\\)?[0-9]*\\)?[\"s]?\\'"))) ++ (calc-minibuffer-contains ++ "[-+]?\\(.*\\+/- *\\|.*mod *\\)?\\([0-9]+\\.?0*[@oh] *\\)?\\([0-9]+\\.?0*['m] *\\)?[0-9]*\\(\\.?[0-9]*\\(e[-+]?[0-3]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?\\)?\\|[0-9]:\\([0-9]+:\\)?[0-9]*\\)?[\"s]?\\'")) + (if (and (memq last-command-char '(?@ ?o ?h ?\' ?m)) + (string-match " " calc-hms-format)) + (insert " ")) +@@ -2190,7 +2188,7 @@ + ((eq last-command 'calcDigit-start) + (erase-buffer)) + (t (backward-delete-char 1))) +- (if (= (buffer-size) 0) ++ (if (= (field-beginning) (field-end)) + (progn + (setq last-command-char 13) + (calcDigit-nondigit))) + +* TeX'ing the Calc manual fails. + +The following patches allow to build the Calc manual using texinfo.tex +from Emacs 19.34 distribution: + +*** calc-maint.e~0 Mon Dec 16 07:11:26 1996 +--- calc-maint.el Sun Dec 10 14:32:38 2000 +*************** +*** 308,314 **** + (insert "@tex\n" + "\\global\\advance\\appendixno2\n" + "\\gdef\\xref#1.{See ``#1.''}\n") +! (setq midpos (point)) + (insert "@end tex\n") + (insert-buffer-substring srcbuf sumpos endpos) + (insert "@bye\n") +--- 308,314 ---- + (insert "@tex\n" + "\\global\\advance\\appendixno2\n" + "\\gdef\\xref#1.{See ``#1.''}\n") +! (setq midpos (point-marker)) + (insert "@end tex\n") + (insert-buffer-substring srcbuf sumpos endpos) + (insert "@bye\n") +*** Makefile.~0 Mon Dec 16 07:11:24 1996 +--- Makefile Sun Dec 10 14:44:00 2000 +*************** +*** 98,106 **** + # Format the Calc manual as one printable volume using TeX. + tex: + $(REMOVE) calc.aux +! $(TEX) calc.texinfo + $(TEXINDEX) calc.[cfkptv]? +! $(TEX) calc.texinfo + $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr + $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs + $(PURGE) calc.toc +--- 98,106 ---- + # Format the Calc manual as one printable volume using TeX. + tex: + $(REMOVE) calc.aux +! -$(TEX) calc.texinfo + $(TEXINDEX) calc.[cfkptv]? +! -$(TEX) calc.texinfo + $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr + $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs + $(PURGE) calc.toc +*** calc.texinfo.~1~ Thu Oct 10 18:18:56 1996 +--- calc.texinfo Mon Dec 11 08:25:00 2000 +*************** +*** 12,17 **** +--- 12,19 ---- + % Because makeinfo.c exists, we can't just define new commands. + % So instead, we take over little-used existing commands. + % ++ % Suggested by Karl Berry <karl@@freefriends.org> ++ \gdef\!{\mskip-\thinmuskip} + % Redefine @cite{text} to act like $text$ in regular TeX. + % Info will typeset this same as @samp{text}. + \gdef\goodtex{\tex \let\rm\goodrm \let\t\ttfont \turnoffactive} +*************** +*** 23686,23692 **** + a vector of the actual parameter values, written as equations: + @cite{[a = 3, b = 2]}, in case you'd rather read them in a list + than pick them out of the formula. (You can type @kbd{t y} +! to move this vector to the stack; @pxref{Trail Commands}) + + Specifying a different independent variable name will affect the + resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}. +--- 23689,23695 ---- + a vector of the actual parameter values, written as equations: + @cite{[a = 3, b = 2]}, in case you'd rather read them in a list + than pick them out of the formula. (You can type @kbd{t y} +! to move this vector to the stack; see @ref{Trail Commands}.) + + Specifying a different independent variable name will affect the + resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}. + + * On systems with shared libraries you might encounter run-time errors from the dynamic linker telling you that it is unable to find some shared libraries, for instance those for Xaw3d or image support.