" Vim syntax file
" Language: pam(8) configuration file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn match pamconfService '^[[:graph:]]\+'
\ nextgroup=pamconfType,
\ pamconfServiceLineCont skipwhite
syn keyword pamconfTodo contained TODO FIXME XXX NOTE
syn region pamconfComment display oneline start='#' end='$'
\ contains=pamconfTodo,@Spell
syn match pamconfServiceLineCont contained '\\$'
\ nextgroup=pamconfType,
\ pamconfServiceLineCont skipwhite skipnl
syn keyword pamconfType account auth password session
\ nextgroup=pamconfControl,
\ pamconfTypeLineCont skipwhite
syn match pamconfTypeLineCont contained '\\$'
\ nextgroup=pamconfControl,
\ pamconfTypeLineCont skipwhite skipnl
syn keyword pamconfControl contained requisite required sufficient
\ optional
\ nextgroup=pamconfMPath,
\ pamconfControlLineContH skipwhite
syn match pamconfControlBegin '\[' nextgroup=pamconfControlValues,
\ pamconfControlLineCont skipwhite
syn match pamconfControlLineCont contained '\\$'
\ nextgroup=pamconfControlValues,
\ pamconfControlLineCont skipwhite skipnl
syn keyword pamconfControlValues contained success open_err symbol_err
\ service_err system_err buf_err
\ perm_denied auth_err cred_insufficient
\ authinfo_unavail user_unknown maxtries
\ new_authtok_reqd acct_expired session_err
\ cred_unavail cred_expired cred_err
\ no_module_data conv_err authtok_err
\ authtok_recover_err authtok_lock_busy
\ authtok_disable_aging try_again ignore
\ abort authtok_expired module_unknown
\ bad_item and default
\ nextgroup=pamconfControlValueEq
syn match pamconfControlValueEq contained '=' nextgroup=pamconfControlAction
syn match pamconfControlActionN contained '\d\+\>'
\ nextgroup=pamconfControlValues,
\ pamconfControlLineCont,pamconfControlEnd
\ skipwhite
syn keyword pamconfControlAction contained ignore bad die ok done reset
\ nextgroup=pamconfControlValues,
\ pamconfControlLineCont,pamconfControlEnd
\ skipwhite
syn match pamconfControlEnd contained '\]'
\ nextgroup=pamconfMPath,
\ pamconfControlLineContH skipwhite
syn match pamconfControlLineContH contained '\\$'
\ nextgroup=pamconfMPath,
\ pamconfControlLineContH skipwhite skipnl
syn match pamconfMPath contained '\S\+'
\ nextgroup=pamconfMPathLineCont,
\ pamconfArgs skipwhite
syn match pamconfArgs contained '\S\+'
\ nextgroup=pamconfArgsLineCont,
\ pamconfArgs skipwhite
syn match pamconfMPathLineCont contained '\\$'
\ nextgroup=pamconfMPathLineCont,
\ pamconfArgs skipwhite skipnl
syn match pamconfArgsLineCont contained '\\$'
\ nextgroup=pamconfArgsLineCont,
\ pamconfArgs skipwhite skipnl
hi def link pamconfTodo Todo
hi def link pamconfComment Comment
hi def link pamconfService Statement
hi def link pamconfServiceLineCont Special
hi def link pamconfType Type
hi def link pamconfTypeLineCont pamconfServiceLineCont
hi def link pamconfControl Macro
hi def link pamconfControlBegin Delimiter
hi def link pamconfControlLineContH pamconfServiceLineCont
hi def link pamconfControlLineCont pamconfServiceLineCont
hi def link pamconfControlValues Identifier
hi def link pamconfControlValueEq Operator
hi def link pamconfControlActionN Number
hi def link pamconfControlAction Identifier
hi def link pamconfControlEnd Delimiter
hi def link pamconfMPath String
hi def link pamconfMPathLineCont pamconfServiceLineCont
hi def link pamconfArgs Normal
hi def link pamconfArgsLineCont pamconfServiceLineCont
let b:current_syntax = "pamconf"
let &cpo = s:cpo_save
unlet s:cpo_save
|