annotate CONTRIBUTING.md @ 33813:2e92551b2350 v9.0.2122

patch 9.0.2122: [security]: prevent overflow in indenting Commit: https://github.com/vim/vim/commit/3770574e4a70e810add9929973c51f9070c8c851 Author: Christian Brabandt <cb@256bit.org> Date: Wed Nov 22 22:18:35 2023 +0100 patch 9.0.2122: [security]: prevent overflow in indenting Problem: [security]: prevent overflow in indenting Solution: use long long and remove cast to (int) The shiftwidth option values are defined as being long. However, when calculating the actual amount of indent, we cast down to (int), which may cause the shiftwidth value to become negative and later it may even cause Vim to try to allocate a huge amount of memory. We already use long and long long variable types to calculate the indent (and detect possible overflows), so the cast to (int) seems superfluous and can be safely removed. So let's just remove the (int) cast and calculate the indent using longs. Additionally, the 'shiftwidth' option value is also used when determining the actual 'cino' options. There it can again cause another overflow, so make sure it is safe in parse_cino() as well. fixes: #13554 closes: #13555 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 22 Nov 2023 22:30:05 +0100
parents c97e9e2d79a4
children be122dc08867
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 # Contributing to Vim
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 Patches are welcome in whatever form.
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
4 Discussions about patches happen on the [vim-dev][0] mailing list.
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 If you create a pull request on GitHub it will be
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
6 forwarded to the vim-dev mailing list. You can also send your patch there
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
7 directly (but please note, the initial posting is subject to moderation).
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
8 In that case an attachment with a unified diff format is preferred.
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
9 Information about the mailing list can be found [on the Vim website][0]
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10
17640
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
11 A pull request has the advantage that it will trigger the Continuous
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
12 Integration tests, you will be warned of problems (you can ignore the coverage
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
13 warning, it's noisy).
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
14
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
15 Please consider adding a test. All new functionality should be tested and bug
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
16 fixes should be tested for regressions: the test should fail before the fix and
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
17 pass after the fix. Look through recent patches for examples and find help
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
18 with ":help testing". The tests are located under "src/testdir".
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
19
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
20 Contributions will be distributed with Vim under the Vim license. Providing a
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
21 change to be included implies that you agree with this and your contribution
c12c811695f7 patch 8.1.1817: github contribution text is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 16285
diff changeset
22 does not cause us trouble with trademarks or patents. There is no CLA to sign.
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 # Reporting issues
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 We use GitHub issues, but that is not a requirement. Writing to the Vim
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
27 mailing list is also fine.
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 Please use the GitHub issues only for actual issues. If you are not 100% sure
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 that your problem is a Vim issue, please first discuss this on the Vim user
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
31 mailing list. Try reproducing the problem without any of your plugins or settings:
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32
16208
a23c883685cb Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14372
diff changeset
33 vim --clean
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 If you report an issue, please describe exactly how to reproduce it.
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 For example, don't say "insert some text" but say what you did exactly:
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
37 `ahere is some text<Esc>`.
7076
6ad58a7e995b commit https://github.com/vim/vim/commit/544780248b5876339b316703fc2f330a9d316c45
Christian Brabandt <cb@256bit.org>
parents: 7068
diff changeset
38 Ideally, the steps you list can be used to write a test to verify the problem
6ad58a7e995b commit https://github.com/vim/vim/commit/544780248b5876339b316703fc2f330a9d316c45
Christian Brabandt <cb@256bit.org>
parents: 7068
diff changeset
39 is fixed.
7068
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 Feel free to report even the smallest problem, also typos in the documentation.
a55f35ed381b commit https://github.com/vim/vim/commit/6017f3799dbb744fc34894d968b36729e607203e
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
43 You can find known issues in the todo file: `:help todo`.
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
44 Or open [the todo file][todo list] on GitHub to see the latest version.
7084
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
45
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
46 # Syntax, indent and other runtime files
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
47
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
48 The latest version of these files can be obtained from the repository.
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
49 They are usually not updated with numbered patches.
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
50
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
51 If you find a problem with one of these files or have a suggestion for
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
52 improvement, please first try to contact the maintainer directly.
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
53 Look in the header of the file for the name and email address.
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
54
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
55 The maintainer will take care of issues and send updates to the Vim project for
7084
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
56 distribution with Vim.
1c039023af1c commit https://github.com/vim/vim/commit/b58988b832b69b52dfefeca338ea4802d0c4cdca
Christian Brabandt <cb@256bit.org>
parents: 7076
diff changeset
57
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
58 If the maintainer does not respond, contact the [vim-dev][0] mailing list.
14347
723487cd7876 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 7084
diff changeset
59
723487cd7876 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 7084
diff changeset
60 # Translations
723487cd7876 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 7084
diff changeset
61
16285
e71261a88630 patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents: 16208
diff changeset
62 Translating messages and runtime files is very much appreciated! These things
e71261a88630 patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents: 16208
diff changeset
63 can be translated:
14372
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
64 * Messages in Vim, see [src/po/README.txt][1]
16285
e71261a88630 patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents: 16208
diff changeset
65 Also used for the desktop icons.
14372
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
66 * Menus, see [runtime/lang/README.txt][2]
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
67 * Vim tutor, see [runtime/tutor/README.txt][3]
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
68 * Manual pages, see [runtime/doc/\*.1][4] for examples
16285
e71261a88630 patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents: 16208
diff changeset
69 * Installer, see [nsis/lang/\*.nsi][5] for examples
14347
723487cd7876 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 7084
diff changeset
70
723487cd7876 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 7084
diff changeset
71 The help files can be translated and made available separately.
723487cd7876 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 7084
diff changeset
72 See https://www.vim.org/translations.php for examples.
14372
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
73
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
74 # How do I contribute to the project?
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
75
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
76 Please have a look at the following [discussion][6], which should give you some
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
77 ideas. Please also check the [develop.txt][7] helpfile for the recommended
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
78 style. Often it's also beneficial to check the surrounding code for the style
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
79 being used.
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
80
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
81 # I have a question
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
82
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
83 If you have some question on the style guide, please contact the [vim-dev][0]
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
84 mailing list. For other questions please use the [Vi Stack Exchange][8] website, the
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
85 [vim-use][9] mailing list or make use of the [discussion][10] feature here at github.
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
86
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
87 [todo list]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
88 [0]: http://www.vim.org/maillist.php#vim-dev
14372
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
89 [1]: https://github.com/vim/vim/blob/master/src/po/README.txt
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
90 [2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
91 [3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
2a4a2dc35c55 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14347
diff changeset
92 [4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
16285
e71261a88630 patch 8.1.1147: desktop file translations are requiring manual updates
Bram Moolenaar <Bram@vim.org>
parents: 16208
diff changeset
93 [5]: https://github.com/vim/vim/blob/master/nsis/lang/english.nsi
33760
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
94 [6]: https://github.com/vim/vim/discussions/13087
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
95 [7]: https://github.com/vim/vim/blob/master/runtime/doc/develop.txt
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
96 [8]: https://vi.stackexchange.com
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
97 [9]: http://www.vim.org/maillist.php#vim-use
c97e9e2d79a4 Improve CONTRIBUTING.md
Christian Brabandt <cb@256bit.org>
parents: 29533
diff changeset
98 [10]: https://github.com/vim/vim/discussions