Mercurial > vim
view runtime/syntax/crontab.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 | 75c283beb74f |
children |
line wrap: on
line source
" Vim syntax file " Language: crontab " Maintainer: David Necas (Yeti) <yeti@physics.muni.cz> " Original Maintainer: John Hoelzel johnh51@users.sourceforge.net " License: This file can be redistribued and/or modified under the same terms " as Vim itself. " Filenames: /tmp/crontab.* used by "crontab -e" " Last Change: 2022-09-22 " " crontab line format: " Minutes Hours Days Months Days_of_Week Commands # comments " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\|every_minute\|every_second\)\>" nextgroup=crontabCmd skipwhite syntax match crontabVar "^\s*\k\w*\s*="me=e-1 syntax case ignore syntax match crontabMin "^\s*[-~0-9/,.*]\+" nextgroup=crontabHr skipwhite syntax match crontabHr "\s[-~0-9/,.*]\+" nextgroup=crontabDay skipwhite contained syntax match crontabDay "\s[-~0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained syntax match crontabMnth "\s[-~a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec syntax match crontabDow "\s[-~a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained syntax keyword crontabDow7 contained sun mon tue wed thu fri sat syntax region crontabCmd start="\S" end="$" skipwhite contained keepend contains=crontabPercent syntax match crontabCmnt "^\s*#.*" contains=@Spell syntax match crontabPercent "[^\\]%.*"lc=1 contained " Define the default highlighting. " Only when an item doesn't have highlighting yet hi def link crontabMin Number hi def link crontabHr PreProc hi def link crontabDay Type hi def link crontabMnth Number hi def link crontabMnth12 Number hi def link crontabMnthS Number hi def link crontabMnthN Number hi def link crontabDow PreProc hi def link crontabDow7 PreProc hi def link crontabDowS PreProc hi def link crontabDowN PreProc hi def link crontabNick Special hi def link crontabVar Identifier hi def link crontabPercent Special " comment out next line for to suppress unix commands coloring. hi def link crontabCmd Statement hi def link crontabCmnt Comment let b:current_syntax = "crontab" " vim: ts=8