Mercurial > vim
annotate runtime/syntax/pymanifest.vim @ 33090:461541d860ac v9.0.1830
patch 9.0.1830: Vim9: crash when accessing a null object
Commit: https://github.com/vim/vim/commit/d7085a06358c22250a27186bb7d52112ed4addd1
Author: Gianmaria Bajo <mg1979.git@gmail.com>
Date: Thu Aug 31 18:15:26 2023 +0200
patch 9.0.1830: Vim9: crash when accessing a null object
Problem: Vim9: crash when accessing a null object
Solution: Check accessing a NULL object in def function
An object is NULL when the variable is declared, but the constructor
isn't called. Accessing/setting a member on the object crashed Vim.
Note: this happens inside def functions, at script level things work
differently. Accessing a NULL object member results in E1360
(correctly), while setting a value on it results in E1012 (type
mismatch) so there's still something to fix.
closes: #12973
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Gianmaria Bajo <mg1979.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 31 Aug 2023 18:30:03 +0200 |
parents | 75c283beb74f |
children |
rev | line source |
---|---|
32767
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Vim syntax file |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 " Language: PyPA manifest |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 " Maintainer: ObserverOfTime <chronobserver@disroot.org> |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 " Filenames: MANIFEST.in |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 " Last Change: 2023 Aug 12 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 if exists('b:current_syntax') |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 finish |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 endif |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 let s:cpo_save = &cpoptions |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 set cpoptions&vim |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 syn iskeyword @,- |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 " Comments |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 syn keyword pymanifestTodo contained TODO FIXME XXX |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 syn match pymanifestComment /\\\@1<!#.*/ contains=pymanifestTodo |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 " Commands |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 syn keyword pymanifestCommand |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 \ include exclude |
32984 | 23 \ recursive-include recursive-exclude |
32767
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 \ global-include global-exclude |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 \ graft prune |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 " Globs & character ranges |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 syn match pymanifestGlob /\*\|\*\*\|?/ |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 syn match pymanifestRange /\\\@1<!\[.\{-}\]/ |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 " Line break |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 syn match pymanifestLinebreak /\\$\|\\\ze\s\+#/ |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 hi def link pymanifestCommand Keyword |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 hi def link pymanifestComment Comment |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 hi def link pymanifestGlob SpecialChar |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 hi def link pymanifestLinebreak SpecialKey |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 hi def link pymanifestRange Special |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 hi def link pymanifestTodo Todo |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 let b:current_syntax = 'pymanifest' |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 let &cpoptions = s:cpo_save |
c79fc3d7410c
Add syntax & ftplugin for pymanifest (#12773)
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 unlet s:cpo_save |