Merged in 1.6.0 branch

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@16228 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2003-03-23 07:06:27 +00:00
parent c4b26f8afa
commit 5c49ef401a
38 changed files with 812 additions and 295 deletions

View file

@ -178,31 +178,70 @@ _gnu_process_args(int argc, char *argv[], char *env[])
{
free(_gnu_arg_zero);
}
_gnu_arg_zero = (char*)malloc(strlen(argv[0]) + 1);
strcpy(_gnu_arg_zero, argv[0]);
if (argv != 0)
{
_gnu_arg_zero = (char*)malloc(strlen(argv[0]) + 1);
strcpy(_gnu_arg_zero, argv[0]);
}
else
{
#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: argv[0]] lastPathComponent];
_gnu_processName
= [[NSString stringWithCString: _gnu_arg_zero] lastPathComponent];
IF_NO_GC(RETAIN(_gnu_processName));
/* Copy the argument list */
{
NSString *str;
NSMutableSet *mySet;
id obj_argv[argc];
int added = 0;
int added = 1;
mySet = [NSMutableSet new];
for (i = 0; i < argc; i++)
/* Copy the zero'th argument to the argument list */
str = [NSString stringWithCString: _gnu_arg_zero];
obj_argv[0] = str;
for (i = 1; i < argc; i++)
{
NSString *str = [NSString stringWithCString: argv[i]];
str = [NSString stringWithCString: argv[i]];
if ([str hasPrefix: @"--GNU-Debug="])
[mySet addObject: [str substringFromIndex: 12]];
else
obj_argv[added++] = str;
}
IF_NO_GC(RELEASE(_gnu_arguments));
_gnu_arguments = [[NSArray alloc] initWithObjects: obj_argv count: added];
IF_NO_GC(RELEASE(_debug_set));
@ -710,6 +749,10 @@ int main(int argc, char *argv[], char *env[])
{
os = NSBeOperatingSystem;
}
else if ([n hasPrefix: @"darwin"] == YES)
{
os = NSMACHOperatingSystem;
}
else if ([n hasPrefix: @"solaris"] == YES)
{
os = NSSolarisOperatingSystem;