]> git.eshelyaron.com Git - emacs.git/commitdiff
lisp/simple.el (inhibit-auto-fill): New var
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 2 Apr 2023 21:54:02 +0000 (17:54 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 2 Apr 2023 21:54:02 +0000 (17:54 -0400)
* lisp/simple.el (inhibit-auto-fill): New var.
(internal-auto-fill): Obey it.
(newline): Use it instead of binding `auto-fill-function`, so
as to avoid messing up the state if something wants to enable/disable
`auto-fill-mode` during the course of the let binding (bug#62419).

etc/NEWS
lisp/simple.el

index 67e1a02d587e31f9bd09b62aa157b9565d257bf3..d20d9f65ac9daecab651dacb9fdb65208e4acb3c 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -319,6 +319,8 @@ hooks named after the feature name, like 'esh-mode-unload-hook'.
 \f
 * Lisp Changes in Emacs 30.1
 
+** New var 'inhibit-auto-fill' to temporarily prevent auto-fill.
+
 ** Functions and variables to transpose sexps
 
 +++
index 1447c7e53ffe23322f5e8c0afab0bf8d350593b9..b621e1603bd3fd08f809be001ba6c1fd9ca4420a 100644 (file)
@@ -623,7 +623,7 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
          (beforepos (point))
          (last-command-event ?\n)
          ;; Don't auto-fill if we have a prefix argument.
-         (auto-fill-function (if arg nil auto-fill-function))
+         (inhibit-auto-fill (or inhibit-auto-fill arg))
          (arg (prefix-numeric-value arg))
          (procsym (make-symbol "newline-postproc")) ;(bug#46326)
          (postproc
@@ -8919,11 +8919,15 @@ unless optional argument SOFT is non-nil."
        ;; If we're not inside a comment, just try to indent.
        (t (indent-according-to-mode))))))
 
+(defvar inhibit-auto-fill nil
+  "Non-nil means to do as if `auto-fill-mode' was disabled.")
+
 (defun internal-auto-fill ()
   "The function called by `self-insert-command' to perform auto-filling."
-  (when (or (not comment-start)
-            (not comment-auto-fill-only-comments)
-            (nth 4 (syntax-ppss)))
+  (unless (or inhibit-auto-fill
+              (and comment-start
+                   comment-auto-fill-only-comments
+                   (not (nth 4 (syntax-ppss)))))
     (funcall auto-fill-function)))
 
 (defvar normal-auto-fill-function 'do-auto-fill