* poe.el (require): Update `current-load-list'.
[elisp/apel.git] / emu.el
diff --git a/emu.el b/emu.el
index 030900c..fce2080 100644 (file)
--- a/emu.el
+++ b/emu.el
@@ -81,6 +81,7 @@
 
 (require 'poem)
 (require 'mcharset)
+(require 'invisible)
 
 (defsubst char-list-to-string (char-list)
   "Convert list of character CHAR-LIST to string."
@@ -130,7 +131,7 @@ 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]"
+else returns nil."
         (if (not (eq ic oc))
             (convert-string-kanji-code str ic oc)
           str))
@@ -138,7 +139,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
@@ -192,8 +193,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)))
@@ -223,10 +223,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