static void SetupImpLib( void ) /*****************************/ { const char *fname; size_t namelen; ImpLib.bufsize = 0; ImpLib.handle = NIL_FHANDLE; ImpLib.buffer = NULL; ImpLib.dllname = NULL; ImpLib.didone = false; if( FmtData.make_implib ) { _ChkAlloc( ImpLib.buffer, IMPLIB_BUFSIZE ); if( FmtData.make_impfile ) { ImpLib.fname = ChkStrDup( FmtData.implibname ); ImpLib.handle = QOpenRW( ImpLib.fname ); } else { ImpLib.handle = OpenTempFile( &ImpLib.fname ); } /* GetBaseName results in the filename only * * it trims both the path, and the extension */ fname = GetBaseName( Root->outfile->fname, 0, &namelen ); ImpLib.dlllen = namelen; /* * increase length to restore full extension if not OS2 * sometimes the extension of the output name is important */ ImpLib.dlllen += strlen( fname + namelen ); _ChkAlloc( ImpLib.dllname, ImpLib.dlllen ); memcpy( ImpLib.dllname, fname, ImpLib.dlllen ); } }
void MapInit( void ) /*************************/ { char tim[8 + 1]; char dat[8 + 1]; char *ptr; struct tm *localt; char *msg; Absolute_Seg = FALSE; Buffering = FALSE; // buffering on/off. if( (MapFlags & MAP_FLAG) == 0 ) return; MapFile = QOpenRW( MapFName ); StartMapBuffering(); localt = localtime( &StartT ); MapCol = 0; msg = MsgStrings[PRODUCT]; BufWrite( msg, strlen( msg ) ); WriteMapNL( 1 ); msg = MsgStrings[COPYRIGHT]; BufWrite( msg, strlen( msg ) ); WriteMapNL( 1 ); msg = MsgStrings[COPYRIGHT2]; BufWrite( msg, strlen( msg ) ); WriteMapNL( 1 ); ptr = tim; ptr = PutDec( ptr, localt->tm_hour ); *ptr++ = ':'; ptr = PutDec( ptr, localt->tm_min ); *ptr++ = ':'; ptr = PutDec( ptr, localt->tm_sec ); *ptr = '\0'; ptr = dat; ptr = PutDec( ptr, localt->tm_year ); *ptr++ = '/'; ptr = PutDec( ptr, localt->tm_mon + 1 ); *ptr++ = '/'; ptr = PutDec( ptr, localt->tm_mday ); *ptr = '\0'; LnkMsg( MAP+MSG_CREATED_ON, "12", dat, tim ); StopMapBuffering(); }
f_handle OpenTempFile( char **fname ) /***********************************/ { const char *ptr; size_t tlen; char *tptr; f_handle fhdl; ptr = GetEnvString( "WLINKTMP" ); if( ptr == NULL ) ptr = GetEnvString( "TMP" ); if( ptr == NULL ) ptr = GetEnvString( "TMPDIR" ); if( ptr == NULL ) { _ChkAlloc( tptr, TEMPFNAME_SIZE ); *fname = tptr; } else { tlen = strlen( ptr ); _ChkAlloc( tptr, tlen + 1 + TEMPFNAME_SIZE ); memcpy( tptr, ptr, tlen ); *fname = tptr; tptr += tlen; if( !IS_PATH_SEP( tptr[-1] ) ) { *tptr++ = DIR_SEP; } } tptr = MakeTempName( tptr ); tlen = 0; for( ;; ) { if( tlen >= 26 ) { LnkMsg( FTL+MSG_CANT_OPEN_SPILL, NULL ); } *tptr += 1; // change temp file extension fhdl = TempFileOpen( *fname ); if( fhdl == NIL_FHANDLE ) break; QClose( fhdl, *fname ); ++tlen; } return( QOpenRW( *fname ) ); }