http://www.riscos.info/bugzilla3/show_bug.cgi?id=237
Summary: Ampersands in command line arguments.
Product: GCC/GCCSDK
Version: other
Platform: Other
OS/Version: RISC OS
Status: NEW
Severity: normal
Priority: P1
Component: C compiler
AssignedTo: John.Tytgat@aaug.net
ReportedBy: duncan_moore@ntlworld.com
Estimated Hours: 0.0
GCCSDK GCC 4.1.2 Release 2 Development 2012-05-05
VRPC RISC OS 4.39
#include <stdio.h>
int main(int argc,char** argv) {
while (*++argv) printf("%s\n",*argv);
return 0;
}
I've had trouble passing command line arguments with ampersands in them.
For example, I would expect:
*test &0 &0,&1 &9,&1 &-,&1 "&0,&1" &a,&b
&0
&0,&1
&9,&1
&-,&1
&0,&1
&a,&b
*
but get:
*test &0 &0,&1 &9,&1 &-,&1 "&0,&1" &a,&b
&0
&0
&9
&-
&a,&b
*
(The argument in double quotes is missing completely.) The arguments seem to be
confused with redirection file descriptors, 2>&1 2>&- etc.
With just small changes to an argument, it can be quite unpredictable as to
what's going to be passed through. The only way I've found to get what I
originally wanted was to protect the first ampersand with both "" and \
*test "\&0,&1"
&0,&1
*
--
Configure bugmail: http://www.riscos.info/bugzilla3/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK
No comments:
Post a Comment