annotate runtime/ftplugin/debcontrol.vim @ 17417:aa4532c1d001 v8.1.1707

patch 8.1.1707: Coverity warns for possibly using a NULL pointer commit https://github.com/vim/vim/commit/cfdbc5adde49cbab939e8164555ed0b8d9ce000b Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jul 17 21:27:52 2019 +0200 patch 8.1.1707: Coverity warns for possibly using a NULL pointer Problem: Coverity warns for possibly using a NULL pointer. Solution: Change the logic to make sure no NULL pointer is used.
author Bram Moolenaar <Bram@vim.org>
date Wed, 17 Jul 2019 21:30:04 +0200
parents e751b5c9dff3
children cc751d944b7e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
1 " Vim filetype plugin file (GUI menu and folding)
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
2 " Language: Debian control files
13231
167a030448fa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 2152
diff changeset
3 " Maintainer: Debian Vim Maintainers
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1624
diff changeset
4 " Former Maintainer: Pierre Habouzit <madcoder@debian.org>
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
5 " Last Change: 2018-01-28
13231
167a030448fa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 2152
diff changeset
6 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
7
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
8 " Do these settings once per buffer
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
9 if exists('b:did_ftplugin')
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
10 finish
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
11 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
12 let b:did_ftplugin=1
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
13
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
14 " {{{1 Local settings (do on every load)
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
15 if exists('g:debcontrol_fold_enable')
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
16 setlocal foldmethod=expr
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
17 setlocal foldexpr=DebControlFold(v:lnum)
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
18 setlocal foldtext=DebControlFoldText()
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
19 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
20 setlocal textwidth=0
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
21
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
22 " Clean unloading
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
23 let b:undo_ftplugin = 'setlocal tw< foldmethod< foldexpr< foldtext<'
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
24
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
25 " }}}1
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
26
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
27 " {{{1 folding
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
28
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
29 function! s:getField(f, lnum)
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
30 let line = getline(a:lnum)
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
31 let fwdsteps = 0
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
32 while line !~ '^'.a:f.':'
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
33 let fwdsteps += 1
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
34 let line = getline(a:lnum + fwdsteps)
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
35 if line ==# ''
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
36 return 'unknown'
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
37 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
38 endwhile
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
39 return substitute(line, '^'.a:f.': *', '', '')
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
40 endfunction
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
41
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
42 function! DebControlFoldText()
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
43 if v:folddashes ==# '-' " debcontrol entry fold
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
44 let type = substitute(getline(v:foldstart), ':.*', '', '')
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
45 if type ==# 'Source'
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
46 let ftext = substitute(foldtext(), ' *Source: *', ' ', '')
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
47 return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' '
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
48 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
49 let arch = s:getField('Architecture', v:foldstart)
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
50 let ftext = substitute(foldtext(), ' *Package: *', ' [' . arch . '] ', '')
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
51 return ftext . ': ' . s:getField('Description', v:foldstart) . ' '
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
52 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
53 return foldtext()
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
54 endfunction
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
55
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
56 function! DebControlFold(l)
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
57
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
58 " This is for not merging blank lines around folds to them
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
59 if getline(a:l) =~# '^Source:'
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
60 return '>1'
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
61 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
62
13857
e751b5c9dff3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13231
diff changeset
63 if getline(a:l) =~# '^Package:'
1624
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
64 return '>1'
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
65 endif
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
66
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
67 return '='
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
68 endfunction
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
69
18ee39301b82 updated for version 7.2a
vimboss
parents:
diff changeset
70 " }}}1