(U-000278B8): Apply new conventions for glyph granularity.
[chise/xemacs-chise.git.1] / lisp / code-files.el
index 799c399..2d5c5ef 100644 (file)
@@ -198,12 +198,11 @@ object (the entry specified a coding system)."
            ((find-coding-system codesys))
            ))))
 
-;; This is completely broken, not only in implementation (does not
+;; This was completely broken, not only in implementation (does not
 ;; understand MIME), but in concept -- such high-level decoding should
-;; be done by mail readers, not by IO code!
+;; be done by mail readers, not by IO code!  Removed 2000-04-18.
 
-;(defun convert-mbox-coding-system (filename visit start end)
-;...
+;(defun convert-mbox-coding-system (filename visit start end) ...)
 
 (defun find-coding-system-magic-cookie ()
   "Look for the coding-system magic cookie in the current buffer.
@@ -285,7 +284,7 @@ Return t if file exists."
                 (set-buffer (get-buffer-create " *load*"))
                 (erase-buffer)
                 (let ((coding-system-for-read 'raw-text))
-                  (insert-file-contents path nil 1 3001))
+                  (insert-file-contents path nil 0 3000))
                 (find-coding-system-magic-cookie))
               (if elc
                   ;; if reading a byte-compiled file and we didn't find
@@ -461,20 +460,19 @@ and `insert-file-contents-post-hook'."
 (defvar write-region-pre-hook nil
   "A special hook to decide the coding system used for writing out a file.
 
-Before writing a file, `write-region' calls the functions on this hook
-with arguments START, END, FILENAME, APPEND, VISIT, and CODING-SYSTEM,
-the same as the corresponding arguments in the call to
-`write-region'.
+Before writing a file, `write-region' calls the functions on this hook with
+arguments START, END, FILENAME, APPEND, VISIT, LOCKNAME and CODING-SYSTEM,
+the same as the corresponding arguments in the call to `write-region'.
 
-The return value of the functions should be either
+The return value of each function should be one of
 
 -- nil
 -- A coding system or a symbol denoting it, indicating the coding system
-   to be used for reading the file
+   to be used for writing the file
 -- A list of two elements (absolute pathname and length of data written),
-   which is used as the return value to `write-region'.  In this
-   case, `write-region' assumes that the function has written
-   the file for itself and suppresses further writing.
+   which is used as the return value to `write-region'.  In this case,
+   `write-region' assumes that the function has written the file and
+   returns.
 
 If any function returns non-nil, the remaining functions are not called.")
 
@@ -482,13 +480,17 @@ If any function returns non-nil, the remaining functions are not called.")
   "A hook called by `write-region' after a file has been written out.
 
 The functions on this hook are called with arguments START, END,
-FILENAME, APPEND, VISIT, and CODING-SYSTEM, the same as the
+FILENAME, APPEND, VISIT, LOCKNAME, and CODING-SYSTEM, the same as the
 corresponding arguments in the call to `write-region'.")
 
-(defun write-region (start end filename &optional append visit lockname coding-system)
+(defun write-region (start end filename
+                    &optional append visit lockname coding-system)
   "Write current region into specified file.
 By default the file's existing contents are replaced by the specified region.
-When called from a program, takes three arguments:
+Called interactively, prompts for a file name.  With a prefix arg, prompts
+for a coding system as well.
+
+When called from a program, takes three required arguments:
 START, END and FILENAME.  START and END are buffer positions.
 Optional fourth argument APPEND if non-nil means
   append to existing file contents (if any).
@@ -507,19 +509,19 @@ to the file, instead of any buffer contents, and END is ignored.
 Optional seventh argument CODING-SYSTEM specifies the coding system
   used to encode the text when it is written out, and defaults to
   the value of `buffer-file-coding-system' in the current buffer.
-  Interactively, with a prefix arg, you will be prompted for the
-  coding system.
 See also `write-region-pre-hook' and `write-region-post-hook'."
   (interactive "r\nFWrite region to file: \ni\ni\ni\nZCoding-system: ")
   (setq coding-system
        (or coding-system-for-write
            (run-hook-with-args-until-success
-            'write-region-pre-hook start end filename append visit lockname)
+            'write-region-pre-hook
+            start end filename append visit lockname coding-system)
            coding-system
            buffer-file-coding-system
            (find-file-coding-system-for-write-from-filename filename)
            ))
   (if (consp coding-system)
+      ;; One of the `write-region-pre-hook' functions wrote the file
       coding-system
     (let ((func
           (coding-system-property coding-system 'pre-write-conversion)))