Hi all,
what about also comparing new values with current values, and do something
only when anything has changed.

Best regards,
Mansur Mamkin

On Wed, Apr 8, 2020 at 10:08 PM Wojciech Gac <wojciech.s....@gmail.com>
wrote:

> Hi,
>
> I typically use my Vip/Picolisp setup inside Tmux. I've noticed that when
> I resize the window occupied by Vip, it does not automatically adapt to the
> new dimensions, nor could I find a quick way to do it manually. So I took a
> look at the source code and decided to write some helper functions. The
> function GetScreenSize uses "stty size" (to avoid relying on Ncurses). The
> function UpdateScreenSize sets the environment variables LINES and COLUMNS,
> as well as the Vip variables *Lines and *Columns to the appropriate values.
> The problem is I don't really know how to force Vip to redraw its windows.
> I've tried "repaint" cause it looked like it should do the trick, but it
> did not. Am I missing something?
>
> Wojtek
>
> # Return a list of screen dimensions in the form (Lines Columns)
> (de GetScreenSize ()
>    (mapcar format
>       (mapcar pack
>          (split
>             (chop (in '(stty size) (line T)))
>             " "))))
>
> # Update environment variables and internal variables holding the screen
> size
> (de UpdateScreenSize (Lines Columns)
>    (sys "LINES" Lines)
>    (sys "COLUMNS" Columns)
>    (setq vip~*Lines Lines
>          vip~*Columns Columns))
>

Reply via email to