more conversion warnings suppressed

This commit is contained in:
Stefan Frederik 2022-04-28 10:12:16 +02:00
parent 97911fe9fc
commit f882918931
19 changed files with 307 additions and 277 deletions

View File

@ -181,7 +181,7 @@ int hook_detect_target()
/* for --debug mode, use -ansi -pedantic for all detection */
if (istrue(get("/local/xschem/debug"))) {
append("cc/cflags", " -g -O0");
append("cc/cflags", " -g -O0 -Wconversion -Wno-sign-conversion");
if (require("cc/argstd/Wall", 0, 0) == 0) {
append("cc/cflags", " ");
append("cc/cflags", get("cc/argstd/Wall"));
@ -226,7 +226,7 @@ int hook_detect_target()
require("libs/io/dup2/*", 0, 0); /* Stefan: query dup2() availability */
require("parsgen/flex/presents", 0, 1);
require("parsgen/bison/presents", 0, 1);
require("libs/script/tk/*", 0, 1); /* this will also bring libs/script/tcl/* */
require("libs/script/tk/*", 0, 1); /* this will also bring libs/script/tcl */
require("fstools/awk", 0, 1);
require("libs/gui/xpm/*", 0, 1);
require("libs/gui/cairo/*", 0, 0);

View File

@ -696,17 +696,18 @@ void enable_layers(void)
}
}
int connect_by_kissing(void)
short connect_by_kissing(void)
{
xSymbol *symbol;
int npin, i, j;
double x0,y0, pinx0, piny0;
short flip, rot;
xRect *rct;
int k,ii, kissing, done_undo = 0;
short kissing, changed = 0;
int k, ii, done_undo = 0;
Wireentry *wptr;
Instpinentry *iptr;
int sqx, sqy, changed = 0;
int sqx, sqy;
rebuild_selected_array();
k = xctx->lastsel;
@ -788,7 +789,7 @@ void attach_labels_to_inst(int interactive) /* offloaded from callback.c 201710
const char *symname_pin2 = "lab_pin.sym";
const char *symname_wire2 = "lab_wire.sym";
char *type=NULL;
int dir;
short dir;
int k,ii, skip;
int do_all_inst=0;
const char *rot_txt;
@ -913,9 +914,9 @@ void attach_labels_to_inst(int interactive) /* offloaded from callback.c 201710
dir ^= flip; /* 20101129 20111030 */
if(rotated_text ==-1) {
rot1=rot;
if(rot1==1 || rot1==2) { dir=!dir;rot1 = (rot1+2) %4;}
if(rot1==1 || rot1==2) { dir=!dir;rot1 = (short)((rot1+2) %4);}
} else {
rot1=(rot+rotated_text)%4; /* 20111103 20171208 text_rotation */
rot1=(short)((rot+rotated_text)%4); /* 20111103 20171208 text_rotation */
}
if(!strcmp(tclgetvar("use_lab_wire"),"0")) {
if(indirect)
@ -1399,7 +1400,7 @@ void go_back(int confirm) /* 20171006 add confirm */
so glob patterns containing Windows style path separators need special care.*/
void change_to_unix_fn(char* fn)
{
int len, i, ii;
size_t len, i, ii;
len = strlen(fn);
ii = 0;
for (i = 0; i < len; ++i) {
@ -1651,8 +1652,8 @@ void set_viewport_size(int w, int h, double lw)
{
xctx->xrect[0].x = 0;
xctx->xrect[0].y = 0;
xctx->xrect[0].width = w;
xctx->xrect[0].height = h;
xctx->xrect[0].width = (unsigned short)w;
xctx->xrect[0].height = (unsigned short)h;
xctx->areax2 = w+2*INT_WIDTH(lw);
xctx->areay2 = h+2*INT_WIDTH(lw);
xctx->areax1 = -2*INT_WIDTH(lw);
@ -1677,8 +1678,8 @@ void save_restore_zoom(int save)
} else {
xctx->xrect[0].x = 0;
xctx->xrect[0].y = 0;
xctx->xrect[0].width = savew;
xctx->xrect[0].height = saveh;
xctx->xrect[0].width = (unsigned short)savew;
xctx->xrect[0].height = (unsigned short)saveh;
xctx->areax2 = savew+2*INT_WIDTH(savelw);
xctx->areay2 = saveh+2*INT_WIDTH(savelw);
xctx->areax1 = -2*INT_WIDTH(savelw);
@ -1768,10 +1769,10 @@ void draw_stuff(void)
#endif
for(i = 0; i < n; i++)
{
w=(float)(xctx->areaw*xctx->zoom/800) * rand() / (RAND_MAX+1.0);
h=(float)(xctx->areah*xctx->zoom/80) * rand() / (RAND_MAX+1.0);
x1=(float)(xctx->areaw*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->xorigin;
y1=(float)(xctx->areah*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->yorigin;
w=(xctx->areaw*xctx->zoom/800) * rand() / (RAND_MAX+1.0);
h=(xctx->areah*xctx->zoom/80) * rand() / (RAND_MAX+1.0);
x1=(xctx->areaw*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->xorigin;
y1=(xctx->areah*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->yorigin;
x2=x1+w;
y2=y1+h;
ORDER(x1,y1,x2,y2);
@ -1785,10 +1786,10 @@ void draw_stuff(void)
for(i = 0; i < n; i++)
{
w=(float)(xctx->areaw*xctx->zoom/80) * rand() / (RAND_MAX+1.0);
h=(float)(xctx->areah*xctx->zoom/800) * rand() / (RAND_MAX+1.0);
x1=(float)(xctx->areaw*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->xorigin;
y1=(float)(xctx->areah*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->yorigin;
w=(xctx->areaw*xctx->zoom/80) * rand() / (RAND_MAX+1.0);
h=(xctx->areah*xctx->zoom/800) * rand() / (RAND_MAX+1.0);
x1=(xctx->areaw*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->xorigin;
y1=(xctx->areah*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->yorigin;
x2=x1+w;
y2=y1+h;
ORDER(x1,y1,x2,y2);
@ -1802,10 +1803,10 @@ void draw_stuff(void)
for(i = 0; i < n; i++)
{
w=(float)xctx->zoom * rand() / (RAND_MAX+1.0);
w=xctx->zoom * rand() / (RAND_MAX+1.0);
h=w;
x1=(float)(xctx->areaw*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->xorigin;
y1=(float)(xctx->areah*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->yorigin;
x1=(xctx->areaw*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->xorigin;
y1=(xctx->areah*xctx->zoom) * rand() / (RAND_MAX+1.0)-xctx->yorigin;
x2=x1+w;
y2=y1+h;
RECTORDER(x1,y1,x2,y2);

View File

@ -22,7 +22,7 @@
#include "xschem.h"
static int waves_selected(int event, int key, int state, int button)
static int waves_selected(int event, int state, int button)
{
int i;
int is_inside = 0, skip = 0;
@ -88,7 +88,7 @@ static void abort_operation(void)
constrained_move=0;
xctx->last_command=0;
xctx->manhattan_lines = 0;
dbg(1, "abort_operation(): Escape: ui_state=%ld\n", xctx->ui_state);
dbg(1, "abort_operation(): Escape: ui_state=%d\n", xctx->ui_state);
if(xctx->ui_state & STARTMOVE)
{
move_objects(ABORT,0,0,0);
@ -862,7 +862,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
{
if(debug_var>=2)
if(event != MotionNotify)
fprintf(errfp, "callback(): reentrant call of callback(), semaphore=%d, ev=%d, ui_state=%ld\n",
fprintf(errfp, "callback(): reentrant call of callback(), semaphore=%d, ev=%d, ui_state=%d\n",
xctx->semaphore, event, xctx->ui_state);
}
xctx->mousex=X_TO_XSCHEM(mx);
@ -903,10 +903,10 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
MyXCopyArea(display, xctx->save_pixmap, xctx->window, xctx->gctiled, mx,my,button,aux,mx,my);
{
XRectangle xr[1];
xr[0].x=mx;
xr[0].y=my;
xr[0].width=button;
xr[0].height=aux;
xr[0].x=(short)mx;
xr[0].y=(short)my;
xr[0].width=(unsigned short)button;
xr[0].height=(unsigned short)aux;
/* redraw selection on expose, needed if no backing store available on the server 20171112 */
XSetClipRectangles(display, xctx->gc[SELLAYER], 0,0, xr, 1, Unsorted);
rebuild_selected_array();
@ -921,7 +921,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
break;
case MotionNotify:
if( waves_selected(event, key, state, button)) {
if( waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -1324,7 +1324,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
if(key<='9' && key >='0' && state==ControlMask) /* choose layer */
{
char n[30];
xctx->rectcolor = key - '0'+4;
xctx->rectcolor = (int)key - '0'+4;
my_snprintf(n, S(n), "%d", xctx->rectcolor);
tclvareval("xschem set rectcolor ", n, NULL);
@ -1351,7 +1351,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
if(key==XK_Right && !(state & ControlMask)) /* left */
{
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -1362,7 +1362,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
if(key==XK_Left && !(state & ControlMask)) /* right */
{
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -1373,7 +1373,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
if(key==XK_Down) /* down */
{
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -1384,7 +1384,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
if(key==XK_Up) /* up */
{
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -1502,7 +1502,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
if(key=='a' && state == 0) /* make symbol */
{
if(xctx->semaphore >= 2) break;
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -1733,7 +1733,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
xctx->enable_drill = 0;
if(exists) {
if(!tool) {
tool = atol(tclgetvar("sim(spicewave,default)"));
tool = atoi(tclgetvar("sim(spicewave,default)"));
my_snprintf(str, S(str), "sim(spicewave,%d,name)", tool);
my_strdup(1271, &tool_name, tclgetvar(str));
dbg(1,"callback(): tool_name=%s\n", tool_name);
@ -1860,7 +1860,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
if(key >= '0' && key <= '4' && state == 0) { /* toggle pin logic level */
if(xctx->semaphore >= 2) break;
if(key == '4') logic_set(-1, 1);
else logic_set(key - '0', 1);
else logic_set((int)key - '0', 1);
break;
}
if(key=='L' && state == (Mod1Mask | ShiftMask)) { /* add pin label*/
@ -1935,7 +1935,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
if(key=='m' && state==0 && !(xctx->ui_state & (STARTMOVE | STARTCOPY))) /* move selection */
{
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2066,7 +2066,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
if(key=='b' && state==0) /* merge schematic */
{
if(xctx->semaphore >= 2) break;
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2133,7 +2133,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
if(key=='f' && state == 0 ) /* full zoom */
{
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2153,8 +2153,8 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
break;
case ButtonPress: /* end operation */
dbg(1, "callback(): ButtonPress ui_state=%ld state=%d\n",xctx->ui_state,state);
if(waves_selected(event, key, state, button)) {
dbg(1, "callback(): ButtonPress ui_state=%d state=%d\n",xctx->ui_state,state);
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2308,21 +2308,21 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
}
else if(button==Button5 && state == 0 ) {
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
view_unzoom(CADZOOMSTEP);
}
else if(button==Button4 && state == 0 ) {
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
view_zoom(CADZOOMSTEP);
}
else if(button==Button4 && (state & ShiftMask) && !(state & Button2Mask)) {
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2331,7 +2331,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
redraw_w_a_l_r_p_rubbers();
}
else if(button==Button5 && (state & ShiftMask) && !(state & Button2Mask)) {
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2549,7 +2549,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
} /* button==Button1 */
break;
case ButtonRelease:
if(waves_selected(event, key, state, button)) {
if(waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
@ -2561,7 +2561,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
redraw_w_a_l_r_p_rubbers();
break;
}
dbg(1, "callback(): ButtonRelease ui_state=%ld state=%d\n",xctx->ui_state,state);
dbg(1, "callback(): ButtonRelease ui_state=%d state=%d\n",xctx->ui_state,state);
if(xctx->semaphore >= 2) break;
if(xctx->ui_state & STARTSELECT) {
if(state & ControlMask) {
@ -2581,12 +2581,12 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
}
break;
case -3: /* double click : edit prop */
if( waves_selected(event, key, state, button)) {
if( waves_selected(event, state, button)) {
waves_callback(event, mx, my, key, button, aux, state);
break;
}
if(xctx->semaphore >= 2) break;
dbg(1, "callback(): DoubleClick ui_state=%ld state=%d\n",xctx->ui_state,state);
dbg(1, "callback(): DoubleClick ui_state=%d state=%d\n",xctx->ui_state,state);
if(button==Button1) {
if(xctx->ui_state == STARTWIRE) {
xctx->ui_state &= ~STARTWIRE;

View File

@ -360,7 +360,7 @@ void draw_string(int layer, int what, const char *str, short rot, short flip, in
a=0.0;
continue;
}
lines=character[cc][0]*4;
lines=(int)character[cc][0]*4;
char_ptr_x1=character[cc]+1;
char_ptr_y1=character[cc]+2;
char_ptr_x2=character[cc]+3;
@ -776,8 +776,8 @@ static void drawgrid()
xctx->biggridpoint[i].y1 = xctx->biggridpoint[i].y2 = (short)(y);
i++;
} else {
xctx->gridpoint[i].x=(int)(x);
xctx->gridpoint[i].y=(int)(y);
xctx->gridpoint[i].x=(short)(x);
xctx->gridpoint[i].y=(short)(y);
i++;
}
}
@ -856,7 +856,7 @@ void drawline(int c, int what, double linex1, double liney1, double linex2, doub
if( clip(&x1,&y1,&x2,&y2) )
{
if(dash) {
dash_arr[0] = dash_arr[1] = dash;
dash_arr[0] = dash_arr[1] = (char) dash;
XSetDashes(display, xctx->gc[c], 0, dash_arr, 2);
XSetLineAttributes (display, xctx->gc[c], INT_WIDTH(xctx->lw), xDashType, CapButt, JoinBevel);
}
@ -879,7 +879,7 @@ void drawline(int c, int what, double linex1, double liney1, double linex2, doub
if( clip(&x1,&y1,&x2,&y2) )
{
if(dash) {
dash_arr[0] = dash_arr[1] = dash;
dash_arr[0] = dash_arr[1] = (char) dash;
XSetDashes(display, xctx->gc[c], 0, dash_arr, 2);
XSetLineAttributes (display, xctx->gc[c], INT_BUS_WIDTH(xctx->lw), xDashType, CapButt, JoinBevel);
} else {
@ -1012,8 +1012,8 @@ void drawtemparc(GC gc, int what, double x, double y, double r, double a, double
xarc[i].y=(short)yy1;
xarc[i].width= (unsigned short)(xx2 - xx1);
xarc[i].height=(unsigned short)(yy2 - yy1);
xarc[i].angle1 = (int)(a*64);
xarc[i].angle2 = (int)(b*64);
xarc[i].angle1 = (short)(a*64);
xarc[i].angle2 = (short)(b*64);
i++;
}
}
@ -1107,8 +1107,8 @@ void filledarc(int c, int what, double x, double y, double r, double a, double b
xarc[i].y=(short)yy1;
xarc[i].width =(unsigned short)(xx2 - xx1);
xarc[i].height=(unsigned short)(yy2 - yy1);
xarc[i].angle1 = (int)(a*64);
xarc[i].angle2 = (int)(b*64);
xarc[i].angle1 = (short)(a*64);
xarc[i].angle2 = (short)(b*64);
i++;
}
}
@ -1173,8 +1173,8 @@ void drawarc(int c, int what, double x, double y, double r, double a, double b,
xarc[i].y=(short)yy1;
xarc[i].width =(unsigned short)(xx2 - xx1);
xarc[i].height=(unsigned short)(yy2 - yy1);
xarc[i].angle1 = (int)(a*64);
xarc[i].angle2 = (int)(b*64);
xarc[i].angle1 = (short)(a*64);
xarc[i].angle2 = (short)(b*64);
i++;
}
}
@ -1196,7 +1196,7 @@ void drawarc(int c, int what, double x, double y, double r, double a, double b,
{
if(dash) {
char dash_arr[2];
dash_arr[0] = dash_arr[1] = dash;
dash_arr[0] = dash_arr[1] = (char)dash;
XSetDashes(display, xctx->gc[c], 0, dash_arr, 2);
XSetLineAttributes (display, xctx->gc[c], INT_WIDTH(xctx->lw), xDashType, CapButt, JoinBevel);
}
@ -1278,8 +1278,8 @@ void filledrect(int c, int what, double rectx1,double recty1,double rectx2,doubl
{
r[i].x=(short)x1;
r[i].y=(short)y1;
r[i].width=(unsigned short)x2-r[i].x;
r[i].height=(unsigned short)y2-r[i].y;
r[i].width=(unsigned short)(x2-r[i].x);
r[i].height=(unsigned short)(y2-r[i].y);
i++;
}
}
@ -1394,7 +1394,7 @@ void drawpolygon(int c, int what, double *x, double *y, int points, int poly_fil
}
if(dash) {
char dash_arr[2];
dash_arr[0] = dash_arr[1] = dash;
dash_arr[0] = dash_arr[1] = (char)dash;
XSetDashes(display, xctx->gc[c], 0, dash_arr, 2);
XSetLineAttributes (display, xctx->gc[c], INT_WIDTH(xctx->lw), xDashType, CapButt, JoinBevel);
}
@ -1458,7 +1458,7 @@ void drawrect(int c, int what, double rectx1,double recty1,double rectx2,double
if( rectclip(xctx->areax1,xctx->areay1,xctx->areax2,xctx->areay2,&x1,&y1,&x2,&y2) )
{
if(dash) {
dash_arr[0] = dash_arr[1] = dash;
dash_arr[0] = dash_arr[1] = (char)dash;
XSetDashes(display, xctx->gc[c], 0, dash_arr, 2);
XSetLineAttributes (display, xctx->gc[c], INT_WIDTH(xctx->lw), xDashType, CapButt, JoinBevel);
}
@ -1494,8 +1494,8 @@ void drawrect(int c, int what, double rectx1,double recty1,double rectx2,double
{
r[i].x=(short)x1;
r[i].y=(short)y1;
r[i].width=(unsigned short)x2-r[i].x;
r[i].height=(unsigned short)y2-r[i].y;
r[i].width=(unsigned short)(x2-r[i].x);
r[i].height=(unsigned short)(y2-r[i].y);
i++;
}
}
@ -1544,8 +1544,8 @@ void drawtemprect(GC gc, int what, double rectx1,double recty1,double rectx2,dou
{
r[i].x=(short)x1;
r[i].y=(short)y1;
r[i].width=(unsigned short)x2-r[i].x;
r[i].height=(unsigned short)y2-r[i].y;
r[i].width=(unsigned short)(x2-r[i].x);
r[i].height=(unsigned short)(y2-r[i].y);
i++;
}
}
@ -2082,7 +2082,7 @@ static void draw_cursor(double active_cursorx, double other_cursorx, int cursor_
int tmp;
char tmpstr[1024];
double txtsize = gr->txtsizex;
int flip = (other_cursorx > active_cursorx) ? 0 : 1;
short flip = (other_cursorx > active_cursorx) ? 0 : 1;
int xoffs = flip ? 3 : -3;
if(xx >= gr->x1 && xx <= gr->x2) {
@ -2624,7 +2624,7 @@ void draw_graph(int i, const int flags, Graph_ctx *gr)
if(xx >= start && xx <= end) {
if(first == -1) first = p;
/* Build poly x array. Translate from graph coordinates to screen coords */
point[poly_npoints].x = (int)S_X(xx);
point[poly_npoints].x = (short)S_X(xx);
if(dataset == -1 || dataset == sweepvar_wrap) {
if(measure_p == -1 && flags & 2 && cnt) { /* cursor1: show measurements on nodes in graph */
if(XSIGN(xx - xctx->graph_cursor1_x) != XSIGN(prev_x - xctx->graph_cursor1_x)) {

View File

@ -453,7 +453,7 @@ void my_free(int id, void *ptr)
* not fit(d[n-1]='\0')
* return # of copied characters
*/
int my_strncpy(char *d, const char *s, int n)
int my_strncpy(char *d, const char *s, size_t n)
{
int i = 0;
n -= 1;
@ -544,7 +544,7 @@ static void edit_rect_property(int x)
dash = get_tok_value(xctx->rect[c][n].prop_ptr,"dash",0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
xctx->rect[c][n].dash = d >= 0? d : 0;
xctx->rect[c][n].dash = (short)(d >= 0? d : 0);
} else
xctx->rect[c][n].dash = 0;
if( (oldprop && xctx->rect[c][n].prop_ptr && strcmp(oldprop, xctx->rect[c][n].prop_ptr)) ||
@ -607,7 +607,7 @@ static void edit_line_property(void)
dash = get_tok_value(xctx->line[c][n].prop_ptr,"dash",0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
xctx->line[c][n].dash = d >= 0? d : 0;
xctx->line[c][n].dash = (short)(d >= 0? d : 0);
} else
xctx->line[c][n].dash = 0;
if(xctx->line[c][n].y1 < xctx->line[c][n].y2) {
@ -732,7 +732,7 @@ static void edit_arc_property(void)
dash = get_tok_value(xctx->arc[c][i].prop_ptr,"dash",0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
xctx->arc[c][i].dash = d >= 0 ? d : 0;
xctx->arc[c][i].dash = (short)(d >= 0 ? d : 0);
} else
xctx->arc[c][i].dash = 0;
@ -800,7 +800,7 @@ static void edit_polygon_property(void)
dash = get_tok_value(xctx->poly[c][i].prop_ptr,"dash",0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
xctx->poly[c][i].dash = d >= 0 ? d : 0;
xctx->poly[c][i].dash = (short)(d >= 0 ? d : 0);
} else
xctx->poly[c][i].dash = 0;
if(old_fill != xctx->poly[c][i].fill || old_dash != xctx->poly[c][i].dash) {
@ -890,7 +890,7 @@ static void edit_text_property(int x)
customfont = set_text_custom_font(&xctx->text[sel]);
#endif
text_bbox(xctx->text[sel].txt_ptr, xctx->text[sel].xscale,
xctx->text[sel].yscale, rot, flip, xctx->text[sel].hcenter,
xctx->text[sel].yscale, (short)rot, (short)flip, xctx->text[sel].hcenter,
xctx->text[sel].vcenter, xctx->text[sel].x0, xctx->text[sel].y0,
&xx1,&yy1,&xx2,&yy2, &tmp, &dtmp);
#if HAS_CAIRO==1
@ -911,7 +911,7 @@ static void edit_text_property(int x)
customfont = set_text_custom_font(&xctx->text[sel]);
#endif
text_bbox(xctx->text[sel].txt_ptr, xctx->text[sel].xscale,
xctx->text[sel].yscale, rot, flip, xctx->text[sel].hcenter,
xctx->text[sel].yscale, (short)rot, (short)flip, xctx->text[sel].hcenter,
xctx->text[sel].vcenter, xctx->text[sel].x0, xctx->text[sel].y0,
&xx1,&yy1,&xx2,&yy2, &tmp, &dtmp);
#if HAS_CAIRO==1
@ -978,7 +978,7 @@ static void edit_text_property(int x)
customfont = set_text_custom_font(&xctx->text[sel]);
#endif
text_bbox(xctx->text[sel].txt_ptr, xctx->text[sel].xscale,
xctx->text[sel].yscale, rot, flip, xctx->text[sel].hcenter,
xctx->text[sel].yscale, (short)rot, (short)flip, xctx->text[sel].hcenter,
xctx->text[sel].vcenter, xctx->text[sel].x0, xctx->text[sel].y0,
&xx1,&yy1,&xx2,&yy2, &tmp, &dtmp);
#if HAS_CAIRO==1
@ -1109,7 +1109,7 @@ static void update_symbol(const char *result, int x)
if(name && name[0] ) {
dbg(1, "update_symbol(): prefix!='\\0', name=%s\n", name);
/* 20110325 only modify prefix if prefix not NUL */
if(prefix) name[0]=prefix; /* change prefix if changing symbol type; */
if(prefix) name[0]=(char)prefix; /* change prefix if changing symbol type; */
dbg(1, "update_symbol(): name=%s, inst[*ii].prop_ptr=%s\n",
name, xctx->inst[*ii].prop_ptr);
my_strdup(89, &ptr,subst_token(xctx->inst[*ii].prop_ptr, "name", name) );

View File

@ -52,7 +52,7 @@ extern void my_realloc(int id, void *ptr,size_t size);
extern size_t my_strdup(int id, char **dest, const char *src);
extern int debug_var;
extern void dbg(int level, char *fmt, ...);
extern int my_snprintf(char *str, int size, const char *fmt, ...);
extern size_t my_snprintf(char *str, size_t size, const char *fmt, ...);
extern int yyparse_error;
@ -83,7 +83,7 @@ static char *expandlabel_strdup(char *src)
static char *expandlabel_strcat(char *s1, char *s2)
/* concatenates s1 and s2, with c in between */
{
int l1=0,l2=0;
size_t l1=0,l2=0;
char *res;
if(s1) l1=strlen(s1);
@ -98,7 +98,7 @@ static char *expandlabel_strcat(char *s1, char *s2)
static char *expandlabel_strcat_char(char *s1, char c, char *s2)
/* concatenates s1 and s2, with c in between */
{
int l1=0,l2=0;
size_t l1=0,l2=0;
char *res;
if(s1) l1=strlen(s1);
@ -117,7 +117,8 @@ static char *expandlabel_strcat_char(char *s1, char c, char *s2)
static char *expandlabel_strmult2(int n, char *s)
/* if n==0 returns "\0" */
{
register int i, len;
register int i;
register size_t len;
register char *pos,*prev;
char *str, *ss;
@ -152,7 +153,8 @@ static char *expandlabel_strmult2(int n, char *s)
static char *expandlabel_strmult(int n, char *s)
/* if n==0 returns "\0" */
{
register int i, len;
register int i;
register size_t len;
register char *pos;
char *str;
@ -318,7 +320,7 @@ list: B_NAME {
| list B_CAR list
{
dbg(3, "yyparse(): list B_CAR list\n");
$$.str=expandlabel_strcat_char($1.str, $2, $3.str);
$$.str=expandlabel_strcat_char($1.str, (char)$2, $3.str);
$$.m = $1.m + $3.m;
my_free(744, &$1.str);
my_free(745, &$3.str);
@ -329,7 +331,7 @@ list: B_NAME {
}
| B_NAME '[' B_NAME ']'
{
int size = strlen($1) + strlen($3) + 3;
size_t size = strlen($1) + strlen($3) + 3;
$$.str = my_malloc(81, size);
$$.m=-1;
my_snprintf($$.str, size, "%s[%s]", $1, $3);

View File

@ -88,8 +88,8 @@ static Hilight_hashentry *hilight_hash_lookup(const char *token, int value, int
preventry=&xctx->hilight_table[index];
while(1) {
if( !entry ) { /* empty slot */
int lent = strlen(token) + 1;
int lenp = strlen(xctx->sch_path[xctx->currsch]) + 1;
size_t lent = strlen(token) + 1;
size_t lenp = strlen(xctx->sch_path[xctx->currsch]) + 1;
if( what==XINSERT || what == XINSERT_NOREPLACE) { /* insert data */
s=sizeof( Hilight_hashentry );
entry= (Hilight_hashentry *)my_malloc(137, s );
@ -254,7 +254,7 @@ void create_plot_cmd(void)
if(tclresult()[0] == '1') exists = 1;
xctx->enable_drill = 0;
if(exists) {
viewer = atol(tclgetvar("sim(spicewave,default)"));
viewer = atoi(tclgetvar("sim(spicewave,default)"));
my_snprintf(tcl_str, S(tcl_str), "sim(spicewave,%d,name)", viewer);
my_strdup(1269, &viewer_name, tclgetvar(tcl_str));
dbg(1,"create_plot_cmd(): viewer_name=%s\n", viewer_name);
@ -562,7 +562,7 @@ int search(const char *tok, const char *val, int sub, int sel)
int i,c, col = 7,tmp,bus=0;
const char *str;
char *type;
int has_token;
size_t has_token;
const char *empty_string = "";
char *tmpname=NULL;
int found = 0;

View File

@ -104,7 +104,7 @@ const char *expandlabel(const char *s, int *m)
yy_delete_buffer(buf);
if(yyparse_error==1) {
char *cmd = NULL;
int l;
size_t l;
yyparse_error = -1;
l = strlen(s)+120;
cmd = my_malloc(526, l);

View File

@ -118,7 +118,7 @@ static void merge_box(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -160,7 +160,7 @@ static void merge_arc(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -217,7 +217,7 @@ static void merge_polygon(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -254,7 +254,7 @@ static void merge_line(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -263,10 +263,6 @@ static void merge_line(FILE *fd)
set_modify(1);
}
static void merge_inst(int k,FILE *fd)
{
int i;

View File

@ -89,9 +89,9 @@ char *utf8[]={
static FILE *fd;
typedef struct {
int red;
int green;
int blue;
unsigned int red;
unsigned int green;
unsigned int blue;
} Ps_color;
static Ps_color *ps_colors;
@ -673,7 +673,7 @@ static void fill_ps_colors()
* }
*/
for(i=0;i<cadlayers;i++) {
my_snprintf(s, S(s), "lindex $ps_colors %d", i);
my_snprintf(s, S(s), "lindex $ps_colors %u", i);
tcleval( s);
sscanf(tclresult(),"%x", &c);
ps_colors[i].red = (c & 0xff0000) >> 16;

View File

@ -186,7 +186,8 @@ unsigned char *base64_decode(const char *data, const size_t input_length, size_t
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f
};
unsigned char *decoded_data;
int i, j, sextet[4], triple, cnt, padding, actual_length;
int i, j, sextet[4], triple, cnt, padding;
size_t actual_length;
actual_length = input_length;
*output_length = input_length / 4 * 3 + 4; /* add 4 more just in case... */
@ -206,9 +207,9 @@ unsigned char *base64_decode(const char *data, const size_t input_length, size_t
sextet[cnt & 3] = data[i] == '=' ? 0 : b64_dec[(int)data[i]];
if((cnt & 3) == 3) {
triple = (sextet[0] << 18) + (sextet[1] << 12) + (sextet[2] << 6) + (sextet[3]);
decoded_data[j++] = (triple >> 16) & 0xFF;
decoded_data[j++] = (triple >> 8) & 0xFF;
decoded_data[j++] = (triple) & 0xFF;
decoded_data[j++] = (unsigned char)((triple >> 16) & 0xFF);
decoded_data[j++] = (unsigned char)((triple >> 8) & 0xFF);
decoded_data[j++] = (unsigned char)((triple) & 0xFF);
}
cnt++;
i++;
@ -871,9 +872,8 @@ static const char *random_string(const char *prefix)
static const char *charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
static const int random_size=10;
static char str[PATH_MAX]; /* safe even with multiple schematics, if immediately copied */
int prefix_size;
size_t prefix_size, i;
static unsigned short once=1; /* safe even with multiple schematics, set once and never changed */
int i;
int idx;
if(once) {
srand((unsigned short) time(NULL));
@ -960,9 +960,10 @@ void updatebbox(int count, xRect *boundbox, xRect *tmp)
void save_ascii_string(const char *ptr, FILE *fd, int newline)
{
int c, len, strbuf_pos = 0;
int c;
size_t len, strbuf_pos = 0;
static char *strbuf = NULL; /* safe even with multiple schematics */
static int strbuf_size=0; /* safe even with multiple schematics */
static size_t strbuf_size=0; /* safe even with multiple schematics */
if(ptr == NULL) {
if( fd == NULL) { /* used to clear static data */
@ -981,7 +982,7 @@ void save_ascii_string(const char *ptr, FILE *fd, int newline)
while( (c = *ptr++) ) {
if(strbuf_pos > strbuf_size - 6) my_realloc(525, &strbuf, (strbuf_size += CADCHUNKALLOC));
if( c=='\\' || c=='{' || c=='}') strbuf[strbuf_pos++] = '\\';
strbuf[strbuf_pos++] = c;
strbuf[strbuf_pos++] = (char)c;
}
strbuf[strbuf_pos++] = '}';
if(newline) strbuf[strbuf_pos++] = '\n';
@ -1199,7 +1200,7 @@ static void save_line(FILE *fd, int select_only)
static void write_xschem_file(FILE *fd)
{
int ty=0;
size_t ty=0;
char *ptr;
if(xctx->version_string && (ptr = strstr(xctx->version_string, "xschem")) &&
@ -1415,7 +1416,7 @@ static void load_polygon(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -1455,7 +1456,7 @@ static void load_arc(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -1492,7 +1493,7 @@ static void load_box(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -1534,7 +1535,7 @@ static void load_line(FILE *fd)
dash = get_tok_value(ptr[i].prop_ptr,"dash",0);
if(strcmp(dash, "")) {
int d = atoi(dash);
ptr[i].dash = d >= 0 ? d : 0;
ptr[i].dash = (short)(d >= 0 ? d : 0);
} else {
ptr[i].dash = 0;
}
@ -1547,7 +1548,7 @@ static void read_xschem_file(FILE *fd)
char name_embedded[PATH_MAX];
char tag[1];
int inst_cnt;
int ty=0;
size_t ty=0;
dbg(2, "read_xschem_file(): start\n");
inst_cnt = endfile = 0;
@ -1701,7 +1702,7 @@ void load_ascii_string(char **ptr, FILE *fd)
continue;
}
}
str[i]=c;
str[i]=(char)c;
escape = 0;
i++;
} else if(c=='{') begin=1;
@ -2310,7 +2311,8 @@ static void align_sch_pins_with_sym(const char *name, int pos)
static void add_pinlayer_boxes(int *lastr, xRect **bb,
const char *symtype, char *prop_ptr, double i_x0, double i_y0)
{
int i, save;
int i;
size_t save;
const char *label;
char *pin_label = NULL;
@ -2453,7 +2455,11 @@ int load_sym_def(const char *name, FILE *embed_fd)
int incremented_level=0;
int level = 0;
int max_level, fscan_ret;
#ifdef __unix__
long filepos;
#else
__int3264 filepos;
#endif
char sympath[PATH_MAX];
int i,c, k, poly_points;
char *aux_ptr=NULL;
@ -2626,7 +2632,7 @@ int load_sym_def(const char *name, FILE *embed_fd)
dash = get_tok_value(ll[c][i].prop_ptr,"dash", 0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
ll[c][i].dash = d >= 0 ? d : 0;
ll[c][i].dash = (short)(d >= 0 ? d : 0);
} else
ll[c][i].dash = 0;
ll[c][i].sel = 0;
@ -2669,7 +2675,7 @@ int load_sym_def(const char *name, FILE *embed_fd)
dash = get_tok_value(pp[c][i].prop_ptr,"dash", 0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
pp[c][i].dash = d >= 0 ? d : 0;
pp[c][i].dash = (short)(d >= 0 ? d : 0);
} else
pp[c][i].dash = 0;
pp[c][i].sel = 0;
@ -2715,7 +2721,7 @@ int load_sym_def(const char *name, FILE *embed_fd)
dash = get_tok_value(aa[c][i].prop_ptr,"dash", 0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
aa[c][i].dash = d >= 0 ? d : 0;
aa[c][i].dash = (short)(d >= 0 ? d : 0);
} else
aa[c][i].dash = 0;
aa[c][i].sel = 0;
@ -2754,7 +2760,7 @@ int load_sym_def(const char *name, FILE *embed_fd)
dash = get_tok_value(bb[c][i].prop_ptr,"dash", 0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
bb[c][i].dash = d >= 0 ? d : 0;
bb[c][i].dash = (short)(d >= 0 ? d : 0);
} else
bb[c][i].dash = 0;
bb[c][i].sel = 0;
@ -2937,7 +2943,8 @@ int load_sym_def(const char *name, FILE *embed_fd)
flip = lcc[level-1].flip;
rot = lcc[level-1].rot;
ROTATION(rot, flip, 0.0, 0.0, lcc[level].x0, lcc[level].y0,lcc[level].x0, lcc[level].y0);
lcc[level].rot = (lcc[(level-1)].flip ? map[lcc[level].rot] : lcc[level].rot) + lcc[(level-1)].rot;
lcc[level].rot = (short)((lcc[(level-1)].flip ? map[lcc[level].rot] :
lcc[level].rot) + lcc[(level-1)].rot);
lcc[level].rot &= 0x3;
lcc[level].flip = lcc[level].flip ^ lcc[level-1].flip;
lcc[level].x0 += lcc[(level-1)].x0;
@ -3079,7 +3086,7 @@ void create_sch_from_sym(void)
char *str=NULL;
struct stat buf;
char *sch = NULL;
int ln;
size_t ln;
if(!stat(abs_sym_path(pinname[0], ""), &buf)) {
indirect=1;

View File

@ -53,7 +53,7 @@ static int get_instance(const char *s)
dbg(1, "get_instance(): found=%d, i=%d\n", found, i);
if(!found) {
if(!isonlydigit(s)) return -1;
i=atol(s);
i=atoi(s);
}
if(i<0 || i>xctx->instances) {
return -1;
@ -953,7 +953,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
}
else {
change_to_unix_fn(s);
int slen = strlen(s);
size_t slen = strlen(s);
if(s[slen - 1] == '/') s[slen - 1] = '\0';
my_strncpy(win_temp_dir, s, S(win_temp_dir));
dbg(2, "scheduler(): win_temp_dir is %s\n", win_temp_dir);
@ -1273,13 +1273,17 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
{
cmd_found = 1;
if(argc==7)
/* pos sym_name x y rot flip prop draw first */
place_symbol(-1, argv[2], atof(argv[3]), atof(argv[4]), atoi(argv[5]), atoi(argv[6]),NULL, 3, 1, 1/*to_push_undo*/);
/* pos sym_name x y rot */
place_symbol(-1, argv[2], atof(argv[3]), atof(argv[4]), (short)atoi(argv[5]),
/* flip prop draw first ito_push_undo */
(short)atoi(argv[6]),NULL, 3, 1, 1);
else if(argc==8)
place_symbol(-1, argv[2], atof(argv[3]), atof(argv[4]), atoi(argv[5]), atoi(argv[6]), argv[7], 3, 1, 1/*to_push_undo*/);
place_symbol(-1, argv[2], atof(argv[3]), atof(argv[4]), (short)atoi(argv[5]),
(short)atoi(argv[6]), argv[7], 3, 1, 1);
else if(argc==9) {
int x = !(atoi(argv[8]));
place_symbol(-1, argv[2], atof(argv[3]), atof(argv[4]), atoi(argv[5]), atoi(argv[6]), argv[7], 0, x, 1/*to_push_undo*/);
place_symbol(-1, argv[2], atof(argv[3]), atof(argv[4]), (short)atoi(argv[5]),
(short)atoi(argv[6]), argv[7], 0, x, 1);
}
}
@ -1522,7 +1526,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
y2=atof(argv[5]);
ORDER(x1,y1,x2,y2);
pos=-1;
if(argc==7) pos=atol(argv[6]);
if(argc==7) pos=atoi(argv[6]);
storeobject(pos, x1,y1,x2,y2,LINE,xctx->rectcolor,0,NULL);
save = xctx->draw_window; xctx->draw_window = 1;
drawline(xctx->rectcolor,NOW, x1,y1,x2,y2, 0);
@ -2136,7 +2140,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
y2=atof(argv[5]);
ORDER(x1,y1,x2,y2);
pos=-1;
if(argc==7) pos=atol(argv[6]);
if(argc==7) pos=atoi(argv[6]);
storeobject(pos, x1,y1,x2,y2,xRECT,xctx->rectcolor,0,NULL);
save = xctx->draw_window; xctx->draw_window = 1;
drawrect(xctx->rectcolor,NOW, x1,y1,x2,y2, 0);
@ -2240,7 +2244,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
if(name && name[0] )
{
/* 20110325 only modify prefix if prefix not NUL */
if(prefix) name[0]=prefix; /* change prefix if changing symbol type; */
if(prefix) name[0]=(char)prefix; /* change prefix if changing symbol type; */
my_strdup(371, &ptr,subst_token(xctx->inst[inst].prop_ptr, "name", name) );
hash_all_names(inst);
@ -2364,12 +2368,12 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
Tcl_SetResult(interp, (i >= 0) ? "1" : "0" , TCL_STATIC);
}
else if(!strcmp(argv[2],"wire") && argc==4) {
int n=atol(argv[3]);
if(n<xctx->wires && n >= 0) select_wire(atol(argv[3]), SELECTED, 0);
int n=atoi(argv[3]);
if(n<xctx->wires && n >= 0) select_wire(atoi(argv[3]), SELECTED, 0);
}
else if(!strcmp(argv[2],"text") && argc==4) {
int n=atol(argv[3]);
if(n<xctx->texts && n >= 0) select_text(atol(argv[3]), SELECTED, 0);
int n=atoi(argv[3]);
if(n<xctx->texts && n >= 0) select_text(atoi(argv[3]), SELECTED, 0);
}
drawtemparc(xctx->gc[SELLAYER], END, 0.0, 0.0, 0.0, 0.0, 0.0);
drawtemprect(xctx->gc[SELLAYER], END, 0.0, 0.0, 0.0, 0.0);
@ -2428,7 +2432,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
if(tclresult()[0] == '1') exists = 1;
xctx->enable_drill = 0;
if(exists) {
viewer = atol(tclgetvar("sim(spicewave,default)"));
viewer = atoi(tclgetvar("sim(spicewave,default)"));
my_snprintf(tcl_str, S(tcl_str), "sim(spicewave,%d,name)", viewer);
my_strdup(1267, &viewer_name, tclgetvar(tcl_str));
dbg(1,"send_to_viewer: viewer_name=%s\n", viewer_name);
@ -2894,7 +2898,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
if(argc >= 8) prop = argv[7];
if(argc >= 9) sel = atoi(argv[8]);
xctx->push_undo();
storeobject(pos, x1,y1,x2,y2,WIRE,0,sel,prop);
storeobject(pos, x1,y1,x2,y2,WIRE,0,(short)sel,prop);
xctx->prep_hi_structs=0;
xctx->prep_net_structs=0;
xctx->prep_hash_wires=0;

View File

@ -344,7 +344,7 @@ void delete(int to_push_undo)
customfont = set_text_custom_font(&xctx->text[i]);
#endif
text_bbox(xctx->text[i].txt_ptr, xctx->text[i].xscale,
xctx->text[i].yscale, select_rot, select_flip, xctx->text[i].hcenter,
xctx->text[i].yscale, (short) select_rot, (short) select_flip, xctx->text[i].hcenter,
xctx->text[i].vcenter, xctx->text[i].x0, xctx->text[i].y0,
&xx1,&yy1, &xx2,&yy2, &tmp, &dtmp);
#if HAS_CAIRO==1
@ -537,10 +537,10 @@ void bbox(int what,double x1,double y1, double x2, double y2)
xctx->areaw = (xctx->areax2-xctx->areax1);
xctx->areah = (xctx->areay2-xctx->areay1);
xctx->xrect[0].x = xctx->bbx1-INT_WIDTH(xctx->lw);
xctx->xrect[0].y = xctx->bby1-INT_WIDTH(xctx->lw);
xctx->xrect[0].width = xctx->bbx2-xctx->bbx1+2*INT_WIDTH(xctx->lw);
xctx->xrect[0].height = xctx->bby2-xctx->bby1+2*INT_WIDTH(xctx->lw);
xctx->xrect[0].x = (short)(xctx->bbx1-INT_WIDTH(xctx->lw));
xctx->xrect[0].y = (short)(xctx->bby1-INT_WIDTH(xctx->lw));
xctx->xrect[0].width = (unsigned short)(xctx->bbx2-xctx->bbx1+2*INT_WIDTH(xctx->lw));
xctx->xrect[0].height = (unsigned short)(xctx->bby2-xctx->bby1+2*INT_WIDTH(xctx->lw));
if(has_x) {
set_clip_mask(SET);
dbg(2, "bbox(SET): setting clip area: %d %d %d %d\n",
@ -562,10 +562,10 @@ void bbox(int what,double x1,double y1, double x2, double y2)
xctx->areaw = (xctx->areax2-xctx->areax1);
xctx->areah = (xctx->areay2-xctx->areay1);
xctx->xrect[0].x = xctx->bbx1+INT_WIDTH(xctx->lw);
xctx->xrect[0].y = xctx->bby1+INT_WIDTH(xctx->lw);
xctx->xrect[0].width = xctx->bbx2-xctx->bbx1-2*INT_WIDTH(xctx->lw);
xctx->xrect[0].height = xctx->bby2-xctx->bby1-2*INT_WIDTH(xctx->lw);
xctx->xrect[0].x = (short)(xctx->bbx1+INT_WIDTH(xctx->lw));
xctx->xrect[0].y = (short)(xctx->bby1+INT_WIDTH(xctx->lw));
xctx->xrect[0].width = (unsigned short)(xctx->bbx2-xctx->bbx1-2*INT_WIDTH(xctx->lw));
xctx->xrect[0].height = (unsigned short)(xctx->bby2-xctx->bby1-2*INT_WIDTH(xctx->lw));
if(has_x) {
set_clip_mask(SET);
dbg(2, "bbox(SET): setting clip area: %d %d %d %d\n",
@ -1022,7 +1022,7 @@ void select_inside(double x1,double y1, double x2, double y2, int sel) /*added u
customfont = set_text_custom_font(&xctx->text[i]);
#endif
text_bbox(xctx->text[i].txt_ptr,
xctx->text[i].xscale, xctx->text[i].yscale, select_rot, select_flip,
xctx->text[i].xscale, xctx->text[i].yscale, (short)select_rot, (short)select_flip,
xctx->text[i].hcenter, xctx->text[i].vcenter,
xctx->text[i].x0, xctx->text[i].y0,
&xx1,&yy1, &xx2,&yy2, &tmpint, &dtmp);
@ -1057,7 +1057,7 @@ void select_inside(double x1,double y1, double x2, double y2, int sel) /*added u
if(xctx->poly[c][i].sel==SELECTED) xctx->poly[c][i].selected_point[k] = 1;
if( POINTINSIDE(xctx->poly[c][i].x[k],xctx->poly[c][i].y[k], x1,y1,x2,y2)) {
flag=1;
xctx->poly[c][i].selected_point[k] = sel;
xctx->poly[c][i].selected_point[k] = (short)sel;
}
if(xctx->poly[c][i].selected_point[k]) selected_points++;
}

View File

@ -98,7 +98,7 @@ static char *model_name(const char *m)
char *m_lower = NULL;
char *modelname = NULL;
int n;
int l = strlen(m) + 1;
size_t l = strlen(m) + 1;
my_strdup(255, &m_lower, m);
strtolower(m_lower);
my_realloc(256, &modelname, l);

View File

@ -194,7 +194,7 @@ void store_arc(int pos, double x, double y, double r, double a, double b,
dash = get_tok_value(xctx->arc[rectc][n].prop_ptr,"dash",0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
xctx->arc[rectc][n].dash = d >= 0 ? d : 0;
xctx->arc[rectc][n].dash = (char) (d >= 0 ? d : 0);
} else
xctx->arc[rectc][n].dash = 0;
@ -242,7 +242,7 @@ void store_poly(int pos, double *x, double *y, int points, unsigned int rectc,
dash = get_tok_value(xctx->poly[rectc][n].prop_ptr,"dash",0);
if( strcmp(dash, "") ) {
int d = atoi(dash);
xctx->poly[rectc][n].dash = d >= 0 ? d : 0;
xctx->poly[rectc][n].dash = (char) (d >= 0 ? d : 0);
} else
xctx->poly[rectc][n].dash = 0;
@ -284,7 +284,7 @@ void storeobject(int pos, double x1,double y1,double x2,double y2,
xctx->line[rectc][n].bus = 0;
if(prop_ptr && (dash = get_tok_value(prop_ptr,"dash",0))[0]) {
int d = atoi(dash);
xctx->line[rectc][n].dash = d >= 0 ? d : 0;
xctx->line[rectc][n].dash = (char) (d >= 0 ? d : 0);
} else
xctx->line[rectc][n].dash = 0;
xctx->lines[rectc]++;
@ -313,7 +313,7 @@ void storeobject(int pos, double x1,double y1,double x2,double y2,
xctx->rect[rectc][n].sel=sel;
if(prop_ptr && (dash = get_tok_value(prop_ptr,"dash",0))[0]) {
int d = atoi(dash);
xctx->rect[rectc][n].dash = d >= 0 ? d : 0;
xctx->rect[rectc][n].dash = (char) (d >= 0 ? d : 0);
} else
xctx->rect[rectc][n].dash = 0;
set_rect_flags(&xctx->rect[rectc][n]); /* set cached .flags bitmask from on attributes */

View File

@ -583,7 +583,8 @@ static void svg_draw_symbol(int c, int n,int layer,short tmp_flip, short rot,
static void fill_svg_colors()
{
char s[200]; /* overflow safe 20161122 */
unsigned int i,c;
int i;
unsigned int c;
/* if(debug_var>=1) {
* tcleval( "puts $svg_colors");
* }

View File

@ -241,8 +241,8 @@ int set_different_token(char **s,const char *new, const char *old, int object, i
{
register int c, state=TOK_BEGIN, space;
char *token=NULL, *value=NULL;
int sizetok=0, sizeval=0;
int token_pos=0, value_pos=0;
size_t sizetok=0, sizeval=0;
size_t token_pos=0, value_pos=0;
int quote=0;
int escape=0;
int mod;
@ -269,9 +269,9 @@ int set_different_token(char **s,const char *new, const char *old, int object, i
else if( state==TOK_VALUE && space && !quote && !escape) state=TOK_END;
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_VALUE) {
value[value_pos++]=c;
value[value_pos++]=(char)c;
}
else if(state==TOK_ENDTOK || state==TOK_SEP) {
if(token_pos) {
@ -292,7 +292,8 @@ int set_different_token(char **s,const char *new, const char *old, int object, i
}
state = TOK_BEGIN;
escape = quote = token_pos = value_pos = 0;
escape = quote = 0;
token_pos = value_pos = 0;
/* parse old string and remove attributes that are not present in new */
while(old) {
c=*old++;
@ -305,9 +306,9 @@ int set_different_token(char **s,const char *new, const char *old, int object, i
else if( state==TOK_VALUE && space && !quote && !escape) state=TOK_END;
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_VALUE) {
value[value_pos++]=c;
value[value_pos++]=(char)c;
}
else if(state==TOK_ENDTOK || state==TOK_SEP) {
if(token_pos) {
@ -340,9 +341,9 @@ int set_different_token(char **s,const char *new, const char *old, int object, i
const char *list_tokens(const char *s, int with_quotes)
{
static char *token=NULL;
int sizetok=0;
size_t sizetok=0;
register int c, state=TOK_BEGIN, space;
register int token_pos=0;
register size_t token_pos=0;
int quote=0;
int escape=0;
@ -368,10 +369,10 @@ const char *list_tokens(const char *s, int with_quotes)
}
if(state==TOK_TOKEN) {
if(c=='"') {
if((with_quotes & 1) || escape) token[token_pos++]=c;
if((with_quotes & 1) || escape) token[token_pos++]=(char)c;
}
else if( !(c == '\\' && (with_quotes & 2)) ) token[token_pos++]=c;
else if(escape && c == '\\') token[token_pos++]=c;
else if( !(c == '\\' && (with_quotes & 2)) ) token[token_pos++]=(char)c;
else if(escape && c == '\\') token[token_pos++]=(char)c;
} else if(state==TOK_VALUE) {
/* do nothing */
} else if(state==TOK_ENDTOK || state==TOK_SEP) {
@ -456,9 +457,9 @@ const char *get_tok_value(const char *s,const char *tok, int with_quotes)
result[0] = '\0';
return result;
}
if( (with_quotes & 1) || escape || (c != '\\' && c != '"')) token[token_pos++]=c;
if( (with_quotes & 1) || escape || (c != '\\' && c != '"')) token[token_pos++]=(char)c;
} else if(state == TOK_VALUE) {
if( (with_quotes & 1) || escape || (c != '\\' && c != '"')) result[value_pos++]=c;
if( (with_quotes & 1) || escape || (c != '\\' && c != '"')) result[value_pos++]=(char)c;
} else if(state == TOK_ENDTOK || state == TOK_SEP) {
if(token_pos) {
token[token_pos] = '\0';
@ -490,17 +491,17 @@ const char *get_tok_value(const char *s,const char *tok, int with_quotes)
const char *get_sym_template(char *s,char *extra)
{
static char *result=NULL;
int sizeres=0;
int sizetok=0;
int sizeval=0;
size_t sizeres=0;
size_t sizetok=0;
size_t sizeval=0;
char *value=NULL;
char *token=NULL;
register int c, state=TOK_BEGIN, space;
register int token_pos=0, value_pos=0, result_pos=0;
register size_t token_pos=0, value_pos=0, result_pos=0;
int quote=0;
int escape=0;
int with_quotes=0;
int l;
size_t l;
/* with_quotes: */
/* 0: eat non escaped quotes (") */
/* 1: return unescaped quotes as part of the token value if they are present */
@ -527,16 +528,16 @@ const char *get_sym_template(char *s,char *extra)
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_BEGIN) {
result[result_pos++] = c;
result[result_pos++] = (char)c;
} else if(state==TOK_TOKEN) {
token[token_pos++]=c;
token[token_pos++]=(char)c;
} else if(state==TOK_VALUE) {
if(c=='"') {
if(!escape) quote=!quote;
if((with_quotes & 1) || escape) value[value_pos++]=c;
if((with_quotes & 1) || escape) value[value_pos++]=(char)c;
}
else if( (c=='\\') && (with_quotes & 2) ) ; /* dont store backslash */
else value[value_pos++]=c;
else value[value_pos++]=(char)c;
escape = (c=='\\' && !escape);
} else if(state==TOK_END) {
@ -545,7 +546,7 @@ const char *get_sym_template(char *s,char *extra)
memcpy(result+result_pos, value, value_pos+1);
result_pos+=value_pos;
}
result[result_pos++] = c;
result[result_pos++] = (char)c;
value_pos=0;
token_pos=0;
state=TOK_BEGIN;
@ -555,7 +556,7 @@ const char *get_sym_template(char *s,char *extra)
if((!extra || !strstr(extra, token)) && strcmp(token,"name")) {
memcpy(result+result_pos, token, token_pos+1);
result_pos+=token_pos;
result[result_pos++] = c;
result[result_pos++] = (char)c;
}
token_pos=0;
}
@ -579,7 +580,7 @@ static const char *find_bracket(const char *s)
* return NULL if no matching token found */
static char *get_pin_attr_from_inst(int inst, int pin, const char *attr)
{
int attr_size;
size_t attr_size;
char *pinname = NULL, *pname = NULL, *pin_attr_value = NULL;
char *pnumber = NULL;
const char *str;
@ -589,7 +590,7 @@ static char *get_pin_attr_from_inst(int inst, int pin, const char *attr)
pin_attr_value = NULL;
str = get_tok_value((xctx->inst[inst].ptr + xctx->sym)->rect[PINLAYER][pin].prop_ptr,"name",0);
if(str[0]) {
int tok_val_len;
size_t tok_val_len;
tok_val_len = strlen(str);
attr_size = strlen(attr);
my_strdup(498, &pinname, str);
@ -624,8 +625,8 @@ void new_prop_string(int i, const char *old_prop, int fast, int dis_uniq_names)
const char *tmp2;
int q,qq;
static int last[1 << 8 * sizeof(char) ]; /* safe to keep with multiple schematics, reset on 1st invocation */
int old_name_len;
int new_name_len;
size_t old_name_len;
size_t new_name_len;
int n;
char *old_name_base = NULL;
Inst_hashentry *entry;
@ -731,8 +732,9 @@ static void print_vhdl_primitive(FILE *fd, int inst) /* netlist primitives, 200
char *template=NULL,*format=NULL,*s, *name=NULL, *token=NULL;
const char *value;
int pin_number;
int sizetok=0;
int token_pos=0, escape=0;
size_t sizetok=0;
size_t token_pos=0;
int escape=0;
int no_of_pins=0;
/* Inst_hashentry *ptr; */
@ -781,7 +783,7 @@ static void print_vhdl_primitive(FILE *fd, int inst) /* netlist primitives, 200
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) {
token[token_pos++]=c; /* 20171029 remove escaping backslashes */
token[token_pos++]=(char)c; /* 20171029 remove escaping backslashes */
}
else if(state==TOK_SEP) /* got a token */
{
@ -902,12 +904,12 @@ const char *subst_token(const char *s, const char *tok, const char *new_val)
/* if new_val is NULL *remove* 'token (and =val if any)' from s */
{
static char *result=NULL;
int size=0;
size_t size=0;
register int c, state=TOK_BEGIN, space;
int sizetok=0;
size_t sizetok=0;
char *token=NULL;
int token_pos=0, result_pos=0, result_save_pos = 0;
int quote=0, tmp;
size_t token_pos=0, result_pos=0, result_save_pos = 0, tmp;
int quote=0;
int done_subst=0;
int escape=0, matched_tok=0;
char *new_val_copy = NULL;
@ -1028,16 +1030,16 @@ const char *subst_token(const char *s, const char *tok, const char *new_val)
}
/* state actions */
if(state == TOK_BEGIN) {
result[result_pos++] = c;
result[result_pos++] = (char)c;
} else if(state == TOK_TOKEN) {
token[token_pos++] = c;
result[result_pos++] = c;
token[token_pos++] = (char)c;
result[result_pos++] = (char)c;
} else if(state == TOK_ENDTOK) {
result[result_pos++] = c;
result[result_pos++] = (char)c;
} else if(state == TOK_SEP) {
result[result_pos++] = c;
result[result_pos++] = (char)c;
} else if(state==TOK_VALUE) {
if(!matched_tok) result[result_pos++] = c; /* skip value for matching token */
if(!matched_tok) result[result_pos++] = (char)c; /* skip value for matching token */
}
escape = (c=='\\' && !escape);
if(c == '\0') break;
@ -1067,12 +1069,13 @@ const char *get_trailing_path(const char *str, int no_of_dir, int skip_ext)
{
static char s[PATH_MAX]; /* safe to keep even with multiple schematic windows */
size_t len;
int ext_pos, dir_pos, n_ext, n_dir, c, i;
size_t ext_pos, dir_pos;
int n_ext, n_dir, c, i;
my_strncpy(s, str, S(s));
len = strlen(s);
for(ext_pos=len, dir_pos=len, n_ext=0, n_dir=0, i=len; i>=0; i--) {
for(ext_pos=len, dir_pos=len, n_ext=0, n_dir=0, i=(int)len; i>=0; i--) {
c = s[i];
if(c=='.' && ++n_ext==1) ext_pos = i;
if(c=='/' && ++n_dir==no_of_dir+1) dir_pos = i;
@ -1137,8 +1140,8 @@ void print_vhdl_element(FILE *fd, int inst)
char *generic_value=NULL, *generic_type=NULL;
char *template=NULL,*s, *value=NULL, *token=NULL;
int no_of_pins=0, no_of_generics=0;
int sizetok=0, sizeval=0;
int token_pos=0, value_pos=0;
size_t sizetok=0, sizeval=0;
size_t token_pos=0, value_pos=0;
int quote=0;
int escape=0;
xRect *pinptr;
@ -1192,10 +1195,10 @@ void print_vhdl_element(FILE *fd, int inst)
else if( state==TOK_VALUE && space && !quote) state=TOK_END;
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_VALUE) {
if(c=='"' && !escape) quote=!quote;
else value[value_pos++]=c;
else value[value_pos++]=(char)c;
}
else if(state==TOK_ENDTOK || state==TOK_SEP) {
if(token_pos) {
@ -1289,8 +1292,9 @@ void print_generic(FILE *fd, char *ent_or_comp, int symbol)
char *template=NULL, *s, *value=NULL, *token=NULL;
char *type=NULL, *generic_type=NULL, *generic_value=NULL;
const char *str_tmp;
int i, sizetok=0, sizeval=0;
int token_pos=0, value_pos=0;
int i;
size_t sizetok=0, sizeval=0;
size_t token_pos=0, value_pos=0;
int quote=0;
int escape=0;
int token_number=0;
@ -1328,11 +1332,11 @@ void print_generic(FILE *fd, char *ent_or_comp, int symbol)
else if( state==TOK_VALUE && space && !quote) state=TOK_END;
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_VALUE)
{
if(c=='"' && !escape) quote=!quote;
else value[value_pos++]=c;
else value[value_pos++]=(char)c;
}
else if(state==TOK_ENDTOK || state==TOK_SEP) {
if(token_pos) {
@ -1398,8 +1402,8 @@ void print_verilog_param(FILE *fd, int symbol)
{
register int c, state=TOK_BEGIN, space;
char *template=NULL, *s, *value=NULL, *generic_type=NULL, *token=NULL;
int sizetok=0, sizeval=0;
int token_pos=0, value_pos=0;
size_t sizetok=0, sizeval=0;
size_t token_pos=0, value_pos=0;
int quote=0;
int escape=0;
int token_number=0;
@ -1433,11 +1437,11 @@ void print_verilog_param(FILE *fd, int symbol)
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_VALUE)
{
if(c=='"' && !escape) quote=!quote;
else value[value_pos++]=c;
else value[value_pos++]=(char)c;
}
else if(state==TOK_ENDTOK || state==TOK_SEP) {
if(token_pos) {
@ -1489,8 +1493,9 @@ void print_tedax_subckt(FILE *fd, int symbol)
register int c, state=TOK_BEGIN, space;
char *format=NULL,*s, *token=NULL;
int pin_number;
int sizetok=0;
int token_pos=0, escape=0;
size_t sizetok=0;
size_t token_pos=0;
int escape=0;
int no_of_pins=0;
my_strdup(460, &format, get_tok_value(xctx->sym[symbol].prop_ptr,"format",2));
@ -1524,7 +1529,7 @@ void print_tedax_subckt(FILE *fd, int symbol)
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) {
token[token_pos++]=c;
token[token_pos++]=(char)c;
}
else if(state==TOK_SEP) /* got a token */
{
@ -1597,8 +1602,9 @@ void print_spice_subckt(FILE *fd, int symbol)
register int c, state=TOK_BEGIN, space;
char *format=NULL,*s, *token=NULL;
int pin_number;
int sizetok=0;
int token_pos=0, escape=0;
size_t sizetok=0;
size_t token_pos=0;
int escape=0;
int no_of_pins=0;
my_strdup(103, &format, get_tok_value(xctx->sym[symbol].prop_ptr,"format",2));
@ -1632,7 +1638,7 @@ void print_spice_subckt(FILE *fd, int symbol)
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) {
token[token_pos++]=c;
token[token_pos++]=(char)c;
}
else if(state==TOK_SEP) /* got a token */
{
@ -1702,19 +1708,21 @@ void print_spice_subckt(FILE *fd, int symbol)
int print_spice_element(FILE *fd, int inst)
{
int i=0, multip, tmp;
int i=0, multip, itmp;
size_t tmp;
const char *str_ptr=NULL;
register int c, state=TOK_BEGIN, space;
char *template=NULL,*format=NULL,*s, *name=NULL, *token=NULL;
const char *lab, *value = NULL;
char *translatedvalue = NULL;
int pin_number;
int sizetok=0;
int token_pos=0, escape=0;
size_t sizetok=0;
size_t token_pos=0;
int escape=0;
int no_of_pins=0;
char *result = NULL;
int result_pos = 0;
int size = 0;
size_t result_pos = 0;
size_t size = 0;
char *spiceprefixtag = NULL;
size = CADCHUNKALLOC;
@ -1766,11 +1774,11 @@ int print_spice_element(FILE *fd, int inst)
}
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) {
token[token_pos++]=c;
token[token_pos++]=(char)c;
}
else if (state==TOK_SEP) /* got a token */
{
int token_exists = 0;
size_t token_exists = 0;
token[token_pos]='\0';
token_pos=0;
@ -1778,7 +1786,7 @@ int print_spice_element(FILE *fd, int inst)
if (!tclgetboolvar("spiceprefix") && !strcmp(token, "@spiceprefix")) {
value=NULL;
} else {
int tok_val_len;
size_t tok_val_len;
dbg(1, "print_spice_element(): token: |%s|\n", token);
value = get_tok_value(xctx->inst[inst].prop_ptr, token+1, 0);
@ -1815,7 +1823,7 @@ int print_spice_element(FILE *fd, int inst)
/*if something else must be parsed, put an if here! */
if (!(strcmp(token+1,"name") && strcmp(token+1,"lab")) /* expand name/labels */
&& ((lab = expandlabel(value, &tmp)) != NULL)) {
&& ((lab = expandlabel(value, &itmp)) != NULL)) {
tmp = strlen(lab) +100 ; /* always make room for some extra chars
* so 1-char writes to result do not need reallocs */
STR_ALLOC(&result, tmp + result_pos, &size);
@ -1969,7 +1977,7 @@ int print_spice_element(FILE *fd, int inst)
* if(result && strstr(result, "eval(") == result) {
* char *c = strrchr(result, ')');
* if(c) while(1) { /* shift following characters back 1 char */
* *c = c[1];
* *c = (char)c[1];
* c++;
* if(!*c) break;
* }
@ -2005,8 +2013,9 @@ void print_tedax_element(FILE *fd, int inst)
char *saveptr1, *saveptr2;
const char *tmp;
int instance_based=0;
int sizetok=0;
int token_pos=0, escape=0;
size_t sizetok=0;
size_t token_pos=0;
int escape=0;
int no_of_pins=0;
int subcircuit = 0;
/* Inst_hashentry *ptr; */
@ -2151,7 +2160,7 @@ void print_tedax_element(FILE *fd, int inst)
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) {
token[token_pos++]=c; /* 20171029 remove escaping backslashes */
token[token_pos++]=(char)c; /* 20171029 remove escaping backslashes */
}
else if(state==TOK_SEP) /* got a token */
{
@ -2298,8 +2307,9 @@ static void print_verilog_primitive(FILE *fd, int inst) /* netlist switch level
const char *lab;
char *template=NULL,*format=NULL,*s=NULL, *name=NULL, *token=NULL;
const char *value;
int sizetok=0;
int token_pos=0, escape=0;
size_t sizetok=0;
size_t token_pos=0;
int escape=0;
int no_of_pins=0;
/* Inst_hashentry *ptr; */
@ -2350,7 +2360,7 @@ static void print_verilog_primitive(FILE *fd, int inst) /* netlist switch level
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) {
token[token_pos++]=c;
token[token_pos++]=(char)c;
}
else if(state==TOK_SEP) /* got a token */
{
@ -2488,8 +2498,8 @@ void print_verilog_element(FILE *fd, int inst)
int tmp1 = 0;
register int c, state=TOK_BEGIN, space;
char *value=NULL, *token=NULL;
int sizetok=0, sizeval=0;
int token_pos=0, value_pos=0;
size_t sizetok=0, sizeval=0;
size_t token_pos=0, value_pos=0;
int quote=0;
if(get_tok_value((xctx->inst[inst].ptr + xctx->sym)->prop_ptr,"verilog_format",2)[0] != '\0') {
@ -2536,10 +2546,10 @@ void print_verilog_element(FILE *fd, int inst)
STR_ALLOC(&value, value_pos, &sizeval);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_VALUE)
{
value[value_pos++]=c;
value[value_pos++]=(char)c;
}
else if(state==TOK_ENDTOK || state==TOK_SEP) {
if(token_pos) {
@ -2708,8 +2718,9 @@ int isonlydigit(const char *s)
char *find_nth(const char *str, const char *sep, int n)
{
static char *result=NULL; /* safe to keep even with multiple schematic windows */
static int result_size = 0; /* safe to keep even with multiple schematic windows */
int i, len;
static size_t result_size = 0; /* safe to keep even with multiple schematic windows */
int i;
size_t len;
char *ptr;
int count = -1;
@ -2758,12 +2769,13 @@ const char *translate(int inst, const char* s)
{
static const char *empty="";
static char *result=NULL; /* safe to keep even with multiple schematics */
int size=0, tmp;
size_t size=0;
size_t tmp;
register int c, state=TOK_BEGIN, space;
char *token=NULL;
const char *tmp_sym_name;
int sizetok=0;
int result_pos=0, token_pos=0;
size_t sizetok=0;
size_t result_pos=0, token_pos=0;
/* Inst_hashentry *ptr; */
struct stat time_buf;
struct tm *tm;
@ -2815,7 +2827,7 @@ const char *translate(int inst, const char* s)
STR_ALLOC(&result, result_pos, &size);
STR_ALLOC(&token, token_pos, &sizetok);
if(state==TOK_TOKEN) token[token_pos++]=c;
if(state==TOK_TOKEN) token[token_pos++]=(char)c;
else if(state==TOK_SEP)
{
token[token_pos]='\0';
@ -3048,10 +3060,10 @@ const char *translate(int inst, const char* s)
}
token_pos = 0;
if(c == '@' || c == '%') s--;
else result[result_pos++]=c;
else result[result_pos++]=(char)c;
state=TOK_BEGIN;
}
else if(state==TOK_BEGIN) result[result_pos++]=c;
else if(state==TOK_BEGIN) result[result_pos++]=(char)c;
if(c=='\0')
{
result[result_pos]='\0';
@ -3070,12 +3082,14 @@ const char *translate2(Lcc *lcc, int level, char* s)
{
static const char *empty="";
static char *result = NULL;
int i, size = 0, tmp, save_tok_size;
int i;
size_t save_tok_size, size = 0;
size_t tmp;
register int c, state = TOK_BEGIN, space;
char *token = NULL;
const char *tmp_sym_name;
int sizetok = 0;
int result_pos = 0, token_pos = 0;
size_t sizetok = 0;
size_t result_pos = 0, token_pos = 0;
char *value1 = NULL;
char *value2 = NULL;
char *value = NULL;
@ -3105,7 +3119,7 @@ const char *translate2(Lcc *lcc, int level, char* s)
}
STR_ALLOC(&result, result_pos, &size);
STR_ALLOC(&token, token_pos, &sizetok);
if (state == TOK_TOKEN) token[token_pos++] = c;
if (state == TOK_TOKEN) token[token_pos++] = (char)c;
else if (state == TOK_SEP) {
token[token_pos] = '\0';
token_pos = 0;
@ -3161,10 +3175,10 @@ const char *translate2(Lcc *lcc, int level, char* s)
}
if (c == '@') s--;
else result[result_pos++] = c;
else result[result_pos++] = (char)c;
state = TOK_BEGIN;
}
else if (state == TOK_BEGIN) result[result_pos++] = c;
else if (state == TOK_BEGIN) result[result_pos++] = (char)c;
if (c == '\0') {
result[result_pos] = '\0';
break;

View File

@ -126,7 +126,7 @@ static int window_state (Display *disp, Window win, char *arg) {/*{{{*/
fputs("Invalid zero length property.\n", errfp);
return EXIT_FAILURE;
}
for( i = 0; p2[i]; i++) tmp2[i] = toupper( p2[i] );
for( i = 0; p2[i]; i++) tmp2[i] = (char)toupper( p2[i] );
tmp2[i] = '\0';
my_snprintf(tmp_prop2, S(tmp_prop2), "_NET_WM_STATE_%s", tmp2);
prop2 = XInternAtom(disp, tmp_prop2, False);
@ -137,7 +137,7 @@ static int window_state (Display *disp, Window win, char *arg) {/*{{{*/
fputs("Invalid zero length property.\n", errfp);
return EXIT_FAILURE;
}
for( i = 0; p1[i]; i++) tmp1[i] = toupper( p1[i] );
for( i = 0; p1[i]; i++) tmp1[i] = (char)toupper( p1[i] );
tmp1[i] = '\0';
my_snprintf(tmp_prop1, S(tmp_prop1), "_NET_WM_STATE_%s", tmp1);
prop1 = XInternAtom(disp, tmp_prop1, False);
@ -157,7 +157,9 @@ static int window_state (Display *disp, Window win, char *arg) {/*{{{*/
/* used to set icon */
void windowid(const char *winpath)
{
#ifdef __unix__
int i;
#endif
Display *display;
Tk_Window mainwindow;
@ -200,9 +202,9 @@ void windowid(const char *winpath)
static int err(Display *display, XErrorEvent *xev)
{
char s[1024]; /* overflow safe 20161122 */
int l=250;
#ifdef __unix__
char s[1024]; /* overflow safe 20161122 */
XGetErrorText(display, xev->error_code, s,l);
dbg(1, "err(): Err %d :%s maj=%d min=%d\n", xev->error_code, s, xev->request_code,
xev->minor_code);
@ -212,13 +214,13 @@ static int err(Display *display, XErrorEvent *xev)
static unsigned int find_best_color(char colorname[])
{
#ifdef __unix__
int i;
double distance=10000000000.0, dist, r, g, b, red, green, blue;
double deltar,deltag,deltab;
unsigned int idx;
/* dbg(1, "find_best_color() start: %g\n", timer(1)); */
#ifdef __unix__
if( XAllocNamedColor(display, colormap, colorname, &xcolor_exact, &xcolor) ==0 )
{
for(i=0;i<=255;i++) {
@ -245,7 +247,7 @@ static unsigned int find_best_color(char colorname[])
else
{
/*XLookupColor(display, colormap, colorname, &xcolor_exact, &xcolor); */
idx = xcolor.pixel;
idx = (int)xcolor.pixel;
}
/* dbg(1, "find_best_color() return: %g\n", timer(1)); */
return idx;
@ -1590,11 +1592,12 @@ static void resetcairo(int create, int clear, int force_or_resize)
void resetwin(int create_pixmap, int clear_pixmap, int force, int w, int h)
{
unsigned int width, height;
XWindowAttributes wattr;
int status;
#ifndef __unix__
HWND hwnd = Tk_GetHWND(xctx->window);
RECT rct;
#else
XWindowAttributes wattr;
#endif
if(has_x) {
@ -1632,8 +1635,8 @@ void resetwin(int create_pixmap, int clear_pixmap, int force, int w, int h)
dbg(1, "resetwin(): changing size\n\n");
xctx->xrect[0].x = 0;
xctx->xrect[0].y = 0;
xctx->xrect[0].width = width;
xctx->xrect[0].height = height;
xctx->xrect[0].width = (unsigned short) width;
xctx->xrect[0].height = (unsigned short) height;
if(clear_pixmap) {
resetcairo(0, 1, 1); /* create, clear, force */
#ifdef __unix__
@ -1679,10 +1682,12 @@ int Tcl_AppInit(Tcl_Interp *inter)
int i;
double l_width;
struct stat buf;
const char *home_buff;
int running_in_src_dir;
int fs;
#ifdef __unix__
const char* home_buff;
#endif
/* get PWD and HOME */
if(!getcwd(pwd_dir, PATH_MAX)) {
fprintf(errfp, "Tcl_AppInit(): getcwd() failed\n");
@ -1691,13 +1696,13 @@ int Tcl_AppInit(Tcl_Interp *inter)
if ((home_buff = getenv("HOME")) == NULL) {
home_buff = getpwuid(getuid())->pw_dir;
}
my_strncpy(home_dir, home_buff, S(home_dir));
#else
change_to_unix_fn(pwd_dir);
home_buff = getenv("USERPROFILE");
char *home_buff = getenv("USERPROFILE");
change_to_unix_fn(home_buff);
my_strncpy(home_dir, home_buff, S(home_dir));
#endif
my_strncpy(home_dir, home_buff, S(home_dir));
/* set error and exit handlers */
XSetErrorHandler(err);
if(!interp) interp=inter;
@ -1772,7 +1777,7 @@ int Tcl_AppInit(Tcl_Interp *inter)
/*9*/ "xschem_library/rom8k" };
GetModuleFileNameA(NULL, install_dir, MAX_PATH);
change_to_unix_fn(install_dir);
int dir_len=strlen(install_dir);
size_t dir_len=strlen(install_dir);
if (dir_len>11)
install_dir[dir_len-11] = '\0'; /* 11 = remove /xschem.exe */
/* debugging in Visual Studio will not have bin */

View File

@ -351,7 +351,7 @@ extern char win_temp_dir[PATH_MAX];
* hold 'add' characters */
#define STR_ALLOC(dest_string, add, size) \
do { \
register int __str_alloc_tmp__ = add; \
register size_t __str_alloc_tmp__ = add; \
if( __str_alloc_tmp__ >= *size) { \
*size = __str_alloc_tmp__ + CADCHUNKALLOC; \
my_realloc(1212, dest_string, *size); \
@ -758,7 +758,7 @@ typedef struct {
double zoom;
double mooz;
double lw;
unsigned long ui_state ; /* this signals that we are doing a net place,panning etc.
unsigned int ui_state ; /* this signals that we are doing a net place,panning etc.
* used to prevent nesting of some commands */
double mousex,mousey; /* mouse coord. */
double mousex_snap,mousey_snap; /* mouse coord. snapped to grid */
@ -1191,7 +1191,7 @@ extern int place_symbol(int pos, const char *symbol_name, double x, double y, sh
const char *inst_props, int draw_sym, int first_call, int to_push_undo);
extern void place_net_label(int type);
extern void attach_labels_to_inst(int interactive);
extern int connect_by_kissing(void);
extern short connect_by_kissing(void);
extern void delete_files(void);
extern int sym_vs_sch_pins(void);
extern int match_symbol(const char name[]);
@ -1287,7 +1287,7 @@ extern size_t my_strdup(int id, char **dest, const char *src);
extern void my_strndup(int id, char **dest, const char *src, size_t n);
extern size_t my_strdup2(int id, char **dest, const char *src);
extern char *my_strtok_r(char *str, const char *delim, const char *quote, char **saveptr);
extern int my_strncpy(char *d, const char *s, int n);
extern int my_strncpy(char *d, const char *s, size_t n);
extern int my_strcasecmp(const char *s1, const char *s2);
extern int my_strncasecmp(const char *s1, const char *s2, size_t n);
extern char* strtolower(char* s);