update.
[elisp/apel.git] / emu.el
diff --git a/emu.el b/emu.el
index 9d26d33..b6c36dc 100644 (file)
--- a/emu.el
+++ b/emu.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Keywords: emulation, compatibility, NEmacs, MULE, Emacs/mule, XEmacs
+;; Keywords: emulation, compatibility, Nemacs, MULE, Emacs/mule, XEmacs
 
 ;; This file is part of emu.
 
@@ -19,8 +19,8 @@
 
 ;; 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.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Code:
 
@@ -74,7 +74,7 @@
   (defalias 'tl:overlay-put 'overlay-put)
   (make-obsolete 'tl:overlay-put 'overlay-put)
   )
-(unless (fboundp 'tl:overlay-put)
+(unless (fboundp 'tl:overlay-buffer)
   (defalias 'tl:overlay-buffer 'overlay-buffer)
   (make-obsolete 'tl:overlay-buffer 'overlay-buffer)
   )
 CHAR can be any multilingual character
 TABLE defaults to the current buffer's category table."
                (mapconcat (lambda (chr)
-                            (char-to-string (int-char chr)))
+                            (if (integerp chr)
+                                (char-to-string (int-char chr))
+                              (char-to-string chr)))
+                          ;; `char-category-list' returns a list of
+                          ;; characters in XEmacs 21.2.25 and later,
+                          ;; otherwise integers.
                           (char-category-list character)
                           ""))
              )
@@ -118,7 +123,7 @@ TABLE defaults to the current buffer's category table."
              ))
        )
       ((boundp 'NEMACS)
-       ;; for NEmacs and NEpoch
+       ;; for Nemacs and Nepoch
 
        ;; old MULE emulation
        (defconst *noconv*    0)
@@ -130,8 +135,8 @@ TABLE defaults to the current buffer's category table."
        
        (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-nemacs.el; Mule emulating function]"
+On successful conversion, returns the result string,
+else returns nil."
         (if (not (eq ic oc))
             (convert-string-kanji-code str ic oc)
           str))
@@ -139,7 +144,7 @@ else returns nil. [emu-nemacs.el; Mule emulating function]"
        (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-nemacs.el; Mule emulating function]"
+else returns nil."
         (if (/= ic oc)
             (save-excursion
               (save-restriction
@@ -157,7 +162,7 @@ else returns nil. [emu-nemacs.el; Mule emulating function]"
        
        (defun code-convert-string (str ic oc)
         "Convert code in STRING from SOURCE code to TARGET code,
-On successful converion, returns the result string,
+On successful conversion, returns the result string,
 else returns nil. [emu-latin1.el; old MULE emulating function]"
         str)
 
@@ -193,8 +198,7 @@ It is obsolete, so don't use it."))
 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.
-\[emu-nemacs.el]"
+  This function ensures that none of these modifications will take place."
   (as-binary-input-file
    ;; Returns list absolute file name and length of data inserted.
    (insert-file-contents-literally filename visit beg end replace)))
@@ -224,10 +228,35 @@ find-file-hooks, etc.
        (autoload 'enriched-decode "tinyrich")
        ))
 
+(if (or (and (eq emacs-major-version 19)
+            (>= emacs-minor-version (if (featurep 'xemacs) 14 29)))
+       (and (eq emacs-major-version 20)
+            (< emacs-minor-version (if (featurep 'xemacs) 3 1))))
+    (eval-after-load "enriched"
+      '(if (fboundp 'si:enriched-encode)
+          nil
+        (fset 'si:enriched-encode (symbol-function 'enriched-encode))
+        (defun enriched-encode (from to &optional orig-buf)
+          (let* ((si:enriched-initial-annotation enriched-initial-annotation)
+                 (enriched-initial-annotation
+                  (if (stringp si:enriched-initial-annotation)
+                      si:enriched-initial-annotation
+                    (function
+                     (lambda ()
+                       (save-excursion
+                         ;; Eval this in the buffer we are annotating.  This
+                         ;; fixes a bug which was saving incorrect File-Width
+                         ;; information, since we were looking at local
+                         ;; variables in the wrong buffer.
+                         (if orig-buf (set-buffer orig-buf))
+                         (funcall si:enriched-initial-annotation)))))))
+            (si::enriched-encode from to))))))
+
 
 ;;; @ end
 ;;;
 
-(provide 'emu)
+(require 'product)
+(product-provide (provide 'emu) (require 'apel-ver))
 
 ;;; emu.el ends here