diff --git a/ChangeLog b/ChangeLog index 8f97b92ba..12351e1ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2010-06-30 Robert Larice + * src/include/ftedev.h : + ansi prototypes for the function pointers in struct DISPDEVICE + typedef for those functions + + * src/frontend/hpgl.h , + * src/frontend/plotting/plot5.h , + * src/frontend/plotting/x11.c , + * src/frontend/plotting/x11.h , + * src/frontend/postsc.h , + * src/frontend/wdisp/windisp.h , + * src/frontend/wdisp/winprint.h , + * src/include/tclspice.h : + ansi prototypes, make use of the new typedefs + + * src/frontend/display.c : + cast nodev and nop to the proper function type + + * src/frontend/wdisp/windisp.c , + * src/frontend/wdisp/winprint.c : + fix the type signature for the more or less unused _DefineColor() functions + fix the type signature for the WIN_Text() function, drop unused CentiDegrees + argument, which doesn't fit to struct DISPDEVICE + 2010-06-29 Holger Vogt * inpcom.c lines 743, 744 correct malloc for 64 bit LINUX * inpcom.c, inpcom.h, nutinp.c, inp.c, fteext.h: diff --git a/src/frontend/display.c b/src/frontend/display.c index eff8234f8..bd5974f1b 100644 --- a/src/frontend/display.c +++ b/src/frontend/display.c @@ -41,19 +41,19 @@ static int nodev(void); DISPDEVICE device[] = { - {"error", 0, 0, 0, 0, 0, 0, nop, nop, - nop, nop, - nop, nop, nop, nop, nop, - nop, nop, nop, - nop, nop, nop, gen_Input, - (void*)nop,}, + {"error", 0, 0, 0, 0, 0, 0, (disp_fn_Init_t *) nop, (disp_fn_NewViewport_t *) nop, + (disp_fn_Close_t *) nop, (disp_fn_Clear_t *) nop, + (disp_fn_DrawLine_t *) nop, (disp_fn_Arc_t *) nop, (disp_fn_Text_t *) nop, (disp_fn_DefineColor_t *) nop, (disp_fn_DefineLinestyle_t *) nop, + (disp_fn_SetLinestyle_t *) nop, (disp_fn_SetColor_t *) nop, (disp_fn_Update_t *) nop, + (disp_fn_Track_t *) nop, (disp_fn_MakeMenu_t *) nop, (disp_fn_MakeDialog_t *) nop, gen_Input, + (disp_fn_DatatoScreen_t *) nop,}, #ifndef X_DISPLAY_MISSING {"X11", 0, 0, 1024, 864, 0, 0, X11_Init, X11_NewViewport, X11_Close, X11_Clear, X11_DrawLine, X11_Arc, X11_Text, X11_DefineColor, X11_DefineLinestyle, X11_SetLinestyle, X11_SetColor, X11_Update, - nodev, nodev, nodev, X11_Input, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, X11_Input, gen_DatatoScreen,}, #endif @@ -62,7 +62,7 @@ DISPDEVICE device[] = { WIN_Close, WIN_Clear, WIN_DrawLine, WIN_Arc, WIN_Text, WIN_DefineColor, WIN_DefineLinestyle, WIN_SetLinestyle, WIN_SetColor, WIN_Update, - nodev, nodev, nodev, gen_Input, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, gen_Input, gen_DatatoScreen,}, /* WIN_DiagramReady */ /* Warning: name "WinPrint" do not change! */ @@ -70,7 +70,7 @@ DISPDEVICE device[] = { WPRINT_Close, WPRINT_Clear, WPRINT_DrawLine, WPRINT_Arc, WPRINT_Text, WPRINT_DefineColor, WPRINT_DefineLinestyle, WPRINT_SetLinestyle, WPRINT_SetColor, WPRINT_Update, - nodev, nodev, nodev, nodev, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, (disp_fn_Input_t *) nodev, gen_DatatoScreen,}, /* WPRINT_DiagramReady */ #endif @@ -79,37 +79,37 @@ DISPDEVICE device[] = { sp_Tk_Close, sp_Tk_Clear, sp_Tk_DrawLine, sp_Tk_Arc, sp_Tk_Text, sp_Tk_DefineColor, sp_Tk_DefineLinestyle, sp_Tk_SetLinestyle, sp_Tk_SetColor, sp_Tk_Update, - nodev, nodev, nodev, nodev, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, (disp_fn_Input_t *) nodev, gen_DatatoScreen,}, #endif {"plot5", 0, 0, 1000, 1000, 0, 0, Plt5_Init, Plt5_NewViewport, Plt5_Close, Plt5_Clear, - Plt5_DrawLine, Plt5_Arc, Plt5_Text, (void*)nodev, (void*)nodev, + Plt5_DrawLine, Plt5_Arc, Plt5_Text, (disp_fn_DefineColor_t *) nodev, (disp_fn_DefineLinestyle_t *) nodev, Plt5_SetLinestyle, Plt5_SetColor, Plt5_Update, - nodev, nodev, nodev, nodev, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, (disp_fn_Input_t *) nodev, gen_DatatoScreen,}, {"postscript", 0, 0, 1000, 1000, 0, 0, PS_Init, PS_NewViewport, PS_Close, PS_Clear, - PS_DrawLine, PS_Arc, PS_Text, (void*)nodev, (void*)nodev, + PS_DrawLine, PS_Arc, PS_Text, (disp_fn_DefineColor_t *) nodev, (disp_fn_DefineLinestyle_t *) nodev, PS_SetLinestyle, PS_SetColor, PS_Update, - nodev, nodev, nodev, (void*)nodev, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, (disp_fn_Input_t *) nodev, gen_DatatoScreen,}, {"hpgl", 0, 0, 1000, 1000, 0, 0, GL_Init, GL_NewViewport, GL_Close, GL_Clear, - GL_DrawLine, GL_Arc, GL_Text, (void*)nodev, (void*)nodev, + GL_DrawLine, GL_Arc, GL_Text, (disp_fn_DefineColor_t *) nodev, (disp_fn_DefineLinestyle_t *) nodev, GL_SetLinestyle, GL_SetColor, GL_Update, - nodev, nodev, nodev, (void*)nodev, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, (disp_fn_Input_t *) nodev, gen_DatatoScreen,}, - {"printf", 0, 0, 24, 80, 0, 0, nodev, nodev, - nodev, nodev, - nodev, nodev, nodev, nodev, nodev, - nodev, nodev, nodev, - nodev, nodev, nodev, gen_Input, - (void *)nodev,}, + {"printf", 0, 0, 24, 80, 0, 0, (disp_fn_Init_t *) nodev, (disp_fn_NewViewport_t *) nodev, + (disp_fn_Close_t *) nodev, (disp_fn_Clear_t *) nodev, + (disp_fn_DrawLine_t *) nodev, (disp_fn_Arc_t *) nodev, (disp_fn_Text_t *) nodev, (disp_fn_DefineColor_t *) nodev, (disp_fn_DefineLinestyle_t *) nodev, + (disp_fn_SetLinestyle_t *) nodev, (disp_fn_SetColor_t *) nodev, (disp_fn_Update_t *) nodev, + (disp_fn_Track_t *) nodev, (disp_fn_MakeMenu_t *) nodev, (disp_fn_MakeDialog_t *) nodev, gen_Input, + (disp_fn_DatatoScreen_t *) nodev,}, }; diff --git a/src/frontend/hpgl.h b/src/frontend/hpgl.h index a0fb17947..afd7918d2 100644 --- a/src/frontend/hpgl.h +++ b/src/frontend/hpgl.h @@ -6,15 +6,15 @@ #ifndef HPGH_H #define HPGH_H -int GL_Init(void); -int GL_NewViewport(GRAPH *graph); -int GL_Close(void); -int GL_Clear(void); -int GL_DrawLine(int x1, int y1, int x2, int y2); -int GL_Arc(int x0, int y0, int r, double theta1, double theta2); -int GL_Text(char *text, int x, int y); -int GL_SetLinestyle(int linestyleid); -int GL_SetColor(int colorid); -int GL_Update(void); +disp_fn_Init_t GL_Init; +disp_fn_NewViewport_t GL_NewViewport; +disp_fn_Close_t GL_Close; +disp_fn_Clear_t GL_Clear; +disp_fn_DrawLine_t GL_DrawLine; +disp_fn_Arc_t GL_Arc; +disp_fn_Text_t GL_Text; +disp_fn_SetLinestyle_t GL_SetLinestyle; +disp_fn_SetColor_t GL_SetColor; +disp_fn_Update_t GL_Update; #endif /* HPGH_H */ diff --git a/src/frontend/plotting/plot5.h b/src/frontend/plotting/plot5.h index 84d70db6f..bbbd07661 100644 --- a/src/frontend/plotting/plot5.h +++ b/src/frontend/plotting/plot5.h @@ -7,15 +7,15 @@ #ifndef PLOT5_H_INCLUDED #define PLOT5_H_INCLUDED -int Plt5_Init(void); -int Plt5_NewViewport(GRAPH *graph); -int Plt5_Close(void); -int Plt5_Clear(void); -int Plt5_DrawLine(int x1, int y1, int x2, int y2); -int Plt5_Arc(int x0, int y0, int radius, double theta1, double theta2); -int Plt5_Text(char *text, int x, int y); -int Plt5_SetLinestyle(int linestyleid); -int Plt5_SetColor(int colorid); -int Plt5_Update(void); +disp_fn_Init_t Plt5_Init; +disp_fn_NewViewport_t Plt5_NewViewport; +disp_fn_Close_t Plt5_Close; +disp_fn_Clear_t Plt5_Clear; +disp_fn_DrawLine_t Plt5_DrawLine; +disp_fn_Arc_t Plt5_Arc; +disp_fn_Text_t Plt5_Text; +disp_fn_SetLinestyle_t Plt5_SetLinestyle; +disp_fn_SetColor_t Plt5_SetColor; +disp_fn_Update_t Plt5_Update; #endif /* PLOT5_H_INCLUDED */ diff --git a/src/frontend/plotting/x11.h b/src/frontend/plotting/x11.h index 5c5368cca..5abc2d2df 100644 --- a/src/frontend/plotting/x11.h +++ b/src/frontend/plotting/x11.h @@ -11,18 +11,19 @@ #include /* required for Widget */ -int X11_Init(void); -int X11_NewViewport(GRAPH *graph); -int X11_Close(void); -int X11_DrawLine(int x1, int y1, int x2, int y2); -int X11_Arc(int x0, int y0, int radius, double theta1, double theta2); -int X11_Text(char *text, int x, int y); -int X11_DefineColor(int colorid, double red, double green, double blue); -int X11_DefineLinestyle(int linestyleid, int mask); -int X11_SetLinestyle(int linestyleid); -int X11_SetColor(int colorid); -int X11_Update(void); -int X11_Clear(void); +disp_fn_Init_t X11_Init; +disp_fn_NewViewport_t X11_NewViewport; +disp_fn_Close_t X11_Close; +disp_fn_DrawLine_t X11_DrawLine; +disp_fn_Arc_t X11_Arc; +disp_fn_Text_t X11_Text; +disp_fn_DefineColor_t X11_DefineColor; +disp_fn_DefineLinestyle_t X11_DefineLinestyle; +disp_fn_SetLinestyle_t X11_SetLinestyle; +disp_fn_SetColor_t X11_SetColor; +disp_fn_Update_t X11_Update; +disp_fn_Clear_t X11_Clear; + void handlekeypressed(Widget w, caddr_t clientdata, caddr_t calldata); void handlebuttonev(Widget w, caddr_t clientdata, caddr_t calldata); void slopelocation(GRAPH *graph, int x0, int y0); diff --git a/src/frontend/postsc.h b/src/frontend/postsc.h index f7e8556f9..4e15bd9b7 100644 --- a/src/frontend/postsc.h +++ b/src/frontend/postsc.h @@ -6,16 +6,15 @@ #ifndef POSTSC_H_INCLUDED #define POSTSC_H_INCLUDED -int PS_Init(void); -int PS_NewViewport(GRAPH *graph); -int PS_Close(void); -int PS_Clear(void); -int PS_DrawLine(int x1, int y1, int x2, int y2); -int PS_Arc(int x0, int y0, int r, double theta1, double theta2); -int PS_Text(char *text, int x, int y); -int PS_SetLinestyle(int linestyleid); -int PS_SetColor(int colorid); -int PS_Update(void); - +disp_fn_Init_t PS_Init; +disp_fn_NewViewport_t PS_NewViewport; +disp_fn_Close_t PS_Close; +disp_fn_Clear_t PS_Clear; +disp_fn_DrawLine_t PS_DrawLine; +disp_fn_Arc_t PS_Arc; +disp_fn_Text_t PS_Text; +disp_fn_SetLinestyle_t PS_SetLinestyle; +disp_fn_SetColor_t PS_SetColor; +disp_fn_Update_t PS_Update; #endif diff --git a/src/frontend/wdisp/windisp.c b/src/frontend/wdisp/windisp.c index 1d0e8a9b9..39e5805a6 100644 --- a/src/frontend/wdisp/windisp.c +++ b/src/frontend/wdisp/windisp.c @@ -792,13 +792,13 @@ int WIN_Text_old( char * text, int x, int y, int degrees) } */ -int WIN_Text( char * text, int x, int y, int CentiDegrees) +int WIN_Text( char * text, int x, int y) { tpWindowData wd; HFONT hfont; LOGFONT lf; - CentiDegrees = 0; + int CentiDegrees = 0; if (!currentgraph) return 0; wd = pWindowData(currentgraph); @@ -840,7 +840,7 @@ int WIN_Text( char * text, int x, int y, int CentiDegrees) } -int WIN_DefineColor(int red, int green, int blue, int num) +int WIN_DefineColor(int colorid, double red, double green, double blue) { /* nothing */ return (0); diff --git a/src/frontend/wdisp/windisp.h b/src/frontend/wdisp/windisp.h index 09ab5ff5d..27a7b4012 100644 --- a/src/frontend/wdisp/windisp.h +++ b/src/frontend/wdisp/windisp.h @@ -6,18 +6,19 @@ #ifndef WINDISP_H #define WINDISP_H -extern int WIN_Init(); -extern int WIN_NewViewport(); -extern int WIN_Close(); -extern int WIN_Clear(); -extern int WIN_DrawLine(); -extern int WIN_Arc(); -extern int WIN_Text(); -extern int WIN_DefineColor(); -extern int WIN_DefineLinestyle(); -extern int WIN_SetLinestyle(); -extern int WIN_SetColor(); -extern int WIN_Update(); +disp_fn_Init_t WIN_Init; +disp_fn_NewViewport_t WIN_NewViewport; +disp_fn_Close_t WIN_Close; +disp_fn_Clear_t WIN_Clear; +disp_fn_DrawLine_t WIN_DrawLine; +disp_fn_Arc_t WIN_Arc; +disp_fn_Text_t WIN_Text; +disp_fn_DefineColor_t WIN_DefineColor; +disp_fn_DefineLinestyle_t WIN_DefineLinestyle; +disp_fn_SetLinestyle_t WIN_SetLinestyle; +disp_fn_SetColor_t WIN_SetColor; +disp_fn_Update_t WIN_Update; + extern int WIN_DiagramReady(); #endif /* WINDISP_H */ diff --git a/src/frontend/wdisp/winprint.c b/src/frontend/wdisp/winprint.c index 97d1946d0..8eee3cbb0 100644 --- a/src/frontend/wdisp/winprint.c +++ b/src/frontend/wdisp/winprint.c @@ -421,7 +421,7 @@ int WPRINT_Text( char * text, int x, int y, int degrees) } -int WPRINT_DefineColor(int red, int green, int blue, int num) +int WPRINT_DefineColor(int colorid, double red, double green, double blue) { /* nix */ return (0); diff --git a/src/frontend/wdisp/winprint.h b/src/frontend/wdisp/winprint.h index 46ce32901..33686088f 100644 --- a/src/frontend/wdisp/winprint.h +++ b/src/frontend/wdisp/winprint.h @@ -6,18 +6,19 @@ #ifndef WINPRINT_H #define WINPRINT_H -extern int WPRINT_Init(); -extern int WPRINT_NewViewport(); -extern int WPRINT_Close(); -extern int WPRINT_Clear(); -extern int WPRINT_DrawLine(); -extern int WPRINT_Arc(); -extern int WPRINT_Text(); -extern int WPRINT_DefineColor(); -extern int WPRINT_DefineLinestyle(); -extern int WPRINT_SetLinestyle(); -extern int WPRINT_SetColor(); -extern int WPRINT_Update(); +disp_fn_Init_t WPRINT_Init; +disp_fn_NewViewport_t WPRINT_NewViewport; +disp_fn_Close_t WPRINT_Close; +disp_fn_Clear_t WPRINT_Clear; +disp_fn_DrawLine_t WPRINT_DrawLine; +disp_fn_Arc_t WPRINT_Arc; +disp_fn_Text_t WPRINT_Text; +disp_fn_DefineColor_t WPRINT_DefineColor; +disp_fn_DefineLinestyle_t WPRINT_DefineLinestyle; +disp_fn_SetLinestyle_t WPRINT_SetLinestyle; +disp_fn_SetColor_t WPRINT_SetColor; +disp_fn_Update_t WPRINT_Update; + extern int WPRINT_DiagramReady(); #endif /* WINPRINT_H */ diff --git a/src/include/ftedev.h b/src/include/ftedev.h index 12385b225..b8cc4611a 100644 --- a/src/include/ftedev.h +++ b/src/include/ftedev.h @@ -12,30 +12,52 @@ Author: 1987 Jeffrey M. Hsu #ifndef FTEDEV_H_INCLUDED #define FTEDEV_H_INCLUDED +struct graph; +struct request; +struct response; + +typedef int disp_fn_Init_t (void); +typedef int disp_fn_NewViewport_t (struct graph *); +typedef int disp_fn_Close_t (void); +typedef int disp_fn_Clear_t (void); +typedef int disp_fn_DrawLine_t (int x1, int y1, int x2, int y2); +typedef int disp_fn_Arc_t (int x0, int y0, int radius, double theta1, double theta2); +typedef int disp_fn_Text_t (char *text, int x, int y); +typedef int disp_fn_DefineColor_t (int colorid, double red, double green, double blue); +typedef int disp_fn_DefineLinestyle_t (int linestyleid, int mask); +typedef int disp_fn_SetLinestyle_t (int linestyleid); +typedef int disp_fn_SetColor_t (int colorid); +typedef int disp_fn_Update_t (void); +typedef int disp_fn_Track_t (void); +typedef int disp_fn_MakeMenu_t (void); +typedef int disp_fn_MakeDialog_t (void); +typedef int disp_fn_Input_t (struct request *request, struct response *response); +typedef void disp_fn_DatatoScreen_t (struct graph *graph, double x, double y, int *screenx, int *screeny); typedef struct { char *name; int minx, miny; int width, height; /* in screen coordinate system */ int numlinestyles, numcolors; /* number supported */ - int (*Init)(); - int (*NewViewport)(); - int (*Close)(); - int (*Clear)(); - int (*DrawLine)(); - int (*Arc)(); - int (*Text)(); - int (*DefineColor)(); - int (*DefineLinestyle)(); - int (*SetLinestyle)(); - int (*SetColor)(); - int (*Update)(); + + disp_fn_Init_t *Init; + disp_fn_NewViewport_t *NewViewport; + disp_fn_Close_t *Close; + disp_fn_Clear_t *Clear; + disp_fn_DrawLine_t *DrawLine; + disp_fn_Arc_t *Arc; + disp_fn_Text_t *Text; + disp_fn_DefineColor_t *DefineColor; + disp_fn_DefineLinestyle_t *DefineLinestyle; + disp_fn_SetLinestyle_t *SetLinestyle; + disp_fn_SetColor_t *SetColor; + disp_fn_Update_t *Update; /* int (*NDCtoScreen)(); */ - int (*Track)(); - int (*MakeMenu)(); - int (*MakeDialog)(); - int (*Input)(); - void (*DatatoScreen)(); + disp_fn_Track_t *Track; + disp_fn_MakeMenu_t *MakeMenu; + disp_fn_MakeDialog_t *MakeDialog; + disp_fn_Input_t *Input; + disp_fn_DatatoScreen_t *DatatoScreen; } DISPDEVICE; extern DISPDEVICE *dispdev; diff --git a/src/include/tclspice.h b/src/include/tclspice.h index 6cd2e9a6d..2e6de954e 100755 --- a/src/include/tclspice.h +++ b/src/include/tclspice.h @@ -11,20 +11,21 @@ extern void blt_lockvec(int index); /* For things to do per loop */ int Tcl_ExecutePerLoop(); -/* For tk ploting */ -extern int sp_Tk_Init(void); #include -extern int sp_Tk_NewViewport(GRAPH *graph); -extern int sp_Tk_Close(void); -extern int sp_Tk_Clear(void); -extern int sp_Tk_DrawLine(int x1, int y1, int x2, int y2); -extern int sp_Tk_Arc(int x0, int y0, int radius, double theta1, double theta2); -extern int sp_Tk_Text(char *text, int x, int y); -extern int sp_Tk_DefineColor(int colorid, double red, double green, double blue); -extern int sp_Tk_DefineLinestyle(int linestyleid, int mask); -extern int sp_Tk_SetLinestyle(int linestyleid); -extern int sp_Tk_SetColor(int colorid); -extern int sp_Tk_Update(void); + +/* For tk ploting */ +disp_fn_Init_t sp_Tk_Init; +disp_fn_NewViewport_t sp_Tk_NewViewport; +disp_fn_Close_t sp_Tk_Close; +disp_fn_Clear_t sp_Tk_Clear; +disp_fn_DrawLine_t sp_Tk_DrawLine; +disp_fn_Arc_t sp_Tk_Arc; +disp_fn_Text_t sp_Tk_Text; +disp_fn_DefineColor_t sp_Tk_DefineColor; +disp_fn_DefineLinestyle_t sp_Tk_DefineLinestyle; +disp_fn_SetLinestyle_t sp_Tk_SetLinestyle; +disp_fn_SetColor_t sp_Tk_SetColor; +disp_fn_Update_t sp_Tk_Update; /* The blt callback method */ #include