diff --git a/VERSION b/VERSION index f3313513..9d32800e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.265 +8.3.266 diff --git a/commands/CmdTZ.c b/commands/CmdTZ.c index 3689c735..12f5442d 100644 --- a/commands/CmdTZ.c +++ b/commands/CmdTZ.c @@ -1012,7 +1012,9 @@ CmdWhat(w, cmd) TTMaskSetOnlyType(&maskBits, i); if (DBIsContact(i)) DBMaskAddStacking(&maskBits); +#ifdef MAGIC_WRAPPER if (doListAll) paintcellobj = Tcl_NewListObj(0, NULL); +#endif /* Search selection for tiles of this type, then */ /* call cmdFindWhatTileFunc() to search the cell */ @@ -1035,6 +1037,7 @@ CmdWhat(w, cmd) TxPrintf(" %s ", lidp->lid_name); TxPrintf(")\n"); } +#ifdef MAGIC_WRAPPER else { Tcl_ListObjAppendElement(magicinterp, paintcellobj, @@ -1048,15 +1051,18 @@ CmdWhat(w, cmd) Tcl_ListObjAppendElement(magicinterp, paintcellobj, celllistobj); } +#endif while (lid != NULL) { freeMagic(lid); lid = lid->lid_next; } +#ifdef MAGIC_WRAPPER if (doListAll) Tcl_ListObjAppendElement(magicinterp, paintobj, paintcellobj); +#endif } } EditCellUse = saveUse; diff --git a/ext2sim/ext2sim.c b/ext2sim/ext2sim.c index 490aa12d..c18a3b37 100644 --- a/ext2sim/ext2sim.c +++ b/ext2sim/ext2sim.c @@ -28,14 +28,12 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ #include "utils/hash.h" #include "utils/utils.h" #include "tiles/tile.h" -#ifdef MAGIC_WRAPPER #include "database/database.h" #include "windows/windows.h" #include "textio/textio.h" #include "dbwind/dbwind.h" /* for DBWclientID */ #include "commands/commands.h" /* for module auto-load */ #include "textio/txcommands.h" -#endif #include "extflat/extflat.h" #include "extflat/EFint.h" #include "extract/extract.h" /* for extDevTable */ @@ -43,12 +41,10 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ #include "utils/malloc.h" /* Forward declarations */ -#ifdef MAGIC_WRAPPER void CmdExtToSim(); -#endif bool simnAP(); bool simnAPHier(); -int simmainArgs(); +int simParseArgs(); int simdevVisit(), simresistVisit(), simcapVisit(), simnodeVisit(); int simmergeVisit(); @@ -182,10 +178,10 @@ extern devMerge *devMergeList; #define ATTR_HIERAP "*[Ee][Xx][Tt]:[Aa][Pp][Hh]*" #define ATTR_SUBSAP "*[Ee][Xx][Tt]:[Aa][Pp][Ss]*" -#ifdef MAGIC_WRAPPER - #define atoCap(s) ((EFCapValue)atof(s)) +#ifdef MAGIC_WRAPPER + /* Forward declaration */ int _ext2sim_start(); @@ -226,7 +222,7 @@ Exttosim_Init(interp) } #endif /* EXT2SIM_AUTO */ - +#endif /* MAGIC_WRAPPER */ /* * ---------------------------------------------------------------------------- @@ -322,7 +318,11 @@ CmdExtToSim(w, cmd) case EXTTOSIM_EXTRESIST: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoSimExtResis) ? "on" : "off", NULL); +#else + TxPrintf("Extresist: %s\n", (esDoSimExtResis) ? "on" : "off"); +#endif return; } else if (cmd->tx_argc != 3) @@ -335,7 +335,11 @@ CmdExtToSim(w, cmd) case EXTTOSIM_ALIAS: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esNoAlias) ? "off" : "on", NULL); +#else + TxPrintf("Aliases: %s\n", (esNoAlias) ? "off" : "on"); +#endif return; } else if (cmd->tx_argc != 3) @@ -348,7 +352,11 @@ CmdExtToSim(w, cmd) case EXTTOSIM_LABELS: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esNoLabel) ? "off" : "on", NULL); +#else + TxPrintf("Labels: %s\n", (esNoLabel) ? "off" : "on"); +#endif return; } else if (cmd->tx_argc != 3) @@ -362,10 +370,18 @@ CmdExtToSim(w, cmd) if (cmd->tx_argc == 2) { if (!IS_FINITE_F(LocCapThreshold)) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "infinite", NULL); +#else + TxPrintf("Capacitance threshold: infinite\n"); +#endif else +#ifdef MAGIC_WRAPPER Tcl_SetObjResult(magicinterp, Tcl_NewDoubleObj((double)LocCapThreshold)); +#else + TxPrintf("Capacitance threshold: %lf\n", (double)LocCapThreshold); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -380,10 +396,18 @@ CmdExtToSim(w, cmd) if (cmd->tx_argc == 2) { if (LocResistThreshold == INFINITE_THRESHOLD) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "infinite", NULL); +#else + TxPrintf("Resistance threshold: infinite\n"); +#endif else +#ifdef MAGIC_WRAPPER Tcl_SetObjResult(magicinterp, Tcl_NewIntObj(LocResistThreshold)); +#else + TxPrintf("Resistance threshold: %lf\n", (double)LocResistThreshold); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -397,7 +421,11 @@ CmdExtToSim(w, cmd) case EXTTOSIM_FORMAT: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, sim_formats[esFormat], TCL_STATIC); +#else + TxPrintf("Format: %s\n", sim_formats[esFormat]); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -411,11 +439,23 @@ CmdExtToSim(w, cmd) if (cmd->tx_argc == 2) { if (esMergeDevsA) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "aggressive", NULL); +#else + TxPrintf("Merge: aggressive\n"); +#endif else if (esMergeDevsC) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "conservative", NULL); +#else + TxPrintf("Merge: conservative\n"); +#endif else +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "none", NULL); +#else + TxPrintf("Merge: none\n"); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -483,7 +523,7 @@ runexttosim: EFResistThreshold = LocResistThreshold; /* Process command line arguments */ - inName = EFArgs(argc, argv, &err_result, simmainArgs, (ClientData) NULL); + inName = EFArgs(argc, argv, &err_result, simParseArgs, (ClientData) NULL); if (err_result == TRUE) { @@ -530,28 +570,40 @@ runexttosim: ((esDoSimExtResis) ? ".ext" : "")); if ((esSimF = fopen(simesOutName, "w")) == NULL) { +#ifdef MAGIC_WRAPPER char *tclres = Tcl_Alloc(128); sprintf(tclres, "exttosim: Unable to open file %s for writing\n", simesOutName); Tcl_SetResult(magicinterp, tclres, TCL_DYNAMIC); +#else + TxError("exttosim: Unable to open file %s for writing\n", simesOutName); +#endif EFDone(); return /* TCL_ERROR */; } if (!esNoAlias && (esAliasF = fopen(esAliasName, "w")) == NULL) { +#ifdef MAGIC_WRAPPER char *tclres = Tcl_Alloc(128); sprintf(tclres, "exttosim: Unable to open file %s for writing\n", esAliasName); Tcl_SetResult(magicinterp, tclres, TCL_DYNAMIC); +#else + TxError("exttosim: Unable to open file %s for writing\n", esAliasName); +#endif EFDone(); return /* TCL_ERROR */; } if (!esNoLabel && (esLabF = fopen(esLabelName, "w")) == NULL) { +#ifdef MAGIC_WRAPPER char *tclres = Tcl_Alloc(128); sprintf(tclres, "exttosim: Unable to open file %s for writing\n", esLabelName); Tcl_SetResult(magicinterp, tclres, TCL_DYNAMIC); +#else + TxError("exttosim: Unable to open file %s for writing\n", esLabelName); +#endif return /* TCL_ERROR */; } @@ -648,7 +700,7 @@ runexttosim: TxPrintf("exttosim finished.\n"); } -#else /* !MAGIC_WRAPPER */ +#if 0 /* Independent program "ext2sim" deprecated */ /* * ---------------------------------------------------------------------------- @@ -699,7 +751,7 @@ main(argc, argv) fetInfo[i].resClassSub = 6 ; fetInfo[i].defSubs = "Vdd!"; /* Process command line arguments */ - inName = EFArgs(argc, argv, NULL, simmainArgs, (ClientData) NULL); + inName = EFArgs(argc, argv, NULL, simParseArgs, (ClientData) NULL); if (inName == NULL) exit (1); @@ -777,12 +829,12 @@ main(argc, argv) exit(0); } -#endif /* MAGIC_WRAPPER */ +#endif /* Deprecated */ /* * ---------------------------------------------------------------------------- * - * simmainArgs -- + * simParseArgs -- * * Process those arguments that are specific to ext2sim. * Assumes that *pargv[0][0] is '-', indicating a flag @@ -805,7 +857,7 @@ main(argc, argv) */ int -simmainArgs(pargc, pargv) +simParseArgs(pargc, pargv) int *pargc; char ***pargv; { @@ -880,34 +932,6 @@ simmainArgs(pargc, pargv) break; } -#ifndef MAGIC_WRAPPER - case 'j': - { - char *rp, subsNode[80] ; - int ndx, rClass, rClassSub = NO_RESCLASS; - - if ((cp = ArgStr(&argc,&argv,"resistance class")) == NULL) - goto usage; - if ( (rp = strchr(cp,':')) == NULL ) - goto usage; - else *rp++ = '\0'; - if ( sscanf(rp, "%d/%d/%s", &rClass, &rClassSub, subsNode) != 3 ) { - rClassSub = NO_RESCLASS ; - if ( sscanf(rp, "%d/%s", &rClass, subsNode) != 2 ) goto usage; - } - ndx = efBuildAddStr(EFDevTypes, &EFDevNumTypes, TT_MAXTYPES, cp); - fetInfo[ndx].resClassSource = rClass; - fetInfo[ndx].resClassDrain = rClass; - fetInfo[ndx].resClassSub = rClassSub; - fetInfo[ndx].defSubs = (char *) mallocMagic((unsigned) (strlen(subsNode)+1)); - fetInfo[ndx].devType = TT_SPACE; - strcpy(fetInfo[ndx].defSubs,subsNode); - TxError("Info: fet %s(%d) sdRclass=%d subRclass=%d dSub=%s\n", - cp, ndx, fetInfo[ndx].resClassSD, fetInfo[ndx].resClassSub, - fetInfo[ndx].defSubs); - break; - } -#endif /* MAGIC_WRAPPER */ default: TxError("Unrecognized flag: %s\n", argv[0]); goto usage; @@ -921,19 +945,10 @@ usage: TxError("Usage: ext2sim [-a aliasfile] [-A] [-B] [-l labelfile] [-L]\n" "[-o simfile] [-J flat|hier] [-y cap_digits]\n" "[-f mit|lbl|su] " -#ifdef MAGIC_WRAPPER "[file]\n" -#else - "[-j device:sdRclass[/subRclass]/defaultSubstrate]\n" - "file\n\n or else see options to extcheck(1)\n" -#endif ); -#ifdef MAGIC_WRAPPER return 1; -#else - exit (1); -#endif } diff --git a/ext2spice/ext2hier.c b/ext2spice/ext2hier.c index 294d5e42..e02a2b11 100644 --- a/ext2spice/ext2hier.c +++ b/ext2spice/ext2hier.c @@ -25,6 +25,8 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ #ifdef MAGIC_WRAPPER #include "tcltk/tclmagic.h" +#endif + #include "utils/magic.h" #include "utils/malloc.h" #include "utils/geometry.h" @@ -1992,5 +1994,3 @@ esHierVisit(hc, cdata) EFFlatDone(esFreeNodeClient); return 0; } - -#endif /* MAGIC_WRAPPER */ diff --git a/ext2spice/ext2spice.c b/ext2spice/ext2spice.c index 3ed31e10..c65663f5 100644 --- a/ext2spice/ext2spice.c +++ b/ext2spice/ext2spice.c @@ -29,14 +29,12 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ #include "utils/dqueue.h" #include "utils/utils.h" #include "tiles/tile.h" -#ifdef MAGIC_WRAPPER #include "database/database.h" #include "windows/windows.h" #include "textio/textio.h" #include "dbwind/dbwind.h" /* for DBWclientID */ #include "commands/commands.h" /* for module auto-load */ #include "textio/txcommands.h" -#endif #include "extflat/extflat.h" #include "extflat/EFint.h" #include "extract/extract.h" /* for extDevTable */ @@ -113,6 +111,10 @@ int esSpiceDevsMerged; devMerge *devMergeList = NULL ; +#define atoCap(s) ((EFCapValue)atof(s)) + +extern void ESGenerateHierarchy(); /* forward reference */ + /* * ---------------------------------------------------------------------------- * @@ -134,7 +136,7 @@ int esFreeNodeClient(client) nodeClient *client; { - if (client != (ClientData)NULL) + if (client != (nodeClient *)NULL) if (client->spiceNodeName != NULL) freeMagic((char *)client->spiceNodeName); @@ -186,7 +188,6 @@ esFormatSubs(outf, suf) } #ifdef MAGIC_WRAPPER - #ifdef EXT2SPICE_AUTO /* * ---------------------------------------------------------------------------- @@ -224,6 +225,8 @@ Exttospice_Init(interp) } #endif /* EXT2SPICE_AUTO */ +#endif /* MAGIC_WRAPPER */ + /* * ---------------------------------------------------------------------------- * @@ -377,7 +380,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_EXTRESIST: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoExtResis) ? "on" : "off", NULL); +#else + TxPrintf("Extresist: %s\n", (esDoExtResis) ? "on" : "off"); +#endif return; } else if (cmd->tx_argc != 3) @@ -391,7 +398,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_RESISTORTEE: if (cmd->tx_argc == 3) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoResistorTee) ? "on" : "off", NULL); +#else + TxPrintf("Resistor tee: %s\n", (esDoResistorTee) ? "on" : "off"); +#endif return; } else if (cmd->tx_argc != 4) @@ -405,7 +416,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_SCALE: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esScale < 0) ? "on" : "off", NULL); +#else + TxPrintf("Scale: %s\n", (esScale < 0) ? "on" : "off"); +#endif return; } else if (cmd->tx_argc != 3) @@ -419,7 +434,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_HIERARCHY: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoHierarchy) ? "on" : "off", NULL); +#else + TxPrintf("Hierarchy: %s\n", (esDoHierarchy) ? "on" : "off"); +#endif return; } idx = Lookup(cmd->tx_argv[2], yesno); @@ -433,7 +452,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_BLACKBOX: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoBlackBox) ? "on" : "off", NULL); +#else + TxPrintf("Black box: %s\n", (esDoBlackBox) ? "on" : "off"); +#endif return; } idx = Lookup(cmd->tx_argv[2], yesno); @@ -447,7 +470,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_RENUMBER: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoRenumber) ? "on" : "off", NULL); +#else + TxPrintf("Renumber: %s\n", (esDoRenumber) ? "on" : "off"); +#endif return; } idx = Lookup(cmd->tx_argv[2], yesno); @@ -461,7 +488,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_MERGENAMES: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esMergeNames) ? "on" : "off", NULL); +#else + TxPrintf("Merge names: %s\n", (esMergeNames) ? "on" : "off"); +#endif return; } idx = Lookup(cmd->tx_argv[2], yesno); @@ -476,11 +507,23 @@ CmdExtToSpice(w, cmd) if (cmd->tx_argc == 2) { if ((EFOutputFlags & EF_SHORT_MASK) == EF_SHORT_NONE) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "none", NULL); +#else + TxPrintf("Shorts: none\n"); +#endif else if ((EFOutputFlags & EF_SHORT_MASK) == EF_SHORT_R) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "resistor", NULL); +#else + TxPrintf("Shorts: resistor\n"); +#endif else if ((EFOutputFlags & EF_SHORT_MASK) == EF_SHORT_V) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "voltage source", NULL); +#else + TxPrintf("Shorts: voltage source\n"); +#endif return; } idx = Lookup(cmd->tx_argv[2], cmdShortTypes); @@ -528,7 +571,11 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_SUBCIRCUITS: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoPorts) ? "on" : "off", NULL); +#else + TxPrintf("Ports: %s\n", (esDoPorts) ? "on" : "off"); +#endif return; } idx = Lookup(cmd->tx_argv[2], subcktopts); @@ -544,16 +591,26 @@ CmdExtToSpice(w, cmd) case IDX_DESCEND: if (cmd->tx_argc == 3) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoPorts) ? "on" : "off", NULL); +#else + TxPrintf("Ports: %s\n", (esDoPorts) ? "on" : "off"); +#endif return; } break; case IDX_TOP: if (cmd->tx_argc == 3) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, (esDoSubckt == 2) ? "auto" : (esDoSubckt == 1) ? "on" : "off", NULL); +#else + TxPrintf("Top subcircuit: %s\n", + (esDoSubckt == 2) ? "auto" : + (esDoSubckt == 1) ? "on" : "off"); +#endif return; } break; @@ -588,15 +645,24 @@ CmdExtToSpice(w, cmd) case EXTTOSPC_FORMAT: if (cmd->tx_argc == 2) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, cmdExtToSpcFormat[esFormat], NULL); +#else + TxPrintf("Format: %s\n", cmdExtToSpcFormat[esFormat]); +#endif return; } else if (cmd->tx_argc < 3) goto usage; idx = Lookup(cmd->tx_argv[2], cmdExtToSpcFormat); if (idx < 0) { +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "Bad format type. Formats are:" "spice2, spice3, hspice, and ngspice.", NULL); +#else + TxError("Bad format type. Formats are:" + "spice2, spice3, hspice, and ngspice."); +#endif return; } else @@ -611,10 +677,19 @@ CmdExtToSpice(w, cmd) if (cmd->tx_argc == 2) { if (!IS_FINITE_F(LocCapThreshold)) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "infinite", NULL); +#else + TxPrintf("Capacitance threshold: infinite\n"); +#endif else +#ifdef MAGIC_WRAPPER Tcl_SetObjResult(magicinterp, Tcl_NewDoubleObj((double)LocCapThreshold)); +#else + TxPrintf("Capacitance threshold: %lf\n", + (double)LocCapThreshold); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -636,10 +711,19 @@ CmdExtToSpice(w, cmd) if (cmd->tx_argc == 2) { if (LocResistThreshold == INFINITE_THRESHOLD) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "infinite", NULL); +#else + TxPrintf("Resistance threshold: infinite\n"); +#endif else +#ifdef MAGIC_WRAPPER Tcl_SetObjResult(magicinterp, Tcl_NewIntObj(LocResistThreshold)); +#else + TxPrintf("Resistance threshold: %lf\n", + (double)LocResistThreshold); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -655,11 +739,23 @@ CmdExtToSpice(w, cmd) if (cmd->tx_argc == 2) { if (esMergeDevsA) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "aggressive", NULL); +#else + TxPrintf("Merge: aggressive\n"); +#endif else if (esMergeDevsC) +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "conservative", NULL); +#else + TxPrintf("Merge: conservative\n"); +#endif else +#ifdef MAGIC_WRAPPER Tcl_SetResult(magicinterp, "none", NULL); +#else + TxPrintf("Merge: none\n"); +#endif return; } else if (cmd->tx_argc < 3) goto usage; @@ -740,7 +836,7 @@ runexttospice: /* Process command line arguments */ - inName = EFArgs(argc, argv, &err_result, spcmainArgs, (ClientData) NULL); + inName = EFArgs(argc, argv, &err_result, spcParseArgs, (ClientData) NULL); if (err_result == TRUE) { EFDone(); @@ -788,10 +884,14 @@ runexttospice: if ((esSpiceF = fopen(spcesOutName, "w")) == NULL) { +#ifdef MAGIC_WRAPPER char *tclres = Tcl_Alloc(128); sprintf(tclres, "exttospice: Unable to open file %s for writing\n", spcesOutName); Tcl_SetResult(magicinterp, tclres, TCL_DYNAMIC); +#else + TxError("exttospice: Unable to open file %s for writing\n", spcesOutName); +#endif EFDone(); return; } @@ -836,6 +936,7 @@ runexttospice: esFetInfo[i].defSubs = subname; } +#ifdef MAGIC_WRAPPER if (EFCompat == TRUE) { /* Tcl variable substitution for substrate node names */ @@ -846,6 +947,7 @@ runexttospice: if (resstr != NULL) esFetInfo[i].defSubs = resstr; } } +#endif if (esDoHierarchy && (subname != NULL)) { @@ -885,6 +987,7 @@ runexttospice: } } +#ifdef MAGIC_WRAPPER if (EFCompat == TRUE) { /* Keep a pointer to the "GND" variable, if it exists. */ @@ -892,6 +995,7 @@ runexttospice: resstr = (char *)Tcl_GetVar(magicinterp, "GND", TCL_GLOBAL_ONLY); if (resstr == NULL) resstr = "GND"; /* default value */ } +#endif /* Write the output file */ @@ -921,6 +1025,7 @@ runexttospice: fprintf(esSpiceF, ".global "); while (glist != NULL) { +#ifdef MAGIC_WRAPPER if (EFCompat == TRUE) { /* Handle global names that are TCL variables */ @@ -937,6 +1042,7 @@ runexttospice: esFormatSubs(esSpiceF, glist->gll_name); } else +#endif esFormatSubs(esSpiceF, glist->gll_name); fprintf(esSpiceF, " "); @@ -1046,7 +1152,7 @@ runexttospice: return; } -#else /* MAGIC_WRAPPER */ +#if 0 /* Independent program "ext2spice" has been deprecated */ /* * ---------------------------------------------------------------------------- @@ -1103,7 +1209,7 @@ main(argc, argv) esFetInfo[i].defSubs = "Vdd!"; /* Process command line arguments */ - inName = EFArgs(argc, argv, NULL, spcmainArgs, (ClientData) NULL); + inName = EFArgs(argc, argv, NULL, spcParseArgs, (ClientData) NULL); if (inName == NULL) exit (1); @@ -1210,13 +1316,13 @@ main(argc, argv) exit (0); } -#endif /* MAGIC_WRAPPER */ +#endif /* Deprecated */ /* * ---------------------------------------------------------------------------- * - * spcmainArgs -- + * spcParseArgs -- * * Process those arguments that are specific to ext2spice. * Assumes that *pargv[0][0] is '-', indicating a flag @@ -1238,7 +1344,7 @@ main(argc, argv) */ int -spcmainArgs(pargc, pargv) +spcParseArgs(pargc, pargv) int *pargc; char ***pargv; { @@ -1249,12 +1355,7 @@ spcmainArgs(pargc, pargv) "[-B] [-o spicefile] [-M|-m] [-y cap_digits] " "[-J flat|hier]\n" "[-f spice2|spice3|hspice|ngspice] [-M] [-m] " -#ifdef MAGIC_WRAPPER "[file]\n"; -#else - "[-j device:sdRclass[/subRclass]/defaultSubstrate]\n" - "file\n\n or else see options to extcheck(1)\n"; -#endif switch (argv[0][1]) { @@ -1318,32 +1419,6 @@ spcmainArgs(pargc, pargv) esCapAccuracy = atoi(t); break; } -#ifndef MAGIC_WRAPPER - case 'j': - { - char *rp, subsNode[80] ; - int ndx, rClass, rClassSub = -1; - - if ((cp = ArgStr(&argc,&argv,"resistance class")) == NULL) - goto usage; - if ( (rp = (char *) strchr(cp,':')) == NULL ) - goto usage; - else *rp++ = '\0'; - if ( sscanf(rp, "%d/%d/%s", &rClass, &rClassSub, subsNode) != 3 ) { - rClassSub = -1 ; - if ( sscanf(rp, "%d/%s", &rClass, subsNode) != 2 ) goto usage; - } - ndx = efBuildAddStr(EFDevTypes, &EFDevNumTypes, TT_MAXTYPES, cp); - esFetInfo[ndx].resClassSource = esFetInfo[ndx].resClassDrain = rClass; - esFetInfo[ndx].resClassSub = rClassSub; - esFetInfo[ndx].defSubs = (char *)mallocMagic((unsigned)(strlen(subsNode)+1)); - strcpy(esFetInfo[ndx].defSubs,subsNode); - TxError("info: dev %s(%d) srcRclass=%d drnRclass=%d subRclass=%d dSub=%s\n", - cp, ndx, esFetInfo[ndx].resClassSource, esFetInfo[ndx].resClassDrain, - esFetInfo[ndx].resClassSub, esFetInfo[ndx].defSubs); - break; - } -#endif /* MAGIC_WRAPPER */ case 'h': /* -h or -help, as suggested by "ext2spice help" */ TxPrintf(usage_text); break; @@ -1358,12 +1433,7 @@ spcmainArgs(pargc, pargv) usage: TxError(usage_text); - -#ifdef MAGIC_WRAPPER return 1; -#else - exit (1); -#endif } /* @@ -2935,7 +3005,7 @@ FILE *outf; NULL)); /* Create node client if it doesn't exist */ - if ((nodeClient *)nn->efnn_node->efnode_client == (ClientData)NULL) + if ((nodeClient *)nn->efnn_node->efnode_client == (nodeClient *)NULL) initNodeClientHier(nn->efnn_node); /* Mark node as visited (set bit one higher than number of resist classes) */ diff --git a/ext2spice/ext2spice.h b/ext2spice/ext2spice.h index c5ea6753..ea0ab345 100644 --- a/ext2spice/ext2spice.h +++ b/ext2spice/ext2spice.h @@ -17,10 +17,8 @@ typedef struct _devMerge { } devMerge; /* Forward declarations */ -#ifdef MAGIC_WRAPPER void CmdExtToSpice(); -#endif -extern int spcmainArgs(); +extern int spcParseArgs(); extern int spccapVisit(), spcdevVisit(), spcnodeVisit(), subcktVisit(); extern int spcresistVisit(), devMergeVisit(), devDistJunctVisit(); extern int spcsubVisit(); diff --git a/extflat/EFbuild.c b/extflat/EFbuild.c index e21d6929..cb514971 100644 --- a/extflat/EFbuild.c +++ b/extflat/EFbuild.c @@ -35,6 +35,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header$"; #include "extflat/extflat.h" #include "extflat/EFint.h" #include "extract/extract.h" /* for device class list */ +#include "extract/extractInt.h" /* for extGetDevType() */ /* * To avoid allocating ridiculously large amounts of memory to hold diff --git a/extract/ExtBasic.c b/extract/ExtBasic.c index 8047275e..79383cc8 100644 --- a/extract/ExtBasic.c +++ b/extract/ExtBasic.c @@ -824,6 +824,7 @@ extSubsName(node) { if (node->lreg_ll.p_x <= (MINFINITY + 3)) { +#ifdef MAGIC_WRAPPER if (ExtCurStyle->exts_globSubstrateName[0] == '$' && ExtCurStyle->exts_globSubstrateName[1] != '$') { @@ -840,6 +841,7 @@ extSubsName(node) + 1; } else +#endif return ExtCurStyle->exts_globSubstrateName; } else return NULL; @@ -2543,7 +2545,7 @@ extDevFindMatch(deventry, t) j = MATCH_TERM; i = 0; - match = True; + match = TRUE; for (k = 0; k < devptr->exts_deviceSDCount; k++) { if (extTransRec.tr_termnode[k] == NULL) break; @@ -2551,13 +2553,13 @@ extDevFindMatch(deventry, t) { if (TTMaskIsZero(&devptr->exts_deviceSDTypes[i])) { - match = False; + match = FALSE; break; } if (!TTMaskEqual(&devptr->exts_deviceSDTypes[i], &deventry->exts_deviceSDTypes[i])) { - match = False; + match = FALSE; break; } } @@ -3710,9 +3712,9 @@ extFindNodes(def, clipArea, subonly) if (TTMaskHasType(&ExtCurStyle->exts_globSubstrateTypes, TT_SPACE)) - space_is_substrate = True; + space_is_substrate = TRUE; else - space_is_substrate = False; + space_is_substrate = FALSE; TTMaskZero(&subsTypesNonSpace); TTMaskSetMask(&subsTypesNonSpace, &ExtCurStyle->exts_globSubstrateTypes); diff --git a/extract/ExtTech.c b/extract/ExtTech.c index 33ae47fa..6f1e263c 100644 --- a/extract/ExtTech.c +++ b/extract/ExtTech.c @@ -270,6 +270,8 @@ ExtCompareStyle(stylename) return FALSE; } +#endif /* MAGIC_WRAPPER */ + /* * ---------------------------------------------------------------------------- * @@ -429,8 +431,6 @@ ExtGetDevInfo(idx, devnameptr, devtypeptr, s_rclassptr, d_rclassptr, return TRUE; } -#endif /* MAGIC_WRAPPER */ - /* * ---------------------------------------------------------------------------- * diff --git a/plot/plotCmd.c b/plot/plotCmd.c index f59a8821..10dc8161 100644 --- a/plot/plotCmd.c +++ b/plot/plotCmd.c @@ -67,7 +67,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ typedef enum { POSTSCRIPT=0, PLOTPNM, -#ifdef HAVE_LIBCAIRO +#if defined(HAVE_LIBCAIRO) && defined(MAGIC_WRAPPER) PLOTSVG, #endif #ifdef GREMLIN @@ -97,7 +97,7 @@ CmdPlot(w, cmd) float width; int iwidth, scale; -#ifdef HAVE_LIBCAIRO +#if defined(HAVE_LIBCAIRO) && defined(MAGIC_WRAPPER) int flags; extern void GrTCairoPlotSVG(); #endif @@ -108,7 +108,7 @@ CmdPlot(w, cmd) underneath the box", "pnm file [width [layers]] generate PNM file for what's\n\ underneath the box", -#ifdef HAVE_LIBCAIRO +#if defined(HAVE_LIBCAIRO) && defined(MAGIC_WRAPPER) "svg file generate SVG file for the whole window", #endif #ifdef GREMLIN @@ -149,7 +149,7 @@ CmdPlot(w, cmd) #ifdef GREMLIN || (option == STYLE_GREMLIN) #endif -#ifdef HAVE_LIBCAIRO +#if defined(HAVE_LIBCAIRO) && defined(MAGIC_WRAPPER) || (option == PLOTSVG) #endif #ifdef VERSATEC @@ -264,7 +264,7 @@ CmdPlot(w, cmd) return; #endif -#ifdef HAVE_LIBCAIRO +#if defined(HAVE_LIBCAIRO) && defined(MAGIC_WRAPPER) case PLOTSVG: if (cmd->tx_argc > 3) { diff --git a/scripts/configure b/scripts/configure index 2c98d11e..4e92ddba 100755 --- a/scripts/configure +++ b/scripts/configure @@ -6816,24 +6816,15 @@ else fi -if test $usingTcl ; then - if test "x$enable_modular" = "xyes" ; then - programs="$programs ext2sim ext2spice" - $as_echo "#define EXT2SPICE_AUTO 1" >>confdefs.h - - $as_echo "#define EXT2SIM_AUTO 1" >>confdefs.h - - else - modules="$modules ext2sim ext2spice" - extra_libs="$extra_libs \${MAGICDIR}/ext2sim/libext2sim.o" - extra_libs="$extra_libs \${MAGICDIR}/ext2spice/libext2spice.o" - fi -else - programs="$programs ext2sim ext2spice" +if test "x$enable_modular" = "xyes" ; then $as_echo "#define EXT2SPICE_AUTO 1" >>confdefs.h $as_echo "#define EXT2SIM_AUTO 1" >>confdefs.h +else + modules="$modules ext2sim ext2spice" + extra_libs="$extra_libs \${MAGICDIR}/ext2sim/libext2sim.o" + extra_libs="$extra_libs \${MAGICDIR}/ext2spice/libext2spice.o" fi # Check whether --enable-locking was given. @@ -7637,12 +7628,12 @@ elif test $usingScheme ; then unused="$unused tcltk" cadinstall="$cadinstall lisp" extra_libs="$extra_libs \${MAGICDIR}/lisp/liblisp.o" - programs="$programs extcheck graphics" + programs="$programs graphics" $as_echo "#define SCHEME_INTERPRETER 1" >>confdefs.h else unused="$unused lisp tcltk" - programs="$programs extcheck graphics" + programs="$programs graphics" fi diff --git a/scripts/configure.in b/scripts/configure.in index d98efbfa..c9d16277 100644 --- a/scripts/configure.in +++ b/scripts/configure.in @@ -914,20 +914,13 @@ AC_ARG_ENABLE(modular, [], [enable_modular=no]) -if test $usingTcl ; then - if test "x$enable_modular" = "xyes" ; then - programs="$programs ext2sim ext2spice" - AC_DEFINE(EXT2SPICE_AUTO) - AC_DEFINE(EXT2SIM_AUTO) - else - modules="$modules ext2sim ext2spice" - extra_libs="$extra_libs \${MAGICDIR}/ext2sim/libext2sim.o" - extra_libs="$extra_libs \${MAGICDIR}/ext2spice/libext2spice.o" - fi -else - programs="$programs ext2sim ext2spice" +if test "x$enable_modular" = "xyes" ; then AC_DEFINE(EXT2SPICE_AUTO) AC_DEFINE(EXT2SIM_AUTO) +else + modules="$modules ext2sim ext2spice" + extra_libs="$extra_libs \${MAGICDIR}/ext2sim/libext2sim.o" + extra_libs="$extra_libs \${MAGICDIR}/ext2spice/libext2spice.o" fi AC_ARG_ENABLE(locking, @@ -1268,11 +1261,11 @@ elif test $usingScheme ; then unused="$unused tcltk" cadinstall="$cadinstall lisp" extra_libs="$extra_libs \${MAGICDIR}/lisp/liblisp.o" - programs="$programs extcheck graphics" + programs="$programs graphics" AC_DEFINE(SCHEME_INTERPRETER) else unused="$unused lisp tcltk" - programs="$programs extcheck graphics" + programs="$programs graphics" fi dnl ---------------------------------------------------------------- diff --git a/utils/main.c b/utils/main.c index e60aa77e..b462356e 100644 --- a/utils/main.c +++ b/utils/main.c @@ -809,11 +809,10 @@ mainInitFinal() char *rname; int result; +#ifdef MAGIC_WRAPPER /* Reset terminal if exit is called inside a TCL script */ Tcl_SetExitProc(tcl_exit_hook); -#ifdef MAGIC_WRAPPER - /* Read in system pre-startup file, if it exists. */ /* Use PaOpen first to perform variable substitutions, and */ @@ -1205,7 +1204,9 @@ mainInitFinal() UndoFlush(); TxClearPoint(); +#ifdef MAGIC_WRAPPER Tcl_SetExitProc(NULL); +#endif return 0; }