unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Basil L. Contovounesios" <contovob@tcd.ie>
To: "Andreas Röhler" <andreas.roehler@easy-emacs.de>
Cc: 36702@debbugs.gnu.org
Subject: bug#36702: 27.0.50; newline: don't auto-fill regardless of auto-fill-mode
Date: Wed, 17 Jul 2019 13:21:04 +0100	[thread overview]
Message-ID: <87ims0hmxb.fsf@tcd.ie> (raw)
In-Reply-To: <2cc4b8db-7df9-290d-08dd-044504f9c46f@easy-emacs.de> ("Andreas Röhler"'s message of "Wed, 17 Jul 2019 13:02:16 +0200")

[-- Attachment #1: Type: text/plain, Size: 1077 bytes --]

severity 36702 minor
found 36702 26.2.90
tags 36702 + patch
quit

Andreas Röhler <andreas.roehler@easy-emacs.de> writes:

> On 17.07.19 12:47, Basil L. Contovounesios wrote:
>
>> The docstring of newline says:
>>
>>    Calls `auto-fill-function' if the current column number is greater
>>    than the value of `fill-column' and ARG is nil.
>
> Did you try the test-function delivered?

Yes.

> It inserts a newline in an empty buffer.
>
> May that condition being matched then?

Ah, are you referring to the condition that the current column number be
greater than fill-column?  This condition is enforced by the default
value of normal-auto-fill-function when auto-fill-mode is enabled,
namely do-auto-fill.  A different auto-fill-function mightn't enforce
it.

In general, there are multiple conditions guarding calls to
auto-fill-function (see e.g. internal-auto-fill and
internal_self_insert), and I'm not sure the docstring of newline is the
right place to discuss these things.  How's the following clarification
for emacs-26 instead?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Clarify-docs-on-newline-and-auto-fill-mode.patch --]
[-- Type: text/x-diff, Size: 3488 bytes --]

From 2ed60518cb5d29c0d8c7cc944740c0fecb1713ef Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <contovob@tcd.ie>
Date: Wed, 17 Jul 2019 13:05:42 +0100
Subject: [PATCH] Clarify docs on newline and auto-fill-mode

* doc/lispref/text.texi (Commands for Insertion):
* lisp/simple.el (newline): Do not mention conditions specific to
'do-auto-fill' under documentation of 'newline' (bug#36702).
---
 doc/lispref/text.texi | 17 ++++++++++-------
 lisp/simple.el        |  9 +++++----
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index f44659c622..dad6fa2280 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -542,25 +542,28 @@ Commands for Insertion
 loop handles this function specially.
 @end deffn
 
-@deffn Command newline &optional number-of-newlines
+@deffn Command newline &optional number-of-newlines interactive
 This command inserts newlines into the current buffer before point.
 If @var{number-of-newlines} is supplied, that many newline characters
-are inserted.
+are inserted.  In an interactive call, @var{number-of-newlines} is the
+numeric prefix argument.
 
 @cindex newline and Auto Fill mode
-This function calls @code{auto-fill-function} if the current column
-number is greater than the value of @code{fill-column} and
-@var{number-of-newlines} is @code{nil}.  Typically what
+This command calls @code{self-insert-command} to insert newlines,
+which may subsequently break the preceding line by calling
+@code{auto-fill-function} (@pxref{Auto Filling}).  Typically what
 @code{auto-fill-function} does is insert a newline; thus, the overall
 result in this case is to insert two newlines at different places: one
 at point, and another earlier in the line.  @code{newline} does not
 auto-fill if @var{number-of-newlines} is non-@code{nil}.
 
+This command does not run the hook @code{post-self-insert-hook} unless
+called interactively or @var{interactive} is non-@code{nil}.
+
 This command indents to the left margin if that is not zero.
 @xref{Margins}.
 
-The value returned is @code{nil}.  In an interactive call, @var{count}
-is the numeric prefix argument.
+The value returned is @code{nil}.
 @end deffn
 
 @defvar overwrite-mode
diff --git a/lisp/simple.el b/lisp/simple.el
index a0f2da7152..d524d3f0ce 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -427,17 +427,18 @@ newline
 that it adds, and reindents the preceding line.  To just insert
 a newline, use \\[electric-indent-just-newline].
 
-Calls `auto-fill-function' if the current column number is greater
-than the value of `fill-column' and ARG is nil.
+If `auto-fill-mode' is enabled, this may cause automatic line
+breaking of the preceding line.  A non-nil ARG inhibits this.
+
 A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
   (interactive "*P\np")
   (barf-if-buffer-read-only)
-  ;; Call self-insert so that auto-fill, abbrev expansion etc. happens.
+  ;; Call self-insert so that auto-fill, abbrev expansion etc. happen.
   ;; Set last-command-event to tell self-insert what to insert.
   (let* ((was-page-start (and (bolp) (looking-at page-delimiter)))
          (beforepos (point))
          (last-command-event ?\n)
-         ;; Don't auto-fill if we have a numeric argument.
+         ;; Don't auto-fill if we have a prefix argument.
          (auto-fill-function (if arg nil auto-fill-function))
          (arg (prefix-numeric-value arg))
          (postproc
-- 
2.20.1


[-- Attachment #3: Type: text/plain, Size: 20 bytes --]


Thanks,

-- 
Basil

  reply	other threads:[~2019-07-17 12:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-17 10:19 bug#36702: 27.0.50; newline: don't auto-fill regardless of auto-fill-mode Andreas Röhler
2019-07-17 10:47 ` Basil L. Contovounesios
2019-07-17 11:02   ` Andreas Röhler
2019-07-17 12:21     ` Basil L. Contovounesios [this message]
2019-07-17 13:38       ` Andreas Röhler
2019-07-17 14:25         ` Basil L. Contovounesios
2019-07-17 14:38           ` Basil L. Contovounesios
2019-07-17 17:14             ` Andreas Röhler
2019-07-17 17:47               ` Basil L. Contovounesios
2019-07-17 18:26                 ` Andreas Röhler
2019-07-17 19:07                   ` Basil L. Contovounesios
2019-07-18  5:28                     ` Andreas Röhler
2019-07-18 13:32                       ` Basil L. Contovounesios
2019-09-15 14:35       ` Lars Ingebrigtsen
2019-10-07  5:03         ` Lars Ingebrigtsen
2019-10-07 18:27           ` Basil L. Contovounesios
2019-10-07 18:52             ` Eli Zaretskii
2019-10-07 23:14               ` Basil L. Contovounesios

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ims0hmxb.fsf@tcd.ie \
    --to=contovob@tcd.ie \
    --cc=36702@debbugs.gnu.org \
    --cc=andreas.roehler@easy-emacs.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).