Mercurial > vim
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