ChangeLog addition:
2007-08-14 Aidan Kehoe <kehoea(a)parhasard.net>
* package-compile.el (depth):
Add mule-lisp-directory to the load-path when it is non-nil. Fixes
problems with CCL not being picked up on a 21.5 non-Mule build.
xemacs-packages/apel/ChangeLog addition:
2007-08-14 Aidan Kehoe <kehoea(a)parhasard.net>
* pccl-20.el:
* pccl-20.el (broken):
* pccl-20.el (ccl-execute-eof-block-on-encoding-null):
* pccl-20.el (ccl-execute-eof-block-on-encoding-some):
* pccl-20.el (ccl-execute-eof-block-on-decoding-null):
* pccl-20.el (ccl-execute-eof-block-on-decoding-some):
Move all these tests to unconditionally returning t. We only
support XEmacs 21.4 and XEmacs 21.5, where both of these things
are true, and checking for CCL support at compile time is
inappropriate when compile time can be a non-Mule XEmacs and
runtime can be a Mule XEmacs.
* pccl.el:
Note that the logic of this package is rotten in our context.
XEmacs Packages source patch:
Diff command: cvs -q diff -Nu
Files affected: xemacs-packages/apel/pccl.el
===================================================================
RCS xemacs-packages/apel/pccl-20.el
===================================================================
RCS package-compile.el
===================================================================
RCS
Index: package-compile.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/package-compile.el,v
retrieving revision 1.71
diff -u -u -r1.71 package-compile.el
--- package-compile.el 2007/05/24 20:22:30 1.71
+++ package-compile.el 2007/08/14 21:03:09
@@ -72,8 +72,12 @@
((boundp 'paths-core-load-path-depth) ; XEmacs > 21.2.41
paths-core-load-path-depth)
(t (error "Somebody has been messing with paths-find-*!")))))
- (setq load-path (paths-find-recursive-load-path (list lisp-directory)
- depth)))
+ (setq load-path (paths-find-recursive-load-path
+ (cons lisp-directory
+ ;; Only pay attention to mule-lisp-directory if
+ ;; it's non-nil.
+ (and mule-lisp-directory (list mule-lisp-directory)))
+ depth)))
(load (expand-file-name "auto-autoloads" (car load-path)))
Index: xemacs-packages/apel/pccl-20.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/apel/pccl-20.el,v
retrieving revision 1.3
diff -u -u -r1.3 pccl-20.el
--- xemacs-packages/apel/pccl-20.el 2005/12/06 10:47:18 1.3
+++ xemacs-packages/apel/pccl-20.el 2007/08/14 21:03:09
@@ -25,127 +25,30 @@
;;; Code:
-(eval-when-compile (require 'ccl))
(require 'broken)
+;; We only support 21.4 and 21.5 in the packages; all these tests return
+;; true.
+
(broken-facility ccl-accept-symbol-as-program
"Emacs does not accept symbol as CCL program."
- (progn
- (define-ccl-program test-ccl-identity
- '(1 ((read r0) (loop (write-read-repeat r0)))))
- (condition-case nil
- (progn
- (funcall
- (if (fboundp 'ccl-vector-execute-on-string)
- 'ccl-vector-execute-on-string
- 'ccl-execute-on-string)
- 'test-ccl-identity
- (make-vector 9 nil)
- "")
- t)
- (error nil)))
t)
-(eval-and-compile
-
- (static-if (featurep 'xemacs)
- (defadvice make-coding-system (before ccl-compat (name type &rest ad-subr-args)
activate)
- (when (and (integerp type)
- (eq type 4)
- (characterp (ad-get-arg 2))
- (stringp (ad-get-arg 3))
- (consp (ad-get-arg 4))
- (symbolp (car (ad-get-arg 4)))
- (symbolp (cdr (ad-get-arg 4))))
- (setq type 'ccl)
- (setq ad-subr-args
- (list
- (ad-get-arg 3)
- (append
- (list
- 'mnemonic (char-to-string (ad-get-arg 2))
- 'decode (symbol-value (car (ad-get-arg 4)))
- 'encode (symbol-value (cdr (ad-get-arg 4))))
- (ad-get-arg 5)))))))
-
- (if (featurep 'xemacs)
- (defun make-ccl-coding-system (name mnemonic docstring decoder encoder)
- "\
-Define a new CODING-SYSTEM by CCL programs DECODER and ENCODER.
-
-CODING-SYSTEM, DECODER and ENCODER must be symbol."
- (make-coding-system
- name 'ccl docstring
- (list 'mnemonic (char-to-string mnemonic)
- 'decode (symbol-value decoder)
- 'encode (symbol-value encoder))))
- (defun make-ccl-coding-system
- (coding-system mnemonic docstring decoder encoder)
- "\
-Define a new CODING-SYSTEM by CCL programs DECODER and ENCODER.
-
-CODING-SYSTEM, DECODER and ENCODER must be symbol."
- (when-broken ccl-accept-symbol-as-program
- (setq decoder (symbol-value decoder))
- (setq encoder (symbol-value encoder)))
- (make-coding-system coding-system 4 mnemonic docstring
- (cons decoder encoder)))
- )
-
- (when-broken ccl-accept-symbol-as-program
-
- (when (subrp (symbol-function 'ccl-execute))
- (fset 'ccl-vector-program-execute
- (symbol-function 'ccl-execute))
- (defun ccl-execute (ccl-prog reg)
- "\
-Execute CCL-PROG with registers initialized by REGISTERS.
-If CCL-PROG is symbol, it is dereferenced."
- (ccl-vector-program-execute
- (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog)
- reg)))
-
- (when (subrp (symbol-function 'ccl-execute-on-string))
- (fset 'ccl-vector-program-execute-on-string
- (symbol-function 'ccl-execute-on-string))
- (defun ccl-execute-on-string (ccl-prog status string &optional contin)
- "\
-Execute CCL-PROG with initial STATUS on STRING.
-If CCL-PROG is symbol, it is dereferenced."
- (ccl-vector-program-execute-on-string
- (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog)
- status string contin)))
- )
- )
-
-(eval-when-compile
- (define-ccl-program test-ccl-eof-block
- '(1
- ((read r0)
- (write r0)
- (read r0))
- (write "[EOF]")))
-
- (make-ccl-coding-system
- 'test-ccl-eof-block-cs ?T "CCL_EOF_BLOCK tester"
- 'test-ccl-eof-block 'test-ccl-eof-block)
- )
-
(broken-facility ccl-execute-eof-block-on-encoding-null
"Emacs forgets executing CCL_EOF_BLOCK with encoding on empty input. (Fixed on
Emacs 20.4)"
- (equal (encode-coding-string "" 'test-ccl-eof-block-cs)
"[EOF]"))
+ t)
(broken-facility ccl-execute-eof-block-on-encoding-some
"Emacs forgets executing CCL_EOF_BLOCK with encoding on non-empty input. (Fixed on
Emacs 20.3)"
- (equal (encode-coding-string "a" 'test-ccl-eof-block-cs)
"a[EOF]"))
+ t)
(broken-facility ccl-execute-eof-block-on-decoding-null
"Emacs forgets executing CCL_EOF_BLOCK with decoding on empty input. (Fixed on
Emacs 20.4)"
- (equal (decode-coding-string "" 'test-ccl-eof-block-cs)
"[EOF]"))
+ t)
(broken-facility ccl-execute-eof-block-on-decoding-some
"Emacs forgets executing CCL_EOF_BLOCK with decoding on non-empty input. (Fixed on
Emacs 20.4)"
- (equal (decode-coding-string "a" 'test-ccl-eof-block-cs)
"a[EOF]"))
+ t)
(broken-facility ccl-execute-eof-block-on-encoding
"Emacs may forget executing CCL_EOF_BLOCK with encoding."
Index: xemacs-packages/apel/pccl.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/apel/pccl.el,v
retrieving revision 1.5
diff -u -u -r1.5 pccl.el
--- xemacs-packages/apel/pccl.el 2005/12/06 10:47:18 1.5
+++ xemacs-packages/apel/pccl.el 2007/08/14 21:03:09
@@ -22,6 +22,12 @@
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
+;;; ##### Much of the logic here is flawed in the context of XEmacs
+;;; packages. All the static-if and broken-facility stuff is evaluated at
+;;; compile time, which is inappropriate if the file is to be compiled on a
+;;; non-Mule XEmacs and to run on a Mule XEmacs. Aidan Kehoe, Di Aug 14
+;;; 21:31:39 CEST 2007
+
;;; Code:
(require 'broken)
--
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches