Skip to content

Commit

Permalink
Merge pull request #67 from olebole/gcc-14
Browse files Browse the repository at this point in the history
Fix types and prototypes for gcc-14
  • Loading branch information
olebole authored Aug 17, 2024
2 parents 8f5d4ea + 0c4c23d commit 2fca4ad
Show file tree
Hide file tree
Showing 131 changed files with 6,395 additions and 11,348 deletions.
203 changes: 78 additions & 125 deletions obm/Obm.c

Large diffs are not rendered by default.

30 changes: 17 additions & 13 deletions obm/Obm.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,23 @@
typedef struct { int dummy; } *ObmContext;
#endif

ObmContext ObmOpen (/* app_context, argc, argv */);
void ObmClose (/* obm */);
void ObmInitialize (/* obm */);
void ObmActivate (/* obm */);
void ObmDeactivate (/* obm, unmap */);
int ObmActivated (/* obm */);
int ObmStatus (/* obm, app_name, app_class */);
XtPointer ObmGetInterp (/* obm, object */);
int ObmDeliverMsg (/* obm, object, message */);
int ObmDeliverMsgFromFile (/* obm, object, filename */);
void ObmAddCallback (/* obm, fcn, callback_type, client_data */);
void ObmRemoveCallback (/* obm, callback_id */);
void obmNewObject();
typedef int (*ObmFunc)();
typedef struct _obmCallback *ObmCallback;

ObmContext ObmOpen (XtAppContext app_context, int argc, char *argv[]);
void ObmClose (ObmContext);
void ObmInitialize (ObmContext);
void ObmActivate (ObmContext);
void ObmDeactivate (ObmContext, Boolean);
int ObmActivated (ObmContext);
int ObmStatus (ObmContext, char *, char *);
XtPointer ObmGetInterp (ObmContext);
int ObmDeliverMsg (ObmContext, const char *, const char *);
int ObmDeliverMsgFromFile (ObmContext, char *, char *);
void ObmAddCallback (ObmContext, int, ObmFunc, XtPointer);
void ObmRemoveCallback (ObmContext, ObmCallback);
void obmNewObject(ObmContext, const char *, const char *, const char *, ArgList, int);


/* Callback type flags. */
#define OBMCB_preserve 0000001 /* preserve over ObmInit */
Expand Down
84 changes: 50 additions & 34 deletions obm/ObmP.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,14 @@

#include <X11/xpm.h>
#include <tcl.h>
int Tcl_GetErrorLine();
void Tcl_SetErrorLine();
/* Backward compatibility patch for errorLine access. These functions were
* introduced only in Tcl 8.6, and direct access to errorLine is deprecated
* since then.
*/
#if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6)
int Tcl_GetErrorLine(Tcl_Interp *);
void Tcl_SetErrorLine(Tcl_Interp *, int);
#endif

/* Size limiting definitions. */
#define SZ_NAME 128 /* class or object name */
Expand Down Expand Up @@ -118,16 +124,25 @@ void Tcl_SetErrorLine();
#define OtNClasses 6

typedef struct obmObject *ObmObject;
typedef struct obmContext *ObmContext;
typedef struct objClassRec *ObjClassRec;

typedef int (*ObmFunc)();
typedef ObmObject (*ObmCreateFunc)();
typedef void (*ObmMethod)();

extern void ServerClassInit(), ClientClassInit(), ParameterClassInit();
extern void WidgetClassInit(), GenericClassDestroy();
extern void GtermClassInit(), MarkerClassInit();
typedef int (*ObmEvaluateFunc)(ObmObject, const char *);
typedef ObmObject (*ObmCreateFunc)(ObmContext, const char *, ObjClassRec,
const char *, ArgList, int);
typedef void (*ObmMethod)(ObmContext, ObjClassRec);
typedef void (*ObmDestroyFunc)(ObmObject);

extern void ServerClassInit(ObmContext, ObjClassRec);
extern void ClientClassInit(ObmContext, ObjClassRec);
extern void ParameterClassInit(ObmContext, ObjClassRec);
extern void WidgetClassInit(ObmContext, ObjClassRec);
extern void GenericClassDestroy(ObmContext, ObjClassRec);
extern void GtermClassInit(ObmContext, ObjClassRec);
extern void MarkerClassInit(ObmContext, ObjClassRec);
#ifndef OSI_COMPLIANT
extern void HTMLClassInit();
extern void HTMLClassInit(ObmContext, ObjClassRec);
#endif

/* Dummy WtClass bit flag definitions for initializers. */
Expand Down Expand Up @@ -198,19 +213,20 @@ typedef struct {
} baseClassRec, *BaseClassRec;

/* UI object class descriptor. */
typedef struct {
typedef struct objClassRec {
char name[SZ_NAME]; /* object class name */
int object_type; /* widget type (shell etc.) */
WidgetClass *widget_class; /* for Xt/Athena widgets */
unsigned long flag1, flag2; /* widget class bit flags. */
ObmMethod ClassInit; /* initializes class record */
ObmMethod ClassDestroy; /* close class record */
ObmCreateFunc Create; /* create proc */
ObmMethod Destroy; /* destroy proc */
ObmFunc Evaluate; /* evaluate proc */
ObmDestroyFunc Destroy; /* destroy proc */
ObmEvaluateFunc Evaluate; /* evaluate proc */
XtPointer class_data; /* class specific data */
} objClassRec, *ObjClassRec;


/* Class descriptors for all UI object classes and subclasses. In the
* following only the class initializer function needs to be set statically,
* since the class initializer function will initialize the remaining fields
Expand Down Expand Up @@ -502,31 +518,31 @@ typedef unsigned char uchar;
#define TRUESTR "1"
#define FALSESTR "0"

int obmClientCommand ();
extern int obmClass();
extern ObmObject obmFindObject();
extern ObjClassRec obmGetClassrec();
extern Widget widgetGetPointer();
extern ObmCallback obmAddCallback();
extern void widget_setTTName();
extern char *widget_getTTName();
extern void obmRemoveCallback();
typedef struct widgetObject *WidgetObject;

int obmClientCommand (Tcl_Interp *tcl, const char *commmand);
extern int obmClass(struct objClassRec *classrec, long unsigned int flag1, long unsigned int flag2);
extern ObmObject obmFindObject(struct obmContext *obm, const char *object);
extern ObjClassRec obmGetClassrec(const char *classname);
extern Widget widgetGetPointer(struct obmObject *object);
extern ObmCallback obmAddCallback(struct _obmCallback **callback_list);
extern void widget_setTTName(WidgetObject obj, char *name);
extern char *widget_getTTName(WidgetObject obj);
extern void obmRemoveCallback(struct _obmCallback **callback_list, struct _obmCallback *callback);
extern void obmFreeObject();
extern void obmDestroyObject();
extern void obmGenericClassDestroy();
extern void obmDisplay(), obmUndisplay();
extern int obm_nameToObjectList ();
extern void freeMenu();
extern void freeIcon();
extern Pixmap findBitmap();
extern Pixmap findPixmap();
extern Cursor findCursor();
extern Icon *findIcon();
extern char *get_geometry();
extern void obmDestroyObject(struct obmContext *obm, struct obmObject *object);
extern void obmGenericClassDestroy(struct obmContext *obm, struct objClassRec *classrec);
extern void obmDisplay(struct obmContext *obm, struct obmObject *obj), obmUndisplay(struct obmContext *obm, struct obmObject *obj);
extern int obm_nameToObjectList (struct obmContext *obm, char *object, struct obmObject **pobjs, int *nobjs, struct obmObject **objs);
extern void freeMenu(MenuPtr mp);
extern void freeIcon(struct obmContext *obm, Icon *icon);
extern Pixmap findBitmap(struct obmContext *obm, const char *name);
extern Pixmap findPixmap(struct obmContext *obm, const char *name);
extern Cursor findCursor(struct obmContext *obm, char *name);
extern Icon *findIcon(struct obmContext *obm, char *name);
extern char *get_geometry(Display *display, Screen *screen, Window window, int origin);

/* Public functions. */
#define Obm_Private
#include "Obm.h"
#undef Obm_Private

extern char *getenv();
82 changes: 21 additions & 61 deletions obm/ObmW/Arrow.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,8 @@
#include <stdio.h>
#include <assert.h>
#include "ArrowP.h"
static void activate_and_start_timer(
#if NeedFunctionPrototypes
Widget,XEvent*,String*,Cardinal*
#endif
);
static void stop_timer(
#if NeedFunctionPrototypes
Widget,XEvent*,String*,Cardinal*
#endif
);
static void activate_and_start_timer(Widget,XEvent*,String*,Cardinal*);
static void stop_timer(Widget,XEvent*,String*,Cardinal*);

static XtActionsRec actionsList[] = {
{"activate_and_start_timer", activate_and_start_timer},
Expand All @@ -27,55 +19,24 @@ static char defaultTranslations[] = "\
<Btn1Down>: activate_and_start_timer() \n\
<Btn1Up>: stop_timer() \n\
";
static void _resolve_inheritance(
#if NeedFunctionPrototypes
WidgetClass
#endif
);
static void initialize(
#if NeedFunctionPrototypes
Widget ,Widget,ArgList ,Cardinal *
#endif
);
static Boolean set_values(
#if NeedFunctionPrototypes
Widget ,Widget ,Widget,ArgList ,Cardinal *
#endif
);
static void expose(
#if NeedFunctionPrototypes
Widget,XEvent *,Region
#endif
);
static void timer_callback(
#if NeedFunctionPrototypes
XtPointer ,XtIntervalId *
#endif
);
static void create_arrowgc(
#if NeedFunctionPrototypes
Widget
#endif
);
static void create_arrowlightgc(
#if NeedFunctionPrototypes
Widget
#endif
);
static void create_arrowdarkgc(
#if NeedFunctionPrototypes
Widget
#endif
);
/*ARGSUSED*/static void timer_callback(client_data,timer)XtPointer client_data;XtIntervalId * timer;
static void _resolve_inheritance(WidgetClass);
static void initialize(Widget ,Widget,ArgList ,Cardinal *);
static Boolean set_values(Widget ,Widget ,Widget,ArgList ,Cardinal *);
static void expose(Widget,XEvent *,Region );
static void timer_callback(XtPointer ,XtIntervalId *);
static void create_arrowgc(Widget);
static void create_arrowlightgc(Widget);
static void create_arrowdarkgc(Widget);

/*ARGSUSED*/static void timer_callback(XtPointer client_data, XtIntervalId *timer)
{
Widget self = (Widget) client_data;

XtCallCallbackList(self, ((XfwfArrowWidget)self)->xfwfArrow.callback, NULL);
((XfwfArrowWidget)self)->xfwfArrow.timer = XtAppAddTimeOut(XtWidgetToApplicationContext(self),
((XfwfArrowWidget)self)->xfwfArrow.repeatDelay, timer_callback, self);
}
/*ARGSUSED*/static void create_arrowgc(self)Widget self;
/*ARGSUSED*/static void create_arrowgc(Widget self)
{
XtGCMask mask;
XGCValues values;
Expand All @@ -85,7 +46,7 @@ Widget
values.foreground = ((XfwfArrowWidget)self)->xfwfArrow.foreground;
((XfwfArrowWidget)self)->xfwfArrow.arrowgc = XtGetGC(self, mask, &values);
}
/*ARGSUSED*/static void create_arrowlightgc(self)Widget self;
/*ARGSUSED*/static void create_arrowlightgc(Widget self)
{
XtGCMask mask;
XGCValues values;
Expand Down Expand Up @@ -121,7 +82,7 @@ Widget
}
((XfwfArrowWidget)self)->xfwfArrow.arrowlightgc = XtGetGC(self, mask, &values);
}
/*ARGSUSED*/static void create_arrowdarkgc(self)Widget self;
/*ARGSUSED*/static void create_arrowdarkgc(Widget self)
{
XtGCMask mask;
XGCValues values;
Expand Down Expand Up @@ -232,7 +193,7 @@ XtInherit_set_abs_location,
};
WidgetClass xfwfArrowWidgetClass = (WidgetClass) &xfwfArrowClassRec;
/*ARGSUSED*/
static void activate_and_start_timer(self,event,params,num_params)Widget self;XEvent*event;String*params;Cardinal*num_params;
static void activate_and_start_timer(Widget self, XEvent *event, String *params, Cardinal *num_params)
{
if (event->type != ButtonPress) {
XtWarning("The Arrow activate action isn't bound to a BtnDown event");
Expand All @@ -244,13 +205,12 @@ static void activate_and_start_timer(self,event,params,num_params)Widget self;XE
}

/*ARGSUSED*/
static void stop_timer(self,event,params,num_params)Widget self;XEvent*event;String*params;Cardinal*num_params;
static void stop_timer(Widget self, XEvent *event, String *params, Cardinal *num_params)
{
XtRemoveTimeOut(((XfwfArrowWidget)self)->xfwfArrow.timer);
}

static void _resolve_inheritance(class)
WidgetClass class;
static void _resolve_inheritance(WidgetClass class)
{
XfwfArrowWidgetClass c = (XfwfArrowWidgetClass) class;
XfwfArrowWidgetClass super;
Expand All @@ -265,7 +225,7 @@ WidgetClass class;
if (class == xfwfArrowWidgetClass) return;
super = (XfwfArrowWidgetClass)class->core_class.superclass;
}
/*ARGSUSED*/static void initialize(request,self,args,num_args)Widget request;Widget self;ArgList args;Cardinal * num_args;
/*ARGSUSED*/static void initialize(Widget request, Widget self, ArgList args, Cardinal *num_args)
{
if (((XfwfArrowWidget)self)->xfwfArrow.direction != XfwfTop && ((XfwfArrowWidget)self)->xfwfArrow.direction != XfwfLeft
&& ((XfwfArrowWidget)self)->xfwfArrow.direction != XfwfRight && ((XfwfArrowWidget)self)->xfwfArrow.direction != XfwfBottom) {
Expand All @@ -276,7 +236,7 @@ WidgetClass class;
((XfwfArrowWidget)self)->xfwfArrow.arrowlightgc = NULL; create_arrowlightgc(self);
((XfwfArrowWidget)self)->xfwfArrow.arrowdarkgc = NULL; create_arrowdarkgc(self);
}
/*ARGSUSED*/static Boolean set_values(old,request,self,args,num_args)Widget old;Widget request;Widget self;ArgList args;Cardinal * num_args;
/*ARGSUSED*/static Boolean set_values(Widget old, Widget request, Widget self, ArgList args, Cardinal *num_args)
{
Boolean need_redisplay = False;

Expand Down Expand Up @@ -318,7 +278,7 @@ WidgetClass class;
}
return need_redisplay;
}
/*ARGSUSED*/static void expose(self,event,region)Widget self;XEvent * event;Region region;
/*ARGSUSED*/static void expose(Widget self, XEvent *event, Region region)
{
XPoint p1[3], p2[4], p3[4], p4[4];
Position x, y;
Expand Down
Loading

0 comments on commit 2fca4ad

Please sign in to comment.