emacs-devel
[Top][All Lists]
Advanced

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

Re: move-beginning-of-line misbehaves on wrapped-line invisible text - r


From: Ken Manheimer
Subject: Re: move-beginning-of-line misbehaves on wrapped-line invisible text - recent cvs checkout
Date: Mon, 23 Jan 2006 13:17:14 -0500

On 1/22/06, Ken Manheimer <address@hidden> wrote:
> this works for me!

... but i've discovered what i think is a bug in rms' new
move-beginning-of-line code.

i'm attaching another bit of elisp to construct a demonstration.  it
appears that move-beginning-of-line will _sometimes_ go to the wrong
place - the beginning of the buffer, in this case - if hidden text
it's traversing begins with a newline.

my best guess at a fix for the recent move-beginning-of-lines would be
to remove the first

  (skip-chars-backward "^\n")

- the one before the loop.  that resolves both this current problem
and the previous one i demonstrated.  unfortunately, i can't be
confident about any fix i invent, because i'm hazy about some of the
contingencies move-beginning-of-line is supposed to handle - i don't
know enough about fields, and am still a bit unclear about some
wording in the function's docstring and rms explanation.

(gmail may be preventing sending of application/octet-stream
attachments, which is how it recognizes .el files, so the attachment
may be omitted.  if so, i'll resend with the attachment as a text
file.)

> On 1/19/06, Richard M. Stallman <address@hidden> wrote:
> >     move-beginning-of-line is supposed to move to the beginning of the
> >     current _display_ line.  emphasis on "display" is because i'm not
> >     quite clear what it means.
> >
> > I believe the idea is that newlines that don't really appear as such
> > do not count.
> >
> > I don't see the problems you reported with the medium-size lines,
> > but I do see the problem with the longest line.  This seems to fix it.
> > Does this give good results in general?
>
> i see none of the problems that had been showing without the patch.  i
> haven't exercised emacs very much with the change, but see that it's
> already in CVS.  i'll report if i encounter any problems with it.
> thanks!
>
> ken
>
> > *** simple.el   05 Jan 2006 10:48:16 -0500      1.783
> > --- simple.el   19 Jan 2006 12:11:57 -0500
> > ***************
> > *** 3734,3740 ****
> >     (or arg (setq arg 1))
> >     (if (/= arg 1)
> >         (line-move (1- arg) t))
> > !   (beginning-of-line 1)
> >     (let ((orig (point)))
> >       (vertical-motion 0)
> >       (if (/= orig (point))
> > --- 3735,3747 ----
> >     (or arg (setq arg 1))
> >     (if (/= arg 1)
> >         (line-move (1- arg) t))
> > !
> > !   ;; Move to beginning-of-line, ignoring fields and invisibles.
> > !   (skip-chars-backward "^\n")
> > !   (while (and (not (bobp)) (line-move-invisible-p (1- (point))))
> > !     (goto-char (previous-char-property-change (1- (point))))
> > !     (skip-chars-backward "^\n"))
> > !
> >     (let ((orig (point)))
> >       (vertical-motion 0)
> >       (if (/= orig (point))
> >
>

Attachment: overlay-prob2.el
Description: Binary data


reply via email to

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