Mercurial > vim
annotate src/create_nvcmdidxs.vim @ 32730:078630443def v9.0.1685
patch 9.0.1685: silence Python 3.11 depreciations for gcc
Commit: https://github.com/vim/vim/commit/422b9dcbfadcd5c1dfad982f9782563915398430
Author: Philip H <47042125+pheiduck@users.noreply.github.com>
Date: Fri Aug 11 22:38:48 2023 +0200
patch 9.0.1685: silence Python 3.11 depreciations for gcc
Problem: Python 3.11 interface throws deprecation warnings
Solution: ignore those warnings for gcc and clang
Python 3.11 deprecation warnings are already silenced for clang using
the pragma
```
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
```
However those warnings are also emitted when using gcc. To avoid them
for both compilers, change use the __GNUC__ ifdef, which is defined for
gcc as well as clang.
Additionally, instead of using the "clang diagnostic ignored" pragma,
let's make use of 'GCC diagnostic ignored' which is again supported by
clang and GCC
closes: #12610
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Philip H <47042125+pheiduck@users.noreply.github.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 11 Aug 2023 23:00:03 +0200 |
parents | ee1019e59bef |
children |
rev | line source |
---|---|
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
1 " This script generates the table nv_cmd_idx[] which contains the index in |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
2 " nv_cmds[] table (normal.c) for each of the command character supported in |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
3 " normal/visual mode. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
4 " This is used to speed up the command lookup in nv_cmds[]. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
5 " |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
6 " Script should be run using "make nvcmdidxs", every time the nv_cmds[] table |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
7 " in src/nv_cmds.h changes. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
8 " |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
9 " This is written in legacy Vim script so that it can be run by a slightly |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
10 " older Vim version. |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
12 " Generate the table of normal/visual mode command characters and their |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
13 " corresponding index. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
14 let cmd = 'create_nvcmdidxs' |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
15 if has('unix') |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
16 let cmd = './' .. cmd |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
17 endif |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
18 let nv_cmdtbl = systemlist(cmd)->map({i, ch -> {'idx': i, 'cmdchar': ch}}) |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
20 " sort the table by the command character |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
21 call sort(nv_cmdtbl, {a, b -> a.cmdchar - b.cmdchar}) |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
23 " Compute the highest index upto which the command character can be directly |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
24 " used as an index. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
25 let nv_max_linear = 0 |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
26 for i in range(nv_cmdtbl->len()) |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
27 if i != nv_cmdtbl[i].cmdchar |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
28 let nv_max_linear = i - 1 |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
29 break |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
30 endif |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
31 endfor |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
33 " Generate a header file with the table |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
34 let output =<< trim END |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
35 /* |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
36 * Automatically generated code by the create_nvcmdidxs.vim script. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
37 * |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
38 * Table giving the index in nv_cmds[] to lookup based on |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
39 * the command character. |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
40 */ |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
41 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
42 // nv_cmd_idx[<normal mode command character>] => nv_cmds[] index |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
43 static const unsigned short nv_cmd_idx[] = |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
44 { |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
45 END |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
46 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
47 " Add each command character in comment and the corresponding index |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
48 let output += nv_cmdtbl->map({_, v -> |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
49 \ printf(' /* %5d */ %3d,', v.cmdchar, v.idx)}) |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
50 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
51 let output += ['};', '', |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
52 \ '// The highest index for which', |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
53 \ '// nv_cmds[idx].cmd_char == nv_cmd_idx[nv_cmds[idx].cmd_char]'] |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
54 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
55 let output += ['static const int nv_max_linear = ' .. nv_max_linear .. ';'] |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
56 |
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
57 call writefile(output, "nv_cmdidxs.h") |
27447
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
58 quit |
4050f0554902
patch 8.2.4252: generating the normal command table at runtime is inefficient
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
59 |
27484
ee1019e59bef
patch 8.2.4270: generating nv_cmdidxs.h requires building Vim twice
Bram Moolenaar <Bram@vim.org>
parents:
27447
diff
changeset
|
60 " vim: shiftwidth=2 sts=2 expandtab |