Mercurial > vim
view runtime/syntax/modula2.vim @ 33988:7c30841c60a0 v9.0.2180
patch 9.0.2180: POSIX function name in exarg causes issues
Commit: https://github.com/vim/vim/commit/6fdb6280821a822768df5689a5d727e37d38306c
Author: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Date: Tue Dec 19 20:53:07 2023 +0100
patch 9.0.2180: POSIX function name in exarg causes issues
Problem: POSIX function name in exarg struct causes issues
on OpenVMS
Solution: Rename getline member in exarg struct to ea_getline,
remove isinf() workaround for VMS
There are compilers that do not treat well POSIX functions - like
getline - usage in the structs.
Older VMS compilers could digest this... but the newer OpenVMS compilers
( like VSI C x86-64 X7.4-843 (GEM 50XB9) ) cannot deal with these
structs. This could be limited to getline() that is defined via
getdelim() and might not affect all POSIX functions in general - but
avoiding POSIX function names usage in the structs is a "safe side"
practice without compromising the functionality or the code readability.
The previous OpenVMS X86 port used a workaround limiting the compiler
capabilities using __CRTL_VER_OVERRIDE=80400000
In order to make the OpenVMS port future proof, this pull request
proposes a possible solution.
closes: #13704
Signed-off-by: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Dec 2023 21:00:04 +0100 |
parents | 46763b01cd9a |
children | ff27442e7851 |
line wrap: on
line source
" Vim syntax file " Language: Modula 2 " Maintainer: pf@artcom0.north.de (Peter Funk) " based on original work of Bram Moolenaar <Bram@vim.org> " Last Change: 2001 May 09 " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif " Don't ignore case (Modula-2 is case significant). This is the default in vim " Especially emphasize headers of procedures and modules: syn region modula2Header matchgroup=modula2Header start="PROCEDURE " end="(" contains=modula2Ident oneline syn region modula2Header matchgroup=modula2Header start="MODULE " end=";" contains=modula2Ident oneline syn region modula2Header matchgroup=modula2Header start="BEGIN (\*" end="\*)" contains=modula2Ident oneline syn region modula2Header matchgroup=modula2Header start="END " end=";" contains=modula2Ident oneline syn region modula2Keyword start="END" end=";" contains=ALLBUT,modula2Ident oneline " Some very important keywords which should be emphasized more than others: syn keyword modula2AttKeyword CONST EXIT HALT RETURN TYPE VAR " All other keywords in alphabetical order: syn keyword modula2Keyword AND ARRAY BY CASE DEFINITION DIV DO ELSE syn keyword modula2Keyword ELSIF EXPORT FOR FROM IF IMPLEMENTATION IMPORT syn keyword modula2Keyword IN LOOP MOD NOT OF OR POINTER QUALIFIED RECORD syn keyword modula2Keyword SET THEN TO UNTIL WHILE WITH syn keyword modula2Type ADDRESS BITSET BOOLEAN CARDINAL CHAR INTEGER REAL WORD syn keyword modula2StdFunc ABS CAP CHR DEC EXCL INC INCL ORD SIZE TSIZE VAL syn keyword modula2StdConst FALSE NIL TRUE " The following may be discussed, since NEW and DISPOSE are some kind of " special builtin macro functions: syn keyword modula2StdFunc NEW DISPOSE " The following types are added later on and may be missing from older " Modula-2 Compilers (they are at least missing from the original report " by N.Wirth from March 1980 ;-) Highlighting should apply nevertheless: syn keyword modula2Type BYTE LONGCARD LONGINT LONGREAL PROC SHORTCARD SHORTINT " same note applies to min and max, which were also added later to m2: syn keyword modula2StdFunc MAX MIN " The underscore was originally disallowed in m2 ids, it was also added later: syn match modula2Ident " [A-Z,a-z][A-Z,a-z,0-9,_]*" contained " Comments may be nested in Modula-2: syn region modula2Comment start="(\*" end="\*)" contains=modula2Comment,modula2Todo syn keyword modula2Todo contained TODO FIXME XXX " Strings syn region modula2String start=+"+ end=+"+ syn region modula2String start="'" end="'" syn region modula2Set start="{" end="}" " Define the default highlighting. " Only when an item doesn't have highlighting yet hi def link modula2Ident Identifier hi def link modula2StdConst Boolean hi def link modula2Type Identifier hi def link modula2StdFunc Identifier hi def link modula2Header Type hi def link modula2Keyword Statement hi def link modula2AttKeyword PreProc hi def link modula2Comment Comment " The following is just a matter of taste (you want to try this instead): " hi modula2Comment term=bold ctermfg=DarkBlue guifg=Blue gui=bold hi def link modula2Todo Todo hi def link modula2String String hi def link modula2Set String let b:current_syntax = "modula2" " vim: ts=8