view runtime/syntax/fetchmail.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 03e3b0034e31
children
line wrap: on
line source

" Vim syntax file
" Language:		fetchmail(1) RC File
" Maintainer:		Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
" Latest Revision:	2022 Jul 02

" Version 6.4.3

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword fetchmailTodo	contained FIXME TODO XXX NOTE

syn region  fetchmailComment	start='#' end='$' contains=fetchmailTodo,@Spell

syn match   fetchmailNumber	display '\<\d\+\>'

syn region  fetchmailString	start=+"+ skip=+\\\\\|\\"+ end=+"+
				\ contains=fetchmailStringEsc
syn region  fetchmailString	start=+'+ skip=+\\\\\|\\'+ end=+'+
				\ contains=fetchmailStringEsc

syn match   fetchmailStringEsc	contained '\\\([ntb]\|0\d*\|x\x\+\)'

syn region  fetchmailKeyword	transparent matchgroup=fetchmailKeyword
				\ start='\<poll\|skip\|defaults\>'
				\ end='\<poll\|skip\|defaults\>'
				\ contains=ALLBUT,fetchmailOptions,fetchmailSet

syn keyword fetchmailServerOpts contained via proto[col] local[domains] port
				\ service auth[enticate] timeout envelope
				\ qvirtual aka interface monitor plugin plugout
				\ dns checkalias uidl interval tracepolls
				\ principal esmtpname esmtppassword
" removed in 6.3.0
syn keyword fetchmailServerOpts contained netsec
syn match   fetchmailServerOpts contained '\<bad-header\>'
syn match   fetchmailServerOpts contained '\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)'

syn keyword fetchmailUserOpts	contained user[name] is to pass[word] ssl
				\ sslcert sslcertck sslcertfile sslcertpath
				\ sslfingerprint sslkey sslproto folder
				\ smtphost fetchdomains smtpaddress smtpname
				\ antispam mda bsmtp preconnect postconnect
				\ keep flush limitflush fetchall rewrite
				\ stripcr forcecr pass8bits dropstatus
				\ dropdelivered mimedecode idle limit warnings
				\ batchlimit fetchlimit fetchsizelimit
				\ fastuidl expunge properties
				\ sslcommonname
syn match   fetchmailUserOpts	contained '\<no\_s\+\(sslcertck\|keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|idle\)'

syn keyword fetchmailSpecial	contained here there

syn keyword fetchmailNoise	and with has wants options
syn match   fetchmailNoise	display '[:;,]'

syn keyword fetchmailSet	nextgroup=fetchmailOptions skipwhite skipnl set

syn keyword fetchmailOptions	daemon postmaster bouncemail spambounce
				\ softbounce logfile pidfile idfile syslog properties
syn match   fetchmailOptions	'\<no\_s\+\(bouncemail\|spambounce\|softbounce\|syslog\)'

hi def link fetchmailComment	Comment
hi def link fetchmailTodo	Todo
hi def link fetchmailNumber	Number
hi def link fetchmailString	String
hi def link fetchmailStringEsc	SpecialChar
hi def link fetchmailKeyword	Keyword
hi def link fetchmailServerOpts Identifier
hi def link fetchmailUserOpts	Identifier
hi def link fetchmailSpecial	Special
hi def link fetchmailSet	Keyword
hi def link fetchmailOptions	Identifier

let b:current_syntax = "fetchmail"

let &cpo = s:cpo_save
unlet s:cpo_save