Share

NEdit

Tracker: Patches

5 patch cast from pointer to integer of different size - ID: 2846694
Last Update: Comment added ( paulgevers )

The edit-5.6-cvs20081118 tarball used by debian contains a number of
compilation errors of the form...

cc -O -no-cpp-precomp -mdynamic-no-pic -DNO_XMIM -I/usr/X11R6/include
-I/sw/include -DUSE_DIRENT -DUSE_LPR_PRINT_CMD -I/sw/include -c -o
prefFile.o prefFile.c
prefFile.c: In function 'stringToPref':
prefFile.c:356: warning: cast from pointer to integer of different size
prefFile.c:358: warning: cast from pointer to integer of different size
prefFile.c:358: warning: cast from pointer to integer of different size

when compiling on x86_64-apple-darwin10. The attached patch fixes those in
the manner described in this patch proposed for windowmaker...

http://74.125.113.132/search?q=cache:8KKxFOl_N68J:lists.windowmaker.info/de
v/msg00081.html+cast+from+pointer+to+integer+of+different+size+void+int&cd=
3&hl=en&ct=clnk&gl=us&client=safari


Jack Howarth ( jwhowarth ) - 2009-08-29 04:28

5

Open

None

Nobody/Anonymous

Program

None

Public


Comments ( 3 )




Date: 2009-09-30 15:32
Sender: paulgevers

I extended the patch to contain the includes. It will most likely be used
for Debian as it is. I wanted to attach it, but it seems I can not do it.
I'll append it below:

diff -urNad nedit-5.6~cvs20081118~/Xlt/SlideC.c
nedit-5.6~cvs20081118/Xlt/SlideC.c
--- nedit-5.6~cvs20081118~/Xlt/SlideC.c 2009-09-15 21:27:12.000000000
+0200
+++ nedit-5.6~cvs20081118/Xlt/SlideC.c 2009-09-15 22:05:42.000000000 +0200
@@ -28,6 +28,7 @@
#endif

#include <Xm/XmP.h>
+#include <stdint.h>

#include "SlideCP.h"

@@ -116,14 +117,14 @@
/* notify that initialize called XtArgsProc */ NULL,
/* NULL XtProc */ NULL,
/* NULL XtPointer */ NULL,
-/* NULL Cardinal */ (Cardinal)NULL,
+/* NULL Cardinal */
(Cardinal)(uintptr_t)NULL,
/* resources for subclass fields XtResourceList */ resources,
/* number of entries in resources Cardinal */
XtNumber(resources),
/* resource class quarkified XrmClass */ NULLQUARK,
-/* NULL Boolean */ (Boolean)NULL,
-/* NULL XtEnum */ (XtEnum)NULL,
-/* NULL Boolean */ (Boolean)NULL,
-/* NULL Boolean */ (Boolean)NULL,
+/* NULL Boolean */
(Boolean)(uintptr_t)NULL,
+/* NULL XtEnum */
(XtEnum)(uintptr_t)NULL,
+/* NULL Boolean */ (Boolean)(uintptr_t)NULL,
+/* NULL Boolean */
(Boolean)(uintptr_t)NULL,
/* free data for subclass pointers XtWidgetProc */ destroy,
/* NULL XtProc */ NULL,
/* NULL XtProc */ NULL,
diff -urNad nedit-5.6~cvs20081118~/source/file.c
nedit-5.6~cvs20081118/source/file.c
--- nedit-5.6~cvs20081118~/source/file.c 2009-09-15 21:27:12.000000000
+0200
+++ nedit-5.6~cvs20081118/source/file.c 2009-09-15 22:06:42.000000000
+0200
@@ -52,6 +52,7 @@
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <unistd.h>

@@ -1914,7 +1915,7 @@
if (XmToggleButtonGetState(w)) {
XtPointer userData;
XtVaGetValues(w, XmNuserData, &userData, NULL);
- *(int*) clientData = (int) userData;
+ *(int*) clientData = (int) (uintptr_t) userData;
}
}

diff -urNad nedit-5.6~cvs20081118~/source/highlight.c
nedit-5.6~cvs20081118/source/highlight.c
--- nedit-5.6~cvs20081118~/source/highlight.c 2009-09-15
21:27:12.000000000 +0200
+++ nedit-5.6~cvs20081118/source/highlight.c 2009-09-15 22:07:06.000000000
+0200
@@ -49,6 +49,7 @@
#include <limits.h>
#include <math.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#ifdef VMS
#include "../util/VMSparam.h"
@@ -512,7 +513,7 @@
if (!pattern) {
return NULL;
}
- return (void*)pattern->userStyleIndex;
+ return (void*)(uintptr_t)pattern->userStyleIndex;
}

/*
diff -urNad nedit-5.6~cvs20081118~/source/macro.c
nedit-5.6~cvs20081118/source/macro.c
--- nedit-5.6~cvs20081118~/source/macro.c 2009-09-15 21:27:12.000000000
+0200
+++ nedit-5.6~cvs20081118/source/macro.c 2009-09-15 22:07:27.000000000
+0200
@@ -60,6 +60,7 @@

#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
@@ -2924,7 +2925,7 @@
readStringArg(argList[i], &btnLabel, btnStorage, errMsg);
btn = XtVaCreateManagedWidget("mdBtn", xmPushButtonWidgetClass,
dialog,
XmNlabelString, s1=XmStringCreateSimple(btnLabel),
- XmNuserData, (XtPointer)(i+1), NULL);
+ XmNuserData, (XtPointer)(uintptr_t)(i+1), NULL);
XtAddCallback(btn, XmNactivateCallback, dialogBtnCB, window);
XmStringFree(s1);
}
@@ -2965,7 +2966,7 @@
return; /* shouldn't happen */
if (XtClass(w) == xmPushButtonWidgetClass) {
XtVaGetValues(w, XmNuserData, &userData, NULL);
- retVal.val.n = (int)userData;
+ retVal.val.n = (int)(uintptr_t)userData;
} else
retVal.val.n = 1;
retVal.tag = INT_TAG;
@@ -3101,7 +3102,7 @@
readStringArg(argList[i], &btnLabel, btnStorage, errMsg);
btn = XtVaCreateManagedWidget("mdBtn", xmPushButtonWidgetClass,
dialog,
XmNlabelString, s1=XmStringCreateSimple(btnLabel),
- XmNuserData, (XtPointer)(i+1), NULL);
+ XmNuserData, (XtPointer)(uintptr_t)(i+1), NULL);
XtAddCallback(btn, XmNactivateCallback, stringDialogBtnCB, window);
XmStringFree(s1);
}
@@ -3155,7 +3156,7 @@
returned in w. */
if (XtClass(w) == xmPushButtonWidgetClass) {
XtVaGetValues(w, XmNuserData, &userData, NULL);
- btnNum = (int)userData;
+ btnNum = (int)(uintptr_t)userData;
} else
btnNum = 1;

@@ -3680,7 +3681,7 @@
readStringArg(argList[i], &btnLabel, btnStorage, errMsg);
btn = XtVaCreateManagedWidget("mdBtn", xmPushButtonWidgetClass,
dialog,
XmNlabelString, s1=XmStringCreateSimple(btnLabel),
- XmNuserData, (XtPointer)(i+1), NULL);
+ XmNuserData, (XtPointer)(uintptr_t)(i+1), NULL);
XtAddCallback(btn, XmNactivateCallback, listDialogBtnCB, window);
XmStringFree(s1);
}
@@ -3760,7 +3761,7 @@
returned in w. */
if (XtClass(w) == xmPushButtonWidgetClass) {
XtVaGetValues(w, XmNuserData, &userData, NULL);
- btnNum = (int)userData;
+ btnNum = (int)(uintptr_t)userData;
} else
btnNum = 1;

diff -urNad nedit-5.6~cvs20081118~/source/preferences.c
nedit-5.6~cvs20081118/source/preferences.c
--- nedit-5.6~cvs20081118~/source/preferences.c 2009-09-15
21:27:12.000000000 +0200
+++ nedit-5.6~cvs20081118/source/preferences.c 2009-09-15
22:07:47.000000000 +0200
@@ -58,6 +58,7 @@
#include <ctype.h>
#include <pwd.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
@@ -2296,7 +2297,7 @@
XtVaGetValues(menu, XmNchildren, &items, XmNnumChildren, &nItems, NULL);
for (n=0; n<(int)nItems; n++) {
XtVaGetValues(items[n], XmNuserData, &userData, NULL);
- XmToggleButtonSetState(items[n], (int)userData == mode, False);
+ XmToggleButtonSetState(items[n], (int)(uintptr_t)userData ==
mode, False);
}
}
}
@@ -5148,7 +5149,7 @@
xmToggleButtonGadgetClass, menu,
XmNlabelString,
s1=XmStringCreateSimple(LanguageModes[i]->name),
XmNmarginHeight, 0,
- XmNuserData, (void *)i,
+ XmNuserData, (void *)(uintptr_t)i,
XmNset, window->languageMode==i, NULL);
XmStringFree(s1);
XtAddCallback(btn, XmNvalueChangedCallback, setLangModeCB, window);
@@ -5169,14 +5170,14 @@
XtVaGetValues(w, XmNuserData, &mode, NULL);

/* If the mode didn't change, do nothing */
- if (window->languageMode == (int)mode)
+ if (window->languageMode == (int)(uintptr_t)mode)
return;

/* redo syntax highlighting word delimiters, etc. */
/*
reapplyLanguageMode(window, (int)mode, False);
*/
- params[0] = (((int)mode) == PLAIN_LANGUAGE_MODE) ? "" :
LanguageModes[(int)mode]->name;
+ params[0] = (((int)(uintptr_t)mode) == PLAIN_LANGUAGE_MODE) ? "" :
LanguageModes[(int)(uintptr_t)mode]->name;
XtCallActionProc(window->textArea, "set_language_mode", NULL, params,
1);
}

diff -urNad nedit-5.6~cvs20081118~/source/regularExp.c
nedit-5.6~cvs20081118/source/regularExp.c
--- nedit-5.6~cvs20081118~/source/regularExp.c 2009-09-15
21:27:12.000000000 +0200
+++ nedit-5.6~cvs20081118/source/regularExp.c 2009-09-15
22:08:16.000000000 +0200
@@ -88,6 +88,7 @@
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>

#ifdef HAVE_DEBUG_H
@@ -4157,7 +4158,7 @@
table [*c] = 1;
}

- table [(int) NULL] = 1; /* These */
+ table [(int)(uintptr_t) NULL] = 1; /* These */
table [(int) '\t'] = 1; /* characters */
table [(int) '\n'] = 1; /* are always */
table [(int) ' ' ] = 1; /* delimiters. */
diff -urNad nedit-5.6~cvs20081118~/source/userCmds.c
nedit-5.6~cvs20081118/source/userCmds.c
--- nedit-5.6~cvs20081118~/source/userCmds.c 2009-09-15 21:27:12.000000000
+0200
+++ nedit-5.6~cvs20081118/source/userCmds.c 2009-09-15 22:08:47.000000000
+0200
@@ -49,6 +49,7 @@

#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <ctype.h>
#ifdef VMS
@@ -1116,7 +1117,7 @@
XtVaGetValues(items[n], XmNsubMenuId, &subMenu, NULL);
dimSelDepItemsInMenu(subMenu, menuList, nMenuItems, sensitive);
} else {
- index = (int)userData - 10;
+ index = (int)(uintptr_t)userData - 10;
if (index <0 || index >= nMenuItems)
return;
if (menuList[index]->input == FROM_SELECTION)
@@ -1928,7 +1929,7 @@
XmNlabelString, st1,
XmNacceleratorText, st2,
XmNmnemonic, f->mnemonic,
- XmNuserData, (XtPointer)(index+10), NULL);
+ XmNuserData, (XtPointer)(uintptr_t)(index+10), NULL);
XtAddCallback(btn, XmNactivateCallback, cbRtn, cbArg);
XmStringFree(st1);
XmStringFree(st2);
diff -urNad nedit-5.6~cvs20081118~/util/prefFile.c
nedit-5.6~cvs20081118/util/prefFile.c
--- nedit-5.6~cvs20081118~/util/prefFile.c 2009-09-15 21:27:12.000000000
+0200
+++ nedit-5.6~cvs20081118/util/prefFile.c 2009-09-15 22:04:14.000000000
+0200
@@ -38,6 +38,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <stdint.h>
#ifdef VMS
#include "VMSparam.h"
#else
@@ -353,9 +354,9 @@
*(int *)rsrcDescrip->valueAddr = 0;
return False;
case PREF_STRING:
- if ((int)strlen(string) >= (int)rsrcDescrip->arg)
+ if ((int)strlen(string) >= (int)(uintptr_t)rsrcDescrip->arg)
return False;
- strncpy(rsrcDescrip->valueAddr, string, (int)rsrcDescrip->arg);
+ strncpy(rsrcDescrip->valueAddr, string,
(int)(uintptr_t)rsrcDescrip->arg);
return True;
case PREF_ALLOC_STRING:
*(char **)rsrcDescrip->valueAddr = XtMalloc(strlen(string) + 1);



Date: 2009-09-15 20:45
Sender: jwhowarth

I guess darwin10's headers are automatically drawing the #include
<stdint.h> in.


Date: 2009-09-15 19:56
Sender: paulgevers

On my system I can not compile with that patch. I get:
prefFile.c: In function 'stringToPref':

prefFile.c:356: error: 'uintptr_t' undeclared (first use in this function)

I guess there needs to be a
#include <stdint.h>
somewhere.



Log in to comment.

Attached File ( 1 )

Filename Description Download
nedit_pointer.patch patch to eliminate ast from pointer to integer of different size errors Download

Change ( 1 )

Field Old Value Date By
File Added 340993: nedit_pointer.patch 2009-08-29 04:28 jwhowarth