mirror of
https://github.com/StefanSchippers/xschem.git
synced 2026-08-22 06:07:29 +02:00
fix: load_wire() was using storeobject() for storing data, causing unwanted modify=1 flag (this has various side effects including changing window title)
This commit is contained in:
@@ -34,6 +34,7 @@ void set_modify(int mod)
|
|||||||
{
|
{
|
||||||
static int prev = -1;
|
static int prev = -1;
|
||||||
modified = mod;
|
modified = mod;
|
||||||
|
dbg(1, "set_modify(): %d\n", mod);
|
||||||
if(mod != prev) {
|
if(mod != prev) {
|
||||||
prev = mod;
|
prev = mod;
|
||||||
if(has_x && strcmp(get_cell(xctx->sch[xctx->currsch],1), "systemlib/font")) {
|
if(has_x && strcmp(get_cell(xctx->sch[xctx->currsch],1), "systemlib/font")) {
|
||||||
|
|||||||
+15
-10
@@ -495,19 +495,25 @@ static void load_text(FILE *fd)
|
|||||||
|
|
||||||
static void load_wire(FILE *fd)
|
static void load_wire(FILE *fd)
|
||||||
{
|
{
|
||||||
|
xWire *ptr;
|
||||||
|
int i;
|
||||||
|
|
||||||
double x1,y1,x2,y2;
|
check_wire_storage();
|
||||||
char *ptr=NULL;
|
ptr = xctx->wire;
|
||||||
|
i = xctx->wires;
|
||||||
dbg(3, "load_wire(): start\n");
|
dbg(3, "load_wire(): start\n");
|
||||||
if(fscanf(fd, "%lf %lf %lf %lf",&x1, &y1, &x2, &y2 )<4) {
|
if(fscanf(fd, "%lf %lf %lf %lf",&ptr[i].x1, &ptr[i].y1, &ptr[i].x2, &ptr[i].y2 )<4) {
|
||||||
fprintf(errfp,"WARNING: missing fields for WIRE object, ignoring\n");
|
fprintf(errfp,"WARNING: missing fields for WIRE object, ignoring\n");
|
||||||
read_line(fd, 0);
|
read_line(fd, 0);
|
||||||
} else {
|
return;
|
||||||
load_ascii_string( &ptr, fd);
|
|
||||||
ORDER(x1, y1, x2, y2);
|
|
||||||
storeobject(-1, x1,y1,x2,y2,WIRE,0,0,ptr);
|
|
||||||
}
|
}
|
||||||
my_free(883, &ptr);
|
ptr[i].prop_ptr = NULL;
|
||||||
|
ptr[i].end1 = ptr[i].end2 = ptr[i].bus = ptr[i].sel = 0;
|
||||||
|
load_ascii_string( &ptr[i].prop_ptr, fd);
|
||||||
|
ORDER(ptr[i].x1, ptr[i].y1, ptr[i].x2, ptr[i].y2);
|
||||||
|
if(!strcmp(get_tok_value(ptr[i].prop_ptr, "bus", 0), "true") ) ptr[i].bus = 1;
|
||||||
|
ptr[i].node = NULL;
|
||||||
|
xctx->wires++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void load_inst(int k, FILE *fd)
|
static void load_inst(int k, FILE *fd)
|
||||||
@@ -701,8 +707,7 @@ static void load_line(FILE *fd)
|
|||||||
check_line_storage(c);
|
check_line_storage(c);
|
||||||
i=xctx->lines[c];
|
i=xctx->lines[c];
|
||||||
ptr=xctx->line[c];
|
ptr=xctx->line[c];
|
||||||
if(fscanf(fd, "%lf %lf %lf %lf ",&ptr[i].x1, &ptr[i].y1,
|
if(fscanf(fd, "%lf %lf %lf %lf ",&ptr[i].x1, &ptr[i].y1, &ptr[i].x2, &ptr[i].y2) < 4) {
|
||||||
&ptr[i].x2, &ptr[i].y2) < 4) {
|
|
||||||
fprintf(errfp,"WARNING: missing fields for LINE object, ignoring\n");
|
fprintf(errfp,"WARNING: missing fields for LINE object, ignoring\n");
|
||||||
read_line(fd, 0);
|
read_line(fd, 0);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user