ansi prototypes for the function pointers in struct DISPDEVICE

This commit is contained in:
rlar 2010-06-30 16:50:09 +00:00
parent 947e19bde7
commit 779e5a978c
12 changed files with 172 additions and 123 deletions

View File

@ -1,3 +1,27 @@
2010-06-30 Robert Larice <Robert.Larice@t-online.de>
* 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:

View File

@ -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,},
};

View File

@ -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 */

View File

@ -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 */

View File

@ -11,18 +11,19 @@
#include <X11/Intrinsic.h> /* 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);

View File

@ -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

View File

@ -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);

View File

@ -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 */

View File

@ -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);

View File

@ -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 */

View File

@ -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;

View File

@ -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 <graph.h>
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 <dvec.h>