[ITA] libXpm-noX 3.5.12
Ken Brown
kbrown@cornell.edu
Mon Nov 20 20:32:00 GMT 2017
On 11/20/2017 11:42 AM, Jon Turney wrote:
> On 15/11/2017 17:30, Ken Brown wrote:
>> My cygport file and other files needed for reproducing the build are
>> attached.
>
> I added this to your uploads, but this fails to build for me:
>
> libXpm-nox/libXpm-noX-3.5.12-1.src/libXpm-noX-3.5.12-1.x86_6/src/libXpm-3.5.12/src/simx.c:42:40:
> fatal error: xpmi.h: No such file or directory
> Â #include "xpmi.h"Â Â /* for XpmMalloc */
>
> which looks like some sort of case-sensitivity issue vs. XpmI.h, but I
> can't see that it's introduced by your patches, and I don't understand
> how it could be present in upstream...
Thanks for checking the build. I didn't catch this because I did the
build on a Cygwin installation that was case insensitive (which is not
my usual habit).
The problem actually is present in upstream. But it isn't a problem
from the upstream point of view because the file simx.c is intended for
the native Windows build, where case insensitivity can be assumed.
For the record, I'm attaching a revised 04-source-code.patch that fixes
this.
Ken
-------------- next part --------------
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/include/X11/xpm.h src/libXpm-3.5.10/include/X11/xpm.h
--- origsrc/libXpm-3.5.10/include/X11/xpm.h 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/include/X11/xpm.h 2013-06-30 18:41:11.234785900 -0400
@@ -33,7 +33,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -42,6 +42,11 @@
* Lorens Younes (d93-hyo@nada.kth.se) 4/96
*/
+/*
+ * The code related to CYGWIN has been added by
+ * Charles Wilson (cygwin@cygwin.com) 10/00
+ */
+
#ifndef XPM_h
#define XPM_h
@@ -62,21 +67,33 @@
#define XpmRevision 11
#define XpmIncludeVersion ((XpmFormat * 100 + XpmVersion) * 100 + XpmRevision)
+/* XPM_NO_X and FOR_MSW are synonymous */
+#ifdef XPM_NO_X
+# ifndef FOR_MSW
+# define FOR_MSW
+# endif
+#endif
+#ifdef FOR_MSW
+# ifndef XPM_NO_X
+# define XPM_NO_X
+# endif
+#endif
+
#ifndef XPM_NUMBERS
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
# define SYSV /* uses memcpy string.h etc. */
# include <malloc.h>
# include "simx.h" /* defines some X stuff using MSW types */
#define NEED_STRCASECMP /* at least for MSVC++ */
-#else /* FOR_MSW */
+#else /* XPM_NO_X */
# ifdef AMIGA
# include "amigax.h"
# else /* not AMIGA */
# include <X11/Xlib.h>
# include <X11/Xutil.h>
# endif /* not AMIGA */
-#endif /* FOR_MSW */
+#endif /* XPM_NO_X */
/* let's define Pixel if it is not done yet */
#if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
@@ -255,7 +272,7 @@
#define XpmReturnComments XpmComments
/* XpmAttributes mask_pixel value when there is no mask */
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
#define XpmUndefPixel 0x80000000
#else
/* int is only 16 bit for MSW */
@@ -285,10 +302,10 @@
_XFUNCPROTOBEGIN
-/* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */
+/* XPM_NO_X, all ..Pixmap.. are excluded, only the ..XImage.. are used */
/* Same for Amiga! */
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
FUNC(XpmCreatePixmapFromData, int, (Display *display,
Drawable d,
char **data,
@@ -345,7 +362,7 @@
XImage **image_return,
XImage **shapemask_return,
XpmAttributes *attributes));
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
FUNC(XpmCreatePixmapFromBuffer, int, (Display *display,
Drawable d,
char *buffer,
@@ -389,7 +406,7 @@
FUNC(XpmWriteFileFromXpmImage, int, (char *filename,
XpmImage *image,
XpmInfo *info));
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display,
Drawable d,
XpmImage *image,
@@ -408,7 +425,7 @@
XImage *shapeimage,
XpmImage *xpmimage,
XpmAttributes *attributes));
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display,
Pixmap pixmap,
Pixmap shapemask,
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/create.c src/libXpm-3.5.10/src/create.c
--- origsrc/libXpm-3.5.10/src/create.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/create.c 2013-06-30 18:42:23.789935800 -0400
@@ -34,7 +34,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -58,7 +58,7 @@
LFUNC(FreeColors, int, (Display *display, Colormap colormap,
Pixel *pixels, int n, void *closure));
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
LFUNC(SetCloseColor, int, (Display *display, Colormap colormap,
Visual *visual, XColor *col,
Pixel *image_pixel, Pixel *mask_pixel,
@@ -89,14 +89,14 @@
Pixel *alloc_pixels, unsigned int *nalloc_pixels,
Pixel *used_pixels, unsigned int *nused_pixels));
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
LFUNC(ParseAndPutPixels, int, (xpmData *data, unsigned int width,
unsigned int height, unsigned int ncolors,
unsigned int cpp, XpmColor *colorTable,
xpmHashTable *hashtable,
XImage *image, Pixel *image_pixels,
XImage *mask, Pixel *mask_pixels));
-#else /* FOR_MSW */
+#else /* XPM_NO_X */
LFUNC(ParseAndPutPixels, int, (Display *dc, xpmData *data, unsigned int width,
unsigned int height, unsigned int ncolors,
unsigned int cpp, XpmColor *colorTable,
@@ -105,7 +105,7 @@
XImage *mask, Pixel *mask_pixels));
#endif
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
/* XImage pixel routines */
LFUNC(PutImagePixels, void, (XImage *image, unsigned int width,
@@ -146,12 +146,12 @@
unsigned int height, unsigned int *pixelindex,
Pixel *pixels));
# endif/* AMIGA */
-#else /* FOR_MSW */
-/* FOR_MSW pixel routine */
+#else /* XPM_NO_X */
+/* XPM_NO_X pixel routine */
LFUNC(MSWPutImagePixels, void, (Display *dc, XImage *image,
unsigned int width, unsigned int height,
unsigned int *pixelindex, Pixel *pixels));
-#endif /* FOR_MSW */
+#endif /* XPM_NO_X */
#ifdef NEED_STRCASECMP
FUNC(xpmstrcasecmp, int, (char *s1, char *s2));
@@ -186,7 +186,7 @@
static int
xpmVisualType(Visual *visual)
{
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
switch (visual->class) {
case StaticGray:
@@ -207,7 +207,7 @@
return (XPM_COLOR);
# endif
#else
- /* there should be a similar switch for MSW */
+ /* there should be a similar switch for XPM_NO_X */
return (XPM_COLOR);
#endif
}
@@ -249,7 +249,7 @@
}
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
/*
* set a close color in case the exact one can't be set
* return 0 if success, 1 otherwise.
@@ -430,7 +430,7 @@
|| attributes->blue_closeness != 0)))
#else
- /* FOR_MSW part */
+ /* XPM_NO_X part */
/* nothing to do here, the window system does it */
#endif
@@ -468,7 +468,7 @@
return (1);
if (status == 0) {
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
if (USE_CLOSECOLOR)
return (SetCloseColor(display, colormap, visual, &xcolor,
image_pixel, mask_pixel,
@@ -476,12 +476,12 @@
attributes, cols, ncols,
allocColor, closure));
else
-#endif /* ndef FOR_MSW */
+#endif /* ndef XPM_NO_X */
return (1);
} else
alloc_pixels[(*nalloc_pixels)++] = xcolor.pixel;
*image_pixel = xcolor.pixel;
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
*mask_pixel = 1;
#else
*mask_pixel = RGB(0,0,0);
@@ -489,7 +489,7 @@
used_pixels[(*nused_pixels)++] = xcolor.pixel;
} else {
*image_pixel = 0;
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
*mask_pixel = 0;
#else
*mask_pixel = RGB(255,255,255);
@@ -568,7 +568,7 @@
else
closure = NULL;
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
if (USE_CLOSECOLOR) {
/* originally from SetCloseColor */
#if 0
@@ -599,7 +599,7 @@
}
#endif
}
-#endif /* ndef FOR_MSW */
+#endif /* ndef XPM_NO_X */
switch (key) {
case XPM_MONO:
@@ -858,7 +858,7 @@
if (ErrorStatus != XpmSuccess)
RETURN(ErrorStatus);
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
/*
@@ -885,7 +885,7 @@
APutImagePixels(ximage, image->width, image->height,
image->data, image_pixels);
# endif
-#else /* FOR_MSW */
+#else /* XPM_NO_X */
MSWPutImagePixels(display, ximage, image->width, image->height,
image->data, image_pixels);
#endif
@@ -897,7 +897,7 @@
if (ErrorStatus != XpmSuccess)
RETURN(ErrorStatus);
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
PutImagePixels1(shapeimage, image->width, image->height,
image->data, mask_pixels);
@@ -905,7 +905,7 @@
APutImagePixels(shapeimage, image->width, image->height,
image->data, mask_pixels);
# endif
-#else /* FOR_MSW */
+#else /* XPM_NO_X */
MSWPutImagePixels(display, shapeimage, image->width, image->height,
image->data, mask_pixels);
#endif
@@ -990,7 +990,7 @@
if (!*image_return)
return (XpmNoMemory);
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
if (height != 0 && (*image_return)->bytes_per_line >= INT_MAX / height) {
XDestroyImage(*image_return);
return XpmNoMemory;
@@ -1007,12 +1007,12 @@
return (XpmNoMemory);
}
#else
- /* under FOR_MSW and AMIGA XCreateImage has done it all */
+ /* under XPM_NO_X and AMIGA XCreateImage has done it all */
#endif
return (XpmSuccess);
}
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
/*
* The functions below are written from X11R5 MIT's code (XImUtil.c)
@@ -1721,7 +1721,7 @@
}
# endif/* AMIGA */
-#else /* FOR_MSW part follows */
+#else /* XPM_NO_X part follows */
static void
MSWPutImagePixels(
Display *dc,
@@ -1744,11 +1744,11 @@
SelectObject(*dc, obm);
}
-#endif /* FOR_MSW */
+#endif /* XPM_NO_X */
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
static int
PutPixel1(
@@ -1966,7 +1966,7 @@
return 1;
}
-#endif /* not FOR_MSW && not AMIGA */
+#endif /* not XPM_NO_X && not AMIGA */
/*
* This function parses an Xpm file or data and directly create an XImage
@@ -2133,7 +2133,7 @@
if (ErrorStatus != XpmSuccess)
RETURN(ErrorStatus);
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
/*
* set the XImage pointer function, to be used with XPutPixel,
@@ -2167,7 +2167,7 @@
ximage->f.put_pixel = PutPixel1;
else
ximage->f.put_pixel = PutPixel;
-#endif /* not FOR_MSW && not AMIGA */
+#endif /* not XPM_NO_X && not AMIGA */
}
/* create the shape mask image */
@@ -2177,7 +2177,7 @@
if (ErrorStatus != XpmSuccess)
RETURN(ErrorStatus);
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
if (shapeimage->bitmap_bit_order == MSBFirst)
shapeimage->f.put_pixel = PutPixel1MSB;
else
@@ -2189,7 +2189,7 @@
* read pixels and put them in the XImage
*/
ErrorStatus = ParseAndPutPixels(
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
display,
#endif
data, width, height, ncolors, cpp,
@@ -2309,7 +2309,7 @@
static int
ParseAndPutPixels(
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
Display *dc,
#endif
xpmData *data,
@@ -2332,7 +2332,7 @@
* colors */
{
unsigned short colidx[256];
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
HDC shapedc;
HBITMAP obm, sobm;
@@ -2357,7 +2357,7 @@
int c = xpmGetC(data);
if (c > 0 && c < 256 && colidx[c] != 0) {
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
XPutPixel(image, x, y, image_pixels[colidx[c] - 1]);
if (shapeimage)
XPutPixel(shapeimage, x, y,
@@ -2372,7 +2372,7 @@
return (XpmFileInvalid);
}
}
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
if ( shapedc ) {
SelectObject(shapedc, sobm);
DeleteDC(shapedc);
@@ -2416,7 +2416,7 @@
int cc2 = xpmGetC(data);
if (cc2 > 0 && cc2 < 256 &&
cidx[cc1] && cidx[cc1][cc2] != 0) {
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
XPutPixel(image, x, y,
image_pixels[cidx[cc1][cc2] - 1]);
if (shapeimage)
@@ -2466,7 +2466,7 @@
slot = xpmHashSlot(hashtable, buf);
if (!*slot) /* no color matches */
return (XpmFileInvalid);
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
XPutPixel(image, x, y,
image_pixels[HashColorIndex(slot)]);
if (shapeimage)
@@ -2495,7 +2495,7 @@
break;
if (a == ncolors) /* no color matches */
return (XpmFileInvalid);
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
XPutPixel(image, x, y, image_pixels[a]);
if (shapeimage)
XPutPixel(shapeimage, x, y, shape_pixels[a]);
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/parse.c src/libXpm-3.5.10/src/parse.c
--- origsrc/libXpm-3.5.10/src/parse.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/parse.c 2013-06-30 18:42:54.167673400 -0400
@@ -34,7 +34,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -383,7 +383,7 @@
if ((height > 0 && width >= UINT_MAX / height) ||
width * height >= UINT_MAX / sizeof(unsigned int))
return XpmNoMemory;
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
#else
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/RdFToBuf.c src/libXpm-3.5.10/src/RdFToBuf.c
--- origsrc/libXpm-3.5.10/src/RdFToBuf.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/RdFToBuf.c 2013-06-30 18:43:06.247364300 -0400
@@ -33,7 +33,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -44,13 +44,13 @@
#endif
#include "XpmI.h"
#include <sys/stat.h>
-#if !defined(FOR_MSW) && !defined(WIN32)
+#if defined(__CYGWIN__) || (!defined(XPM_NO_X) && !defined(WIN32))
#include <unistd.h>
#endif
#ifndef VAX11C
#include <fcntl.h>
#endif
-#if defined(FOR_MSW) || defined(WIN32)
+#if (defined(XPM_NO_X) || defined(WIN32)) && !defined(__CYGWIN__)
#include <io.h>
#define stat _stat
#define fstat _fstat
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/RdFToI.c src/libXpm-3.5.10/src/RdFToI.c
--- origsrc/libXpm-3.5.10/src/RdFToI.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/RdFToI.c 2013-06-30 18:43:17.587012900 -0400
@@ -38,6 +38,9 @@
#include <config.h>
#endif
#include "XpmI.h"
+#if defined(__CYGWIN__) || (!defined(XPM_NO_X) && !defined(WIN32))
+#include <unistd.h>
+#endif
#ifndef NO_ZPIPE
#include <fcntl.h>
#include <errno.h>
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/rgb.c src/libXpm-3.5.10/src/rgb.c
--- origsrc/libXpm-3.5.10/src/rgb.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/rgb.c 2013-06-30 18:44:12.065128800 -0400
@@ -33,7 +33,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -48,7 +48,7 @@
#include "XpmI.h"
#include <ctype.h>
-#ifndef FOR_MSW /* normal part first, MSW part at
+#ifndef XPM_NO_X /* normal part first, MSW part at
* the end, (huge ifdef!) */
/*
* Read a rgb text file. It stores the rgb values (0->65535)
@@ -222,7 +222,7 @@
* lot of gray
*/
/* so first extract ' ' */
- while (p = strchr(name, ' ')) {
+ while ((p = strchr(name, ' '))) {
while (*(p)) { /* till eof of string */
*p = *(p + 1); /* copy to the left */
p++;
@@ -239,7 +239,7 @@
* substitute Grey with Gray, else rgbtab.h would have more than 100
* 'duplicate' entries
*/
- if (grey = strstr(name, "grey"))
+ if ((grey = strstr(name, "grey")))
grey[2] = 'a';
/* binary search */
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/rgbtab.h src/libXpm-3.5.10/src/rgbtab.h
--- origsrc/libXpm-3.5.10/src/rgbtab.h 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/rgbtab.h 2013-06-30 18:44:26.061929400 -0400
@@ -286,7 +286,7 @@
{"WhiteSmoke", myRGB(245, 245, 245)},
{"Yellow", myRGB(255, 255, 0)},
{"YellowGreen", myRGB(50, 216, 56)},
- NULL
+ {NULL, 0}
};
static int numTheRGBRecords = 234;
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/scan.c src/libXpm-3.5.10/src/scan.c
--- origsrc/libXpm-3.5.10/src/scan.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/scan.c 2013-06-30 18:44:35.895491900 -0400
@@ -33,7 +33,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -81,7 +81,7 @@
typedef int (*storeFuncPtr)(Pixel pixel, PixelsMap *pmap,
unsigned int *index_return);
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
LFUNC(GetImagePixels, int, (XImage *image, unsigned int width,
unsigned int height, PixelsMap *pmap));
@@ -103,7 +103,7 @@
unsigned int height, PixelsMap *pmap,
storeFuncPtr storeFunc));
# endif/* AMIGA */
-#else /* ndef FOR_MSW */
+#else /* ndef XPM_NO_X */
LFUNC(MSWGetImagePixels, int, (Display *d, XImage *image, unsigned int width,
unsigned int height, PixelsMap *pmap,
storeFuncPtr storeFunc));
@@ -255,7 +255,7 @@
* scan shape mask if any
*/
if (shapeimage) {
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
ErrorStatus = GetImagePixels1(shapeimage, width, height, &pmap,
storeMaskPixel);
@@ -280,7 +280,7 @@
*/
if (image) {
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
if (((image->bits_per_pixel | image->depth) == 1) &&
(image->byte_order == image->bitmap_bit_order))
@@ -430,7 +430,7 @@
Colormap colormap;
char *rgb_fname;
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
xpmRgbName rgbn[MAX_RGBNAMES];
#else
xpmRgbName *rgbn = NULL;
@@ -486,12 +486,12 @@
}
XQueryColors(display, colormap, xcolors, ncolors);
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
/* read the rgb file if any was specified */
if (rgb_fname)
rgbn_max = xpmReadRgbNames(attributes->rgb_fname, rgbn);
#else
- /* FOR_MSW: rgb names and values are hardcoded in rgbtab.h */
+ /* XPM_NO_X: rgb names and values are hardcoded in rgbtab.h */
rgbn_max = xpmReadRgbNames(NULL, NULL);
#endif
@@ -556,7 +556,7 @@
else {
/* at last store the rgb value */
char buf[BUFSIZ];
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
sprintf(buf, "#%04X%04X%04X",
xcolor->red, xcolor->green, xcolor->blue);
#else
@@ -578,7 +578,7 @@
return (XpmSuccess);
}
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
/*
* The functions below are written from X11R5 MIT's code (XImUtil.c)
@@ -950,7 +950,7 @@
#undef CLEAN_UP
# endif/* AMIGA */
-#else /* ndef FOR_MSW */
+#else /* ndef XPM_NO_X */
static int
MSWGetImagePixels(
Display *display,
@@ -979,7 +979,7 @@
#endif
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
# ifndef AMIGA
int
XpmCreateXpmImageFromPixmap(
@@ -1021,4 +1021,4 @@
}
# endif/* not AMIGA */
-#endif /* ndef FOR_MSW */
+#endif /* ndef XPM_NO_X */
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/simx.c src/libXpm-3.5.10/src/simx.c
--- origsrc/libXpm-3.5.10/src/simx.c 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/simx.c 2013-06-30 18:51:19.660585900 -0400
@@ -33,13 +33,13 @@
* Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) *
\*****************************************************************************/
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "xpm.h"
-#include "xpmi.h" /* for XpmMalloc */
+#include "XpmI.h" /* for XpmMalloc */
/*
* On DOS size_t is only 2 bytes, thus malloc(size_t s) can only malloc
@@ -108,22 +108,22 @@
/* static Visual theVisual = { 0 }; */
Visual *
-XDefaultVisual(Display *display, Screen *screen)
+XDefaultVisual(Display *display, int screen_number)
{
return (NULL); /* struct could contain info about
* MONO, GRAY, COLOR */
}
-Screen *
+int
XDefaultScreen(Display *d)
{
- return (NULL);
+ return (0);
}
/* I get only 1 plane but 8 bits per pixel,
so I think BITSPIXEL should be depth */
int
-XDefaultDepth(Display *display, Screen *screen)
+XDefaultDepth(Display *display, int screen_number)
{
int d, b;
@@ -132,8 +132,8 @@
return (b);
}
-Colormap *
-XDefaultColormap(Display *display, Screen *screen)
+Colormap
+XDefaultColormap(Display *display, int screen_number)
{
return (NULL);
}
@@ -141,7 +141,7 @@
/* convert hex color names,
wrong digits (not a-f,A-F,0-9) are treated as zero */
static int
-hexCharToInt(c)
+hexCharToInt(int c)
{
int r;
@@ -188,7 +188,7 @@
/* Color related functions */
int
-XParseColor(Display *d, Colormap *cmap, char *name, XColor *color)
+XParseColor(Display *d, Colormap cmap, char *name, XColor *color)
{
int r, g, b; /* only 8 bit values used */
int okay;
@@ -222,12 +222,12 @@
index in some colormap as in X */
return (1);
}
-void
-XQueryColors(Display *display, Colormap *colormap,
+int
+XQueryColors(Display *display, Colormap colormap,
XColor *xcolors, int ncolors)
{
/* under X this fills the rgb values to given .pixel */
-/* since there no colormap use FOR_MSW (not yet!!), rgb is plain encoded */
+/* since there no colormap use XPM_NO_X (not yet!!), rgb is plain encoded */
XColor *xc = xcolors;
int i;
@@ -236,11 +236,11 @@
xc->green = GetGValue(xc->pixel);
xc->blue = GetBValue(xc->pixel);
}
- return;
+ return (0);
}
int
XFreeColors(Display *d, Colormap cmap,
- unsigned long pixels[], int npixels, unsigned long planes)
+ unsigned long* pixels, int npixels, unsigned long planes)
{
/* no colormap yet */
return (0); /* correct ??? */
@@ -249,9 +249,10 @@
/* XImage functions */
XImage *
XCreateImage(Display *d, Visual *v,
- int depth, int format,
- int x, int y, int width, int height,
- int pad, int foo)
+ unsigned int depth, int format,
+ int offset, char* data,
+ unsigned int width, unsigned int height,
+ int pad, int bytes_per_line)
{
XImage *img = (XImage *) XpmMalloc(sizeof(XImage));
@@ -281,13 +282,14 @@
XpmFree(img);
}
}
-void
+int
XDestroyImage(XImage *img)
{
if (img) {
DeleteObject(img->bitmap); /* check return ??? */
XImageFree(img);
}
+ return (0);
}
#endif
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/simx.h src/libXpm-3.5.10/src/simx.h
--- origsrc/libXpm-3.5.10/src/simx.h 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/simx.h 2013-06-30 18:45:06.841261800 -0400
@@ -37,12 +37,28 @@
#ifndef _SIMX_H
#define _SIMX_H
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
#include "windows.h" /* MS windows GDI types */
-#define _XFUNCPROTOBEGIN
-#define _XFUNCPROTOEND
-#define NO_ZPIPE
+
+#ifndef _XFUNCPROTOBEGIN
+# ifdef __CYGWIN__
+# if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
+# define _XFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */
+# define _XFUNCPROTOEND }
+# else
+# define _XFUNCPROTOBEGIN
+# define _XFUNCPROTOEND
+# endif
+# else /* ! __CYGWIN__ */
+# define _XFUNCPROTOBEGIN
+# define _XFUNCPROTOEND
+# endif /* !__CYGWIN__ */
+#endif /* _XFUNCPROTOBEGIN */
+
+#ifndef __CYGWIN__
+# define NO_ZPIPE
+#endif
/*
* minimal portability layer between ansi and KR C
@@ -91,37 +107,33 @@
unsigned int depth;
} XImage;
-#if defined(__cplusplus) || defined(c_plusplus)
-extern "C" {
-#endif
+
/* some replacements for X... functions */
+_XFUNCPROTOBEGIN
/* XDefaultXXX */
- FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen));
- FUNC(XDefaultScreen, Screen *, (Display *d));
- FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen));
- FUNC(XDefaultDepth, int, (Display *d, Screen *s));
+ FUNC(XDefaultVisual, Visual *, (Display *, int screen_number));
+ FUNC(XDefaultScreen, int, (Display *));
+ FUNC(XDefaultColormap, Colormap, (Display *, int screen_number));
+ FUNC(XDefaultDepth, int, (Display *, int screen_number));
/* color related */
- FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *));
+ FUNC(XParseColor, int, (Display *, Colormap, char *, XColor *));
FUNC(XAllocColor, int, (Display *, Colormap, XColor *));
- FUNC(XQueryColors, void, (Display *display, Colormap *colormap,
- XColor *xcolors, int ncolors));
- FUNC(XFreeColors, int, (Display *d, Colormap cmap,
- unsigned long pixels[],
- int npixels, unsigned long planes));
+ FUNC(XQueryColors, int, (Display *, Colormap, XColor *, int));
+ FUNC(XFreeColors, int, (Display *, Colormap, unsigned long*,
+ int, unsigned long));
/* XImage */
- FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
- int x, int y, int width, int height,
- int pad, int foo));
+ FUNC(XCreateImage, XImage *, (Display *, Visual *, unsigned int,
+ int, int, char*, unsigned int,
+ unsigned int, int, int));
/* free and destroy bitmap */
- FUNC(XDestroyImage, void /* ? */ , (XImage *));
+ FUNC(XDestroyImage, int, (XImage *));
/* free only, bitmap remains */
FUNC(XImageFree, void, (XImage *));
-#if defined(__cplusplus) || defined(c_plusplus)
-} /* end of extern "C" */
-#endif /* cplusplus */
+
+_XFUNCPROTOEND
#define ZPixmap 1 /* not really used */
#define XYBitmap 1 /* not really used */
@@ -137,6 +149,7 @@
#undef LFUNC
#undef FUNC
+#ifndef __CYGWIN__
/* Some functions and constants that have non-standard names in the
MS library. */
#define bzero(addr,sz) memset(addr, 0, sz)
@@ -148,7 +161,8 @@
#define rindex strrchr
#define strdup _strdup
+#endif /* ! __CYGWIN__ */
-#endif /* def FOR_MSW */
+#endif /* def XPM_NO_X */
#endif /* _SIMX_H */
diff -urN -x CYGWIN-PATCHES origsrc/libXpm-3.5.10/src/XpmI.h src/libXpm-3.5.10/src/XpmI.h
--- origsrc/libXpm-3.5.10/src/XpmI.h 2012-03-07 23:40:08.000000000 -0500
+++ src/libXpm-3.5.10/src/XpmI.h 2013-06-30 18:45:41.417239500 -0400
@@ -35,7 +35,7 @@
\*****************************************************************************/
/*
- * The code related to FOR_MSW has been added by
+ * The code related to XPM_NO_X has been added by
* HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
*/
@@ -57,7 +57,7 @@
extern FILE *popen();
#endif
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
#include "simx.h"
#else
#include <X11/Xos.h>
@@ -79,7 +79,7 @@
*/
#define XpmFree(ptr) free(ptr)
-#ifndef FOR_MSW
+#ifndef XPM_NO_X
#define XpmMalloc(size) malloc((size))
#define XpmRealloc(ptr, size) realloc((ptr), (size))
#define XpmCalloc(nelem, elsize) calloc((nelem), (elsize))
@@ -187,7 +187,7 @@
FUNC(xpmSetAttributes, void, (XpmAttributes *attributes, XpmImage *image,
XpmInfo *info));
-#if !defined(FOR_MSW) && !defined(AMIGA)
+#if !defined(XPM_NO_X) && !defined(AMIGA)
FUNC(xpmCreatePixmapFromImage, void, (Display *display, Drawable d,
XImage *ximage, Pixmap *pixmap_return));
@@ -253,7 +253,7 @@
FUNC(xpmGetRgbName, char *, (xpmRgbName *rgbn, int rgbn_max,
int red, int green, int blue));
FUNC(xpmFreeRgbNames, void, (xpmRgbName *rgbn, int rgbn_max));
-#ifdef FOR_MSW
+#ifdef XPM_NO_X
FUNC(xpmGetRGBfromName,int, (char *name, int *r, int *g, int *b));
#endif
More information about the Cygwin-apps
mailing list