home *** CD-ROM | disk | FTP | other *** search
- #import <appkit/appkit.h>
- #import "defs.h"
-
- BOOL truthValue(const char *str)
- { if (!str) return NO;
- switch (str[0]|32) {
- case '1': case 'a': case 't': case 'y': return YES;
- default: return NO;
- }
- }
-
- const char *getDefaultWithErrorCheck(const char *defname)
- {
- register const char *a=[NXApp appName];
- const char *p;
- p=(char *)NXGetDefaultValue(a,defname);
- if(!p)
- { NXRunAlertPanel("Internal Error",
- "%s default undefined",
- NULL,NULL,NULL,defname);
- }
- return p;
- }
-
- BOOL BoolValueForDefault(const char *defname)
- {
- const char *p=getDefaultWithErrorCheck(defname);
- return truthValue(p);
- }
-
- int IntValueForDefault(const char *defname)
- {
- const char *p=getDefaultWithErrorCheck(defname);
- return atoi(p);
- }
-
- void copyStringBufferFromZone(char **ptr,const char *contents, NXZone *zone)
- {
- if(*ptr==contents) return;
- if(*ptr) free(*ptr);
-
- *ptr=NXCopyStringBufferFromZone(contents,zone);
- }
-
- BOOL makepath(char *parent,char *child, BOOL cleanFlag)
- {
- char *p1, buf[BUFSIZE];
- if(!child) return NO;
- if(parent)
- { if(mkdir(parent,0700)<0 && errno!=EEXIST) goto FAILED;
- sprintf(buf,"%s/%s",parent,child);
- }
- else strcpy(buf, child);
- p1=strstr(buf,child);
- for(;;)
- { p1=strchr(p1,'/');
- if(p1) p1[0]='\0';
- if(mkdir(buf,0700)<0 && errno!=EEXIST) goto FAILED;
- if(!p1) goto CLEAR_LABEL;
- p1[0]='/';
- p1++;
- }
- FAILED:
- return NO;
-
- CLEAR_LABEL:
- if(cleanFlag)
- { sprintf(buf,
- "exec /bin/rm -rf %s/%s/*",parent,child);
- if (chdir(NXHomeDirectory())>=0)
- system(buf);
- }
- return YES;
- }
-
- NXScreen *getScreenOfNumber(int screenNum)
- {
- int i,count;
- NXScreen *list;
- [NXApp getScreens:&list count:&count];
-
- for(i=0;i<count;i++)
- { if(list[i].screenNumber==screenNum)
- return &list[i];
- }
- return NULL;
- }
-
- char *findNameInPath(const char *path)
- {
- static char empty[]="";
- char *p=empty;
- if((p=strrchr(path,'/'))) p++;
- if(!p || !p[0]) p=(char *)path;
-
- return p;
- }
-
- BOOL extCheck(const char *path, const char *extension)
- {
- int len, pathLen;
- if(!path || !extension) return NO;
- len=strlen(extension);
- pathLen=strlen(path);
- return ((path[pathLen-len-1]=='.') &&
- (strcmp((char *)(path+(pathLen-len)),extension)==0));
- }
-
- void insertExt(const char *path, const char *extension)
- { if(!extCheck(path,extension))
- { int len=strlen(path);
- if(path[len-1]!='.') strcat((char *)path,".");
- strcat((char *)path,extension);
- }
- }
-
- void internalError(const char *message)
- { NXRunAlertPanel("Internal Error","%s",NULL,NULL,NULL,message);
- }
-
-
-