[PATCH] Re: [Failure] The Package Smoketest

Aidan Kehoe kehoea at parhasard.net
Thu Nov 30 04:33:14 EST 2006


 Ar an triochadú lá de mí na Samhain, scríobh Stephen J. Turnbull: 

 > Looks like it's probably related to your work, Aidan.  Please fix.

Won’t get to committing it until this evening or tomorrow, but for
reference, here’s a fix. 

--- fsf-compat-unicode.el~	2006-11-30 10:26:10.453125000 +0100
+++ fsf-compat-unicode.el	2006-11-30 10:28:36.515625000 +0100
@@ -34,14 +34,44 @@
                      (encode-char (decode-char 'ucs #x31C) 'ucs))))
   (error "Unicode support needed for this file not available!"))
 
-(define-ccl-program fsf-compat-ccl-encode-to-ucs-2
-  `(1
-    ((r1 = (r1 << 8))
-     (r1 = (r1 | r2))
-     (mule-to-unicode r0 r1)
-     (r1 = (r0 >> 8))
-     (r2 = (r0 & 255))))
-  "CCL program to transform Mule characters to UCS-2.")
+
+(if (eval-when-compile
+      (and (> emacs-major-version 20)  
+	   (> emacs-minor-version 4)
+	   (featurep 'mule)))
+
+    ;; If we're being compiled by 21.5, use the actual define-ccl-program
+    ;; macro, but evaluated at runtime. 
+    ;;
+    ;; Having this as 
+    ;;
+    ;;   (eval-when-compile (and (featurep 'mule) (macroexpand
+    ;;   '(define-ccl-program ...))
+    ;;
+    ;; in order to have the macro evaluated at compile time, results
+    ;; in the statement being empty in the compiled file, which as I
+    ;; understand it is a bug.
+
+    (eval
+     '(define-ccl-program fsf-compat-ccl-encode-to-ucs-2 
+       `(1 
+	 ((r1 = (r1 << 8)) 
+	  (r1 = (r1 | r2)) 
+	  (mule-to-unicode r0 r1) 
+	  (r1 = (r0 >> 8)) 
+	  (r2 = (r0 & 255)))) 
+       "CCL program to transform Mule characters to UCS-2."))
+
+  ;; Pre-expand the macro for 21.4. 21.4 will error on loading this file, but 
+  ;; it may compile it. define-ccl-program should not be a macro, but that's 
+  ;; by the way. 
+  (let ((prog [1 10 131127 8 98872 65823 147513 8 82009 255 22])) 
+    (defconst fsf-compat-ccl-encode-to-ucs-2 prog 
+      "CCL program to transform Mule characters to UCS-2.") 
+    (put (quote fsf-compat-ccl-encode-to-ucs-2) 
+	 (quote ccl-program-idx) 
+	 (register-ccl-program (quote fsf-compat-ccl-encode-to-ucs-2) prog))  
+    nil))
 
 (defun fsf-compat-init-mule-unicode-charsets ()
   "Make some Mule character sets that the FSF uses available in XEmacs.


-- 
Santa Maradona, priez pour moi!




More information about the XEmacs-Beta mailing list