all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Glenn Morris <rgm@gnu.org>
Cc: 22847@debbugs.gnu.org
Subject: bug#22847: #17062: 24.3 current-fill-column breaks fill-match-adaptive-prefix
Date: Fri, 09 Dec 2016 10:08:29 +0200	[thread overview]
Message-ID: <831sxhikxu.fsf@gnu.org> (raw)
In-Reply-To: <7dvauuyruh.fsf@fencepost.gnu.org> (message from Glenn Morris on Thu, 08 Dec 2016 17:32:38 -0500)

> From: Glenn Morris <rgm@gnu.org>
> cc: Eli Zaretskii <eliz@gnu.org>
> Date: Thu, 08 Dec 2016 17:32:38 -0500
> 
> So this seems like a mess.

But a very old one.

> fill-column is documented to be an integer, and that is its custom-type.
> Nowhere does it say it can be nil, AFAICS.
> Many places in Emacs are not prepared for it (or current-fill-column) to
> be nil.
> 
> Yet 1e87252 explicitly added a check for a nil fill-column to
> current-fill-column. AFAICS, do-auto-fill is the only place in Emacs
> that tests for this, and uses it to disable auto-fill.
> 
> The only uses I find for "(setq fill-column nil)" are a few people using
> it in their .emacs to disable auto-fill (I guess) in some major mode.
> The idiomatic way to do this is just to turn off auto-fill in that mode.
> 
> TLDR:
> Let's remove the test for nil fill-column in current-fill-column.

I don't understand what you propose to do instead.
current-fill-column does arithmetics on fill-column when it's non-nil,
so we cannot just remove the test, because the function will then
signal an error.

I see 3 possible ways to fix these bugs:

  . Fix the code which is not prepared for fill-column being nil to be
    prepared.  This leaves everyone happy, except, perhaps, the person
    who would need to fix all those places in Emacs.

  . Change current-fill-column to return most-positive-fixnum when
    fill-column is nil.  This is an easy way out, but it might slow
    down do-auto-fill when fill-column is nil.  Not sure if we care
    about that slow down.

  . Disallow fill-column being nil and remove the test from
    current-fill-column without changing anything else, i.e. let it
    signal an error, perhaps with some text that tells this value is
    no longer supported.  This will break setups of those who use that
    value to disable auto-fill, something that was available since
    forever, so I don't think we can do that.

Comments?





  reply	other threads:[~2016-12-09  8:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29  7:33 bug#22847: #17062: 24.3 current-fill-column breaks fill-match-adaptive-prefix Andreas Röhler
2016-02-29 15:56 ` Eli Zaretskii
2016-12-08 22:32   ` Glenn Morris
2016-12-09  8:08     ` Eli Zaretskii [this message]
2016-12-11  2:18       ` Glenn Morris
2020-08-15  5:14         ` Stefan Kangas
2021-05-10 11:48           ` Lars Ingebrigtsen
2021-05-10 13:29             ` Stefan Kangas
2021-05-12 13:25               ` Lars Ingebrigtsen
2021-07-23 12:58                 ` Lars Ingebrigtsen

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

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

  git send-email \
    --in-reply-to=831sxhikxu.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=22847@debbugs.gnu.org \
    --cc=rgm@gnu.org \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.