if xschem is started with -n (netlist) load_schematic will not call tcl proc is_xschem_file to determine if sch or sym type, since command line option has higher priority. reverted back possibility in update_symbol() to have double quotes around name attribute (name="My strange name"). This has toooo many implications everywhere. name attribute must be wihout double quotes, xschem will strip them off if any.
This commit is contained in:
parent
0f94bee28e
commit
8a45e319c9
|
|
@ -920,8 +920,7 @@ void update_symbol(const char *result, int x)
|
|||
char *name = NULL, *ptr = NULL, *new_prop = NULL;
|
||||
char symbol[PATH_MAX];
|
||||
char *type;
|
||||
const char *new_name;
|
||||
int cond, allow_change_name;
|
||||
int cond;
|
||||
int pushed=0;
|
||||
|
||||
dbg(1, "update_symbol(): entering\n");
|
||||
|
|
@ -985,13 +984,6 @@ void update_symbol(const char *result, int x)
|
|||
}
|
||||
}
|
||||
|
||||
/* instance name prefix (1st char) changed? --> allow_change_name=1 */
|
||||
allow_change_name = 0;
|
||||
if(new_prop) {
|
||||
my_strdup(88, &name, get_tok_value(xctx->inst[i].prop_ptr, "name", 0));
|
||||
new_name = get_tok_value(new_prop, "name", 0);
|
||||
if(!name || new_name[0] != name[0]) allow_change_name = 1;
|
||||
}
|
||||
for(k=0;k<lastselected;k++) {
|
||||
dbg(1, "update_symbol(): for k loop: k=%d\n", k);
|
||||
if(selectedgroup[k].type!=ELEMENT) continue;
|
||||
|
|
@ -1060,19 +1052,13 @@ void update_symbol(const char *result, int x)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
new_name = get_tok_value(xctx->inst[i].prop_ptr, "name", 1); /* retain quotes in name if any */
|
||||
if(new_name[0]) {
|
||||
if(allow_change_name || (lastselected == 1) ) my_strdup(153, &name, new_name);
|
||||
/* if symbol changed ensure instance name (with new prefix char) is unique */
|
||||
my_strdup(152, &name, get_tok_value(xctx->inst[i].prop_ptr, "name", 0));
|
||||
if(name && name[0] ) {
|
||||
dbg(1, "update_symbol(): prefix!='\\0', name=%s\n", name);
|
||||
/* 20110325 only modify prefix if prefix not NUL */
|
||||
if(prefix) {
|
||||
if(name[0] != '"')
|
||||
name[0]=prefix; /* change prefix if changing symbol type; */
|
||||
else
|
||||
name[1]=prefix; /* change prefix if changing symbol type; */
|
||||
}
|
||||
dbg(1, "update_symbol(): name=%s, inst[i].prop_ptr=%s\n", name, xctx->inst[i].prop_ptr);
|
||||
if(prefix) name[0]=prefix; /* change prefix if changing symbol type; */
|
||||
dbg(1, "update_symbol(): name=%s, xctx->inst[i].prop_ptr=%s\n", name, xctx->inst[i].prop_ptr);
|
||||
my_strdup(89, &ptr,subst_token(xctx->inst[i].prop_ptr, "name", name) );
|
||||
/* set name of current inst */
|
||||
|
||||
|
|
|
|||
10
src/xinit.c
10
src/xinit.c
|
|
@ -1444,15 +1444,19 @@ int Tcl_AppInit(Tcl_Interp *inter)
|
|||
#endif
|
||||
dbg(1, "Tcl_AppInit(): filename %s given, removing symbols\n", filename);
|
||||
remove_symbols();
|
||||
load_schematic(1, f, 1);
|
||||
Tcl_VarEval(interp, "update_recent_file {", filename, "}", NULL);
|
||||
/* if do_netlist=1 call load_schematic with 'reset_undo=0' avoiding call
|
||||
to tcl is_xschem_file that could change netlist_type to symbol */
|
||||
load_schematic(1, f, !do_netlist);
|
||||
Tcl_VarEval(interp, "update_recent_file {", f, "}", NULL);
|
||||
} else {
|
||||
char * tmp;
|
||||
char filename[PATH_MAX];
|
||||
tmp = (char *) tclgetvar("XSCHEM_START_WINDOW");
|
||||
dbg(1, "Tcl_AppInit(): tmp=%s\n", tmp? tmp: "NULL");
|
||||
my_strncpy(filename, abs_sym_path(tmp, ""), S(filename));
|
||||
load_schematic(1, filename, 1);
|
||||
/* if do_netlist=1 call load_schematic with 'reset_undo=0' avoiding call
|
||||
to tcl is_xschem_file that could change netlist_type to symbol */
|
||||
load_schematic(1, filename, !do_netlist);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ L 4 -10 5 10 5 {}
|
|||
B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout pinnumber=1}
|
||||
B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout pinnumber=2}
|
||||
P 4 4 -0 5 -10 -5 10 -5 0 5 {fill=true}
|
||||
T {@name} 2.5 -20 0 0 0.2 0.2 {}
|
||||
T {@model} 5 12.5 0 0 0.25 0.2 {}
|
||||
T {@#0:pinnumber} -5 -26.25 0 1 0.2 0.2 {layer=13}
|
||||
T {@#1:pinnumber} -5 17.5 0 1 0.2 0.2 {layer=13}
|
||||
T {@#0:net_name} 5 -42.5 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} 5 32.5 0 0 0.15 0.15 {layer=15}
|
||||
T {@name} 15 -18.75 0 0 0.2 0.2 {}
|
||||
T {@model} 15 -6.25 0 0 0.2 0.2 {}
|
||||
T {@#0:net_name} 10 -28.75 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} 10 20 0 0 0.15 0.15 {layer=15}
|
||||
|
|
|
|||
|
|
@ -20,11 +20,11 @@ B 5 17.5 27.5 22.5 32.5 {name=C dir=inout pinnumber=3}
|
|||
B 5 -22.5 -2.5 -17.5 2.5 {name=B dir=in pinnumber=1}
|
||||
B 5 17.5 -32.5 22.5 -27.5 {name=E dir=inout pinnumber=2}
|
||||
P 4 4 0 -10 15 -15 5 -25 0 -10 {fill=true}
|
||||
T {@model} 20 -13.75 0 0 0.2 0.2 {}
|
||||
T {@name} 20 1.25 0 0 0.2 0.2 {}
|
||||
T {@#2:pinnumber} 25 -28.75 0 0 0.2 0.2 {layer=13}
|
||||
T {@#0:pinnumber} 25 17.5 0 0 0.2 0.2 {layer=13}
|
||||
T {@#1:pinnumber} -11.25 6.25 0 1 0.2 0.2 {layer=13}
|
||||
T {@#2:net_name} 25 -42.5 0 0 0.15 0.15 {layer=15}
|
||||
T {@#0:net_name} 25 32.5 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} -25 -12.5 0 1 0.15 0.15 {layer=15}
|
||||
T {@model} 20 -12.5 0 0 0.2 0.2 {}
|
||||
T {@name} 20 0 0 0 0.2 0.2 {}
|
||||
T {@#2:pinnumber} 25 -25 0 0 0.2 0.2 {layer=13}
|
||||
T {@#0:pinnumber} 25 12.5 0 0 0.2 0.2 {layer=13}
|
||||
T {@#1:pinnumber} -5 6.25 0 1 0.2 0.2 {layer=13}
|
||||
T {@#2:net_name} 25 -33.75 0 0 0.15 0.15 {layer=15}
|
||||
T {@#0:net_name} 25 23.75 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} -6.25 -12.5 0 1 0.15 0.15 {layer=15}
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ L 4 -20 5 -20 15 {}
|
|||
B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout pinnumber=1}
|
||||
B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout pinnumber=2}
|
||||
P 4 4 -0 5 -10 -5 10 -5 -0 5 {fill=true}
|
||||
T {@name} 2.5 -20 0 0 0.2 0.2 {}
|
||||
T {@model} 2.5 12.5 0 0 0.2 0.2 {}
|
||||
T {@#0:pinnumber} -5 -26.25 0 1 0.2 0.2 {layer=13}
|
||||
T {@#1:pinnumber} -5 17.5 0 1 0.2 0.2 {layer=13}
|
||||
T {@#0:net_name} 5 -42.5 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} 5 32.5 0 0 0.15 0.15 {layer=15}
|
||||
T {@name} 15 -18.75 0 0 0.2 0.2 {}
|
||||
T {@#0:net_name} 10 -28.75 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} 10 20 0 0 0.15 0.15 {layer=15}
|
||||
T {@model} 15 6.25 0 0 0.2 0.2 {}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
v {xschem version=2.9.5_RC6 file_version=1.1}
|
||||
v {xschem version=2.9.8 file_version=1.2}
|
||||
G {}
|
||||
K {}
|
||||
V {}
|
||||
S {}
|
||||
E {}
|
||||
|
|
@ -41,118 +42,118 @@ N 760 -190 760 -170 {lab=VCC}
|
|||
N 710 -580 730 -580 {lab=Vbase2}
|
||||
C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
|
||||
C {vsource.sym} 90 -290 0 0 {name=Vinput
|
||||
value="DC 1.6V AC 1 0 SIN(0 1MV 1KHZ)"}
|
||||
C {gnd.sym} 90 -260 0 0 {name=l2 lab=0}
|
||||
value="DC 1.6V AC 1 0 SIN(0 1MV 1KHZ)" net_name=true}
|
||||
C {gnd.sym} 90 -260 0 0 {name=l2 lab=0 net_name=true}
|
||||
C {res.sym} 150 -460 3 1 {name=R5
|
||||
value=10
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
m=1 net_name=true}
|
||||
C {capa.sym} 250 -460 3 1 {name=C1
|
||||
m=1
|
||||
value=2.2u
|
||||
footprint=1206
|
||||
device="ceramic capacitor"}
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {res.sym} 310 -550 0 0 {name=R1
|
||||
value=28K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
m=1 net_name=true}
|
||||
C {res.sym} 330 -290 0 0 {name=R2
|
||||
value=2K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {gnd.sym} 330 -260 0 0 {name=l3 lab=0}
|
||||
m=1 net_name=true}
|
||||
C {gnd.sym} 330 -260 0 0 {name=l3 lab=0 net_name=true}
|
||||
C {npn.sym} 410 -460 0 0 {name=Q1
|
||||
model=Q2N3904
|
||||
device=2N3904
|
||||
footprint=TO92
|
||||
area=1
|
||||
pinnumber(1) = 2 ; "alternatively use pinnumber(B)"
|
||||
pinnumber(2) = 1 ; "alternatively use pinnumber(E)"}
|
||||
pinnumber(2) = 1 ; "alternatively use pinnumber(E)" net_name=true}
|
||||
C {res.sym} 430 -290 0 0 {name=RE1
|
||||
value=100
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {gnd.sym} 430 -260 0 0 {name=l4 lab=0}
|
||||
m=1 net_name=true}
|
||||
C {gnd.sym} 430 -260 0 0 {name=l4 lab=0 net_name=true}
|
||||
C {capa.sym} 510 -290 0 0 {name=CE1
|
||||
m=1
|
||||
value=1p
|
||||
footprint=1206
|
||||
device="ceramic capacitor"}
|
||||
C {gnd.sym} 510 -260 0 0 {name=l5 lab=0}
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {gnd.sym} 510 -260 0 0 {name=l5 lab=0 net_name=true}
|
||||
C {res.sym} 430 -700 0 0 {name=RC1
|
||||
value=3.3K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {vdd.sym} 430 -730 0 0 {name=l6 lab=VCC}
|
||||
C {vdd.sym} 310 -580 0 0 {name=l7 lab=VCC}
|
||||
C {ipin.sym} 70 -460 0 0 {name=p1 lab=Vin}
|
||||
m=1 net_name=true}
|
||||
C {vdd.sym} 430 -730 0 0 {name=l6 lab=VCC net_name=true}
|
||||
C {vdd.sym} 310 -580 0 0 {name=l7 lab=VCC net_name=true}
|
||||
C {ipin.sym} 70 -460 0 0 {name=p1 lab=Vin net_name=true}
|
||||
C {res.sym} 500 -580 3 1 {name=R8
|
||||
value=1
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
m=1 net_name=true}
|
||||
C {capa.sym} 600 -580 3 1 {name=C2
|
||||
m=1
|
||||
value=2.2u
|
||||
footprint=1206
|
||||
device="ceramic capacitor"}
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {res.sym} 690 -700 0 0 {name=R3
|
||||
value=28K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
m=1 net_name=true}
|
||||
C {res.sym} 710 -490 0 0 {name=R4
|
||||
value=2.8K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {gnd.sym} 710 -460 0 0 {name=l8 lab=0}
|
||||
C {vdd.sym} 690 -730 0 0 {name=l9 lab=VCC}
|
||||
m=1 net_name=true}
|
||||
C {gnd.sym} 710 -460 0 0 {name=l8 lab=0 net_name=true}
|
||||
C {vdd.sym} 690 -730 0 0 {name=l9 lab=VCC net_name=true}
|
||||
C {npn.sym} 820 -580 0 0 {name=Q2
|
||||
model=Q2N3904
|
||||
device=2N3904
|
||||
footprint=TO92
|
||||
area=1
|
||||
pinnumber(1) = 2
|
||||
pinnumber(2) = 1}
|
||||
pinnumber(2) = 1 net_name=true}
|
||||
C {res.sym} 840 -700 0 0 {name=RC2
|
||||
value=1K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {vdd.sym} 840 -730 0 0 {name=l10 lab=VCC}
|
||||
m=1 net_name=true}
|
||||
C {vdd.sym} 840 -730 0 0 {name=l10 lab=VCC net_name=true}
|
||||
C {res.sym} 840 -290 0 0 {name=RE2
|
||||
value=100
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {gnd.sym} 840 -260 0 0 {name=l11 lab=0}
|
||||
m=1 net_name=true}
|
||||
C {gnd.sym} 840 -260 0 0 {name=l11 lab=0 net_name=true}
|
||||
C {capa.sym} 920 -290 0 0 {name=CE2
|
||||
m=1
|
||||
value=1p
|
||||
footprint=1206
|
||||
device="ceramic capacitor"}
|
||||
C {gnd.sym} 920 -260 0 0 {name=l12 lab=0}
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {gnd.sym} 920 -260 0 0 {name=l12 lab=0 net_name=true}
|
||||
C {capa.sym} 950 -630 3 1 {name=Cout
|
||||
m=1
|
||||
value=2.2u
|
||||
footprint=1206
|
||||
device="ceramic capacitor"}
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {res.sym} 1000 -490 0 0 {name=RL
|
||||
value=100K
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {gnd.sym} 1000 -460 0 0 {name=l13 lab=0}
|
||||
C {opin.sym} 1050 -630 0 0 {name=p2 lab=Vout}
|
||||
C {vdd.sym} 760 -190 0 0 {name=l14 lab=VCC}
|
||||
C {vsource.sym} 760 -140 0 0 {name=VCC value=15}
|
||||
C {gnd.sym} 760 -110 0 0 {name=l15 lab=0}
|
||||
m=1 net_name=true}
|
||||
C {gnd.sym} 1000 -460 0 0 {name=l13 lab=0 net_name=true}
|
||||
C {opin.sym} 1050 -630 0 0 {name=p2 lab=Vout net_name=true}
|
||||
C {vdd.sym} 760 -190 0 0 {name=l14 lab=VCC net_name=true}
|
||||
C {vsource.sym} 760 -140 0 0 {name=VCC value=15 net_name=true}
|
||||
C {gnd.sym} 760 -110 0 0 {name=l15 lab=0 net_name=true}
|
||||
C {code.sym} 160 -190 0 0 {name=MODELS value=".model Q2N3904 NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259
|
||||
+ Ise=6.734f Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1
|
||||
+ Cjc=3.638p Mjc=.3085 Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 Vje=.75
|
||||
|
|
@ -168,21 +169,21 @@ value=".SAVE ALL
|
|||
* .DC Vinput 0 5 .01
|
||||
* .DC Vinput 1 2 .0
|
||||
"}
|
||||
C {spice_probe.sym} 1020 -630 0 0 {name=p3 analysis=tran voltage=0.0000e+00}
|
||||
C {spice_probe.sym} 650 -580 0 0 {name=p4 analysis=tran voltage=1.28}
|
||||
C {spice_probe.sym} 840 -500 0 0 {name=p5 analysis=tran voltage=0.5705}
|
||||
C {spice_probe.sym} 430 -540 0 1 {name=p6 analysis=tran voltage=5.932}
|
||||
C {spice_probe.sym} 360 -460 0 1 {name=p7 analysis=tran voltage=0.9675}
|
||||
C {spice_probe.sym} 110 -460 0 1 {name=p8 analysis=tran voltage=1.6}
|
||||
C {spice_probe.sym} 880 -630 0 0 {name=p9 analysis=tran voltage=9.328}
|
||||
C {lab_pin.sym} 430 -650 0 0 {name=l16 sig_type=std_logic lab=Vcoll1}
|
||||
C {lab_pin.sym} 840 -650 0 0 {name=l17 sig_type=std_logic lab=Vcoll2}
|
||||
C {lab_pin.sym} 710 -550 0 0 {name=l18 sig_type=std_logic lab=Vbase2}
|
||||
C {lab_pin.sym} 310 -510 0 0 {name=l19 sig_type=std_logic lab=Vbase1}
|
||||
C {lab_pin.sym} 840 -420 0 0 {name=l20 sig_type=std_logic lab=Vem2}
|
||||
C {lab_pin.sym} 430 -420 0 0 {name=l21 sig_type=std_logic lab=Vem1}
|
||||
C {ammeter.sym} 840 -450 0 0 {name=vm2 current=0.005705}
|
||||
C {ammeter.sym} 430 -370 0 0 {name=vm1 current=0.002765}
|
||||
C {spice_probe.sym} 510 -330 0 0 {name=p10 analysis=tran voltage=0.2765}
|
||||
C {spice_probe.sym} 760 -170 0 1 {name=p12 analysis=tran voltage=15}
|
||||
C {ammeter.sym} 760 -580 3 0 {name=v1 current=3.2742e-05}
|
||||
C {spice_probe.sym} 1020 -630 0 0 {name=p3 analysis=tran voltage=0.0000e+00 net_name=true}
|
||||
C {spice_probe.sym} 650 -580 0 0 {name=p4 analysis=tran voltage=1.28 net_name=true}
|
||||
C {spice_probe.sym} 840 -500 0 0 {name=p5 analysis=tran voltage=0.5705 net_name=true}
|
||||
C {spice_probe.sym} 430 -540 0 1 {name=p6 analysis=tran voltage=5.932 net_name=true}
|
||||
C {spice_probe.sym} 360 -460 0 1 {name=p7 analysis=tran voltage=0.9675 net_name=true}
|
||||
C {spice_probe.sym} 110 -460 0 1 {name=p8 analysis=tran voltage=1.6 net_name=true}
|
||||
C {spice_probe.sym} 880 -630 0 0 {name=p9 analysis=tran voltage=9.328 net_name=true}
|
||||
C {lab_pin.sym} 430 -650 0 0 {name=l16 sig_type=std_logic lab=Vcoll1 net_name=true}
|
||||
C {lab_pin.sym} 840 -650 0 0 {name=l17 sig_type=std_logic lab=Vcoll2 net_name=true}
|
||||
C {lab_pin.sym} 710 -550 0 0 {name=l18 sig_type=std_logic lab=Vbase2 net_name=true}
|
||||
C {lab_pin.sym} 310 -510 0 0 {name=l19 sig_type=std_logic lab=Vbase1 net_name=true}
|
||||
C {lab_pin.sym} 840 -420 0 0 {name=l20 sig_type=std_logic lab=Vem2 net_name=true}
|
||||
C {lab_pin.sym} 430 -420 0 0 {name=l21 sig_type=std_logic lab=Vem1 net_name=true}
|
||||
C {ammeter.sym} 840 -450 0 0 {name=vm2 current=0.005705 net_name=true}
|
||||
C {ammeter.sym} 430 -370 0 0 {name=vm1 current=0.002765 net_name=true}
|
||||
C {spice_probe.sym} 510 -330 0 0 {name=p10 analysis=tran voltage=0.2765 net_name=true}
|
||||
C {spice_probe.sym} 760 -170 0 1 {name=p12 analysis=tran voltage=15 net_name=true}
|
||||
C {ammeter.sym} 760 -580 3 0 {name=v1 current=3.2742e-05 net_name=true}
|
||||
|
|
|
|||
Loading…
Reference in New Issue