;;; 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)
)
(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
;;;