This discussion is based on this discussion.
As the answer in the discussion mentions, I attached gdb and set a break at win_setheight(). I didn't see anything suspicious. I found wincmd + contains two stages: screen update and buffer redraw. The former one happens in
https://github.com/vim/vim/blob/cd96075cdee6b606c6e39aa1aed19b7cdc867df8/src/main.c#L1450
and the size of the screen incremented successfully. I would like to know how to use gdb step through the latter stage (where should I set break)?
Any help is appreciated.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
win_line() ?
The file header of drawline.c contains the following:
/*
* drawline.c: Functions for drawing window lines on the screen.
* This is the middle level, drawscreen.c is the higher level and screen.c the
* lower level.
*/
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
can you check, if winheight() changes after :wincmd resize +?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@chrisbra
Screenshot.from.2025-01-05.08-59-43.png (view on web)
The window on the top left is created by RunVimInTerminal(). I have run call win_execute(buf->win_findbuf()[0], 'wincmd +') twice, so you can see two empty lines under the line with a 5. The 5 is the output of the consecutive execution of two commands in that small window (so the line with 5 is the cmd line): let a = winheight(0) and echo a.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east Thanks for the comment. However, I tried using gdb to break at the start and the end of win_line(). I can confirm the number ~ is not incremented in win_line().
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()