Mercurial > vim
view runtime/syntax/lite.vim @ 33872:2c5ae1ce5af2 v9.0.2146
patch 9.0.2146: text-property without type errors when joining
Commit: https://github.com/vim/vim/commit/0d0b3b19517c321b089d637919e88e49a07a3d85
Author: Christian Brabandt <cb@256bit.org>
Date: Sun Dec 3 17:56:43 2023 +0100
patch 9.0.2146: text-property without type errors when joining
Problem: text-property without type errors when joining
Solution: count all text-properties, with or without type
before joining lines
Error when joining lines with text properties without a proper type
When joining lines, we need to consider all text properties that are
attached to a line, even when those text properties are invalid and do
not have a type attached to them.
However, since patch v9.0.0993
(commit: 89469d157aea01513bde826b4519dd6b5fbceae4)
those text properties won't be counted when joining lines and therefore
this will cause the adjustment for text properties on joining to go
wrong (and may later cause SIGABRT with an invalid free pointer)
I am not sure, why the condition to not count text properties with a
valid type was added in patch v9.0.993, because no test fails if those
condition is removed. So let's just remove this condition and add a test
that verifies, that we are able to join lines, even when the text
properties attached to it do not have a valid type.
fixes: #13609
closes: #13614
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 10 Dec 2023 15:16:11 +0100 |
parents | d46f974fd69e |
children |
line wrap: on
line source
" Vim syntax file " Language: lite " Maintainer: Lutz Eymers <ixtab@polzin.com> " URL: http://www.isp.de/data/lite.vim " Email: Subject: send syntax_vim.tgz " Last Change: 2001 Mai 01 " " Options lite_sql_query = 1 for SQL syntax highlighting inside strings " lite_minlines = x to sync at least x lines backwards " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif if !exists("main_syntax") let main_syntax = 'lite' endif if main_syntax == 'lite' if exists("lite_sql_query") if lite_sql_query == 1 syn include @liteSql <sfile>:p:h/sql.vim unlet b:current_syntax endif endif endif if main_syntax == 'msql' if exists("msql_sql_query") if msql_sql_query == 1 syn include @liteSql <sfile>:p:h/sql.vim unlet b:current_syntax endif endif endif syn cluster liteSql remove=sqlString,sqlComment syn case match " Internal Variables syn keyword liteIntVar ERRMSG contained " Comment syn region liteComment start="/\*" end="\*/" contains=liteTodo " Function names syn keyword liteFunctions echo printf fprintf open close read syn keyword liteFunctions readln readtok syn keyword liteFunctions split strseg chop tr sub substr syn keyword liteFunctions test unlink umask chmod mkdir chdir rmdir syn keyword liteFunctions rename truncate link symlink stat syn keyword liteFunctions sleep system getpid getppid kill syn keyword liteFunctions time ctime time2unixtime unixtime2year syn keyword liteFunctions unixtime2year unixtime2month unixtime2day syn keyword liteFunctions unixtime2hour unixtime2min unixtime2sec syn keyword liteFunctions strftime syn keyword liteFunctions getpwnam getpwuid syn keyword liteFunctions gethostbyname gethostbyaddress syn keyword liteFunctions urlEncode setContentType includeFile syn keyword liteFunctions msqlConnect msqlClose msqlSelectDB syn keyword liteFunctions msqlQuery msqlStoreResult msqlFreeResult syn keyword liteFunctions msqlFetchRow msqlDataSeek msqlListDBs syn keyword liteFunctions msqlListTables msqlInitFieldList msqlListField syn keyword liteFunctions msqlFieldSeek msqlNumRows msqlEncode syn keyword liteFunctions exit fatal typeof syn keyword liteFunctions crypt addHttpHeader " Conditional syn keyword liteConditional if else " Repeat syn keyword liteRepeat while " Operator syn keyword liteStatement break return continue " Operator syn match liteOperator "[-+=#*]" syn match liteOperator "/[^*]"me=e-1 syn match liteOperator "\$" syn match liteRelation "&&" syn match liteRelation "||" syn match liteRelation "[!=<>]=" syn match liteRelation "[<>]" " Identifier syn match liteIdentifier "$\h\w*" contains=liteIntVar,liteOperator syn match liteGlobalIdentifier "@\h\w*" contains=liteIntVar " Include syn keyword liteInclude load " Define syn keyword liteDefine funct " Type syn keyword liteType int uint char real " String syn region liteString keepend matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=liteIdentifier,liteSpecialChar,@liteSql " Number syn match liteNumber "-\=\<\d\+\>" " Float syn match liteFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" " SpecialChar syn match liteSpecialChar "\\[abcfnrtv\\]" contained syn match liteParentError "[)}\]]" " Todo syn keyword liteTodo TODO Todo todo contained " dont syn #!... syn match liteExec "^#!.*$" " Parents syn cluster liteInside contains=liteComment,liteFunctions,liteIdentifier,liteGlobalIdentifier,liteConditional,liteRepeat,liteStatement,liteOperator,liteRelation,liteType,liteString,liteNumber,liteFloat,liteParent syn region liteParent matchgroup=Delimiter start="(" end=")" contains=@liteInside syn region liteParent matchgroup=Delimiter start="{" end="}" contains=@liteInside syn region liteParent matchgroup=Delimiter start="\[" end="\]" contains=@liteInside " sync if main_syntax == 'lite' if exists("lite_minlines") exec "syn sync minlines=" . lite_minlines else syn sync minlines=100 endif endif " Define the default highlighting. " Only when an item doesn't have highlighting yet hi def link liteComment Comment hi def link liteString String hi def link liteNumber Number hi def link liteFloat Float hi def link liteIdentifier Identifier hi def link liteGlobalIdentifier Identifier hi def link liteIntVar Identifier hi def link liteFunctions Function hi def link liteRepeat Repeat hi def link liteConditional Conditional hi def link liteStatement Statement hi def link liteType Type hi def link liteInclude Include hi def link liteDefine Define hi def link liteSpecialChar SpecialChar hi def link liteParentError liteError hi def link liteError Error hi def link liteTodo Todo hi def link liteOperator Operator hi def link liteRelation Operator let b:current_syntax = "lite" if main_syntax == 'lite' unlet main_syntax endif " vim: ts=8