From: morioka Date: Tue, 21 Apr 1998 13:32:41 +0000 (+0000) Subject: Sync up with APEL 8.3. X-Git-Tag: apel-unify-8_3~2 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=e44886d31eeeec9188991f51a74e8a990ade117a;p=elisp%2Fapel.git Sync up with APEL 8.3. --- diff --git a/EMU-ELS b/EMU-ELS index 8ba4731..6e1626b 100644 --- a/EMU-ELS +++ b/EMU-ELS @@ -1,6 +1,6 @@ ;;; -*-Emacs-Lisp-*- ;;; -;;; $Id: EMU-ELS,v 1.3 1997-08-30 05:30:43 morioka Exp $ +;;; $Id: EMU-ELS,v 1.3.2.1 1998-04-21 13:29:47 morioka Exp $ ;;; (setq emu-modules @@ -14,35 +14,37 @@ (setq emu-modules (nconc - (cond (running-mule-merged-emacs - '(emu-e20 emu-20) + (cond (running-xemacs + ;; for XEmacs + (cons 'emu-xemacs + (if (featurep 'mule) + '(emu-20 emu-x20) ; for XEmacs with MULE + '(emu-latin1) ; for XEmacs without MULE + )) ) - (running-xemacs-with-mule - '(emu-x20 emu-20) + ((featurep 'mule) + ;; for Emacs 20.1 or later + (cons (if (= (length "あ") 1) + 'emu-e20_3 ; for Emacs 20.3 + 'emu-e20_2 ; for Emacs 20.1 and 20.2 + ) + '(emu-20 emu-e19 emu-e20)) ) ((boundp 'MULE) - '(emu-mule) + ;; for MULE 1.* and MULE 2.* + (cons 'emu-mule + (if running-emacs-18 + '(emu-18 env) + '(emu-e19))) ) ((boundp 'NEMACS) - '(emu-nemacs) + ;; for NEmacs + '(emu-18 emu-nemacs) ) (t - '(emu-e19) + ;; for Emacs 19.34 + '(emu-e19 emu-latin1) )) emu-modules)) -(setq emu-modules - (nconc - (cond (running-emacs-18 - '(emu-18 env) - ) - (running-xemacs - '(emu-xemacs) - ) - (t - '(emu-19) - ) - ) - emu-modules)) - ;;; EMU-ELS ends here diff --git a/Makefile b/Makefile index 8e97c3f..4a28bbc 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # Makefile for APEL. # -VERSION = 8.2 +VERSION = 8.3 TAR = tar RM = /bin/rm -f diff --git a/README.en b/README.en index fe7f7ea..9f6fa61 100644 --- a/README.en +++ b/README.en @@ -1,6 +1,5 @@ [README for APEL (English Version)] by MORIOKA Tomohiko -$Id: README.en,v 1.9.2.1 1998-04-13 16:19:44 morioka Exp $ What's APEL? ============ @@ -8,24 +7,26 @@ What's APEL? APEL stands for "A Portable Emacs Library". It consists of following modules: - emu: A package to fill incompatibilities of emacsen - emu.el --- main module - About mule API: - emu-nemacs.el --- for NEmacs - emu-e19.el --- for Emacs 19 or XEmacs without mule - emu-mule.el --- for MULE 2.3 - emu-20.el --- for Emacs 20 and XEmacs/mule - emu-e20.el --- for Emacs 20 and MULE 3 - emu-x20.el --- for XEmacs/mule - About other API - emu-18.el --- for Emacs 18 - emu-19.el --- for Emacs 19 or later - emu-xemacs.el --- for XEmacs - env.el --- env.el for Emacs 18 - richtext.el --- text/richtext module - for Emacs 19.29 or later, - XEmacs 19.14 or later - tinyrich.el --- text/richtext module for old emacsen + emu: A package to fill incompatibilities of emacsen + emu.el --- main module + About mule API: + emu-nemacs.el --- for NEmacs + emu-latin1.el --- for Emacs 19 or XEmacs without mule + emu-mule.el --- for MULE 2.3 + emu-20.el --- for Emacs 20 and XEmacs with mule + emu-e20.el --- for Emacs 20.1 or later + emu-e20_2.el --- for Emacs 20.1, 20.2 + emu-e20_3.el --- for Emacs 20.3 or later + emu-x20.el --- for XEmacs with mule + About other API + emu-18.el --- for Emacs 18 + emu-e19.el --- for Emacs 19 or later + emu-xemacs.el --- for XEmacs + env.el --- env.el for Emacs 18 + richtext.el --- text/richtext module + for Emacs 19.29 or later, + XEmacs 19.14 or later + tinyrich.el --- text/richtext module for old emacsen alist.el: utility for Association-list diff --git a/emu-e19.el b/emu-e19.el index ce75ddf..a676413 100644 --- a/emu-e19.el +++ b/emu-e19.el @@ -1,9 +1,9 @@ -;;; emu-e19.el --- emu module for Emacs 19 and XEmacs without MULE +;;; emu-e19.el --- emu API implementation for Emacs 19.* ;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko -;; Keywords: emulation, compatibility, mule, Latin-1 +;; Keywords: emulation, compatibility ;; This file is part of emu. @@ -24,265 +24,78 @@ ;;; Code: -;;; @ version and variant specific features +;;; @ face ;;; -(cond (running-xemacs - (require 'emu-xemacs)) - (running-emacs-19 - (require 'emu-19) - )) - - -;;; @ character set -;;; - -(put 'ascii 'charset-description "Character set of ASCII") -(put 'ascii 'charset-registry "ASCII") - -(put 'latin-iso8859-1 'charset-description "Character set of ISO-8859-1") -(put 'latin-iso8859-1 'charset-registry "ISO8859-1") - -(defun charset-description (charset) - "Return description of CHARSET." - (get charset 'charset-description) - ) - -(defun charset-registry (charset) - "Return registry name of CHARSET." - (get charset 'charset-registry) - ) - -(defun charset-width (charset) - "Return number of columns a CHARSET occupies when displayed." - 1) - -(defun charset-direction (charset) - "Return the direction of a character of CHARSET by - 0 (left-to-right) or 1 (right-to-left)." - 0) - -(defun find-charset-string (str) - "Return a list of charsets in the string." - (if (string-match "[\200-\377]" str) - '(latin-iso8859-1) - )) - -(defalias 'find-non-ascii-charset-string 'find-charset-string) - -(defun find-charset-region (start end) - "Return a list of charsets in the region between START and END. -\[emu-e19.el; Mule emulating function]" - (if (save-excursion - (goto-char start) - (re-search-forward "[\200-\377]" end t) - ) - '(latin-iso8859-1) - )) - -(defalias 'find-non-ascii-charset-region 'find-charset-region) - - -;;; @ coding-system -;;; - -(defconst *internal* nil) -(defconst *ctext* nil) -(defconst *noconv* nil) - -(defun decode-coding-string (string coding-system) - "Decode the STRING which is encoded in CODING-SYSTEM. -\[emu-e19.el; Emacs 20 emulating function]" - string) - -(defun encode-coding-string (string coding-system) - "Encode the STRING as CODING-SYSTEM. -\[emu-e19.el; Emacs 20 emulating function]" - string) - -(defun decode-coding-region (start end coding-system) - "Decode the text between START and END which is encoded in CODING-SYSTEM. -\[emu-e19.el; Emacs 20 emulating function]" - 0) - -(defun encode-coding-region (start end coding-system) - "Encode the text between START and END to CODING-SYSTEM. -\[emu-e19.el; Emacs 20 emulating function]" - 0) - -(defun detect-coding-region (start end) - "Detect coding-system of the text in the region between START and END. -\[emu-e19.el; Emacs 20 emulating function]" +(defun-maybe find-face (face) + (car (memq face (face-list))) ) -(defun set-buffer-file-coding-system (coding-system &optional force) - "Set buffer-file-coding-system of the current buffer to CODING-SYSTEM. -\[emu-e19.el; Emacs 20 emulating function]" - ) - -(defmacro as-binary-process (&rest body) - (` (let (selective-display) ; Disable ^M to nl translation. - (,@ body) - ))) - -(defmacro as-binary-input-file (&rest body) - (` (let ((emx-binary-mode t)) ; Stop CRLF to LF conversion in OS/2 - (,@ body) - ))) - -(defmacro as-binary-output-file (&rest body) - (` (let ((emx-binary-mode t)) ; Stop CRLF to LF conversion in OS/2 - (,@ body) - ))) - -;;; @@ for old MULE emulation -;;; - -(defun code-convert-string (str ic oc) - "Convert code in STRING from SOURCE code to TARGET code, -On successful converion, returns the result string, -else returns nil. [emu-e19.el; old MULE emulating function]" - str) - -(defun code-convert-region (beg end ic oc) - "Convert code of the text between BEGIN and END from SOURCE -to TARGET. On successful conversion returns t, -else returns nil. [emu-e19.el; old MULE emulating function]" - t) - - -;;; @ binary access +;;; @ for tm-7.106 ;;; -(defun insert-file-contents-as-binary (filename - &optional visit beg end replace) - "Like `insert-file-contents', q.v., but don't code and format conversion. -Like `insert-file-contents-literary', but it allows find-file-hooks, -automatic uncompression, etc. - -Namely this function ensures that only format decoding and character -code conversion will not take place." - (let ((emx-binary-mode t)) - (insert-file-contents filename visit beg end replace) - )) - -(defalias 'insert-binary-file-contents 'insert-file-contents-as-binary) -(make-obsolete 'insert-binary-file-contents 'insert-file-contents-as-binary) - -(defun insert-binary-file-contents-literally (filename - &optional visit beg end replace) - "Like `insert-file-contents-literally', q.v., but don't code conversion. -A buffer may be modified in several ways after reading into the buffer due -to advanced Emacs features, such as file-name-handlers, format decoding, -find-file-hooks, etc. - This function ensures that none of these modifications will take place." - (let ((emx-binary-mode t)) - (insert-file-contents-literally filename visit beg end replace) - )) +(defalias 'tl:make-overlay 'make-overlay) +(defalias 'tl:overlay-put 'overlay-put) +(defalias 'tl:overlay-buffer 'overlay-buffer) -(defun write-region-as-binary (start end filename - &optional append visit lockname) - "Like `write-region', q.v., but don't code conversion." - (let ((emx-binary-mode t)) - (write-region start end filename append visit lockname) - )) +(make-obsolete 'tl:make-overlay 'make-overlay) +(make-obsolete 'tl:overlay-put 'overlay-put) +(make-obsolete 'tl:overlay-buffer 'overlay-buffer) -;;; @ MIME charset +;;; @ visible/invisible ;;; -(defvar charsets-mime-charset-alist - '(((ascii) . us-ascii))) +(defmacro enable-invisible ()) -(defvar default-mime-charset 'iso-8859-1) +(defmacro end-of-invisible ()) -(defun mime-charset-to-coding-system (charset) - (if (stringp charset) - (setq charset (intern (downcase charset))) - ) - (and (memq charset (list 'us-ascii default-mime-charset)) - charset) - ) - -(defun detect-mime-charset-region (start end) - "Return MIME charset for region between START and END." +(defun invisible-region (start end) (if (save-excursion - (goto-char start) - (re-search-forward "[\200-\377]" end t) + (goto-char (1- end)) + (eq (following-char) ?\n) ) - default-mime-charset - 'us-ascii)) - -(defun encode-mime-charset-region (start end charset) - "Encode the text between START and END as MIME CHARSET." + (setq end (1- end)) + ) + (put-text-property start end 'invisible t) ) -(defun decode-mime-charset-region (start end charset) - "Decode the text between START and END as MIME CHARSET." +(defun visible-region (start end) + (put-text-property start end 'invisible nil) ) -(defun encode-mime-charset-string (string charset) - "Encode the STRING as MIME CHARSET." - string) +(defun invisible-p (pos) + (get-text-property pos 'invisible) + ) -(defun decode-mime-charset-string (string charset) - "Decode the STRING as MIME CHARSET." - string) +(defun next-visible-point (pos) + (save-excursion + (goto-char (next-single-property-change pos 'invisible)) + (if (eq (following-char) ?\n) + (forward-char) + ) + (point) + )) -;;; @ character +;;; @ mouse ;;; -(defun char-charset (char) - "Return the character set of char CHAR." - (if (< chr 128) - 'ascii - 'latin-iso8859-1)) - -(defun char-bytes (char) - "Return number of bytes a character in CHAR occupies in a buffer." - 1) - -(defun char-width (char) - "Return number of columns a CHAR occupies when displayed." - 1) - -(defalias 'char-length 'char-bytes) - -(defmacro char-next-index (char index) - "Return index of character succeeding CHAR whose index is INDEX." - (` (1+ index))) +(defvar mouse-button-1 [mouse-1]) +(defvar mouse-button-2 [mouse-2]) +(defvar mouse-button-3 [down-mouse-3]) ;;; @ string ;;; -(defalias 'string-width 'length) - -(defun string-to-char-list (str) - (mapcar (function identity) str) - ) - -(defalias 'string-to-int-list 'string-to-char-list) - -(defalias 'sref 'aref) - -(defun truncate-string (str width &optional start-column) - "Truncate STR to fit in WIDTH columns. -Optional non-nil arg START-COLUMN specifies the starting column. -\[emu-e19.el; MULE 2.3 emulating function]" - (or start-column - (setq start-column 0)) - (substring str start-column width) - ) - -;;; @@ obsoleted aliases -;;; -;;; You should not use them. - -(defalias 'string-columns 'length) -(make-obsolete 'string-columns 'string-width) +(defmacro char-list-to-string (char-list) + "Convert list of character CHAR-LIST to string." + (` (mapconcat (function char-to-string) + (, char-list) + "") + )) ;;; @ end diff --git a/emu-e20.el b/emu-e20.el index 4fb7e87..2c8f6f1 100644 --- a/emu-e20.el +++ b/emu-e20.el @@ -28,7 +28,7 @@ ;;; Code: -(require 'emu-19) +(require 'emu-e19) (defun fontset-pixel-size (fontset) (let* ((info (fontset-info fontset)) @@ -43,6 +43,12 @@ (t 0) ))) +(if (and (fboundp 'set-buffer-multibyte) + (subrp (symbol-function 'set-buffer-multibyte))) + (require 'emu-e20_3) ; for Emacs 20.3 + (require 'emu-e20_2) ; for Emacs 20.1 and 20.2 + ) + ;;; @ character set ;;; @@ -87,7 +93,7 @@ code conversion will not take place." (coding-system-for-read 'binary) format-alist) (insert-file-contents filename visit beg end replace) - (setq enable-multibyte-characters flag) + (set-buffer-multibyte flag) )) (defalias 'insert-binary-file-contents 'insert-file-contents-as-binary) @@ -174,12 +180,6 @@ code conversion will not take place." ;;; @ character ;;; -(defalias 'char-length 'char-bytes) - -(defmacro char-next-index (char index) - "Return index of character succeeding CHAR whose index is INDEX." - `(+ index (char-bytes char))) - ;;; @@ Mule emulating aliases ;;; ;;; You should not use them. @@ -192,34 +192,6 @@ TABLE defaults to the current buffer's category table." ) -;;; @ string -;;; - -(defalias 'sset 'store-substring) - -(defun string-to-char-list (string) - "Return a list of which elements are characters in the STRING." - (let* ((len (length string)) - (i 0) - l chr) - (while (< i len) - (setq chr (sref string i)) - (setq l (cons chr l)) - (setq i (+ i (char-bytes chr))) - ) - (nreverse l) - )) - -(defalias 'string-to-int-list 'string-to-char-list) - -;;; @@ obsoleted aliases -;;; -;;; You should not use them. - -(defalias 'string-columns 'string-width) -(make-obsolete 'string-columns 'string-width) - - ;;; @ end ;;; diff --git a/emu-mule.el b/emu-mule.el index ebcdba4..63be74e 100644 --- a/emu-mule.el +++ b/emu-mule.el @@ -29,7 +29,7 @@ ;;; (cond (running-emacs-19 - (require 'emu-19) + (require 'emu-e19) ;; Suggested by SASAKI Osamu ;; (cf. [os2-emacs-ja:78]) @@ -319,7 +319,7 @@ It must be symbol.") (defmacro char-next-index (char index) "Return index of character succeeding CHAR whose index is INDEX." - (` (+ index (char-bytes char)))) + (` (+ (, index) (char-bytes (, char))))) ;;; @@ obsoleted aliases ;;; diff --git a/emu-nemacs.el b/emu-nemacs.el index 91ee9d5..d5a3b4d 100644 --- a/emu-nemacs.el +++ b/emu-nemacs.el @@ -339,7 +339,7 @@ find-file-hooks, etc. (defmacro char-next-index (char index) "Return index of character succeeding CHAR whose index is INDEX." - (` (1+ index))) + (` (+ (, index) (char-bytes (, char))))) ;;; @ string diff --git a/emu-x20.el b/emu-x20.el index e9bffcc..405c441 100644 --- a/emu-x20.el +++ b/emu-x20.el @@ -28,8 +28,8 @@ ;;; Code: -(require 'emu-xemacs) -(require 'emu-20) +;; (require 'emu-xemacs) +;; (require 'emu-20) (and (coding-system-property 'iso-2022-jp 'input-charset-conversion) @@ -206,7 +206,7 @@ find-file-hooks, etc. (defmacro char-next-index (char index) "Return index of character succeeding CHAR whose index is INDEX." - `(1+ index)) + `(1+ ,index)) ;;; @@ Mule emulating aliases ;;; diff --git a/emu.el b/emu.el index 066dc18..cef7aea 100644 --- a/emu.el +++ b/emu.el @@ -1,9 +1,8 @@ ;;; emu.el --- Emulation module for each Emacs variants -;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. +;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko -;; Version: $Id: emu.el,v 7.48 1997/09/07 02:37:40 morioka Exp $ ;; Keywords: emulation, compatibility, NEmacs, MULE, Emacs/mule, XEmacs ;; This file is part of emu. @@ -101,13 +100,22 @@ (or (and running-xemacs-19 (>= emacs-minor-version 14)) running-xemacs-20-or-later)) -(cond (running-mule-merged-emacs - ;; for mule merged EMACS - (require 'emu-e20) +(cond (running-xemacs + ;; for XEmacs + (require 'emu-xemacs) + (cond ((featurep 'mule) + ;; for XEmacs with MULE + (require 'emu-20) + (require 'emu-x20) + ) + (t + ;; for XEmacs without MULE + (require 'emu-latin1) + )) ) - (running-xemacs-with-mule - ;; for XEmacs/mule - (require 'emu-x20) + (running-mule-merged-emacs + ;; for Emacs 20.1 and 20.2 + (require 'emu-e20) ) ((boundp 'MULE) ;; for MULE 1.* and 2.* @@ -118,8 +126,9 @@ (require 'emu-nemacs) ) (t - ;; for EMACS 19 and XEmacs 19 (without mule) + ;; for Emacs 19 (require 'emu-e19) + (require 'emu-latin1) ))