(make-local-hook): Use `defun-maybe' directly.
[elisp/apel.git] / poem-xm.el
index 58ab3e2..4c0ac8d 100644 (file)
@@ -1,4 +1,4 @@
-;;; poem-xm.el --- poem implementation for XEmacs-mule
+;;; poem-xm.el --- poem module for XEmacs-mule; -*-byte-compile-dynamic: t;-*-
 
 ;; Copyright (C) 1998 Free Software Foundation, Inc.
 
@@ -24,6 +24,8 @@
 
 ;;; Code:
 
+(eval-when-compile
+  (require 'poe))
 (require 'poem-20)
 
 
@@ -34,6 +36,9 @@
 (and (coding-system-property 'iso-2022-jp 'input-charset-conversion)
      (copy-coding-system 'iso-2022-7bit 'iso-2022-jp))
 
+(and (coding-system-property 'iso-2022-jp-dos 'input-charset-conversion)
+     (copy-coding-system 'iso-2022-7bit-dos 'iso-2022-jp-dos))
+
 ;; Redefine if -{dos|mac|unix} is not found.
 (or (find-coding-system 'raw-text-dos)
     (copy-coding-system 'no-conversion-dos 'raw-text-dos))
        mnemonic "ISO7/SS2"
        eol-type nil)))
 
+(or (find-coding-system 'gb2312-dos)
+    (copy-coding-system 'cn-gb-2312-dos 'gb2312-dos))
+(or (find-coding-system 'gb2312-mac)
+    (copy-coding-system 'cn-gb-2312-mac 'gb2312-mac))
+(or (find-coding-system 'gb2312-unix)
+    (copy-coding-system 'cn-gb-2312-unix 'gb2312-unix))
+
 (or (find-coding-system 'euc-kr-dos)
     (make-coding-system
      'euc-kr 'iso2022
 ;;   )
 
 
+;;; @ without code-conversion
+;;;
+
+(defun insert-file-contents-as-binary (filename
+                                      &optional visit beg end replace)
+  "Like `insert-file-contents', but only reads in the file literally.
+A buffer may be modified in several ways after reading into the buffer,
+to Emacs features such as format decoding, character code
+conversion, find-file-hooks, automatic uncompression, etc.
+
+This function ensures that none of these modifications will take place."
+  (let ((format-alist nil)
+       (after-insert-file-functions nil)
+       (coding-system-for-read 'binary)
+       (coding-system-for-write 'binary)
+       (jka-compr-compression-info-list nil)
+       (jam-zcat-filename-list nil)
+       (find-buffer-file-type-function
+        (if (fboundp 'find-buffer-file-type)
+            (symbol-function 'find-buffer-file-type)
+          nil)))
+    (unwind-protect
+       (progn
+         (fset 'find-buffer-file-type (lambda (filename) t))
+         (insert-file-contents filename visit beg end replace))
+      (if find-buffer-file-type-function
+         (fset 'find-buffer-file-type find-buffer-file-type-function)
+       (fmakunbound 'find-buffer-file-type)))))
+
+
 ;;; @ buffer representation
 ;;;
 
@@ -134,7 +176,7 @@ but the contents viewed as characters do change.
 ;;; @ string
 ;;;
 
-(defun string-to-int-list (str)
+(defun-maybe string-to-int-list (str)
   (mapcar #'char-int str))
 
 (defalias 'looking-at-as-unibyte 'looking-at)