Mercurial > vim
annotate src/nbdebug.h @ 32876:522f16e3e058 v9.0.1747
patch 9.0.1747: screenpos() may cause unnecessary redraw
Commit: https://github.com/vim/vim/commit/6235a109c48ff2559eca3b16578c429ffb61eadc
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Aug 19 14:12:42 2023 +0200
patch 9.0.1747: screenpos() may cause unnecessary redraw
Problem: screenpos() may cause unnecessary redraw.
Solution: Don't unnecessarily reset VALID_WROW flag.
VALID_WROW flag is only used by two functions: validate_cursor() and
cursor_valid(), and cursor_valid() is only used once in ex_sleep().
When adjust_plines_for_skipcol() was first added in patch 9.0.0640, it
was called in two functions: comp_botline() and curs_rows().
- comp_botline() is called in two places:
- onepage(), which resets VALID_WROW flag immediately afterwards.
- validate_botline_win(), where resetting a VALID_ flag is strange.
- curs_rows() is called in two places:
- curs_columns(), which sets VALID_WROW flag afterwards.
- validate_cline_row(), which is only used by GUI mouse focus.
Therefore resetting VALID_WROW there doesn't seem to do anything useful.
Also, a w_skipcol check (which resets VALID_WROW flag) was added to
check_cursor_moved() in patch 9.0.0734, which seems to make more sense
than resetting that flag in the middle of a computation.
While at it make adjust_plines_for_skipcol() and textpos2screenpos() a
bit less confusing:
- Make adjust_plines_for_skipcol() return "off" instead of "n - off".
- Use 0-based "row" in textpos2screenpos() until W_WINROW is added.
closes: #12832
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 19 Aug 2023 14:30:02 +0200 |
parents | 50555279168b |
children |
rev | line source |
---|---|
10042
4aead6a9b7a9
commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
1 /* vi:set ts=8 sw=8 noet: |
7 | 2 * |
3 * VIM - Vi IMproved by Bram Moolenaar | |
4 * Visual Workshop integration by Gordon Prieur | |
5 * | |
6 * Do ":help uganda" in Vim to read copying and usage conditions. | |
7 * Do ":help credits" in Vim to see a list of people who contributed. | |
8 */ | |
9 | |
10 | |
11 #ifndef NBDEBUG_H | |
12 #define NBDEBUG_H | |
13 | |
14 #ifdef NBDEBUG | |
15 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
16 # ifndef ASSERT |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
17 # define ASSERT(c) \ |
31804
50555279168b
patch 9.0.1234: the code style has to be checked manually
Bram Moolenaar <Bram@vim.org>
parents:
25475
diff
changeset
|
18 if (!(c)) \ |
50555279168b
patch 9.0.1234: the code style has to be checked manually
Bram Moolenaar <Bram@vim.org>
parents:
25475
diff
changeset
|
19 { \ |
7 | 20 fprintf(stderr, "Assertion failed: line %d, file %s\n", \ |
21 __LINE__, __FILE__); \ | |
22 fflush(stderr); \ | |
23 abort(); \ | |
24 } | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
25 # endif |
7 | 26 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
27 # define nbdebug(a) nbdbg a |
7 | 28 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
29 # define NB_TRACE 0x00000001 |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
30 # define NB_TRACE_VERBOSE 0x00000002 |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
31 # define NB_TRACE_COLONCMD 0x00000004 |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
32 # define NB_PRINT 0x00000008 |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
33 # define NB_DEBUG_ALL 0xffffffff |
7 | 34 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
35 # define NBDLEVEL(flags) (nb_debug != NULL && (nb_dlevel & (flags))) |
7 | 36 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
37 # define NBDEBUG_TRACE 1 |
7 | 38 |
39 typedef enum { | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
40 WT_ENV = 1, // look for env var if set |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
41 WT_WAIT, // look for ~/.gvimwait if set |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
42 WT_STOP // look for ~/.gvimstop if set |
7 | 43 } WtWait; |
44 | |
45 | |
25475
038eb6d9003a
patch 8.2.3274: macro for printf format check can be simplified
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
46 void nbdbg(char *, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2); |
7 | 47 |
7807
1a5d34492798
commit https://github.com/vim/vim/commit/d99df423c559d85c17779b3685426c489554908c
Christian Brabandt <cb@256bit.org>
parents:
1817
diff
changeset
|
48 void nbdebug_wait(u_int wait_flags, char *wait_var, u_int wait_secs); |
1a5d34492798
commit https://github.com/vim/vim/commit/d99df423c559d85c17779b3685426c489554908c
Christian Brabandt <cb@256bit.org>
parents:
1817
diff
changeset
|
49 void nbdebug_log_init(char *log_var, char *level_var); |
7 | 50 |
51 extern FILE *nb_debug; | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
52 extern u_int nb_dlevel; // nb_debug verbosity level |
7 | 53 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
54 #else // not NBDEBUG |
7 | 55 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
56 # ifndef ASSERT |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
57 # define ASSERT(c) |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
58 # endif |
7 | 59 |
60 /* | |
33 | 61 * The following 3 stubs are needed because a macro cannot be used because of |
7 | 62 * the variable number of arguments. |
63 */ | |
64 | |
65 void | |
66 nbdbg( | |
67 char *fmt, | |
68 ...) | |
69 { | |
70 } | |
71 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
72 #endif // NBDEBUG |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
15874
diff
changeset
|
73 #endif // NBDEBUG_H |