1 ;;; pccl.el --- Portable CCL utility for Mule 1.* and Mule 2.*
3 ;; Copyright (C) 1998 Free Software Foundation, Inc.
5 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
6 ;; Keywords: emulation, compatibility, Mule
8 ;; This file is part of APEL (A Portable Emacs Library).
10 ;; This program is free software; you can redistribute it and/or
11 ;; modify it under the terms of the GNU General Public License as
12 ;; published by the Free Software Foundation; either version 2, or (at
13 ;; your option) any later version.
15 ;; This program is distributed in the hope that it will be useful, but
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 ;; General Public License for more details.
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 ;; Boston, MA 02111-1307, USA.
31 (if (featurep 'xemacs)
32 (if (>= emacs-major-version 21)
35 (if (>= emacs-major-version 20)
38 ;; for MULE 1.* and 2.*
41 (broken-facility ccl-usable
44 (if (featurep 'xemacs)
45 (>= emacs-major-version 21)
48 (defmacro define-long-ccl-program (name ccl-program &optional doc)
49 "Define CCL program as define-ccl-program."
50 (setq ccl-program (eval ccl-program))
51 (let ((try-ccl-compile t))
52 (while try-ccl-compile
53 (setq try-ccl-compile nil)
55 (ccl-compile ccl-program)
57 (if (and (eq (car (cdr sig)) ccl-program-vector)
58 (= (car (cdr (cdr sig))) (length ccl-program-vector)))
59 (setq ccl-program-vector
60 (make-vector (* 2 (length ccl-program-vector)) 0)
62 (signal (car sig) (cdr sig))))))
63 (` (define-ccl-program (, name) '(, ccl-program) (, doc)))))