xref: /vim-8.2.3635/runtime/syntax/logindefs.vim (revision 5f1920ad)
1" Vim syntax file
2" Language:             login.defs(5) configuration file
3" Previous Maintainer:  Nikolai Weibull <[email protected]>
4" Latest Revision:      2010-11-29
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn match   logindefsBegin          display '^'
14                                    \ nextgroup=
15                                    \   logindefsComment,
16                                    \   @logindefsKeyword
17                                    \ skipwhite
18
19syn region  logindefsComment        display oneline start='^\s*#' end='$'
20                                    \ contains=logindefsTodo,@Spell
21
22syn keyword logindefsTodo           contained TODO FIXME XXX NOTE
23
24syn cluster logindefsKeyword        contains=
25                                    \ logindefsBooleanKeyword,
26                                    \ logindefsEncryptKeyword,
27                                    \ logindefsNumberKeyword,
28                                    \ logindefsPathKeyword,
29                                    \ logindefsPathsKeyword,
30                                    \ logindefsStringKeyword
31
32syn keyword logindefsBooleanKeyword contained
33                                    \ CHFN_AUTH
34                                    \ CHSH_AUTH
35                                    \ CREATE_HOME
36                                    \ DEFAULT_HOME
37                                    \ FAILLOG_ENAB
38                                    \ LASTLOG_ENAB
39                                    \ LOG_OK_LOGINS
40                                    \ LOG_UNKFAIL_ENAB
41                                    \ MAIL_CHECK_ENAB
42                                    \ MD5_CRYPT_ENAB
43                                    \ OBSCURE_CHECKS_ENAB
44                                    \ PASS_ALWAYS_WARN
45                                    \ PORTTIME_CHECKS_ENAB
46                                    \ QUOTAS_ENAB
47                                    \ SU_WHEEL_ONLY
48                                    \ SYSLOG_SG_ENAB
49                                    \ SYSLOG_SU_ENAB
50                                    \ USERGROUPS_ENAB
51                                    \ nextgroup=logindefsBoolean skipwhite
52
53syn keyword logindefsBoolean        contained yes no
54
55syn keyword logindefsEncryptKeyword contained
56                                    \ ENCRYPT_METHOD
57                                    \ nextgroup=logindefsEncryptMethod skipwhite
58
59syn keyword logindefsEncryptMethod  contained
60                                    \ DES
61                                    \ MD5
62                                    \ SHA256
63                                    \ SHA512
64
65syn keyword logindefsNumberKeyword  contained
66                                    \ ERASECHAR
67                                    \ FAIL_DELAY
68                                    \ GID_MAX
69                                    \ GID_MIN
70                                    \ KILLCHAR
71                                    \ LOGIN_RETRIES
72                                    \ LOGIN_TIMEOUT
73                                    \ MAX_MEMBERS_PER_GROUP
74                                    \ PASS_CHANGE_TRIES
75                                    \ PASS_MAX_DAYS
76                                    \ PASS_MIN_DAYS
77                                    \ PASS_WARN_AGE
78                                    \ PASS_MAX_LEN
79                                    \ PASS_MIN_LEN
80                                    \ SHA_CRYPT_MAX_ROUNDS
81                                    \ SHA_CRYPT_MIN_ROUNDS
82                                    \ SYS_GID_MAX
83                                    \ SYS_GID_MIN
84                                    \ SYS_UID_MAX
85                                    \ SYS_UID_MIN
86                                    \ UID_MAX
87                                    \ UID_MIN
88                                    \ ULIMIT
89                                    \ UMASK
90                                    \ nextgroup=@logindefsNumber skipwhite
91
92syn cluster logindefsNumber         contains=
93                                    \ logindefsDecimal,
94                                    \ logindefsHex,
95                                    \ logindefsOctal,
96                                    \ logindefsOctalError
97
98syn match   logindefsDecimal        contained '\<\d\+\>'
99
100syn match   logindefsHex            contained display '\<0x\x\+\>'
101
102syn match   logindefsOctal          contained display '\<0\o\+\>'
103                                    \ contains=logindefsOctalZero
104syn match   logindefsOctalZero      contained display '\<0'
105
106syn match   logindefsOctalError     contained display '\<0\o*[89]\d*\>'
107
108syn keyword logindefsPathKeyword    contained
109                                    \ ENVIRON_FILE
110                                    \ FAKE_SHELL
111                                    \ FTMP_FILE
112                                    \ HUSHLOGIN_FILE
113                                    \ ISSUE_FILE
114                                    \ MAIL_DIR
115                                    \ MAIL_FILE
116                                    \ NOLOGINS_FILE
117                                    \ SULOG_FILE
118                                    \ TTYTYPE_FILE
119                                    \ nextgroup=logindefsPath skipwhite
120
121syn match   logindefsPath           contained '[[:graph:]]\+'
122
123syn keyword logindefsPathsKeyword   contained
124                                    \ CONSOLE
125                                    \ ENV_PATH
126                                    \ ENV_SUPATH
127                                    \ MOTD_FILE
128                                    \ nextgroup=logindefsPaths skipwhite
129
130syn match   logindefsPaths          contained '[^:]\+'
131                                    \ nextgroup=logindefsPathDelim
132
133syn match   logindefsPathDelim      contained ':' nextgroup=logindefsPaths
134
135syn keyword logindefsStringKeyword  contained
136                                    \ CHFN_RESTRICT
137                                    \ CONSOLE_GROUPS
138                                    \ ENV_HZ
139                                    \ ENV_TZ
140                                    \ LOGIN_STRING
141                                    \ SU_NAME
142                                    \ TTYGROUP
143                                    \ TTYPERM
144                                    \ USERDEL_CMD
145                                    \ nextgroup=logindefsString skipwhite
146
147syn match   logindefsString         contained '[[:graph:]]\+'
148
149hi def link logindefsComment        Comment
150hi def link logindefsTodo           Todo
151hi def link logindefsKeyword        Keyword
152hi def link logindefsBooleanKeyword logindefsKeyword
153hi def link logindefsEncryptKeyword logindefsKeyword
154hi def link logindefsNumberKeyword  logindefsKeyword
155hi def link logindefsPathKeyword    logindefsKeyword
156hi def link logindefsPathsKeyword   logindefsKeyword
157hi def link logindefsStringKeyword  logindefsKeyword
158hi def link logindefsBoolean        Boolean
159hi def link logindefsEncryptMethod  Type
160hi def link logindefsNumber         Number
161hi def link logindefsDecimal        logindefsNumber
162hi def link logindefsHex            logindefsNumber
163hi def link logindefsOctal          logindefsNumber
164hi def link logindefsOctalZero      PreProc
165hi def link logindefsOctalError     Error
166hi def link logindefsPath           String
167hi def link logindefsPaths          logindefsPath
168hi def link logindefsPathDelim      Delimiter
169hi def link logindefsString         String
170
171let b:current_syntax = "logindefs"
172
173let &cpo = s:cpo_save
174unlet s:cpo_save
175