Mercurial > vim
view runtime/syntax/sindaout.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 | 46763b01cd9a |
children |
line wrap: on
line source
" Vim syntax file " Language: sinda85, sinda/fluint output file " Maintainer: Adrian Nagle, anagle@ball.com " Last Change: 2003 May 11 " Filenames: *.out " URL: http://www.naglenet.org/vim/syntax/sindaout.vim " MAIN URL: http://www.naglenet.org/vim/ " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif " Ignore case syn case match " Load SINDA syntax file runtime! syntax/sinda.vim unlet b:current_syntax " " " Begin syntax definitions for sinda output files. " " Define keywords for sinda output syn case match syn keyword sindaoutPos ON SI syn keyword sindaoutNeg OFF ENG " Define matches for sinda output syn match sindaoutFile ": \w*\.TAK"hs=s+2 syn match sindaoutInteger "T\=[0-9]*\>"ms=s+1 syn match sindaoutSectionDelim "[-<>]\{4,}" contains=sindaoutSectionTitle syn match sindaoutSectionDelim ":\=\.\{4,}:\=" contains=sindaoutSectionTitle syn match sindaoutSectionTitle "[-<:] \w[0-9A-Za-z_() ]\+ [->:]"hs=s+1,me=e-1 syn match sindaoutHeaderDelim "=\{5,}" syn match sindaoutHeaderDelim "|\{5,}" syn match sindaoutHeaderDelim "+\{5,}" syn match sindaoutLabel "Input File:" contains=sindaoutFile syn match sindaoutLabel "Begin Solution: Routine" syn match sindaoutError "<<< Error >>>" " Define the default highlighting " Only when an item doesn't have highlighting yet hi sindaHeaderDelim ctermfg=Black ctermbg=Green guifg=Black guibg=Green hi def link sindaoutPos Statement hi def link sindaoutNeg PreProc hi def link sindaoutTitle Type hi def link sindaoutFile sindaIncludeFile hi def link sindaoutInteger sindaInteger hi def link sindaoutSectionDelim Delimiter hi def link sindaoutSectionTitle Exception hi def link sindaoutHeaderDelim SpecialComment hi def link sindaoutLabel Identifier hi def link sindaoutError Error let b:current_syntax = "sindaout" " vim: ts=8 sw=2