ddd
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]