all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Patching Calc
@ 2003-08-27 19:12 Don Graffiti
  2003-08-27 21:26 ` Lukasz Stafiniak
  0 siblings, 1 reply; 2+ messages in thread
From: Don Graffiti @ 2003-08-27 19:12 UTC (permalink / raw)


Ok,
thanks a lot for those who has helped me with my GNU Calc problem
(dzienkuje Lukasz!). Yet I couldn't get how to install that patch, found
in the PROBLEMS file! I don't know what a patch file is supposed to look
like, and thus can't tell where it begins and where it ends. Below is the
whole part of the file dealing with this problem. Can you tell me where I
should start copying and where I should end? And then apparently I should
run the menu command "Apply Patch to file" and thus apply it to the
corresponding directory?

Thanks a lot!!

That would be really really helpful

* 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

Index: Makefile
--- 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

Index: calc-aent.el
--- 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)
 )
 
Index: calc.el
--- 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}.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-08-27 21:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-27 19:12 Patching Calc Don Graffiti
2003-08-27 21:26 ` Lukasz Stafiniak

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.