[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: emacs-25 3722a69: Fix bugs in window resizing code
From: |
Óscar Fuentes |
Subject: |
Re: emacs-25 3722a69: Fix bugs in window resizing code |
Date: |
Tue, 01 Mar 2016 16:10:39 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
martin rudalics <address@hidden> writes:
>>> (shrink-window, enlarge-window): Fix bug#22723 where windows
>>> with preserved size would not get resized. Also now signal an
>>> error when the window cannot be shrunk or enlarged as requested.
>>
>> [snip]
>>
>>> + (error "Cannot shrink selected window")))))
>>
>> I was surprised to see my code failing because of this change. Throwing
>> an error on a case where previously nothing was done amounts to an API
>> change. My code was fixed by wrapping the call to enlarge-window with
>> ignore-errors, but I'm worried about all the code out there.
>
> Sorry, but this fix was motivated by the following explanation in the
> Emacs manual:
>
> The command `C-x ^' (`enlarge-window') makes the selected window one
> line taller, taking space from a vertically adjacent window without
> changing the height of the frame. With a positive numeric argument,
> this command increases the window height by that many lines; with a
> negative argument, it reduces the height by that many lines. If there
> are no vertically adjacent windows (i.e., the window is at the full
> frame height), that signals an error. The command also signals an
> error if you attempt to reduce the height of any window below a certain
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> minimum number of lines, specified by the variable `window-min-height'
> (the default is 4).
>
> Similarly, `C-x }' (`enlarge-window-horizontally') makes the
> selected window wider, and `C-x {' (`shrink-window-horizontally') makes
> it narrower. These commands signal an error if you attempt to reduce
> ^^^^^^^^^^^^^^^^^
> the width of any window below a certain minimum number of columns,
> ^^^^^^^^^^^^^^^^^^^^^^^
> specified by the variable `window-min-width' (the default is 10).
Please note that the above talks about reducing window dimensions below
a threshold. Also, it is about interactive use.
> We can easily change that to not signal an error but then behaviors like
> the one reported by Eli will get passed by unnoticed. Emacsen < 23
> silently could delete windows when you made them too small with these
> commands. This was deprecated but IIRC no one ever expressed a
> preference as to how these functions _should_ behave when there is not
> enough space. Suggestions welcome.
>
> Personally, I'd never use ‘enlarge-window’ and ‘shrink-window’ in Lisp
> code. IMO these are for interactive use only (supported by the fact
> that neither of these functions is documented in the Elisp manual).
`enlarge-window' appears on several places on the Elisp sources,
including calls like
textmodes/two-column.el:305:6: (enlarge-window 99999 t))
which now will result on a error.
To be clear, I have nothing against throwing an error on the interactive
case, but against throwing the error on the non-interactive one. That's
what constitutes an API change on my book.
So I would suggest to remove the `error' and consider where and when to
add it after the release, after studying the code in the wild.
- Re: emacs-25 3722a69: Fix bugs in window resizing code, martin rudalics, 2016/03/01
- Re: emacs-25 3722a69: Fix bugs in window resizing code,
Óscar Fuentes <=
- Re: emacs-25 3722a69: Fix bugs in window resizing code, martin rudalics, 2016/03/01
- Re: emacs-25 3722a69: Fix bugs in window resizing code, Eli Zaretskii, 2016/03/01
- Re: emacs-25 3722a69: Fix bugs in window resizing code, martin rudalics, 2016/03/02
- Re: emacs-25 3722a69: Fix bugs in window resizing code, martin rudalics, 2016/03/02
- Re: emacs-25 3722a69: Fix bugs in window resizing code, Eli Zaretskii, 2016/03/02
- Re: emacs-25 3722a69: Fix bugs in window resizing code, martin rudalics, 2016/03/04
- Re: emacs-25 3722a69: Fix bugs in window resizing code, Eli Zaretskii, 2016/03/04