diff --git a/ChangeLog b/ChangeLog index 576649058..3491ce1b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-11-15 Holger Vogt + * com_sysinfo.c: line 355 changed, allow mingw console compilation + runcoms2.c: cosmetics + 2009-11-15 Holger Vogt * main.c, src/include/compatmode.h: compatibility mode flag for HSPICE and SPICE3 xpressn.c: compatmode removed diff --git a/src/frontend/com_sysinfo.c b/src/frontend/com_sysinfo.c index c84286573..6fc676e8c 100644 --- a/src/frontend/com_sysinfo.c +++ b/src/frontend/com_sysinfo.c @@ -352,7 +352,7 @@ TesError tesCreateSystemInfo(TesSystemInfo *info) { return error; } -#elif HAS_WINDOWS +#elif defined(HAVE_WIN32) /* get memory information */ static size_t get_sysmem(struct sys_memory *memall) { diff --git a/src/frontend/runcoms2.c b/src/frontend/runcoms2.c index 5c0afb706..a9fdfe3f4 100644 --- a/src/frontend/runcoms2.c +++ b/src/frontend/runcoms2.c @@ -42,107 +42,123 @@ bool resumption = FALSE; void com_resume(wordlist *wl) { - struct dbcomm *db; - int err; + struct dbcomm *db; + int err; - /*rawfile output saj*/ - bool dofile = FALSE; - char buf[BSIZE_SP]; - bool ascii = AsciiRawFile; - /*end saj*/ + /*rawfile output saj*/ + bool dofile = FALSE; + char buf[BSIZE_SP]; + bool ascii = AsciiRawFile; + /*end saj*/ - /*saj fix segment*/ - if (!ft_curckt) { + /*saj fix segment*/ + if (!ft_curckt) { fprintf(cp_err, "Error: there aren't any circuits loaded.\n"); - return; - } else if (ft_curckt->ci_ckt == NULL) { /* Set noparse? */ + return; + } else if (ft_curckt->ci_ckt == NULL) { /* Set noparse? */ fprintf(cp_err, "Error: circuit not parsed.\n"); return; - } - /*saj*/ + } + /*saj*/ - if (ft_curckt->ci_inprogress == FALSE) { - fprintf(cp_err, "Note: run starting\n"); - com_run((wordlist *) NULL); - return; - } - ft_curckt->ci_inprogress = TRUE; - ft_setflag = TRUE; + if (ft_curckt->ci_inprogress == FALSE) { + fprintf(cp_err, "Note: run starting\n"); + com_run((wordlist *) NULL); + return; + } + ft_curckt->ci_inprogress = TRUE; + ft_setflag = TRUE; + reset_trace( ); + for ( db = dbs, resumption = FALSE; db; db = db->db_next ) + if( db->db_type == DB_IPLOT || db->db_type == DB_IPLOTALL ) { + resumption = TRUE; + } - - reset_trace( ); - for ( db = dbs, resumption = FALSE; db; db = db->db_next ) - if( db->db_type == DB_IPLOT || db->db_type == DB_IPLOTALL ) { - resumption = TRUE; - } - - /*rawfile output saj*/ - if (last_used_rawfile) + /*rawfile output saj*/ + if (last_used_rawfile) dofile = TRUE; - if (cp_getvar("filetype", VT_STRING, buf)) { + if (cp_getvar("filetype", VT_STRING, buf)) { if (eq(buf, "binary")) - ascii = FALSE; + ascii = FALSE; else if (eq(buf, "ascii")) - ascii = TRUE; + ascii = TRUE; else - fprintf(cp_err, - "Warning: strange file type \"%s\" (using \"ascii\")\n", - buf); - } + fprintf(cp_err, + "Warning: strange file type \"%s\" (using \"ascii\")\n", + buf); + } - if (dofile) { + if (dofile) { #ifdef PARALLEL_ARCH - if (ARCHme == 0) { + if (ARCHme == 0) { #endif /* PARALLEL_ARCH */ - if (!last_used_rawfile) - rawfileFp = stdout; - else if (!(rawfileFp = fopen(last_used_rawfile, "a"))) { - setvbuf(rawfileFp, rawfileBuf, _IOFBF, RAWBUF_SIZE); - perror(last_used_rawfile); - ft_setflag = FALSE; - return; + if (!last_used_rawfile) + rawfileFp = stdout; +#if defined(__MINGW32__) || defined(_MSC_VER) +/* ask if binary or ASCII, open file with w or wb hvogt 15.3.2000 */ + else if (ascii) { + if(!(rawfileFp = fopen(last_used_rawfile, "a"))) { + setvbuf(rawfileFp, rawfileBuf, _IOFBF, RAWBUF_SIZE); + perror(last_used_rawfile); + ft_setflag = FALSE; + return; + } + } + else if (!ascii) { + if(!(rawfileFp = fopen(last_used_rawfile, "ab"))) { + setvbuf(rawfileFp, rawfileBuf, _IOFBF, RAWBUF_SIZE); + perror(last_used_rawfile); + ft_setflag = FALSE; + return; + } } - rawfileBinary = !ascii; +/*---------------------------------------------------------------------------*/ +#else + else if (!(rawfileFp = fopen(last_used_rawfile, "a"))) { + setvbuf(rawfileFp, rawfileBuf, _IOFBF, RAWBUF_SIZE); + perror(last_used_rawfile); + ft_setflag = FALSE; + return; + } +#endif #ifdef PARALLEL_ARCH } else { rawfileFp = NULL; } #endif /* PARALLEL_ARCH */ - } else { + rawfileBinary = !ascii; + } else { rawfileFp = NULL; - } - - - + } /* if dofile */ /*end saj*/ - err = if_run(ft_curckt->ci_ckt, "resume", (wordlist *) NULL, + err = if_run(ft_curckt->ci_ckt, "resume", (wordlist *) NULL, ft_curckt->ci_symtab); - /*close rawfile saj*/ - if (rawfileFp){ + /*close rawfile saj*/ + if (rawfileFp){ if (ftell(rawfileFp)==0) { - (void) fclose(rawfileFp); - (void) remove(last_used_rawfile); + (void) fclose(rawfileFp); + (void) remove(last_used_rawfile); } else { - (void) fclose(rawfileFp); + (void) fclose(rawfileFp); } - } - /*end saj*/ + } + /*end saj*/ - if (err == 1) { - /* The circuit was interrupted somewhere. */ + if (err == 1) { + /* The circuit was interrupted somewhere. */ - fprintf(cp_err, "simulation interrupted\n"); - } else if (err == 2) { - fprintf(cp_err, "simulation aborted\n"); - ft_curckt->ci_inprogress = FALSE; - } else - ft_curckt->ci_inprogress = FALSE; - return; + fprintf(cp_err, "simulation interrupted\n"); + } else if (err == 2) { + fprintf(cp_err, "simulation aborted\n"); + ft_curckt->ci_inprogress = FALSE; + } else + ft_curckt->ci_inprogress = FALSE; + return; } /* Throw out the circuit struct and recreate it from the deck. This command