bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#54488: 29.0.50; move-to-column/overlay-related regression in latest


From: João Távora
Subject: bug#54488: 29.0.50; move-to-column/overlay-related regression in latest master, perhaps 28?
Date: Tue, 22 Mar 2022 16:06:48 +0000

On Tue, Mar 22, 2022 at 3:22 PM Eli Zaretskii <eliz@gnu.org> wrote:
> From: João Távora <joaotavora@gmail.com>
> Cc: dgutov@yandex.ru54488@debbugs.gnu.org
> Date: Tue, 22 Mar 2022 14:54:13 +0000
>
> In Emacs 29, before the fix, that (point) seems to -- very surprisingly
> -- return something beyond the narrowed region and so
> encode-coding-string will complain with args out of range.

I don't understand how (point) can return a value outside of the
narrowed region, unless it runs with the narrowing temporarily
disabled.  Can you show me the code with that call to 'point' again?
I don't think I see it in your OP.

It's the snippet below. but the indentation probably botched it.
I inlined a function in that snippet so you can see the move-to-column
and the (point) in the same function (normally they live in different
functions).

> (defun eglot-move-to-lsp-abiding-column (column)
>   "Move to COLUMN abiding by the LSP spec."
>   (save-restriction
>     (cl-loop
>      with lbp = (line-beginning-position)
>      initially
>      (narrow-to-region lbp (line-end-position))
>      (move-to-column column)
>      for diff = (- column
>                    (/ (- (length (encode-coding-region (or lbp (line-beginning-position))
>                                         (point) 'utf-16 t))   ;; <===== THAT (point)
>                                   2)
>                        2))
>      until (zerop diff)
>      do (condition-case eob-err
>             (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2))
>           (end-of-buffer (cl-return eob-err))))))

Why do you have to use move-to-column instead of forward-char?

I don't remember! Is it exactly equivalent if you're standing in the beginning of the line?

João


--
João Távora

reply via email to

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