emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/files.el


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/files.el
Date: Fri, 31 Dec 2004 10:00:47 -0500

Index: emacs/lisp/files.el
diff -c emacs/lisp/files.el:1.737 emacs/lisp/files.el:1.738
*** emacs/lisp/files.el:1.737   Thu Dec 30 23:56:23 2004
--- emacs/lisp/files.el Fri Dec 31 14:48:12 2004
***************
*** 273,286 ****
    :group 'backup)
  
  (defcustom require-final-newline nil
!   "*Value of t says silently ensure a file ends in a newline when it is saved.
! Non-nil but not t says ask user whether to add a newline when there isn't one.
! nil means don't add newlines."
!   :type '(choice (const :tag "Off" nil)
!                (const :tag "Add" t)
                 (other :tag "Ask" ask))
    :group 'editing-basics)
  
  (defcustom auto-save-default t
    "*Non-nil says by default do auto-saving of every file-visiting buffer."
    :type 'boolean
--- 273,312 ----
    :group 'backup)
  
  (defcustom require-final-newline nil
!   "*Whether to add a newline automatically at the end of the file.
! 
! A value of t means do this only when the file is about to be saved.
! A value of `visit' means do this right after the file is visited.
! A value of `visit-save' means do it at both of those times.
! Any other non-nil value means ask user whether to add a newline, when saving.
! nil means don't add newlines.
! 
! Certain major modes set this locally to the value obtained
! from `mode-require-final-newline'."
!   :type '(choice (const :tag "When visiting" visit)
!                (const :tag "When saving" t)
!                (const :tag "When visiting or saving" visit-save)
!                (const :tag "Never" nil)
                 (other :tag "Ask" ask))
    :group 'editing-basics)
  
+ (defcustom mode-require-final-newline t
+   "*Whether to add a newline at the end of the file, in certain major modes.
+ Those modes set `require-final-newline' to this value when you enable them.
+ They do so because they are used for files that are supposed
+ to end in newlines, and the question is how to arrange that.
+ 
+ A value of t means do this only when the file is about to be saved.
+ A value of `visit' means do this right after the file is visited.
+ A value of `visit-save' means do it at both of those times.
+ Any other non-nil value means ask user whether to add a newline, when saving."
+   :type '(choice (const :tag "When visiting" visit)
+                (const :tag "When saving" t)
+                (const :tag "When visiting or saving" visit-save)
+                (other :tag "Ask" ask))
+   :group 'editing-basics
+   :version "21.4")
+ 
  (defcustom auto-save-default t
    "*Non-nil says by default do auto-saving of every file-visiting buffer."
    :type 'boolean
***************
*** 1627,1632 ****
--- 1653,1667 ----
      (when (and view-read-only view-mode)
        (view-mode-disable))
      (normal-mode t)
+     ;; If requested, add a newline at the end of the file.
+     (and (memq require-final-newline '(visit visit-save))
+        (> (point-max) (point-min))
+        (/= (char-after (1- (point-max))) ?\n)
+        (not (and (eq selective-display t)
+                  (= (char-after (1- (point-max))) ?\r)))
+        (save-excursion
+          (goto-char (point-max))
+          (insert "\n")))
      (when (and buffer-read-only
               view-read-only
               (not (eq (get major-mode 'mode-class) 'special)))
***************
*** 3194,3199 ****
--- 3229,3235 ----
                   (not (and (eq selective-display t)
                             (= (char-after (1- (point-max))) ?\r)))
                   (or (eq require-final-newline t)
+                      (eq require-final-newline 'visit-save)
                       (and require-final-newline
                            (y-or-n-p
                             (format "Buffer %s does not end in newline.  Add 
one? "




reply via email to

[Prev in Thread] Current Thread [Next in Thread]