view runtime/syntax/sgmldecl.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 46763b01cd9a
children
line wrap: on
line source

" Vim syntax file
" Language:	SGML (SGML Declaration <!SGML ...>)
" Last Change: jueves, 28 de diciembre de 2000, 13:51:44 CLST
" Maintainer: "Daniel A. Molina W." <sickd@linux-chile.org>
" You can modify and maintain this file, in other case send comments
" the maintainer email address.

" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif
let s:keepcpo= &cpo
set cpo&vim

syn case ignore

syn region	sgmldeclDeclBlock	transparent start=+<!SGML+ end=+>+
syn region	sgmldeclTagBlock	transparent start=+<+ end=+>+
					\ contains=ALLBUT,
					\ @sgmlTagError,@sgmlErrInTag
syn region	sgmldeclComment		contained start=+--+ end=+--+

syn keyword	sgmldeclDeclKeys	SGML CHARSET CAPACITY SCOPE SYNTAX
					\ FEATURES

syn keyword	sgmldeclTypes		BASESET DESCSET DOCUMENT NAMING DELIM
					\ NAMES QUANTITY SHUNCHAR DOCTYPE
					\ ELEMENT ENTITY ATTLIST NOTATION
					\ TYPE

syn keyword	sgmldeclStatem		CONTROLS FUNCTION NAMECASE MINIMIZE
					\ LINK OTHER APPINFO REF ENTITIES

syn keyword sgmldeclVariables	TOTALCAP GRPCAP ENTCAP DATATAG OMITTAG RANK
					\ SIMPLE IMPLICIT EXPLICIT CONCUR SUBDOC FORMAL ATTCAP
					\ ATTCHCAP AVGRPCAP ELEMCAP ENTCHCAP IDCAP IDREFCAP
					\ SHORTTAG

syn match	sgmldeclNConst		contained +[0-9]\++

syn region	sgmldeclString		contained start=+"+ end=+"+

syn keyword	sgmldeclBool		YES NO

syn keyword	sgmldeclSpecial		SHORTREF SGMLREF UNUSED NONE GENERAL
					\ SEEALSO ANY

syn sync lines=250


" Define the default highlighting.
" Only when an item doesn't have highlighting yet

hi def link sgmldeclDeclKeys	Keyword
hi def link sgmldeclTypes		Type
hi def link sgmldeclConst		Constant
hi def link sgmldeclNConst		Constant
hi def link sgmldeclString		String
hi def link sgmldeclDeclBlock	Normal
hi def link sgmldeclBool		Boolean
hi def link sgmldeclSpecial		Special
hi def link sgmldeclComment		Comment
hi def link sgmldeclStatem		Statement
hi def link sgmldeclVariables	Type


let b:current_syntax = "sgmldecl"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:set tw=78 ts=4: