The last character of the argument is chopped as if it was a quote.
Tested on x86-64/Windows, applied on the mainline.
2025-10-24 Mivirl <[email protected]>
PR ada/122367
* rtinit.c (__gnat_runtime_initialize) [__MINGW32__]: Fix detection
of quoted arguments.
--
Eric Botcazoudiff --git a/gcc/ada/rtinit.c b/gcc/ada/rtinit.c
index 6a135529870..598550c4051 100644
--- a/gcc/ada/rtinit.c
+++ b/gcc/ada/rtinit.c
@@ -419,6 +419,7 @@ __gnat_runtime_initialize (int install_handler)
int last;
int argc_expanded = 0;
TCHAR result [MAX_PATH];
+ int arglen;
int quoted;
__gnat_get_argw (GetCommandLineW (), &wargv, &wargc);
@@ -436,7 +437,10 @@ __gnat_runtime_initialize (int install_handler)
for (k=1; k<wargc; k++)
{
- quoted = (wargv[k][0] == _T('\''));
+ arglen = _tcslen (wargv[k]);
+ quoted = wargv[k][0] == _T('\'')
+ && arglen > 1
+ && wargv[k][arglen - 1] == _T('\'');
/* Check for wildcard expansion if the argument is not quoted. */
if (!quoted && __gnat_do_argv_expansion