1" Vim syntax file
2" Language:         login.defs(5) configuration file
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2006-04-19
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword logindefsTodo       contained TODO FIXME XXX NOTE
14
15syn region  logindefsComment    display oneline start='^\s*#' end='$'
16                                \ contains=logindefsTodo,@Spell
17
18syn match   logindefsString     contained '[[:graph:]]\+'
19
20syn match   logindefsPath       contained '[[:graph:]]\+'
21
22syn match   logindefsPaths      contained '[[:graph:]]\+'
23                                \ nextgroup=logindefsPathDelim
24
25syn match   logindefsPathDelim  contained ':' nextgroup=logindefsPaths
26
27syn keyword logindefsBoolean    contained yes no
28
29syn match   logindefsDecimal    contained '\<\d\+\>'
30
31syn match   logindefsOctal      contained display '\<0\o\+\>'
32                                \ contains=logindefsOctalZero
33syn match   logindefsOctalZero  contained display '\<0'
34syn match   logindefsOctalError contained display '\<0\o*[89]\d*\>'
35
36syn match   logindefsHex        contained display '\<0x\x\+\>'
37
38syn cluster logindefsNumber     contains=logindefsDecimal,logindefsOctal,
39                                \ logindefsOctalError,logindefsHex
40
41syn match   logindefsBegin      display '^'
42                                \ nextgroup=logindefsKeyword,logindefsComment
43                                \ skipwhite
44
45syn keyword logindefsKeyword    contained CHFN_AUTH CLOSE_SESSIONS CREATE_HOME
46                                \ DEFAULT_HOME FAILLOG_ENAB LASTLOG_ENAB
47                                \ LOG_OK_LOGINS LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB
48                                \ MD5_CRYPT_ENAB OBSCURE_CHECKS_ENAB
49                                \ PASS_ALWAYS_WARN PORTTIME_CHECKS_ENAB
50                                \ QUOTAS_ENAB SU_WHEEL_ONLY SYSLOG_SG_ENAB
51                                \ SYSLOG_SU_ENAB USERGROUPS_ENAB
52                                \ nextgroup=logindefsBoolean skipwhite
53
54syn keyword logindefsKeyword    contained CHFN_RESTRICT CONSOLE CONSOLE_GROUPS
55                                \ ENV_TZ ENV_HZ FAKE_SHELL SU_NAME LOGIN_STRING
56                                \ NOLOGIN_STR TTYGROUP USERDEL_CMD
57                                \ nextgroup=logindefsString skipwhite
58
59syn keyword logindefsKeyword    contained ENVIRON_FILE FTMP_FILE HUSHLOGIN_FILE
60                                \ ISSUE_FILE MAIL_DIR MAIL_FILE NOLOGINS_FILE
61                                \ NOLOGINS_FILE TTYTYPE_FILE QMAIL_DIR
62                                \ SULOG_FILE
63                                \ nextgroup=logindefsPath skipwhite
64
65syn keyword logindefsKeyword    contained CRACKLIB_DICTPATH ENV_PATH
66                                \ ENV_ROOTPATH ENV_SUPATH MOTD_FILE
67                                \ nextgroup=logindefsPaths skipwhite
68
69syn keyword logindefsKeyword    contained ERASECHAR FAIL_DELAY GETPASS_ASTERISKS
70                                \ GID_MAX GID_MIN KILLCHAR LOGIN_RETRIES
71                                \ LOGIN_TIMEOUT PASS_CHANGE_TRIES PASS_MAX_DAYS
72                                \ PASS_MAX_LEN PASS_MIN_DAYS PASS_MIN_LEN
73                                \ PASS_WARN_AGE TTYPERM UID_MAX UID_MIN ULIMIT
74                                \ UMASK
75                                \ nextgroup=@logindefsNumber skipwhite
76
77hi def link logindefsTodo       Todo
78hi def link logindefsComment    Comment
79hi def link logindefsString     String
80hi def link logindefsPath       String
81hi def link logindefsPaths      logindefsPath
82hi def link logindefsPathDelim  Delimiter
83hi def link logindefsBoolean    Boolean
84hi def link logindefsDecimal    Number
85hi def link logindefsOctal      Number
86hi def link logindefsOctalZero  PreProc
87hi def link logindefsOctalError Error
88hi def link logindefsHex        Number
89hi def link logindefsKeyword    Keyword
90
91let b:current_syntax = "logindefs"
92
93let &cpo = s:cpo_save
94unlet s:cpo_save
95