better memory tracking reporting (my_strcat and my_strncat allocations)
This commit is contained in:
parent
baca559ffc
commit
29ef08e84b
|
|
@ -835,7 +835,7 @@ void attach_labels_to_inst(int interactive) /* offloaded from callback.c 201710
|
|||
for(j=0;j<k;j++) if(xctx->sel_array[j].type==ELEMENT) {
|
||||
found=1;
|
||||
my_strdup(_ALLOC_ID_, &prop, xctx->inst[xctx->sel_array[j].n].instname);
|
||||
my_strcat(6, &prop, "_");
|
||||
my_strcat(_ALLOC_ID_, &prop, "_");
|
||||
tclsetvar("custom_label_prefix",prop);
|
||||
|
||||
if(interactive && !do_all_inst) {
|
||||
|
|
@ -923,11 +923,11 @@ void attach_labels_to_inst(int interactive) /* offloaded from callback.c 201710
|
|||
if(!skip) {
|
||||
my_strdup(_ALLOC_ID_, &prop, "name=p1 lab=");
|
||||
if(use_label_prefix) {
|
||||
my_strcat(10, &prop, (char *)tclgetvar("custom_label_prefix"));
|
||||
my_strcat(_ALLOC_ID_, &prop, (char *)tclgetvar("custom_label_prefix"));
|
||||
}
|
||||
/* /20171005 */
|
||||
|
||||
my_strcat(11, &prop, labname);
|
||||
my_strcat(_ALLOC_ID_, &prop, labname);
|
||||
dir ^= flip; /* 20101129 20111030 */
|
||||
if(rotated_text ==-1) {
|
||||
rot1=rot;
|
||||
|
|
@ -1222,9 +1222,9 @@ void get_sch_from_sym(char *filename, xSymbol *sym)
|
|||
if( (ptr = strstr(str_tmp, "@symname"))) {
|
||||
*ptr = '\0';
|
||||
my_strdup2(_ALLOC_ID_, &sch, str_tmp);
|
||||
my_strcat(1649, &sch, sym->name);
|
||||
my_strcat(_ALLOC_ID_, &sch, sym->name);
|
||||
ptr += 8;
|
||||
my_strcat(1650, &sch, ptr);
|
||||
my_strcat(_ALLOC_ID_, &sch, ptr);
|
||||
} else {
|
||||
my_strdup2(_ALLOC_ID_, &sch, str_tmp);
|
||||
}
|
||||
|
|
@ -1350,9 +1350,9 @@ int descend_schematic(int instnumber)
|
|||
if(inst_number <1 || inst_number > inst_mult) inst_number = 1;
|
||||
}
|
||||
dbg(1,"descend_schematic(): inst_number=%d\n", inst_number);
|
||||
my_strcat(15, &xctx->sch_path[xctx->currsch+1], find_nth(str, ",", inst_number));
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], find_nth(str, ",", inst_number));
|
||||
dbg(1,"descend_schematic(): inst_number=%d\n", inst_number);
|
||||
my_strcat(16, &xctx->sch_path[xctx->currsch+1], ".");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], ".");
|
||||
xctx->sch_inst_number[xctx->currsch+1] = inst_number;
|
||||
dbg(1, "descend_schematic(): current path: %s\n", xctx->sch_path[xctx->currsch+1]);
|
||||
dbg(1, "descend_schematic(): inst_number=%d\n", inst_number);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ BEGIN{
|
|||
while(getline < filename) {
|
||||
if(create_id == 0) {
|
||||
if(!start) f = f "\n"
|
||||
str = gensub(/(my_(malloc|calloc|realloc|free|strdup|strdup2))\([0-9]+,/, "\\1(_ALLOC_ID_,", "G")
|
||||
str = gensub(/(my_(malloc|calloc|realloc|free|strcat|strncat|strdup|strdup2))\([0-9]+,/, "\\1(_ALLOC_ID_,", "G")
|
||||
if(str != $0) changed = 1
|
||||
f = f str
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ char *my_fgets(FILE *fd)
|
|||
size_t len;
|
||||
|
||||
while(fgets(buf, SIZE, fd)) {
|
||||
my_strcat(425, &s, buf);
|
||||
my_strcat(_ALLOC_ID_, &s, buf);
|
||||
len = strlen(buf);
|
||||
if(buf[len - 1] == '\n') break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -191,11 +191,11 @@ void display_hilights(char **str)
|
|||
for(i=0;i<HASHSIZE;i++) {
|
||||
entry = xctx->hilight_table[i];
|
||||
while(entry) {
|
||||
if(!first) my_strcat(93, str, " ");
|
||||
my_strcat(943, str,"{");
|
||||
my_strcat(1190, str, entry->path+1);
|
||||
my_strcat(1160, str, entry->token);
|
||||
my_strcat(562, str,"}");
|
||||
if(!first) my_strcat(_ALLOC_ID_, str, " ");
|
||||
my_strcat(_ALLOC_ID_, str,"{");
|
||||
my_strcat(_ALLOC_ID_, str, entry->path+1);
|
||||
my_strcat(_ALLOC_ID_, str, entry->token);
|
||||
my_strcat(_ALLOC_ID_, str,"}");
|
||||
first = 0;
|
||||
entry = entry->next;
|
||||
}
|
||||
|
|
@ -314,13 +314,13 @@ void create_plot_cmd(void)
|
|||
}
|
||||
fprintf(fd, "set color%d=rgb:%s\n", idx, color_str);
|
||||
if(first) {
|
||||
my_strcat(164, &str, "plot ");
|
||||
my_strcat(_ALLOC_ID_, &str, "plot ");
|
||||
first = 0;
|
||||
}
|
||||
my_strcat(160, &str, "\"");
|
||||
my_strcat(161, &str, (entry->path)+1);
|
||||
my_strcat(162, &str, tok);
|
||||
my_strcat(163, &str, "\" ");
|
||||
my_strcat(_ALLOC_ID_, &str, "\"");
|
||||
my_strcat(_ALLOC_ID_, &str, (entry->path)+1);
|
||||
my_strcat(_ALLOC_ID_, &str, tok);
|
||||
my_strcat(_ALLOC_ID_, &str, "\" ");
|
||||
}
|
||||
if(viewer == GAW) {
|
||||
char *t=NULL, *p=NULL;
|
||||
|
|
@ -957,10 +957,10 @@ static void send_net_to_graph(char **s, int simtype, const char *node)
|
|||
if(simtype == 0 ) { /* ngspice */
|
||||
dbg(1, "%s%s color=%d\n", path, t, c);
|
||||
my_snprintf(ss, S(ss), "%s%s %d ", path, t, c);
|
||||
my_strcat(1502, s, ss);
|
||||
my_strcat(_ALLOC_ID_, s, ss);
|
||||
} else { /* Xyce */
|
||||
my_snprintf(ss, S(ss), "%s%s %d", path, t, c);
|
||||
my_strcat(536, s, ss);
|
||||
my_strcat(_ALLOC_ID_, s, ss);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1105,14 +1105,14 @@ static void send_current_to_graph(char **s, int simtype, const char *node)
|
|||
strtolower(t);
|
||||
if(!simtype) { /* ngspice */
|
||||
my_snprintf(ss, S(ss), "i(%s%s%s) %d", there_is_hierarchy ? "v." : "", path, t, c);
|
||||
my_strcat(537, s, ss);
|
||||
my_strcat(_ALLOC_ID_, s, ss);
|
||||
} else { /* Xyce */
|
||||
/*
|
||||
my_snprintf(ss, S(ss), "%s%s%s#branch %d", there_is_hierarchy ? "v." : "",
|
||||
path, (there_is_hierarchy ? t+1 : t) , c);
|
||||
*/
|
||||
my_snprintf(ss, S(ss), "i(%s%s) %d", path, t, c);
|
||||
my_strcat(535, s, ss);
|
||||
my_strcat(_ALLOC_ID_, s, ss);
|
||||
}
|
||||
}
|
||||
my_free(_ALLOC_ID_, &p);
|
||||
|
|
|
|||
|
|
@ -632,7 +632,7 @@ void copy_objects(int what)
|
|||
xctx->deltax = xctx->deltay = 0.;
|
||||
xctx->ui_state&=~STARTCOPY;
|
||||
my_strdup(_ALLOC_ID_, &str, user_conf_dir);
|
||||
my_strcat(226, &str, "/.selection.sch");
|
||||
my_strcat(_ALLOC_ID_, &str, "/.selection.sch");
|
||||
xunlink(str);
|
||||
update_symbol_bboxes(0, 0);
|
||||
my_free(_ALLOC_ID_, &str);
|
||||
|
|
|
|||
20
src/save.c
20
src/save.c
|
|
@ -577,7 +577,7 @@ static int read_dataset(FILE *fd, const char *type)
|
|||
ptr++;
|
||||
}
|
||||
if(xctx->graph_sim_type && !strcmp(xctx->graph_sim_type, "ac")) { /* AC */
|
||||
my_strcat(415, &xctx->graph_names[i << 1], varname);
|
||||
my_strcat(_ALLOC_ID_, &xctx->graph_names[i << 1], varname);
|
||||
int_hash_lookup(&xctx->graph_raw_table, xctx->graph_names[i << 1], (i << 1), XINSERT_NOREPLACE);
|
||||
if(strstr(varname, "v(") == varname || strstr(varname, "i(") == varname)
|
||||
my_mstrcat(664, &xctx->graph_names[(i << 1) + 1], "ph(", varname + 2, NULL);
|
||||
|
|
@ -585,7 +585,7 @@ static int read_dataset(FILE *fd, const char *type)
|
|||
my_mstrcat(540, &xctx->graph_names[(i << 1) + 1], "ph(", varname, ")", NULL);
|
||||
int_hash_lookup(&xctx->graph_raw_table, xctx->graph_names[(i << 1) + 1], (i << 1) + 1, XINSERT_NOREPLACE);
|
||||
} else {
|
||||
my_strcat(541, &xctx->graph_names[i], varname);
|
||||
my_strcat(_ALLOC_ID_, &xctx->graph_names[i], varname);
|
||||
int_hash_lookup(&xctx->graph_raw_table, xctx->graph_names[i], i, XINSERT_NOREPLACE);
|
||||
}
|
||||
/* use hash table to store index number of variables */
|
||||
|
|
@ -2803,7 +2803,7 @@ static void add_pinlayer_boxes(int *lastr, xRect **bb,
|
|||
bb[PINLAYER][i].sel = 0;
|
||||
/* add to symbol pins remaining attributes from schematic pins, except name= and lab= */
|
||||
my_strdup(_ALLOC_ID_, &pin_label, get_sym_template(prop_ptr, "lab")); /* remove name=... and lab=... */
|
||||
my_strcat(159, &bb[PINLAYER][i].prop_ptr, pin_label);
|
||||
my_strcat(_ALLOC_ID_, &bb[PINLAYER][i].prop_ptr, pin_label);
|
||||
my_free(_ALLOC_ID_, &pin_label);
|
||||
lastr[PINLAYER]++;
|
||||
}
|
||||
|
|
@ -3312,8 +3312,8 @@ int load_sym_def(const char *name, FILE *embed_fd)
|
|||
int i;
|
||||
for(i = 1; i <level; i++) {
|
||||
const char *instname = get_tok_value(lcc[i].prop_ptr, "name", 0);
|
||||
my_strcat(1582, &path, instname);
|
||||
my_strcat(1588, &path, ".");
|
||||
my_strcat(_ALLOC_ID_, &path, instname);
|
||||
my_strcat(_ALLOC_ID_, &path, ".");
|
||||
}
|
||||
}
|
||||
if(path) new_size += strlen(path);
|
||||
|
|
@ -3333,8 +3333,8 @@ int load_sym_def(const char *name, FILE *embed_fd)
|
|||
int i;
|
||||
for(i = 1; i <level; i++) {
|
||||
const char *instname = get_tok_value(lcc[i].prop_ptr, "name", 0);
|
||||
my_strcat(1590, &path, instname);
|
||||
my_strcat(1591, &path, ".");
|
||||
my_strcat(_ALLOC_ID_, &path, instname);
|
||||
my_strcat(_ALLOC_ID_, &path, ".");
|
||||
}
|
||||
}
|
||||
if(path) new_size += strlen(path);
|
||||
|
|
@ -3356,7 +3356,7 @@ int load_sym_def(const char *name, FILE *embed_fd)
|
|||
if(level > 0 && symtype && !strcmp(symtype, "label")) {
|
||||
char lay[30];
|
||||
my_snprintf(lay, S(lay), " layer=%d", WIRELAYER);
|
||||
my_strcat(1163, &tt[i].prop_ptr, lay);
|
||||
my_strcat(_ALLOC_ID_, &tt[i].prop_ptr, lay);
|
||||
}
|
||||
dbg(1, "l_s_d(): loaded text : t=%s p=%s\n", tt[i].txt_ptr, tt[i].prop_ptr ? tt[i].prop_ptr : "NULL");
|
||||
set_text_flags(&tt[i]);
|
||||
|
|
@ -3764,8 +3764,8 @@ void descend_symbol(void)
|
|||
/* build up current hierarchy path */
|
||||
my_strdup(_ALLOC_ID_, &str, xctx->inst[n].instname);
|
||||
my_strdup(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], xctx->sch_path[xctx->currsch]);
|
||||
my_strcat(365, &xctx->sch_path[xctx->currsch+1], str);
|
||||
my_strcat(366, &xctx->sch_path[xctx->currsch+1], ".");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], str);
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], ".");
|
||||
xctx->sch_path_hash[xctx->currsch+1] = 0;
|
||||
|
||||
my_strdup(_ALLOC_ID_, &xctx->hier_attr[xctx->currsch].prop_ptr,
|
||||
|
|
|
|||
|
|
@ -1543,7 +1543,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
pin = get_tok_value((xctx->inst[i].ptr+ xctx->sym)->rect[PINLAYER][p].prop_ptr, "name",0);
|
||||
if(!pin[0]) pin = "--ERROR--";
|
||||
my_mstrcat(655, &pins, "{", pin, "}", NULL);
|
||||
if(p< no_of_pins-1) my_strcat(377, &pins, " ");
|
||||
if(p< no_of_pins-1) my_strcat(_ALLOC_ID_, &pins, " ");
|
||||
}
|
||||
Tcl_SetResult(interp, pins, TCL_VOLATILE);
|
||||
my_free(_ALLOC_ID_, &pins);
|
||||
|
|
@ -3256,10 +3256,10 @@ int tclvareval(const char *script, ...)
|
|||
va_list args;
|
||||
|
||||
va_start(args, script);
|
||||
size = my_strcat(1379, &str, script);
|
||||
size = my_strcat(_ALLOC_ID_, &str, script);
|
||||
dbg(1, "tclvareval(): script=%s, str=%s, size=%d\n", script, str, size);
|
||||
while( (p = va_arg(args, const char *)) ) {
|
||||
size = my_strcat(1380, &str, p);
|
||||
size = my_strcat(_ALLOC_ID_, &str, p);
|
||||
dbg(1, "tclvareval(): p=%s, str=%s, size=%d\n", p, str, size);
|
||||
}
|
||||
return_code = Tcl_EvalEx(interp, str, (int)size, TCL_EVAL_GLOBAL);
|
||||
|
|
|
|||
|
|
@ -55,10 +55,10 @@ void hier_psprint(char **res, int what) /* netlister driver */
|
|||
zoom_full(0, 0, 1, 0.97);
|
||||
if(what & 1) ps_draw(2); /* page */
|
||||
if(what & 2) { /* print cellname */
|
||||
my_strcat(1637, res, hier_psprint_mtime(xctx->sch[xctx->currsch]));
|
||||
my_strcat(1638, res, " {");
|
||||
my_strcat(1639, res, xctx->sch[xctx->currsch]);
|
||||
my_strcat(1640, res, "}\n");
|
||||
my_strcat(_ALLOC_ID_, res, hier_psprint_mtime(xctx->sch[xctx->currsch]));
|
||||
my_strcat(_ALLOC_ID_, res, " {");
|
||||
my_strcat(_ALLOC_ID_, res, xctx->sch[xctx->currsch]);
|
||||
my_strcat(_ALLOC_ID_, res, "}\n");
|
||||
}
|
||||
dbg(1,"--> %s\n", skip_dir( xctx->sch[xctx->currsch]) );
|
||||
unselect_all(1);
|
||||
|
|
@ -67,7 +67,7 @@ void hier_psprint(char **res, int what) /* netlister driver */
|
|||
xctx->pop_undo(2, 0);
|
||||
/* link_symbols_to_instances(-1); */ /* done in xctx->pop_undo() */
|
||||
my_strdup(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], xctx->sch_path[xctx->currsch]);
|
||||
my_strcat(1227, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
xctx->sch_path_hash[xctx->currsch+1] = 0;
|
||||
xctx->currsch++;
|
||||
subckt_name=NULL;
|
||||
|
|
@ -92,10 +92,10 @@ void hier_psprint(char **res, int what) /* netlister driver */
|
|||
zoom_full(0, 0, 1, 0.97);
|
||||
if(what & 1) ps_draw(2); /* page */
|
||||
if(what & 2) { /* print cellname */
|
||||
my_strcat(1641, res, hier_psprint_mtime(xctx->sch[xctx->currsch]));
|
||||
my_strcat(1642, res, " {");
|
||||
my_strcat(1643, res, xctx->sch[xctx->currsch]);
|
||||
my_strcat(1644, res, "}\n");
|
||||
my_strcat(_ALLOC_ID_, res, hier_psprint_mtime(xctx->sch[xctx->currsch]));
|
||||
my_strcat(_ALLOC_ID_, res, " {");
|
||||
my_strcat(_ALLOC_ID_, res, xctx->sch[xctx->currsch]);
|
||||
my_strcat(_ALLOC_ID_, res, "}\n");
|
||||
}
|
||||
dbg(1,"--> %s\n", skip_dir( xctx->sch[xctx->currsch]) );
|
||||
}
|
||||
|
|
@ -130,7 +130,7 @@ static char *model_name(const char *m)
|
|||
if(n<2) my_strncpy(model_name_result, m_lower, l);
|
||||
else {
|
||||
/* build a hash key value with no spaces to make device_model attributes with different spaces equivalent*/
|
||||
my_strcat(296, &model_name_result, modelname);
|
||||
my_strcat(_ALLOC_ID_, &model_name_result, modelname);
|
||||
}
|
||||
my_free(_ALLOC_ID_, &modelname);
|
||||
my_free(_ALLOC_ID_, &m_lower);
|
||||
|
|
@ -389,7 +389,7 @@ void global_spice_netlist(int global) /* netlister driver */
|
|||
xctx->pop_undo(2, 0);
|
||||
/* link_symbols_to_instances(-1); */ /* done in xctx->pop_undo() */
|
||||
my_strdup(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], xctx->sch_path[xctx->currsch]);
|
||||
my_strcat(481, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
xctx->sch_path_hash[xctx->currsch+1] = 0;
|
||||
xctx->currsch++;
|
||||
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ void global_tedax_netlist(int global) /* netlister driver */
|
|||
xctx->pop_undo(2, 0);
|
||||
/* link_symbols_to_instances(-1); */ /* done in xctx->pop_undo() */
|
||||
my_strdup(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], xctx->sch_path[xctx->currsch]);
|
||||
my_strcat(485, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
xctx->sch_path_hash[xctx->currsch+1] = 0;
|
||||
xctx->currsch++;
|
||||
|
||||
|
|
|
|||
|
|
@ -2533,7 +2533,7 @@ void print_verilog_element(FILE *fd, int inst)
|
|||
get_tok_value((xctx->inst[inst].ptr + xctx->sym)->prop_ptr, "verilogprefix", 0));
|
||||
if(verilogprefix) {
|
||||
my_strdup(_ALLOC_ID_, &symname, verilogprefix);
|
||||
my_strcat(1621, &symname, skip_dir(xctx->inst[inst].name));
|
||||
my_strcat(_ALLOC_ID_, &symname, skip_dir(xctx->inst[inst].name));
|
||||
} else {
|
||||
my_strdup(_ALLOC_ID_, &symname, skip_dir(xctx->inst[inst].name));
|
||||
}
|
||||
|
|
@ -3539,8 +3539,8 @@ const char *translate2(Lcc *lcc, int level, char* s)
|
|||
int i;
|
||||
for(i = 1; i <level; i++) {
|
||||
const char *instname = get_tok_value(lcc[i].prop_ptr, "name", 0);
|
||||
my_strcat(440, &path, instname);
|
||||
my_strcat(1071, &path, ".");
|
||||
my_strcat(_ALLOC_ID_, &path, instname);
|
||||
my_strcat(_ALLOC_ID_, &path, ".");
|
||||
}
|
||||
}
|
||||
dbg(1, "path=%s\n", path);
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ END{
|
|||
leak+= address[i]
|
||||
print " address[ " i ", " idx[i] " ]= " address[i]
|
||||
if(show_source) {
|
||||
pipe = "egrep -n 'my_(malloc|calloc|realloc|free|strdup|strdup2)\\(" idx[i] ",' *.c xschem.h"
|
||||
pipe = "egrep -n 'my_(malloc|calloc|realloc|free|strcat|strncat|strdup|strdup2)\\(" idx[i] ",' *.c xschem.h"
|
||||
while( pipe | getline a) print " " a
|
||||
close(pipe)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@ void global_verilog_netlist(int global) /* netlister driver */
|
|||
xctx->pop_undo(2, 0);
|
||||
/* link_symbols_to_instances(-1); */ /* done in xctx->pop_undo() */
|
||||
my_strdup(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], xctx->sch_path[xctx->currsch]);
|
||||
my_strcat(496, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
xctx->sch_path_hash[xctx->currsch+1] = 0;
|
||||
xctx->currsch++;
|
||||
|
||||
|
|
@ -483,7 +483,7 @@ void verilog_block_netlist(FILE *fd, int i)
|
|||
get_tok_value(xctx->sym[i].prop_ptr, "verilogprefix", 0));
|
||||
if(verilogprefix) {
|
||||
my_strdup(_ALLOC_ID_, &symname, verilogprefix);
|
||||
my_strcat(1626, &symname, skip_dir(xctx->sym[i].name));
|
||||
my_strcat(_ALLOC_ID_, &symname, skip_dir(xctx->sym[i].name));
|
||||
} else {
|
||||
my_strdup(_ALLOC_ID_, &symname, skip_dir(xctx->sym[i].name));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -439,7 +439,7 @@ void global_vhdl_netlist(int global) /* netlister driver */
|
|||
xctx->pop_undo(2, 0);
|
||||
/* link_symbols_to_instances(-1); */ /* done in xctx->pop_undo() */
|
||||
my_strdup(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], xctx->sch_path[xctx->currsch]);
|
||||
my_strcat(509, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch+1], "->netlisting");
|
||||
xctx->sch_path_hash[xctx->currsch+1] = 0;
|
||||
xctx->currsch++;
|
||||
|
||||
|
|
|
|||
|
|
@ -2020,11 +2020,11 @@ int Tcl_AppInit(Tcl_Interp *inter)
|
|||
my_strdup(_ALLOC_ID_, &up_hier, "../../..");
|
||||
}
|
||||
else my_strdup(_ALLOC_ID_, &up_hier, "..");
|
||||
/* my_strcat(415, &win_xschem_library_path, "."); */
|
||||
/* my_strcat(_ALLOC_ID_, &win_xschem_library_path, "."); */
|
||||
for (i = 0; i < WIN_XSCHEM_LIBRARY_PATH_NUM; ++i) {
|
||||
my_snprintf(tmp, S(tmp),"%s/%s/%s", install_dir, up_hier, WIN_XSCHEM_LIBRARY_PATH[i]);
|
||||
if (i > 0) my_strcat(416, &win_xschem_library_path, "\;");
|
||||
my_strcat(431, &win_xschem_library_path, tmp);
|
||||
if (i > 0) my_strcat(_ALLOC_ID_, &win_xschem_library_path, "\;");
|
||||
my_strcat(_ALLOC_ID_, &win_xschem_library_path, tmp);
|
||||
}
|
||||
my_snprintf(tmp, S(tmp), "set tmp2 {%s}; "
|
||||
"while {[regsub {([^/]*\\.*[^./]+[^/]*)/\\.\\./?} $tmp2 {} tmp2]} {}; ", win_xschem_library_path);
|
||||
|
|
|
|||
Loading…
Reference in New Issue