[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
patch to fix warnings with Sun CC 5.x
From: |
Arnaud Desitter |
Subject: |
patch to fix warnings with Sun CC 5.x |
Date: |
Fri, 06 Apr 2001 13:42:19 +0100 |
Hi,
Here is a patch against ddd 3.3 to fix warnings on Sun CC 5.x,
which enforces a standard C++ rule where pointer to function are
extern "C" or extern "C++" (see Sun C++ migration guide).
Regards,
Arnaud
diff -u -r ddd-3.3/ddd/LabelH.C ddd-3.3-1/ddd/LabelH.C
--- ddd-3.3/ddd/LabelH.C Mon Dec 11 12:21:47 2000
+++ ddd-3.3-1/ddd/LabelH.C Thu Apr 5 10:54:23 2001
@@ -290,6 +290,7 @@
return XtGetGC ((Widget)_label, mask, &gcValues);
}
+extern "C" {
static void _grabbedLabelExpose(Widget _w, XEvent *_event, Region
_region)
{
GC insensitiveGC;
@@ -342,6 +343,7 @@
#endif
}
}
+}
static void _replaceLabelExpose(void)
{
@@ -407,6 +409,7 @@
return XtGetGC ((Widget)parent, mask, &gcValues);
}
+extern "C" {
static void _grabbedLabelGadgetExpose(Widget _w, XEvent *_event,
Region _region)
{
@@ -459,6 +462,7 @@
XtClass(_w)->core_class.resize = oldResizeProc;
#endif
}
+}
}
static void _replaceLabelGadgetExpose(void)
diff -u -r ddd-3.3/ddd/MString.h ddd-3.3-1/ddd/MString.h
--- ddd-3.3/ddd/MString.h Mon Dec 11 12:21:47 2000
+++ ddd-3.3-1/ddd/MString.h Mon Mar 12 12:22:17 2001
@@ -52,7 +52,12 @@
public:
// Constructors
- MString(const char *text = "",
+ MString():
+ _mstring(XmStringCreateLtoR((char*)"", MSTRING_DEFAULT_CHARSET) )
+ {
+ assert(OK());
+ }
+ MString(const char *text ,
XmStringCharSet charset = MSTRING_DEFAULT_CHARSET):
_mstring(text ? XmStringCreateLtoR((char *)text, charset) : 0)
{
diff -u -r ddd-3.3/ddd/PannedGE.C ddd-3.3-1/ddd/PannedGE.C
--- ddd-3.3/ddd/PannedGE.C Mon Dec 11 12:21:47 2000
+++ ddd-3.3-1/ddd/PannedGE.C Thu Apr 5 17:05:49 2001
@@ -60,7 +60,9 @@
// Method function declarations
+extern "C" {
static void Resize(Widget w);
+}
// Resource list
@@ -144,7 +146,7 @@
WidgetClass pannedGraphEditWidgetClass =
WidgetClass(&pannedGraphEditClassRec);
-
+extern "C" {
static void Resize(Widget w)
{
XtCheckSubclass(w, pannedGraphEditWidgetClass, "Bad widget class");
@@ -161,7 +163,7 @@
// Call superclass resize method
pannedGraphEditClassRec.core_class.superclass->core_class.resize(w);
}
-
+}
// create a graph editor with panner; return the graph editor widget ID
Widget createPannedGraphEdit(Widget parent, const _XtString name,
diff -u -r ddd-3.3/ddd/PannedGEP.h ddd-3.3-1/ddd/PannedGEP.h
--- ddd-3.3/ddd/PannedGEP.h Wed Nov 22 11:40:24 2000
+++ ddd-3.3-1/ddd/PannedGEP.h Thu Apr 5 12:23:32 2001
@@ -39,9 +39,11 @@
// Superclasses
#define new new_w
#define class class_w
+extern "C" {
#include <X11/IntrinsicP.h>
#include <X11/CompositeP.h>
#include <X11/Xaw/PortholeP.h>
+}
#undef new
#undef class
diff -u -r ddd-3.3/ddd/XErrorB.C ddd-3.3-1/ddd/XErrorB.C
--- ddd-3.3/ddd/XErrorB.C Wed Jan 17 09:36:16 2001
+++ ddd-3.3-1/ddd/XErrorB.C Thu Apr 5 17:04:23 2001
@@ -36,6 +36,14 @@
#include "XErrorB.h"
#include "assert.h"
+extern "C" {
+ static
+ int _handler(Display *display, XErrorEvent *event)
+ {
+ return XErrorBlocker::handler(display, event);
+ }
+}
+
XErrorBlocker *XErrorBlocker::active = 0;
XErrorBlocker::XErrorBlocker(Display *display)
@@ -44,7 +52,7 @@
: _display(display), _error_occurred(false), // _event(),
saved_handler(0), saved_active(0)
{
- saved_handler = XSetErrorHandler(handler);
+ saved_handler = XSetErrorHandler(_handler);
saved_active = active;
active = this;
}
diff -u -r ddd-3.3/ddd/XErrorB.h ddd-3.3-1/ddd/XErrorB.h
--- ddd-3.3/ddd/XErrorB.h Wed Dec 20 12:30:24 2000
+++ ddd-3.3-1/ddd/XErrorB.h Fri Apr 6 10:32:48 2001
@@ -33,19 +33,27 @@
#pragma interface
#endif
+extern "C" {
#include <X11/Intrinsic.h>
+}
#include "bool.h"
#include "assert.h"
+extern "C" {
+ typedef int (*ddd_XErrorHandler) (
+ Display* /* display */,
+ XErrorEvent* /* error_event */
+ );
+}
+
class XErrorBlocker {
Display *_display;
bool _error_occurred;
XErrorEvent _event;
-
- int (*saved_handler)(Display *, XErrorEvent *);
+
+ ddd_XErrorHandler saved_handler;
XErrorBlocker *saved_active;
- static int handler(Display *, XErrorEvent *);
static XErrorBlocker *active;
XErrorBlocker(const XErrorBlocker&)
@@ -69,6 +77,9 @@
public:
XErrorBlocker(Display *display);
virtual ~XErrorBlocker();
+
+ // made public so that it can be wrapped by extern "C" function
+ static int handler(Display *, XErrorEvent *);
bool error_occurred() const
{
diff -u -r ddd-3.3/ddd/ddd.C ddd-3.3-1/ddd/ddd.C
--- ddd-3.3/ddd/ddd.C Thu Jan 18 13:51:24 2001
+++ ddd-3.3-1/ddd/ddd.C Thu Apr 5 10:51:38 2001
@@ -6842,6 +6842,7 @@
// Emergency
//-----------------------------------------------------------------------------
+extern "C" {
static Bool is_emergency(Display *, XEvent *event, char *)
{
switch (event->type)
@@ -6866,6 +6867,7 @@
}
return False;
+}
}
bool process_emergencies()
diff -u -r ddd-3.3/ddd/exit.C ddd-3.3-1/ddd/exit.C
--- ddd-3.3/ddd/exit.C Tue Dec 19 15:45:49 2000
+++ ddd-3.3-1/ddd/exit.C Thu Apr 5 17:07:27 2001
@@ -588,9 +588,12 @@
// X I/O error
//-----------------------------------------------------------------------------
-static int (*old_x_fatal_handler)(Display *display) = 0;
+extern "C" {
+ static int (*old_x_fatal_handler)(Display *display) = 0;
+}
// Fatal X I/O error handler: cleanup and issue error message
+extern "C" {
static int ddd_x_fatal(Display *display)
{
int saved_errno = errno;
@@ -606,6 +609,7 @@
errno = saved_errno;
return old_x_fatal_handler(display);
}
+}
// Cleanup on fatal X I/O errors
void ddd_install_x_fatal()
@@ -790,7 +794,9 @@
os.flush();
}
-static int (*old_x_error_handler)(Display *, XErrorEvent *) = 0;
+extern "C" {
+ static int (*old_x_error_handler)(Display *, XErrorEvent *) = 0;
+}
static bool recovered_from_x_error = true;
@@ -801,6 +807,7 @@
}
// X error handler: cleanup and issue error message
+extern "C" {
static int ddd_x_error(Display *display, XErrorEvent *event)
{
if (event->error_code == BadImplementation)
@@ -863,6 +870,7 @@
}
return 0; // Keep on acting
+}
}
// Cleanup on fatal X I/O errors
diff -u -r ddd-3.3/ddd/layout.C ddd-3.3-1/ddd/layout.C
--- ddd-3.3/ddd/layout.C Mon Dec 11 12:21:48 2000
+++ ddd-3.3-1/ddd/layout.C Fri Apr 6 11:16:01 2001
@@ -90,6 +90,7 @@
const int NOT_REGULAR = 12;
+
/*****************************************************************************
Interface layer
*****************************************************************************/
@@ -2008,8 +2009,25 @@
Sorting functions
*****************************************************************************/
-
-typedef int (*QuicksortCompareProc)(const void *, const void *);
+extern "C"{
+ static int _sortCmpCenters(const void* k1, const void* k2){
+ NODE **_n1 = (NODE **)k1;
+ NODE **_n2 = (NODE **)k2;
+ return Layout::sortCmpCenters(_n1,_n2);
+ }
+
+ static int _sortCmpUpperPrio(const void* k1, const void* k2){
+ NODE **_n1 = (NODE **)k1;
+ NODE **_n2 = (NODE **)k2;
+ return Layout::sortCmpUpperPrio(_n1,_n2);
+ }
+
+ static int _sortCmpLowerPrio(const void* k1, const void* k2){
+ NODE **_n1 = (NODE **)k1;
+ NODE **_n2 = (NODE **)k2;
+ return Layout::sortCmpLowerPrio(_n1,_n2);
+ }
+}
/*
* sortApplyLevel
@@ -2415,7 +2433,7 @@
/* sort the index */
qsort ( (char *) index , len, sizeof (NODE*),
- (QuicksortCompareProc)sortCmpCenters );
+ _sortCmpCenters );
/*
* build up a new list according to the sorted index
@@ -2622,7 +2640,7 @@
*/
qsort ( (char *)index, len, sizeof (NODE*),
- (QuicksortCompareProc)sortCmpUpperPrio);
+ _sortCmpUpperPrio);
tmp = index;
while (*tmp) {
@@ -2673,7 +2691,7 @@
*/
qsort ( (char *)index, len, sizeof (NODE*),
- (QuicksortCompareProc)sortCmpLowerPrio);
+ _sortCmpLowerPrio);
tmp = index;
while (*tmp) {
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp
- patch to fix warnings with Sun CC 5.x,
Arnaud Desitter <=