This is Schematik_main.m in view mode; [Download] [Up]
/* Copyright 1991 Gustavus Adolphus College. All rights reserved.
*
* Schematik was developed by Gustavus Adolphus College (GAC) with
* support from NeXT Computer, Inc. Permission to copy this software,
* to redistribute it, and to use it for any purpose is granted,
* subject to the following restrictions and understandings.
*
* 1. Any copy made of this software must include this copyright
* notice in full.
*
* 2. Users of this software agree to make their best efforts (a) to
* return to the GAC Mathematics and Computer Science Department any
* improvements or extensions that they make, so that these may be
* included in future releases; and (b) to inform GAC of noteworthy
* uses of this software.
*
* 3. All materials developed as a consequence of the use of this
* software shall duly acknowledge such use, in accordance with the
* usual standards of acknowledging credit in academic research.
*
* 4. GAC makes no express or implied warranty or representation of
* any kind with respect to this software, including any warranty
* that the operation of this software will be error-free. ANY
* IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
* PURPOSE IS HEREBY DISCLAIMED. GAC is under no obligation to
* provide any services, by way of maintenance, update, or otherwise.
*
* 5. In conjunction with products arising from the use of this
* material, there shall be no use of the name of Gustavus Adolphus
* College nor of any adaptation thereof in any advertising,
* promotional, or sales literature without prior written consent
* from GAC in each case.
*/
#import "defines.h"
#import "Main.h"
#import "Agent.subproj/PrefAgent.h"
#import "Main.subproj/SchemeProtocol.h"
#import <stdlib.h>
#import <string.h>
#import <syslog.h>
#define NIBFILE "Schematik.nib"
char *stlchr(const char *, int);
static void exit_monitor(void);
char *appDirectory;
void main(int argc, char *argv[])
{
atexit(exit_monitor);
appDirectory = stlchr(NXCopyStringBuffer(argv[0]), PATHSEPARATOR);
NXApp = [Main new];
DEBUG_ASSERT(NXApp!=nil)
[[NXApp prefAgent] loadLocalMainMenu:NIBFILE];
[NXApp addWindowsItem:[NXApp interactionWindow] title:INTERWINDOWTITLE filename:NO];
[NXApp run];
[NXApp free];
exit(0);
}
static void exit_monitor()
{
if(schemePid){
int result=kill(schemePid, 9);
if (result<0)
syslog(LOG_WARNING|LOG_LOCAL1, "Scheme kill unsuccessful in exit_monitor(). Scheme pid:%i errno=%i (%s).", schemePid, errno, strerror(errno));
else
schemePid=0;
}
}
char *stlchr(char *path, int chr)
{
int x=strlen(path);
while (x)
if (path[--x]==chr)
{
path[x] = '\0';
break;
}
return (path);
}
#ifdef DEBUG
void translateencoding(char *encoding, void *argFrame, int offset)
{
switch (*encoding)
{
case _C_CHR : DEBUG_PRINTF "(char)%c ",marg_getValue(argFrame,offset,char)); break;
case _C_UCHR: DEBUG_PRINTF "(unsigned char)%c ",marg_getValue(argFrame,offset,unsigned char)); break;
case _C_INT : DEBUG_PRINTF "(int)%i ",marg_getValue(argFrame,offset,int)); break;
case _C_UINT: DEBUG_PRINTF "(unsigned)%u ",marg_getValue(argFrame,offset,unsigned)); break;
case _C_SHT : DEBUG_PRINTF "(short)%hi ",marg_getValue(argFrame,offset,short)); break;
case _C_USHT: DEBUG_PRINTF "(unsigned short)%hu ",marg_getValue(argFrame,offset,unsigned short)); break;
case _C_LNG : DEBUG_PRINTF "(long)%li ",marg_getValue(argFrame,offset,long)); break;
case _C_ULNG: DEBUG_PRINTF "(unsigned long)%lu ",marg_getValue(argFrame,offset,unsigned long)); break;
case _C_FLT : DEBUG_PRINTF "(float)%g ",marg_getValue(argFrame,offset,double)); break;
case _C_DBL : DEBUG_PRINTF "(double)%g ",marg_getValue(argFrame,offset,double)); break;
case _C_VOID: DEBUG_PRINTF "(void) "); break;
case _C_SEL : DEBUG_PRINTF "(SEL)%s ",sel_getName(marg_getValue(argFrame,offset,SEL))); break;
case _C_ID : DEBUG_PRINTF "(id)%s ",[marg_getValue(argFrame,offset,id) name]); break;
case _C_BFLD: DEBUG_PRINTF "(bitfield)%i ",marg_getValue(argFrame,offset,int)); break;
case _C_CHARPTR : DEBUG_PRINTF "(char *)%s ",marg_getValue(argFrame,offset,char *)); break;
case _C_CLASS : DEBUG_PRINTF "(Class)%s ",marg_getValue(argFrame,offset,Class)->name); break;
case _C_ARY_B : DEBUG_PRINTF "(array) "); break;
case _C_STRUCT_B: DEBUG_PRINTF "(struct) "); break;
case _C_UNION_B : DEBUG_PRINTF "(union) "); break;
case _C_PTR : DEBUG_PRINTF "(pointer) "); break;
case _C_UNDEF : DEBUG_PRINTF "<unknown> "); break;
default : DEBUG_PRINTF "<unsupported> "); break;
}
}
#endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.