From 43e8d049b32bc665b19ce90920000f4f0aed47df Mon Sep 17 00:00:00 2001 From: morioka Date: Thu, 17 Sep 1998 15:37:37 +0000 Subject: [PATCH] - Rename emu-e20.el to pccl-20.el. - Move definition of emu-x20.el to pccl-20.el. - Move code about CCL from emu-mule.el to pccl-om.el. --- EMU-ELS | 8 ++-- emu-e20.el | 143 ---------------------------------------------------------- emu-mule.el | 68 ---------------------------- emu-x20.el | 50 --------------------- emu.el | 12 ++--- pccl-20.el | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ pccl-om.el | 102 ++++++++++++++++++++++++++++++++++++++++++ pccl.el | 43 ++++++++++++++++++ 8 files changed, 297 insertions(+), 273 deletions(-) delete mode 100644 emu-e20.el delete mode 100644 emu-x20.el create mode 100644 pccl-20.el create mode 100644 pccl-om.el create mode 100644 pccl.el diff --git a/EMU-ELS b/EMU-ELS index 714390f..c92a266 100644 --- a/EMU-ELS +++ b/EMU-ELS @@ -13,7 +13,8 @@ (cons 'poe-xemacs (if (featurep 'mule) ;; for XEmacs with MULE - '(poem-20 poem-xm mcs-20 mcs-xm emu-20 emu-x20) + '(poem-20 poem-xm mcs-20 mcs-xm pccl pccl-20 + emu-20 emu-x20) ;; for XEmacs without MULE '(poem-ltn1 mcs-ltn1) )) @@ -25,11 +26,12 @@ 'poem-e20_3 ; for Emacs 20.3 'poem-e20_2 ; for Emacs 20.1 and 20.2 ) - '(poe-19 poem-20 poem-e20 mcs-20 mcs-e20 emu-20 emu-e20)) + '(poe-19 poem-20 poem-e20 mcs-20 mcs-e20 pccl pccl-20 + emu-20 emu-e20)) ) ((boundp 'MULE) ;; for MULE 1.* and MULE 2.* - (append '(poem-om mcs-om emu-mule) + (append '(poem-om mcs-om emu-mule pccl pccl-om) (if running-emacs-18 '(poe-18 env) '(poe-19))) diff --git a/emu-e20.el b/emu-e20.el deleted file mode 100644 index e076c74..0000000 --- a/emu-e20.el +++ /dev/null @@ -1,143 +0,0 @@ -;;; emu-e20.el --- emu API implementation for Emacs 20.1 and 20.2 - -;; Copyright (C) 1996,1997,1998 Free Software Foundation, Inc. - -;; Author: MORIOKA Tomohiko -;; Keywords: emulation, compatibility, Mule - -;; This file is part of emu. - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 2, or (at -;; your option) any later version. - -;; This program is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Commentary: - -;; This module requires Emacs 20.1 and 20.2. - -;;; Code: - -(require 'poem) - - -;;; @ CCL -;;; -(eval-when-compile (require 'ccl)) - -(eval-when-compile - (defconst ccl-use-symbol-as-program - (progn - (define-ccl-program ew-ccl-identity-program - '(1 ((read r0) (loop (write-read-repeat r0))))) - (condition-case nil - (progn - (funcall - (if (fboundp 'ccl-vector-program-execute-on-string) - 'ccl-vector-program-execute-on-string - 'ccl-execute-on-string) - 'ew-ccl-identity-program - (make-vector 9 nil) - "") - t) - (error nil))) - "\ -T if CCL related builtins accept symbol as CCL program. -(20.2 with ExCCL, 20.3 or later) -Otherwise nil (20.2 without ExCCL or former). - -Because emu provides functions accepting symbol as CCL program, -user programs should not refer this variable.") - ) - -(eval-and-compile - (defconst ccl-use-symbol-as-program - (eval-when-compile ccl-use-symbol-as-program)) - - (defun make-ccl-coding-system - (coding-system mnemonic doc-string decoder encoder) - "\ -Define a new CODING-SYSTEM (symbol) by CCL programs -DECODER (symbol) and ENCODER (symbol)." - (unless ccl-use-symbol-as-program - (setq decoder (symbol-value decoder)) - (setq encoder (symbol-value encoder))) - (make-coding-system coding-system 4 mnemonic doc-string - (cons decoder encoder))) - ) - -(eval-when-compile - (define-ccl-program test-ccl-eof-block - '(1 - (read r0) - (write "[EOF]"))) - - (unless (coding-system-p 'test-ccl-eof-block-cs) - (make-ccl-coding-system - 'test-ccl-eof-block-cs ?T "CCL_EOF_BLOCK tester" - 'test-ccl-eof-block 'test-ccl-eof-block) - ) - ) - -(defconst ccl-encoder-eof-block-is-broken - (eval-when-compile - (not (equal (encode-coding-string "" 'test-ccl-eof-block-cs) - "[EOF]"))) - "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on -encoding.") - -(defconst ccl-decoder-eof-block-is-broken - (eval-when-compile - (not (equal (decode-coding-string "" 'test-ccl-eof-block-cs) - "[EOF]"))) - "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on -decoding.") - -(defconst ccl-eof-block-is-broken - (or ccl-encoder-eof-block-is-broken - ccl-decoder-eof-block-is-broken)) - -(unless ccl-use-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. -\[Emacs 20.3 emulating function]" - (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. -\[Emacs 20.3 emulating function]" - (ccl-vector-program-execute-on-string - (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) - status string contin))) - ) - - -;;; @ end -;;; - -(provide 'emu-e20) - -;;; emu-e20.el ends here diff --git a/emu-mule.el b/emu-mule.el index 5e2d569..62cb5ce 100644 --- a/emu-mule.el +++ b/emu-mule.el @@ -52,74 +52,6 @@ dest)) -;;; @ CCL -;;; -(eval-when-compile (require 'ccl)) - -(defconst ccl-use-symbol-as-program nil - "t if CCL related builtins accept symbol as CCL program. -(20.2 with ExCCL, 20.3 or later) -Otherwise nil (20.2 without ExCCL or former). - -Because emu provides functions accepting symbol as CCL program, -user programs should not refer this variable.") - -(defun make-ccl-coding-system - (coding-system mnemonic doc-string decoder encoder) - "Define a new CODING-SYSTEM (symbol) by CCL programs -DECODER (symbol) and ENCODER (symbol)." - (setq decoder (symbol-value decoder) - encoder (symbol-value encoder)) - (make-coding-system coding-system 4 mnemonic doc-string - nil ; Mule takes one more optional argument: EOL-TYPE. - (cons decoder encoder))) - -(eval-when-compile - (define-ccl-program test-ccl-eof-block - '(1 - (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) - ) - -(defconst ccl-encoder-eof-block-is-broken - (eval-when-compile - (not (equal (encode-coding-string "" 'test-ccl-eof-block-cs) - "[EOF]"))) - "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on -encoding.") - -(defconst ccl-decoder-eof-block-is-broken - (eval-when-compile - (not (equal (decode-coding-string "" 'test-ccl-eof-block-cs) - "[EOF]"))) - "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on -decoding.") - -(defconst ccl-eof-block-is-broken - (or ccl-encoder-eof-block-is-broken - ccl-decoder-eof-block-is-broken)) - -(defun ccl-execute (ccl-prog reg) - "Execute CCL-PROG with registers initialized by REGISTERS. -If CCL-PROG is symbol, it is dereferenced. -\[Emacs 20.3 emulating function]" - (exec-ccl - (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) - reg)) - -(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. -\[Emacs 20.3 emulating function]" - (exec-ccl-string - (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) - status string)) - - ;;; @ end ;;; diff --git a/emu-x20.el b/emu-x20.el deleted file mode 100644 index 40f466a..0000000 --- a/emu-x20.el +++ /dev/null @@ -1,50 +0,0 @@ -;;; emu-x20.el --- emu API implementation for XEmacs with mule - -;; Copyright (C) 1994,1995,1996,1997,1998 MORIOKA Tomohiko - -;; Author: MORIOKA Tomohiko -;; Keywords: emulation, compatibility, Mule, XEmacs - -;; This file is part of emu. - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 2, or (at -;; your option) any later version. - -;; This program is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Commentary: - -;; This module requires XEmacs 20.3-b5 or later with mule. - -;;; Code: - -(require 'poem) - - -;;; @ CCL -;;; - -(defun make-ccl-coding-system (name mnemonic doc-string decoder encoder) - (make-coding-system - name 'ccl doc-string - (list 'mnemonic (char-to-string mnemonic) - 'decode (symbol-value decoder) - 'encode (symbol-value encoder)))) - - -;;; @ end -;;; - -(provide 'emu-x20) - -;;; emu-x20.el ends here diff --git a/emu.el b/emu.el index 7576479..4b50e61 100644 --- a/emu.el +++ b/emu.el @@ -78,10 +78,7 @@ (require 'mcharset) (cond ((featurep 'mule) - (cond ((featurep 'xemacs) - ;; for XEmacs with MULE - (require 'emu-x20) - + (cond ((featurep 'xemacs) ; for XEmacs with MULE ;; old Mule emulating aliases ;;(defalias 'char-leading-char 'char-charset) @@ -95,9 +92,7 @@ TABLE defaults to the current buffer's category table." (char-category-list character) "")) ) - ((>= emacs-major-version 20) - ;; for Emacs 20 - (require 'emu-e20) + ((>= emacs-major-version 20) ; for Emacs 20 (defalias 'insert-binary-file-contents-literally 'insert-file-contents-literally) @@ -108,8 +103,7 @@ CHAR can be any multilingual character TABLE defaults to the current buffer's category table." (category-set-mnemonics (char-category-set character))) ) - (t - ;; for MULE 1.* and 2.* + (t ; for MULE 1.* and 2.* (require 'emu-mule) )) ) diff --git a/pccl-20.el b/pccl-20.el new file mode 100644 index 0000000..a18c65b --- /dev/null +++ b/pccl-20.el @@ -0,0 +1,144 @@ +;;; pccl-20.el --- Portable CCL utility for Emacs 20 and XEmacs-mule + +;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998 Tanaka Akira + +;; Author: Tanaka Akira +;; Keywords: emulation, compatibility, Mule + +;; This file is part of APEL (A Portable Emacs Library). + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Code: + +(require 'poem) + +(eval-when-compile (require 'ccl)) + +(eval-when-compile + (defconst ccl-use-symbol-as-program + (progn + (define-ccl-program ew-ccl-identity-program + '(1 ((read r0) (loop (write-read-repeat r0))))) + (condition-case nil + (progn + (funcall + (if (fboundp 'ccl-vector-program-execute-on-string) + 'ccl-vector-program-execute-on-string + 'ccl-execute-on-string) + 'ew-ccl-identity-program + (make-vector 9 nil) + "") + t) + (error nil))) + "\ +T if CCL related builtins accept symbol as CCL program. +(20.2 with ExCCL, 20.3 or later) +Otherwise nil (20.2 without ExCCL or former). + +Because emu provides functions accepting symbol as CCL program, +user programs should not refer this variable.") + ) + +(eval-and-compile + (defconst ccl-use-symbol-as-program + (eval-when-compile ccl-use-symbol-as-program)) + + (if (featurep 'xemacs) + (defun make-ccl-coding-system (name mnemonic doc-string decoder encoder) + (make-coding-system + name 'ccl doc-string + (list 'mnemonic (char-to-string mnemonic) + 'decode (symbol-value decoder) + 'encode (symbol-value encoder)))) + (defun make-ccl-coding-system + (coding-system mnemonic doc-string decoder encoder) + "\ +Define a new CODING-SYSTEM (symbol) by CCL programs +DECODER (symbol) and ENCODER (symbol)." + (unless ccl-use-symbol-as-program + (setq decoder (symbol-value decoder)) + (setq encoder (symbol-value encoder))) + (make-coding-system coding-system 4 mnemonic doc-string + (cons decoder encoder))) + )) + +(eval-when-compile + (define-ccl-program test-ccl-eof-block + '(1 + (read r0) + (write "[EOF]"))) + + (unless (coding-system-p 'test-ccl-eof-block-cs) + (make-ccl-coding-system + 'test-ccl-eof-block-cs ?T "CCL_EOF_BLOCK tester" + 'test-ccl-eof-block 'test-ccl-eof-block) + ) + ) + +(defconst ccl-encoder-eof-block-is-broken + (eval-when-compile + (not (equal (encode-coding-string "" 'test-ccl-eof-block-cs) + "[EOF]"))) + "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on +encoding.") + +(defconst ccl-decoder-eof-block-is-broken + (eval-when-compile + (not (equal (decode-coding-string "" 'test-ccl-eof-block-cs) + "[EOF]"))) + "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on +decoding.") + +(defconst ccl-eof-block-is-broken + (or ccl-encoder-eof-block-is-broken + ccl-decoder-eof-block-is-broken)) + +(unless ccl-use-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. +\[Emacs 20.3 emulating function]" + (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. +\[Emacs 20.3 emulating function]" + (ccl-vector-program-execute-on-string + (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) + status string contin))) + ) + + +;;; @ end +;;; + +(provide 'pccl-20) + +;;; pccl-20.el ends here diff --git a/pccl-om.el b/pccl-om.el new file mode 100644 index 0000000..68510ec --- /dev/null +++ b/pccl-om.el @@ -0,0 +1,102 @@ +;;; pccl-om.el --- Portable CCL utility for Mule 1.* and Mule 2.* + +;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998 Tanaka Akira + +;; Author: Tanaka Akira +;; Shuhei KOBAYASHI +;; Keywords: emulation, compatibility, Mule + +;; This file is part of APEL (A Portable Emacs Library). + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Code: + +(require 'poem) + +(eval-when-compile (require 'ccl)) + +(defconst ccl-use-symbol-as-program nil + "t if CCL related builtins accept symbol as CCL program. +(20.2 with ExCCL, 20.3 or later) +Otherwise nil (20.2 without ExCCL or former). + +Because emu provides functions accepting symbol as CCL program, +user programs should not refer this variable.") + +(defun make-ccl-coding-system + (coding-system mnemonic doc-string decoder encoder) + "Define a new CODING-SYSTEM (symbol) by CCL programs +DECODER (symbol) and ENCODER (symbol)." + (setq decoder (symbol-value decoder) + encoder (symbol-value encoder)) + (make-coding-system coding-system 4 mnemonic doc-string + nil ; Mule takes one more optional argument: EOL-TYPE. + (cons decoder encoder))) + +(eval-when-compile + (define-ccl-program test-ccl-eof-block + '(1 + (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) + ) + +(defconst ccl-encoder-eof-block-is-broken + (eval-when-compile + (not (equal (encode-coding-string "" 'test-ccl-eof-block-cs) + "[EOF]"))) + "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on +encoding.") + +(defconst ccl-decoder-eof-block-is-broken + (eval-when-compile + (not (equal (decode-coding-string "" 'test-ccl-eof-block-cs) + "[EOF]"))) + "t if CCL_EOF_BLOCK is not executed when coding system encounts EOF on +decoding.") + +(defconst ccl-eof-block-is-broken + (or ccl-encoder-eof-block-is-broken + ccl-decoder-eof-block-is-broken)) + +(defun ccl-execute (ccl-prog reg) + "Execute CCL-PROG with registers initialized by REGISTERS. +If CCL-PROG is symbol, it is dereferenced. +\[Emacs 20.3 emulating function]" + (exec-ccl + (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) + reg)) + +(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. +\[Emacs 20.3 emulating function]" + (exec-ccl-string + (if (symbolp ccl-prog) (symbol-value ccl-prog) ccl-prog) + status string)) + + +;;; @ end +;;; + +(provide 'pccl-om) + +;;; pccl-om.el ends here diff --git a/pccl.el b/pccl.el new file mode 100644 index 0000000..0343064 --- /dev/null +++ b/pccl.el @@ -0,0 +1,43 @@ +;;; pccl.el --- Portable CCL utility for Mule 1.* and Mule 2.* + +;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998 Tanaka Akira + +;; Author: Tanaka Akira +;; Shuhei KOBAYASHI +;; Keywords: emulation, compatibility, Mule + +;; This file is part of APEL (A Portable Emacs Library). + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Code: + +(if (featurep 'mule) + (if (>= emacs-major-version 20) + ;; for Emacs 20 and XEmacs-mule + (require 'pccl-20) + ;; for MULE 1.* and 2.* + (require 'pccl-om) + )) + + +;;; @ end +;;; + +(provide 'pccl) + +;;; pccl.el ends here -- 1.7.10.4