view runtime/syntax/limits.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 1218c5353e2b
children
line wrap: on
line source

" Vim syntax file
" Language:             limits(5) configuration file
" Previous 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 keyword limitsTodo    contained TODO FIXME XXX NOTE

syn region  limitsComment display oneline start='^\s*#' end='$'
                          \ contains=limitsTodo,@Spell

syn match   limitsBegin   display '^'
                          \ nextgroup=limitsUser,limitsDefault,limitsComment
                          \ skipwhite

syn match   limitsUser    contained '[^ \t#*]\+'
                          \ nextgroup=limitsLimit,limitsDeLimit skipwhite

syn match   limitsDefault contained '*'
                          \ nextgroup=limitsLimit,limitsDeLimit skipwhite

syn match   limitsLimit   contained '[ACDFMNRSTUKLP]' nextgroup=limitsNumber
syn match   limitsDeLimit contained '-'

syn match   limitsNumber  contained '\d\+\>' nextgroup=limitsLimit skipwhite

hi def link limitsTodo    Todo
hi def link limitsComment Comment
hi def link limitsUser    Keyword
hi def link limitsDefault Macro
hi def link limitsLimit   Identifier
hi def link limitsDeLimit Special
hi def link limitsNumber  Number

let b:current_syntax = "limits"

let &cpo = s:cpo_save
unlet s:cpo_save