[COMMIT] Fix bytecode incompatibility between 21.5 and 21.4 in mmm-class.el
13 years
Didier Verna
NOTE: This patch has been committed. The version below is informational only.
In particular, whitespace difference have been removed.
And of course, I broke bytecode compatibility with my previous patch...
ChangeLog addition:
2011-12-01 Didier Verna <didier(a)xemacs.org>
* mmm-class.el: Add compiler magic so code using
multiple-value-list compiled on 21.4 works on 21.5.
XEmacs Packages source patch:
Diff command: hg diff --git --show-function -wbB
Files affected: mmm-class.el
diff --git a/mmm-class.el b/mmm-class.el
--- a/mmm-class.el
+++ b/mmm-class.el
@@ -39,7 +39,8 @@
(eval-when-compile (when (eq 'list (symbol-function 'values))
(define-compiler-macro values (&rest args)
`(list ,@args))
- (define-compiler-macro values-list (arg) arg)))
+ (define-compiler-macro values-list (arg) arg)
+ (define-compiler-macro multiple-value-list (arg) arg)))
;;; CLASS SPECIFICATIONS
;;{{{ Get Class Specifications
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT] Fix infinite loop in mmm-ify
13 years
Didier Verna
NOTE: This patch has been committed. The version below is informational only.
In particular, whitespace difference have been removed.
Hello,
this patch fixes an infinite loop in mmm-ify introduced by:
changeset: 17:f9f3c7b63268
user: sperber-guest
date: Sun Feb 07 18:19:22 2010 +0000
summary: Don't assume multiple values are lists, mmm-class.el
ChangeLog addition:
2011-12-01 Didier Verna <didier(a)xemacs.org>
* mmm-class.el (mmm-ify): Fix infinite loop in mmm-ify introduced
by revision f9f3c7b63268 (2010-02-07 Aidan Kehoe
<kehoea(a)parhasard.net> below). Re-incorporate the call to
mmm-match-region in the loop).
XEmacs Packages source patch:
Diff command: hg diff --git --show-function -wbB
Files affected: mmm-class.el
diff --git a/mmm-class.el b/mmm-class.el
--- a/mmm-class.el
+++ b/mmm-class.el
@@ -175,12 +174,11 @@ the rest of the arguments are for an act
(t
(mmm-save-all
(goto-char start)
- (multiple-value-bind
- (beg end front-pos back-pos matched-front matched-back
- matched-submode matched-face matched-name invalid-resume
- ok-resume)
- (apply #'mmm-match-region :start (point) all)
- (loop
+ (loop for (beg end front-pos back-pos matched-front matched-back
+ matched-submode matched-face matched-name
+ invalid-resume ok-resume)
+ = (multiple-value-list
+ (apply #'mmm-match-region :start (point) all))
while beg
if end ; match-submode, if present, succeeded.
do
@@ -204,7 +201,7 @@ the rest of the arguments are for an act
(mmm-error (goto-char invalid-resume)))
;; If match-submode was unable to find a match, go back to
;; the end of the front match and continue on.
- else do (goto-char invalid-resume)))))))
+ else do (goto-char invalid-resume))))))
;;}}}
;;{{{ Match Regions
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches