mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
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>
This commit is contained in:
committed by
Christian Brabandt
parent
63210c214a
commit
6fdb628082
@@ -198,10 +198,10 @@ get_function_line(
|
||||
{
|
||||
char_u *theline;
|
||||
|
||||
if (eap->getline == NULL)
|
||||
if (eap->ea_getline == NULL)
|
||||
theline = getcmdline(':', 0L, indent, 0);
|
||||
else
|
||||
theline = eap->getline(':', eap->cookie, indent, getline_options);
|
||||
theline = eap->ea_getline(':', eap->cookie, indent, getline_options);
|
||||
if (theline != NULL)
|
||||
{
|
||||
if (lines_to_free->ga_len > 0
|
||||
@@ -264,7 +264,7 @@ get_function_args(
|
||||
p = arg;
|
||||
while (*p != endchar)
|
||||
{
|
||||
while (eap != NULL && eap->getline != NULL
|
||||
while (eap != NULL && eap->ea_getline != NULL
|
||||
&& (*p == NUL || (VIM_ISWHITE(*whitep) && *p == '#')))
|
||||
{
|
||||
// End of the line, get the next one.
|
||||
@@ -889,7 +889,7 @@ get_function_body(
|
||||
|
||||
// Detect having skipped over comment lines to find the return
|
||||
// type. Add NULL lines to keep the line count correct.
|
||||
sourcing_lnum_off = get_sourced_lnum(eap->getline, eap->cookie);
|
||||
sourcing_lnum_off = get_sourced_lnum(eap->ea_getline, eap->cookie);
|
||||
if (SOURCING_LNUM < sourcing_lnum_off)
|
||||
{
|
||||
sourcing_lnum_off -= SOURCING_LNUM;
|
||||
@@ -952,7 +952,7 @@ get_function_body(
|
||||
}
|
||||
|
||||
// Detect line continuation: SOURCING_LNUM increased more than one.
|
||||
sourcing_lnum_off = get_sourced_lnum(eap->getline, eap->cookie);
|
||||
sourcing_lnum_off = get_sourced_lnum(eap->ea_getline, eap->cookie);
|
||||
if (SOURCING_LNUM < sourcing_lnum_off)
|
||||
sourcing_lnum_off -= SOURCING_LNUM;
|
||||
else
|
||||
@@ -1349,7 +1349,7 @@ lambda_function_body(
|
||||
fill_exarg_from_cctx(&eap, evalarg->eval_cctx);
|
||||
else
|
||||
{
|
||||
eap.getline = evalarg->eval_getline;
|
||||
eap.ea_getline = evalarg->eval_getline;
|
||||
eap.cookie = evalarg->eval_cookie;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user