fix unitialized vars (mostly false errors, but why not...)

This commit is contained in:
stefan schippers 2023-09-28 00:30:00 +02:00
parent 6c4c8b3a50
commit 5080c2c33f
7 changed files with 52 additions and 48 deletions

View File

@ -189,7 +189,7 @@ static void backannotate_at_cursor_b_pos(xRect *r, Graph_ctx *gr)
{
if(sch_waves_loaded() >= 0) {
int dset, first, last, dataset = gr->dataset, i, p, ofs = 0;
int dset, first = -1, last, dataset = gr->dataset, i, p, ofs = 0;
double start, end;
int sweepvar_wrap = 0, sweep_idx;
double xx, cursor2; /* xx is the p-th sweep variable value, cursor2 is cursor 'b' x position */
@ -248,26 +248,30 @@ static void backannotate_at_cursor_b_pos(xRect *r, Graph_ctx *gr)
ofs += xctx->graph_npoints[dset];
sweepvar_wrap++;
} /* for(dset...) */
if(p > last) {
double sweep0, sweep1;
p = last;
sweep0 = xctx->graph_values[sweep_idx][first];
sweep1 = xctx->graph_values[sweep_idx][p];
if(fabs(sweep0 - cursor2) < fabs(sweep1 - cursor2)) {
p = first;
if(first != -1) {
if(p > last) {
double sweep0, sweep1;
p = last;
sweep0 = xctx->graph_values[sweep_idx][first];
sweep1 = xctx->graph_values[sweep_idx][p];
if(fabs(sweep0 - cursor2) < fabs(sweep1 - cursor2)) {
p = first;
}
}
dbg(1, "xx=%g, p=%d\n", xx, p);
tcleval("array unset ngspice::ngspice_data");
xctx->graph_annotate_p = p;
for(i = 0; i < xctx->graph_nvars; ++i) {
char s[100];
my_snprintf(s, S(s), "%.4g", xctx->graph_values[i][p]);
dbg(1, "%s = %g\n", xctx->graph_names[i], xctx->graph_values[i][p]);
tclvareval("array set ngspice::ngspice_data [list {", xctx->graph_names[i], "} ", s, "]", NULL);
}
tclvareval("set ngspice::ngspice_data(n\\ vars) ", my_itoa( xctx->graph_nvars), NULL);
tclvareval("set ngspice::ngspice_data(n\\ points) 1", NULL);
}
dbg(1, "xx=%g, p=%d\n", xx, p);
tcleval("array unset ngspice::ngspice_data");
xctx->graph_annotate_p = p;
for(i = 0; i < xctx->graph_nvars; ++i) {
char s[100];
my_snprintf(s, S(s), "%.4g", xctx->graph_values[i][p]);
dbg(1, "%s = %g\n", xctx->graph_names[i], xctx->graph_values[i][p]);
tclvareval("array set ngspice::ngspice_data [list {", xctx->graph_names[i], "} ", s, "]", NULL);
}
tclvareval("set ngspice::ngspice_data(n\\ vars) ", my_itoa( xctx->graph_nvars), NULL);
tclvareval("set ngspice::ngspice_data(n\\ points) 1", NULL);
}
}
@ -324,7 +328,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
{
Graph_ctx *gr;
int i, redraw_all_at_end = 0, need_all_redraw = 0, need_redraw = 0, dataset = 0;
double xx1, xx2, yy1, yy2;
double xx1 = 0.0, xx2 = 0.0, yy1, yy2;
double delta_threshold = 0.25;
double zoom_m = 0.5;
int save_mouse_at_end = 0, clear_graphpan_at_end = 0;
@ -559,12 +563,12 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
if(gr->unitx != 1.0)
my_snprintf(sx, S(sx), "%.5g%c", gr->unitx * xval, gr->unitx_suffix);
else
strncpy(sx, dtoa_eng(xval), S(sx));
my_strncpy(sx, dtoa_eng(xval), S(sx));
if(gr->unitx != 1.0)
my_snprintf(sy, S(sy), "%.4g%c", gr->unity * yval, gr->unity_suffix);
else
strncpy(sy, dtoa_eng(yval), S(sy));
my_strncpy(sy, dtoa_eng(yval), S(sy));
tclvareval("set measure_text \"y=", sy, "\nx=", sx, "\"", NULL);
tcleval("graph_show_measure");
@ -945,7 +949,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
if(xx2 < xx1) { tmp = xx1; xx1 = xx2; xx2 = tmp; }
if(xx1 == xx2) xx2 += 1e-6;
*/
if(xx1 == xx2) xx2 += 1e-6;
my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x1", dtoa(xx1)));
my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x2", dtoa(xx2)));
need_redraw = 1;

View File

@ -415,6 +415,7 @@ static int touches_inst_pin(double x, double y, int inst)
/* return 2 if x0, y0 is on the segment
* return 1 if x0, y0 is less than cadsnap (10) from the segment
* return 0 if nothing will be cut (mouse too far away or degenerated segment)
* In this case x0, y0 are reset to the closest point on the segment */
static int closest_point_calculation(double x1, double y1, double x2, double y2,
double *x0, double *y0, int align)
@ -426,22 +427,20 @@ static int closest_point_calculation(double x1, double y1, double x2, double y2,
sq_cs = cs * cs; /* get squared value to compare with squared distance */
if(x1 == x2 && y1 == y2) {
x3 = x1;
y3 = y1;
ret = 0;
} else {
projection = (x2 - x1) * (*x0 - x1) + (y2 - y1) * (*y0 - y1);
projection /= (x2 - x1) * ( x2 - x1) + (y2 - y1) * (y2 - y1);
x3 = x1 + projection * (x2 - x1);
y3 = y1 + projection * (y2 - y1);
}
sq_distance = (*x0 - x3) * (*x0 - x3) + (*y0 - y3) * (*y0 - y3);
if(projection <= 1 && projection >= 0) { /* point is within x1,y1 - x2,y2 */
if(sq_distance == 0) ret = 2;
else if(sq_distance < sq_cs) ret = 1;
sq_distance = (*x0 - x3) * (*x0 - x3) + (*y0 - y3) * (*y0 - y3);
if(projection <= 1 && projection >= 0) { /* point is within x1,y1 - x2,y2 */
if(sq_distance == 0) ret = 2;
else if(sq_distance < sq_cs) ret = 1;
}
dbg(1, "x3 = %g y3=%g dist=%g ret=%d\n", x3, y3, sqrt(sq_distance), ret);
}
dbg(1, "x3 = %g y3=%g dist=%g ret=%d\n", x3, y3, sqrt(sq_distance), ret);
if(ret == 1) {
if(align) {
*x0 = my_round(x3 / cs) * cs;
@ -450,6 +449,7 @@ static int closest_point_calculation(double x1, double y1, double x2, double y2,
*x0 = x3;
*y0 = y3;
}
/* if ret == 2 leave x0 and y0 as they are since x0,y0 already touches wire */
}
return ret;
}
@ -470,7 +470,7 @@ void break_wires_at_point(double x0, double y0, int align)
x2 = xctx->wire[i].x2;
y2 = xctx->wire[i].y2;
r = closest_point_calculation(x1, y1, x2, y2, &x0, &y0, align);
if( r == 1 || touch(x1, y1, x2, y2, x0,y0) ) {
if( r != 0 && (r == 1 || touch(x1, y1, x2, y2, x0,y0) )) {
if( (x0 != x1 && x0 != x2) ||
(y0 != y1 && y0 != y2) ) {
dbg(1, "break_wires_at_point(): processing wire %d: %g %g %g %g\n",

View File

@ -2209,7 +2209,7 @@ static void draw_graph_points(int idx, int first, int last,
int poly_npoints = 0;
double s1;
double s2;
double c, c1;
double c = 0, c1;
register SPICE_DATA *gv = xctx->graph_values[idx];
dbg(1, "draw_graph_points: idx=%d, first=%d, last=%d, wcnt=%d\n", idx, first, last, wcnt);
@ -2874,7 +2874,7 @@ int calc_custom_data_yrange(int sweep_idx, const char *express, Graph_ctx *gr)
int p, dset, ofs;
int first, last;
double xx; /* the p-th sweep variable value: xctx->graph_values[sweep_idx][p] */
double xx0; /* first sweep value */
double xx0 = 0; /* first sweep value */
double start;
double end;
int sweepvar_wrap = 0; /* incremented on new dataset or sweep variable wrap */
@ -2982,7 +2982,7 @@ int find_closest_wave(int i, Graph_ctx *gr)
int p, dset, ofs;
int first, last;
double xx, yy ; /* the p-th point */
double xx0; /* first sweep value */
double xx0 = 0.0; /* first sweep value */
double start;
double end;
int sweepvar_wrap = 0; /* incremented on new dataset or sweep variable wrap */
@ -2991,7 +2991,7 @@ int find_closest_wave(int i, Graph_ctx *gr)
end = (gr->gx1 <= gr->gx2) ? gr->gx2 : gr->gx1;
/* loop through all datasets found in raw file */
for(dset = 0 ; dset < xctx->graph_datasets; dset++) {
double prev_x;
double prev_x = 0.0;
int cnt=0, wrap;
register SPICE_DATA *gvx = xctx->graph_values[sweep_idx];
register SPICE_DATA *gvy;
@ -3022,7 +3022,7 @@ int find_closest_wave(int i, Graph_ctx *gr)
}
if(xx >= start && xx <= end) {
if(first == -1) first = p;
if( XSIGN(xval - xx) != XSIGN(xval - prev_x)) {
if( p > ofs && XSIGN(xval - xx) != XSIGN(xval - prev_x)) {
if(min < 0.0) {
min = fabs(yval - yy);
@ -3078,8 +3078,8 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
char *bus_msb = NULL;
int wcnt = 0, idx, expression;
int measure_p = -1;
double measure_x;
double measure_prev_x;
double measure_x = 0.0;
double measure_prev_x = 0.0;
char *express = NULL;
xRect *r = &xctx->rect[GRIDLAYER][i];
@ -3149,7 +3149,7 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
int poly_npoints;
int first, last;
double xx; /* the p-th sweep variable value: xctx->graph_values[sweep_idx][p] */
double xx0; /* the first sweep value */
double xx0 = 0.0; /* the first sweep value */
double start;
double end;
int n_bits = 1;
@ -3291,7 +3291,7 @@ static void draw_graph_all(int flags)
{
int i, sch_loaded, hide_graphs;
int bbox_set = 0;
int save_bbx1, save_bby1, save_bbx2, save_bby2;
int save_bbx1 = 0, save_bby1 = 0, save_bbx2 = 0, save_bby2 = 0;
dbg(1, "draw_graph_all(): flags=%d\n", flags);
/* save bbox data, since draw_graph_all() is called from draw() which may be called after a bbox(SET) */
sch_loaded = (sch_waves_loaded() >= 0);

View File

@ -1137,7 +1137,7 @@ static int edit_text_property(int x)
#endif
int sel, k, text_changed = 0, props_changed = 0, size_changed = 0, tmp;
int c,l, preserve;
double hsize, vsize, dtmp;
double hsize = 0.4, vsize = 0.4, dtmp;
double xx1,yy1,xx2,yy2;
double pcx,pcy; /* pin center 20070317 */
char property[100];/* used for float 2 string conv (xscale and yscale) overflow safe */

View File

@ -4225,7 +4225,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
*/
else if(!strcmp(argv[1], "switch"))
{
int r;
int r = 1; /* error: no switch was done */
if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;}
if(argc > 2) r = new_schematic("switch", argv[2], NULL);
Tcl_SetResult(interp, my_itoa(r), TCL_VOLATILE);

View File

@ -667,7 +667,7 @@ const char *get_sym_template(char *s,char *extra)
/* 2: eat backslashes */
/* 3: 1+2 :) */
dbg(1, "get_sym_template(): s=%s, extra=%s\n", s, extra);
dbg(1, "get_sym_template(): s=%s, extra=%s\n", s ? s : "NULL", extra ? extra : "NULL");
if(s==NULL) {
my_free(_ALLOC_ID_, &result);
return "";

View File

@ -1469,7 +1469,7 @@ static int switch_tab(int *window_count, const char *win_path)
/* non NULL and not empty noconfirm is used to avoid warning for duplicated filenames */
static void create_new_window(int *window_count, const char *noconfirm, const char *fname)
{
Window win_id;
Window win_id = 0LU;
char toppath[WINDOW_PATH_SIZE];
char prev_window[WINDOW_PATH_SIZE];
int i, n;
@ -1538,7 +1538,7 @@ static void create_new_window(int *window_count, const char *noconfirm, const ch
init_pixdata();/* populate xctx->fill_type array that is used in create_gc() to set fill styles */
save_xctx[n] = xctx;
dbg(1, "new_schematic() draw, load schematic\n");
xctx->window = win_id;
if(has_x) xctx->window = win_id;
set_snap(0); /* set default value specified in xschemrc as 'snap' else CADSNAP */
set_grid(0); /* set default value specified in xschemrc as 'grid' else CADGRID */
if(has_x) create_gc();
@ -2037,7 +2037,7 @@ static void resetcairo(int create, int clear, int force_or_resize)
/* w and h (if > 0 ) parameters force reset pixmap to w x h, regardless of window size */
void resetwin(int create_pixmap, int clear_pixmap, int force, int w, int h)
{
unsigned int width, height;
unsigned int width = 0, height = 0;
int status;
#ifndef __unix__
HWND hwnd = Tk_GetHWND(xctx->window);