summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2001-01-27 13:00:18 +0000
committerEli Zaretskii <eliz@gnu.org>2001-01-27 13:00:18 +0000
commit224a0b4d5152a7680fbfafc1b5204c0ffd6c7feb (patch)
treea4b552dc2aad758951f4e9bf330aad98319c3879
parentf5058b9653e1aa98001902d18a0586d36c46f1d2 (diff)
downloademacs-224a0b4d5152a7680fbfafc1b5204c0ffd6c7feb.tar.gz
Add two items with solutions for Calc problems.
-rw-r--r--etc/PROBLEMS258
1 files changed, 258 insertions, 0 deletions
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 8778f7e3132..16d2fc84404 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -220,6 +220,264 @@ longer used by Emacs. These changes to PSGML 1.2.1 fix that.
+ (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.