git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/branches/freeze-1_6_0@16062 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2003-02-24 08:22:51 +00:00
parent b25c34f4e1
commit a68f798dbc
2 changed files with 41 additions and 8 deletions

View file

@ -1,3 +1,13 @@
2003-02-24 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSProcessInfo.m (_gnu_process_args): Tidied patch and add
code to print error and abort if argv is null under unixy systems.
2003-02-24 Tom Koelman <tkoelman@xs4all.nl>
* Source/NSProcessInfo.m (_gnu_process_args): If argv is 0 (e.g.
on MingW) set executable name using module name info.
2003-02-23 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSUser.m: Don't prepend HOMEDRIVE to HOMEPATH if HOMEPATH

View file

@ -179,20 +179,43 @@ _gnu_process_args(int argc, char *argv[], char *env[])
free(_gnu_arg_zero);
}
if (argv)
{
if (argv != 0)
{
_gnu_arg_zero = (char*)malloc(strlen(argv[0]) + 1);
strcpy(_gnu_arg_zero, argv[0]);
}
}
else
{
_gnu_arg_zero = (char*)malloc(1);
_gnu_arg_zero[0] = '\0';
}
{
#ifdef __MINGW__
char *buffer;
int buffer_size = 0;
int needed_size = 0;
while (needed_size == buffer_size)
{
buffer_size = buffer_size + 256;
buffer = (char*)malloc(buffer_size);
needed_size = GetModuleFileNameA(NULL, buffer, buffer_size);
if (needed_size < buffer_size)
{
_gnu_arg_zero = buffer;
}
else
{
free(buffer);
}
}
#else
fprintf(stderr, "Error: for some reason, argv == NULL "
"during GNUstep base initialization\n");
abort();
#endif
}
/* Getting the process name */
IF_NO_GC(RELEASE(_gnu_processName));
_gnu_processName = [[NSString stringWithCString: _gnu_arg_zero] lastPathComponent];
_gnu_processName
= [[NSString stringWithCString: _gnu_arg_zero] lastPathComponent];
IF_NO_GC(RETAIN(_gnu_processName));