(insert-file-contents-as-binary): Return value.
[elisp/apel.git] / emu-e20_2.el
index ca33328..d13f24c 100644 (file)
 
 ;;; Code:
 
+;;; @ buffer representation
+;;;
+
 (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."
+but the contents viewed as characters do change.
+\[Emacs 20.3 emulating function]"
   (setq enable-multibyte-characters flag)
   )
 
@@ -63,11 +67,15 @@ but the contents viewed as characters do change."
       (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.
@@ -76,6 +84,43 @@ but the contents viewed as characters do change."
 (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
 ;;;