forked from aniani/vim
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
@@ -1110,7 +1110,7 @@ may_get_cmd_block(exarg_T *eap, char_u *p, char_u **tofree, int *flags)
|
||||
char_u *retp = p;
|
||||
|
||||
if (*p == '{' && ends_excmd2(eap->arg, skipwhite(p + 1))
|
||||
&& eap->getline != NULL)
|
||||
&& eap->ea_getline != NULL)
|
||||
{
|
||||
garray_T ga;
|
||||
char_u *line = NULL;
|
||||
@@ -1127,7 +1127,7 @@ may_get_cmd_block(exarg_T *eap, char_u *p, char_u **tofree, int *flags)
|
||||
for (;;)
|
||||
{
|
||||
vim_free(line);
|
||||
if ((line = eap->getline(':', eap->cookie,
|
||||
if ((line = eap->ea_getline(':', eap->cookie,
|
||||
0, GETLINE_CONCAT_CONTBAR)) == NULL)
|
||||
{
|
||||
emsg(_(e_missing_rcurly));
|
||||
@@ -1955,7 +1955,7 @@ do_ucmd(exarg_T *eap)
|
||||
#endif
|
||||
}
|
||||
|
||||
(void)do_cmdline(buf, eap->getline, eap->cookie,
|
||||
(void)do_cmdline(buf, eap->ea_getline, eap->cookie,
|
||||
DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED);
|
||||
|
||||
// Careful: Do not use "cmd" here, it may have become invalid if a user
|
||||
|
Reference in New Issue
Block a user