* bug#6738: possible bug in fill-paragraph
@ 2010-07-27 8:10 Eric De Mund
2010-07-29 21:04 ` Stephen Berman
0 siblings, 1 reply; 3+ messages in thread
From: Eric De Mund @ 2010-07-27 8:10 UTC (permalink / raw)
To: 6738
Hello,
Here's a possible bug in fill-paragraph. In my twenty years of using
Emacs (and fill-paragraph), I've never come across something like this.
In addition to observing this bug with:
In GNU Emacs 22.2.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2008-11-09 on raven, modified by Debian
running under:
Debian 5.0.5 Lenny
, I've reproduced it with:
GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600) of 2010-05-08 on G41R2F1
running under:
Windows XP Professional
Build 2600.xpsp_sp3_gdr.100216-1514 (Service Pack 3)
Here are the gory details:
--------CUT HERE----BEGIN SECTION 1 OF 2--------
0. Invoke Emacs with "emacs -nw -q"
1. Start with this 3-line paragraph:
A former executive testified that David H. Brooks misused company
funds to buy a belt buckle encrusted with rubies, pornographic videos
for his son and prostitutes for his workers.
2. Invoke << C-u 20 C-x f >> with cursor positioned on first word "A".
3. Invoke << M-1 M-q >>.
4. Observe paragraph reformatted to this, incorrectly:
A former executive
testified that David
H. Brooks misused
company funds to buy
a belt buckle
encrusted with
rubies, pornographic
videos for his son
and prostitutes for
his workers.
i.e. with the 6th line ("encrusted with") taking up 21 columns
rather than 20 columns.
--------CUT HERE----BEGIN SECTION 2 OF 2--------
In GNU Emacs 22.2.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2008-11-09 on raven, modified by Debian
configured using `configure '--build=i486-linux-gnu'
'--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib'
'--libexecdir=/usr/lib' '--localstatedir=/var/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs22:\
/etc/emacs:/usr/local/share/emacs/22.2/site-lisp:\
/usr/local/share/emacs/site-lisp:/usr/share/emacs/22.2/site-lisp:\
/usr/share/emacs/site-lisp:/usr/share/emacs/22.2/leim'
'--with-x=yes' '--with-x-toolkit=athena' '--with-toolkit-scroll-bars'
'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu'
'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8
default-enable-multibyte-characters: t
Major mode: Fundamental
Minor modes in effect:
encoded-kbd-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
ESC x r e p o r t - e m a c s - b u g RET
Recent messages:
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading emacsbug...
/usr/bin/mail is not an executable. Setting mail-interactive to t.
Loading regexp-opt...done
Loading emacsbug...done
--------CUT HERE----END SECTION 2 OF 2--------
If you need more information, please don't hesitate to ask.
Regards,
Eric
--
Eric De Mund
ead-gnu-emacs@ixian.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#6738: possible bug in fill-paragraph
2010-07-27 8:10 bug#6738: possible bug in fill-paragraph Eric De Mund
@ 2010-07-29 21:04 ` Stephen Berman
2010-08-02 10:27 ` Stefan Monnier
0 siblings, 1 reply; 3+ messages in thread
From: Stephen Berman @ 2010-07-29 21:04 UTC (permalink / raw)
To: Eric De Mund; +Cc: 6738
On Tue, 27 Jul 2010 01:10:37 -0700 Eric De Mund <ead-gnu-emacs@ixian.com> wrote:
> 0. Invoke Emacs with "emacs -nw -q"
>
> 1. Start with this 3-line paragraph:
>
> A former executive testified that David H. Brooks misused company
> funds to buy a belt buckle encrusted with rubies, pornographic videos
> for his son and prostitutes for his workers.
>
> 2. Invoke << C-u 20 C-x f >> with cursor positioned on first word "A".
>
> 3. Invoke << M-1 M-q >>.
>
> 4. Observe paragraph reformatted to this, incorrectly:
>
> A former executive
> testified that David
> H. Brooks misused
> company funds to buy
> a belt buckle
> encrusted with
> rubies, pornographic
> videos for his son
> and prostitutes for
> his workers.
>
> i.e. with the 6th line ("encrusted with") taking up 21 columns
> rather than 20 columns.
It seems that the algorithm in justify-current-line doesn't work so well
for a two-word line: it correctly calculates the number of additional
space characters needed (ncols) but expects to fractionally distribute
them, as it does in the other lines, so it adds more space, in this case
wrongly. In such a situation, it suffices to just stick with ncols, as
in the following patch (but I haven't tested this in other cases, so
maybe it isn't the best fix).
Steve Berman
***/bzr/emacs/trunk/lisp/textmodes/fill.el 2010-05-29 13:10:05.000000000 +0200
---/bzr/emacs/quickfixes/lisp/textmodes/fill.el 2010-07-29 22:48:58.000000000 +0200
***************
*** 1296,1302 ****
(while (> count 0)
(skip-chars-forward " ")
(insert-and-inherit
! (make-string (/ curr-fracspace nspaces) ?\s))
(search-forward " " nil t)
(setq count (1- count)
curr-fracspace
--- 1296,1303 ----
(while (> count 0)
(skip-chars-forward " ")
(insert-and-inherit
! (make-string
! (min ncols (/ curr-fracspace nspaces)) ?\s))
(search-forward " " nil t)
(setq count (1- count)
curr-fracspace
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#6738: possible bug in fill-paragraph
2010-07-29 21:04 ` Stephen Berman
@ 2010-08-02 10:27 ` Stefan Monnier
0 siblings, 0 replies; 3+ messages in thread
From: Stefan Monnier @ 2010-08-02 10:27 UTC (permalink / raw)
To: Stephen Berman; +Cc: Eric De Mund
> It seems that the algorithm in justify-current-line doesn't work so well
> for a two-word line: it correctly calculates the number of additional
> space characters needed (ncols) but expects to fractionally distribute
> them, as it does in the other lines, so it adds more space, in this case
> wrongly. In such a situation, it suffices to just stick with ncols, as
> in the following patch (but I haven't tested this in other cases, so
> maybe it isn't the best fix).
I've changed the curr-fracspace calculation instead. Not sure why it
was doing a +1 on nspaces, and removing it fixes this problem (I'm not
sure it doesn't introduce another one, but at least my tests lead me to
think that's not the case).
Stefan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-08-02 10:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-27 8:10 bug#6738: possible bug in fill-paragraph Eric De Mund
2010-07-29 21:04 ` Stephen Berman
2010-08-02 10:27 ` Stefan Monnier
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).