view runtime/syntax/rcs.vim @ 21072:42e2fb7ec6e1

patch 8.2.1087: possible memory leak when file expansion fails Commit: https://github.com/vim/vim/commit/566cc8c72bb8036f015a435800f28ef9f6a9a3b6 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jun 29 21:14:51 2020 +0200 patch 8.2.1087: possible memory leak when file expansion fails Problem: Possible memory leak when file expansion fails. Solution: Clear the grow array when returning FAIL. Use an error message instead of an empty string.
author Bram Moolenaar <Bram@vim.org>
date Mon, 29 Jun 2020 21:15:03 +0200
parents 46763b01cd9a
children
line wrap: on
line source

" Vim syntax file
" Language:     RCS file
" Maintainer:   Dmitry Vasiliev <dima at hlabs dot org>
" URL:          https://github.com/hdima/vim-scripts/blob/master/syntax/rcs.vim
" Last Change:  2012-02-11
" Filenames:    *,v
" Version:      1.12

" Options:
"   rcs_folding = 1   For folding strings

" quit when a syntax file was already loaded.
if exists("b:current_syntax")
  finish
endif

" RCS file must end with a newline.
syn match rcsEOFError   ".\%$" containedin=ALL

" Keywords.
syn keyword rcsKeyword  head branch access symbols locks strict
syn keyword rcsKeyword  comment expand date author state branches
syn keyword rcsKeyword  next desc log
syn keyword rcsKeyword  text nextgroup=rcsTextStr skipwhite skipempty

" Revision numbers and dates.
syn match rcsNumber "\<[0-9.]\+\>" display

" Strings.
if exists("rcs_folding") && has("folding")
  " Folded strings.
  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial
  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines
else
  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial
  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines
endif
syn match rcsSpecial    "@@" contained
syn match rcsDiffLines  "[da]\d\+ \d\+$" contained

" Synchronization.
syn sync clear
if exists("rcs_folding") && has("folding")
  syn sync fromstart
else
  " We have incorrect folding if following sync patterns is turned on.
  syn sync match rcsSync    grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1
  syn sync match rcsSync    grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1
endif

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

hi def link rcsKeyword     Keyword
hi def link rcsNumber      Identifier
hi def link rcsString      String
hi def link rcsTextStr     String
hi def link rcsSpecial     Special
hi def link rcsDiffLines   Special
hi def link rcsEOFError    Error


let b:current_syntax = "rcs"