/* * File: dxfm.c * Project: DXF to RIB * (c) SPDsoft Tuesday, June 21, 1994, GTIC */ /* * Looks better at 4 spaces/tab * */ #include #include #include #include /* tolow */ #include "taylor.h" #include "errors.h" #include "prefs.h" #ifdef THINK_C #include #define MAX_FNAME_L 256 #else #define MAX_FNAME_L 14 #endif #define SML 256 #ifdef MYGETOPT char getopt( int argc, char *argv[], char *format ); #endif #define tolow(c) (isupper(c) ? (c)-'A'+'a' : (c)) char* g_ProgName; char g_iname[SML]; char g_oname[SML]; PrefsType Prefs; extern int optind; static int make_oname( char *name, char *suffix , char *osuffix); extern int process(FILE* i_f, FILE* o_f); int main( int argc, char *argv[] ) { int i; FILE *i_f, *o_f; #ifdef THINK_C argc = ccommand(&argv); #endif g_ProgName=argv[0]; GetPrefs(&Prefs,argc,argv); for(i=0; i %s",g_iname,g_oname); DoError(NO_ERR,DEBUG_ERR,"Opening %d %s",i,g_iname); i_f=(Prefs.fromstdin ? stdin : FOPEN(g_iname,"r")); if(NULL==i_f) DoError(SYS_ERR,WARN_ERR,"File: %s:",g_iname); else { o_f = (Prefs.tostdout ? stdout : FOPEN(g_oname,"w")); if(NULL==o_f) DoError(SYS_ERR,WARN_ERR,"File: %s:",g_iname); else { process(i_f, o_f); if(EOF==fclose(o_f)) DoError(SYS_ERR,WARN_ERR,"File: %s:",g_oname); else DoError(NO_ERR,DEBUG_ERR,"Closed %d %s",i,g_oname); } if(EOF==fclose(i_f)) DoError(SYS_ERR,WARN_ERR,"File: %s:",g_iname); else DoError(NO_ERR,DEBUG_ERR,"Closed %d %s",i,g_iname); } } if(Prefs.shaderf) { if(EOF==fclose(Prefs.shaderf)) DoError(SYS_ERR,WARN_ERR,"File: shaders file:"); else DoError(NO_ERR,DEBUG_ERR,"Closed shaders file"); } exit(0); } static int make_oname( char *name, char *suffix , char *osuffix) { char *p; if (strlen(name)>MAX_FNAME_L) return(2); p=name+strlen(name); DoError(NO_ERR,DEBUG_ERR,"suffix %d ",MAX_FNAME_L); while((*p!='.')&&(p>name+1)) { p--; *p = tolow(*p); } if(0==strcmp(++p,suffix)) { strcpy(p,osuffix); return(0); } else return(1); }