(install-apel-package): Compile emu-modules and apel-modules.
[elisp/apel.git] / emu-e20_2.el
index b6cf55f..d13f24c 100644 (file)
 
 ;;; Code:
 
-;;; @ MIME charset
+;;; @ buffer representation
 ;;;
 
-(defsubst encode-mime-charset-region (start end charset)
-  "Encode the text between START and END as MIME CHARSET."
-  (let (cs)
-    (if (and enable-multibyte-characters
-            (setq cs (mime-charset-to-coding-system charset)))
-       (encode-coding-region start end cs)
-      )))
-
-(defsubst decode-mime-charset-region (start end charset)
-  "Decode the text between START and END as MIME CHARSET."
-  (let (cs)
-    (if (and enable-multibyte-characters
-            (setq cs (mime-charset-to-coding-system charset)))
-       (decode-coding-region start end cs)
-      )))
-
-(defsubst encode-mime-charset-string (string charset)
-  "Encode the STRING as MIME CHARSET."
-  (let (cs)
-    (if (and enable-multibyte-characters
-            (setq cs (mime-charset-to-coding-system charset)))
-       (encode-coding-string string cs)
-      string)))
-
-(defsubst decode-mime-charset-string (string charset)
-  "Decode the STRING as MIME CHARSET."
-  (let (cs)
-    (if (and enable-multibyte-characters
-            (setq cs (mime-charset-to-coding-system charset)))
-       (decode-coding-string string cs)
-      string)))
+(defsubst-maybe set-buffer-multibyte (flag)
+  "Set the multibyte flag of the current buffer to FLAG.
+If FLAG is t, this makes the buffer a multibyte buffer.
+If FLAG is nil, this makes the buffer a single-byte buffer.
+The buffer contents remain unchanged as a sequence of bytes
+but the contents viewed as characters do change.
+\[Emacs 20.3 emulating function]"
+  (setq enable-multibyte-characters flag)
+  )
 
 
 ;;; @ character
@@ -71,7 +49,7 @@
 
 (defmacro char-next-index (char index)
   "Return index of character succeeding CHAR whose index is INDEX."
-  `(+ index (char-bytes char)))
+  `(+ ,index (char-bytes ,char)))
 
 
 ;;; @ string
       (setq l (cons chr l))
       (setq i (+ i (char-bytes chr)))
       )
-    (nreverse l)
-    ))
+    (nreverse l)))
 
 (defalias 'string-to-int-list 'string-to-char-list)
 
+(defun looking-at-as-unibyte (regexp)
+  "Like `looking-at', but string is regarded as unibyte sequence."
+  (let (enable-multibyte-characters)
+    (looking-at regexp)))
+
 ;;; @@ obsoleted aliases
 ;;;
 ;;; You should not use them.
 (make-obsolete 'string-columns 'string-width)
 
 
+;;; @ without code-conversion
+;;;
+
+(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 ((flag enable-multibyte-characters)
+       (coding-system-for-read 'binary)
+       format-alist)
+    (prog1
+       ;; Returns list absolute file name and length of data inserted.
+       (insert-file-contents filename visit beg end replace)
+      ;; This operation does not change the length.
+      (set-buffer-multibyte flag))))
+
+(defun insert-file-contents-as-raw-text (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.
+Like `insert-file-contents-as-binary', but it converts line-break
+code."
+  (let ((flag enable-multibyte-characters)
+       (coding-system-for-read 'raw-text)
+       format-alist)
+    (prog1
+       ;; Returns list absolute file name and length of data inserted.
+       (insert-file-contents filename visit beg end replace)
+      ;; This operation does not change the length.
+      (set-buffer-multibyte flag))))
+
+
 ;;; @ end
 ;;;