mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 06:31:31 +00:00
Fixed a comparison operator; so that the NULL at the end of argv[] is copied by InitCmdLine().
Most POSIX function libraries hid that long-time bug by putting zeroes in their dynamic RAM; but, MinGW's library doesn't do it. Therefore, a command like cl65 foo.c -l would crash with a "Segmentation fault" -- it should give a nice error message about "-l"; and, quit neatly.
This commit is contained in:
parent
a468a2e109
commit
a132bc4b28
@ -161,7 +161,7 @@ static void ExpandFile (CmdLine* L, const char* Name)
|
||||
|
||||
|
||||
|
||||
void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName)
|
||||
void InitCmdLine (int* aArgCount, char*** aArgVec, const char* aProgName)
|
||||
/* Initialize command line parsing. aArgVec is the argument array terminated by
|
||||
** a NULL pointer (as usual), ArgCount is the number of valid arguments in the
|
||||
** array. Both arguments are remembered in static storage.
|
||||
@ -171,7 +171,7 @@ void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName)
|
||||
int I;
|
||||
|
||||
/* Get the program name from argv[0] but strip a path */
|
||||
if (*(aArgVec)[0] == 0) {
|
||||
if ((*aArgVec)[0] == 0) {
|
||||
/* Use the default name given */
|
||||
ProgName = aProgName;
|
||||
} else {
|
||||
@ -190,7 +190,7 @@ void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName)
|
||||
** special handling for arguments preceeded by the '@' sign - these are
|
||||
** actually files containing arguments.
|
||||
*/
|
||||
for (I = 0; I < *aArgCount; ++I) {
|
||||
for (I = 0; I <= *aArgCount; ++I) {
|
||||
|
||||
/* Get the next argument */
|
||||
char* Arg = (*aArgVec)[I];
|
||||
|
@ -71,7 +71,7 @@ struct LongOpt {
|
||||
|
||||
|
||||
|
||||
void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName);
|
||||
void InitCmdLine (int* aArgCount, char*** aArgVec, const char* aProgName);
|
||||
/* Initialize command line parsing. aArgVec is the argument array terminated by
|
||||
** a NULL pointer (as usual), ArgCount is the number of valid arguments in the
|
||||
** array. Both arguments are remembered in static storage.
|
||||
|
Loading…
Reference in New Issue
Block a user