To: vim_dev@googlegroups.com
Subject: Patch 7.3.639
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.3.639
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Include the required files, they are quite small.  Update the
	    MSVC makefile to use them.  Binary files are in the next patch.
	    (Sergey Khorev)
Files:	    src/xpm/COPYRIGHT, src/xpm/README.txt, src/xpm/include/simx.h,
	    src/xpm/include/xpm.h, src/Make_mvc.mak, src/bigvim.bat,
	    src/bigvim64.bat, Filelist


*** ../vim-7.3.638/src/xpm/COPYRIGHT	1970-01-01 01:00:00.000000000 +0100
--- src/xpm/COPYRIGHT	1998-03-19 23:51:00.000000000 +0100
***************
*** 0 ****
--- 1,31 ----
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+  * Permission is hereby granted, free of charge, to any person obtaining a copy
+  * of this software and associated documentation files (the "Software"), to
+  * deal in the Software without restriction, including without limitation the
+  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+  * sell copies of the Software, and to permit persons to whom the Software is
+  * furnished to do so, subject to the following conditions:
+  *
+  * The above copyright notice and this permission notice shall be included in
+  * all copies or substantial portions of the Software.
+  *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+  * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  *
+  * Except as contained in this notice, the name of GROUPE BULL shall not be
+  * used in advertising or otherwise to promote the sale, use or other dealings
+  * in this Software without prior written authorization from GROUPE BULL.
+  */
+ 
+ Arnaud LE HORS      BULL Research FRANCE -- Koala Project 
+                     (XPM - X PixMap format version 2 & 3)
+     Internet:       lehors@sophia.inria.fr
+ Surface Mail:       Arnaud LE HORS, INRIA - Sophia Antipolis, 
+                     2004, route des Lucioles, 06565 Valbonne Cedex -- FRANCE
+  Voice phone:       (33) 93.65.77.71, Fax: (33) 93 65 77 66, Telex: 97 00 50 F
*** ../vim-7.3.638/src/xpm/README.txt	1970-01-01 01:00:00.000000000 +0100
--- src/xpm/README.txt	2012-08-29 13:29:17.000000000 +0200
***************
*** 0 ****
--- 1,23 ----
+ This is XPM library compiled for Windows which is intended for use with Vim
+ 'signs' feature.
+ 
+ Libraries in x86 directory were compiled with MSVC6 and MinGW. Proposed
+ commands to compile Vim are:
+ 
+ Any version of MSVC starting from version 6.0:
+ nmake -f Make_mvc.mak GUI=yes CSCOPE=yes NETBEANS=yes XPM=e:\hg\xpm\x86
+ 
+ MinGW:
+ mingw32-make -f Make_ming.mak GUI=yes CSCOPE=yes XPM=e:/hg/xpm/x86
+ 
+ Microsoft Visual C++ on x64 (tested with versions 2008 and 2010):
+ nmake -f Make_mvc.mak GUI=yes CSCOPE=yes XPM=E:\HG\xpm\x64
+ 
+ To test, open some file in Vim and execute commands below:
+ :exe 'sign define vimxpm icon='.$VIMRUNTIME.'\\vim32x32.xpm'
+ :exe 'sign place 1 line=1 name=vimxpm file='.expand('%:p')
+ 
+ 
+ See COPYRIGHT for XPM licence.
+ 
+ If you have questions please email sergey.khorev@gmail.com.
*** ../vim-7.3.638/src/xpm/include/simx.h	1970-01-01 01:00:00.000000000 +0100
--- src/xpm/include/simx.h	1998-03-19 23:51:00.000000000 +0100
***************
*** 0 ****
--- 1,139 ----
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+  * Permission is hereby granted, free of charge, to any person obtaining a copy
+  * of this software and associated documentation files (the "Software"), to
+  * deal in the Software without restriction, including without limitation the
+  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+  * sell copies of the Software, and to permit persons to whom the Software is
+  * furnished to do so, subject to the following conditions:
+  *
+  * The above copyright notice and this permission notice shall be included in
+  * all copies or substantial portions of the Software.
+  *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+  * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  *
+  * Except as contained in this notice, the name of GROUPE BULL shall not be
+  * used in advertising or otherwise to promote the sale, use or other dealings
+  * in this Software without prior written authorization from GROUPE BULL.
+  */
+ 
+ /*****************************************************************************\
+ * simx.h: 0.1a                                                                *
+ *                                                                             *
+ * This emulates some Xlib functionality for MSW. It's not a general solution, *
+ * it is close related to XPM-lib. It is only intended to satisfy what is need *
+ * there. Thus allowing to read XPM files under MS windows.                    *
+ *                                                                             *
+ * Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de)                           *
+ \*****************************************************************************/
+ 
+ 
+ #ifndef _SIMX_H
+ #define _SIMX_H
+ 
+ #ifdef FOR_MSW
+ 
+ #include "windows.h"			/* MS windows GDI types */
+ 
+ /*
+  * minimal portability layer between ansi and KR C
+  */
+ /* this comes from xpm.h, and is here again, to avoid complicated
+     includes, since this is included from xpm.h */
+ /* these defines get undefed at the end of this file */
+ #if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
+  /* ANSI || C++ */
+ #define FUNC(f, t, p) extern t f p
+ #define LFUNC(f, t, p) static t f p
+ #else /* k&R */
+ #define FUNC(f, t, p) extern t f()
+ #define LFUNC(f, t, p) static t f()
+ #endif
+ 
+ 
+ FUNC(boundCheckingMalloc, void *, (long s));
+ FUNC(boundCheckingCalloc, void *, (long num, long s));
+ FUNC(boundCheckingRealloc, void *, (void *p, long s));
+ 
+ /* define MSW types for X window types,
+    I don't know much about MSW, but the following defines do the job */
+ 
+ typedef HDC Display;			/* this should be similar */
+ typedef void *Screen;			/* not used */
+ typedef void *Visual;			/* not used yet, is for GRAY, COLOR,
+ 					 * MONO */
+ 
+ typedef void *Colormap;			/* should be COLORPALETTE, not done
+ 					 * yet */
+ 
+ typedef COLORREF Pixel;
+ 
+ #define PIXEL_ALREADY_TYPEDEFED		/* to let xpm.h know about it */
+ 
+ typedef struct {
+     Pixel pixel;
+     BYTE red, green, blue;
+ }      XColor;
+ 
+ typedef struct {
+     HBITMAP bitmap;
+     unsigned int width;
+     unsigned int height;
+     unsigned int depth;
+ }      XImage;
+ 
+ #if defined(__cplusplus) || defined(c_plusplus)
+ extern "C" {
+ #endif
+ /* some replacements for X... functions */
+ 
+ /* 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));
+ 
+ /* color related */
+     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));
+ /* XImage */
+     FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
+ 				  int x, int y, int width, int height,
+ 				  int pad, int foo));
+ 
+ /* free and destroy bitmap */
+     FUNC(XDestroyImage, void /* ? */ , (XImage *));
+ /* free only, bitmap remains */
+     FUNC(XImageFree, void, (XImage *));
+ #if defined(__cplusplus) || defined(c_plusplus)
+ } /* end of extern "C" */
+ #endif /* cplusplus */
+ 
+ #define ZPixmap 1			/* not really used */
+ #define XYBitmap 1			/* not really used */
+ 
+ #ifndef True
+ #define True 1
+ #define False 0
+ #endif
+ #ifndef Bool
+ typedef BOOL Bool;		/* take MSW bool */
+ #endif
+ /* make these local here, simx.c gets the same from xpm.h */
+ #undef LFUNC
+ #undef FUNC
+ 
+ #endif /* def FOR_MSW */
+ 
+ #endif /* _SIMX_H */
*** ../vim-7.3.638/src/xpm/include/xpm.h	1970-01-01 01:00:00.000000000 +0100
--- src/xpm/include/xpm.h	1998-03-19 23:51:00.000000000 +0100
***************
*** 0 ****
--- 1,501 ----
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+  * Permission is hereby granted, free of charge, to any person obtaining a copy
+  * of this software and associated documentation files (the "Software"), to
+  * deal in the Software without restriction, including without limitation the
+  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+  * sell copies of the Software, and to permit persons to whom the Software is
+  * furnished to do so, subject to the following conditions:
+  *
+  * The above copyright notice and this permission notice shall be included in
+  * all copies or substantial portions of the Software.
+  *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+  * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  *
+  * Except as contained in this notice, the name of GROUPE BULL shall not be
+  * used in advertising or otherwise to promote the sale, use or other dealings
+  * in this Software without prior written authorization from GROUPE BULL.
+  */
+ 
+ /*****************************************************************************\
+ * xpm.h:                                                                      *
+ *                                                                             *
+ *  XPM library                                                                *
+ *  Include file                                                               *
+ *                                                                             *
+ *  Developed by Arnaud Le Hors                                                *
+ \*****************************************************************************/
+ 
+ /*
+  * The code related to FOR_MSW has been added by
+  * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
+  */
+ 
+ /*
+  * The code related to AMIGA has been added by
+  * Lorens Younes (d93-hyo@nada.kth.se) 4/96
+  */
+ 
+ #ifndef XPM_h
+ #define XPM_h
+ 
+ /*
+  * first some identification numbers:
+  * the version and revision numbers are determined with the following rule:
+  * SO Major number = LIB minor version number.
+  * SO Minor number = LIB sub-minor version number.
+  * e.g: Xpm version 3.2f
+  *      we forget the 3 which is the format number, 2 gives 2, and f gives 6.
+  *      thus we have XpmVersion = 2 and XpmRevision = 6
+  *      which gives  SOXPMLIBREV = 2.6
+  *
+  * Then the XpmIncludeVersion number is built from these numbers.
+  */
+ #define XpmFormat 3
+ #define XpmVersion 4
+ #define XpmRevision 11
+ #define XpmIncludeVersion ((XpmFormat * 100 + XpmVersion) * 100 + XpmRevision)
+ 
+ #ifndef XPM_NUMBERS
+ 
+ #ifdef FOR_MSW
+ # 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 */
+ # ifdef AMIGA
+ #  include "amigax.h"
+ # else /* not AMIGA */
+ #  include <X11/Xlib.h>
+ #  include <X11/Xutil.h>
+ # endif /* not AMIGA */
+ #endif /* FOR_MSW */
+ 
+ /* let's define Pixel if it is not done yet */
+ #if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
+ typedef unsigned long Pixel;	/* Index into colormap */
+ # define PIXEL_ALREADY_TYPEDEFED
+ #endif
+ 
+ /* make sure we know whether function prototypes are needed or not */
+ #ifndef NeedFunctionPrototypes
+ # if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
+ #  define NeedFunctionPrototypes 1
+ # else
+ #  define NeedFunctionPrototypes 0
+ # endif
+ #endif
+ 
+ 
+ /* Return ErrorStatus codes:
+  * null     if full success
+  * positive if partial success
+  * negative if failure
+  */
+ 
+ #define XpmColorError    1
+ #define XpmSuccess       0
+ #define XpmOpenFailed   -1
+ #define XpmFileInvalid  -2
+ #define XpmNoMemory     -3
+ #define XpmColorFailed  -4
+ 
+ typedef struct {
+     char *name;			/* Symbolic color name */
+     char *value;		/* Color value */
+     Pixel pixel;		/* Color pixel */
+ }      XpmColorSymbol;
+ 
+ typedef struct {
+     char *name;			/* name of the extension */
+     unsigned int nlines;	/* number of lines in this extension */
+     char **lines;		/* pointer to the extension array of strings */
+ }      XpmExtension;
+ 
+ typedef struct {
+     char *string;		/* characters string */
+     char *symbolic;		/* symbolic name */
+     char *m_color;		/* monochrom default */
+     char *g4_color;		/* 4 level grayscale default */
+     char *g_color;		/* other level grayscale default */
+     char *c_color;		/* color default */
+ }      XpmColor;
+ 
+ typedef struct {
+     unsigned int width;		/* image width */
+     unsigned int height;	/* image height */
+     unsigned int cpp;		/* number of characters per pixel */
+     unsigned int ncolors;	/* number of colors */
+     XpmColor *colorTable;	/* list of related colors */
+     unsigned int *data;		/* image data */
+ }      XpmImage;
+ 
+ typedef struct {
+     unsigned long valuemask;	/* Specifies which attributes are defined */
+     char *hints_cmt;		/* Comment of the hints section */
+     char *colors_cmt;		/* Comment of the colors section */
+     char *pixels_cmt;		/* Comment of the pixels section */
+     unsigned int x_hotspot;	/* Returns the x hotspot's coordinate */
+     unsigned int y_hotspot;	/* Returns the y hotspot's coordinate */
+     unsigned int nextensions;	/* number of extensions */
+     XpmExtension *extensions;	/* pointer to array of extensions */
+ }      XpmInfo;
+ 
+ typedef int (*XpmAllocColorFunc)(
+ #if NeedFunctionPrototypes
+     Display*			/* display */,
+     Colormap			/* colormap */,
+     char*			/* colorname */,
+     XColor*			/* xcolor */,
+     void*			/* closure */
+ #endif
+ );
+ 
+ typedef int (*XpmFreeColorsFunc)(
+ #if NeedFunctionPrototypes
+     Display*			/* display */,
+     Colormap			/* colormap */,
+     Pixel*			/* pixels */,
+     int				/* npixels */,
+     void*			/* closure */
+ #endif
+ );
+ 
+ typedef struct {
+     unsigned long valuemask;		/* Specifies which attributes are
+ 					   defined */
+ 
+     Visual *visual;			/* Specifies the visual to use */
+     Colormap colormap;			/* Specifies the colormap to use */
+     unsigned int depth;			/* Specifies the depth */
+     unsigned int width;			/* Returns the width of the created
+ 					   pixmap */
+     unsigned int height;		/* Returns the height of the created
+ 					   pixmap */
+     unsigned int x_hotspot;		/* Returns the x hotspot's
+ 					   coordinate */
+     unsigned int y_hotspot;		/* Returns the y hotspot's
+ 					   coordinate */
+     unsigned int cpp;			/* Specifies the number of char per
+ 					   pixel */
+     Pixel *pixels;			/* List of used color pixels */
+     unsigned int npixels;		/* Number of used pixels */
+     XpmColorSymbol *colorsymbols;	/* List of color symbols to override */
+     unsigned int numsymbols;		/* Number of symbols */
+     char *rgb_fname;			/* RGB text file name */
+     unsigned int nextensions;		/* Number of extensions */
+     XpmExtension *extensions;		/* List of extensions */
+ 
+     unsigned int ncolors;               /* Number of colors */
+     XpmColor *colorTable;               /* List of colors */
+ /* 3.2 backward compatibility code */
+     char *hints_cmt;                    /* Comment of the hints section */
+     char *colors_cmt;                   /* Comment of the colors section */
+     char *pixels_cmt;                   /* Comment of the pixels section */
+ /* end 3.2 bc */
+     unsigned int mask_pixel;            /* Color table index of transparent
+                                            color */
+ 
+     /* Color Allocation Directives */
+     Bool exactColors;			/* Only use exact colors for visual */
+     unsigned int closeness;		/* Allowable RGB deviation */
+     unsigned int red_closeness;		/* Allowable red deviation */
+     unsigned int green_closeness;	/* Allowable green deviation */
+     unsigned int blue_closeness;	/* Allowable blue deviation */
+     int color_key;			/* Use colors from this color set */
+ 
+     Pixel *alloc_pixels;		/* Returns the list of alloc'ed color
+ 					   pixels */
+     int nalloc_pixels;			/* Returns the number of alloc'ed
+ 					   color pixels */
+ 
+     Bool alloc_close_colors;    	/* Specify whether close colors should
+ 					   be allocated using XAllocColor
+ 					   or not */
+     int bitmap_format;			/* Specify the format of 1bit depth
+ 					   images: ZPixmap or XYBitmap */
+ 
+     /* Color functions */
+     XpmAllocColorFunc alloc_color;	/* Application color allocator */
+     XpmFreeColorsFunc free_colors;	/* Application color de-allocator */
+     void *color_closure;		/* Application private data to pass to
+ 					   alloc_color and free_colors */
+ 
+ }      XpmAttributes;
+ 
+ /* XpmAttributes value masks bits */
+ #define XpmVisual	   (1L<<0)
+ #define XpmColormap	   (1L<<1)
+ #define XpmDepth	   (1L<<2)
+ #define XpmSize		   (1L<<3)	/* width & height */
+ #define XpmHotspot	   (1L<<4)	/* x_hotspot & y_hotspot */
+ #define XpmCharsPerPixel   (1L<<5)
+ #define XpmColorSymbols	   (1L<<6)
+ #define XpmRgbFilename	   (1L<<7)
+ /* 3.2 backward compatibility code */
+ #define XpmInfos	   (1L<<8)
+ #define XpmReturnInfos	   XpmInfos
+ /* end 3.2 bc */
+ #define XpmReturnPixels	   (1L<<9)
+ #define XpmExtensions      (1L<<10)
+ #define XpmReturnExtensions XpmExtensions
+ 
+ #define XpmExactColors     (1L<<11)
+ #define XpmCloseness	   (1L<<12)
+ #define XpmRGBCloseness	   (1L<<13)
+ #define XpmColorKey	   (1L<<14)
+ 
+ #define XpmColorTable      (1L<<15)
+ #define XpmReturnColorTable XpmColorTable
+ 
+ #define XpmReturnAllocPixels (1L<<16)
+ #define XpmAllocCloseColors (1L<<17)
+ #define XpmBitmapFormat    (1L<<18)
+ 
+ #define XpmAllocColor      (1L<<19)
+ #define XpmFreeColors      (1L<<20)
+ #define XpmColorClosure    (1L<<21)
+ 
+ 
+ /* XpmInfo value masks bits */
+ #define XpmComments        XpmInfos
+ #define XpmReturnComments  XpmComments
+ 
+ /* XpmAttributes mask_pixel value when there is no mask */
+ #ifndef FOR_MSW
+ #define XpmUndefPixel 0x80000000
+ #else
+ /* int is only 16 bit for MSW */
+ #define XpmUndefPixel 0x8000
+ #endif
+ 
+ /*
+  * color keys for visual type, they must fit along with the number key of
+  * each related element in xpmColorKeys[] defined in XpmI.h
+  */
+ #define XPM_MONO	2
+ #define XPM_GREY4	3
+ #define XPM_GRAY4	3
+ #define XPM_GREY 	4
+ #define XPM_GRAY 	4
+ #define XPM_COLOR	5
+ 
+ 
+ /* macros for forward declarations of functions with prototypes */
+ #if NeedFunctionPrototypes
+ #define FUNC(f, t, p) extern t f p
+ #define LFUNC(f, t, p) static t f p
+ #else
+ #define FUNC(f, t, p) extern t f()
+ #define LFUNC(f, t, p) static t f()
+ #endif
+ 
+ 
+ /*
+  * functions declarations
+  */
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ /* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */
+ /* Same for Amiga! */
+ 
+ #if !defined(FOR_MSW) && !defined(AMIGA)
+     FUNC(XpmCreatePixmapFromData, int, (Display *display,
+ 					Drawable d,
+ 					char **data,
+ 					Pixmap *pixmap_return,
+ 					Pixmap *shapemask_return,
+ 					XpmAttributes *attributes));
+ 
+     FUNC(XpmCreateDataFromPixmap, int, (Display *display,
+ 					char ***data_return,
+ 					Pixmap pixmap,
+ 					Pixmap shapemask,
+ 					XpmAttributes *attributes));
+ 
+     FUNC(XpmReadFileToPixmap, int, (Display *display,
+ 				    Drawable d,
+ 				    char *filename,
+ 				    Pixmap *pixmap_return,
+ 				    Pixmap *shapemask_return,
+ 				    XpmAttributes *attributes));
+ 
+     FUNC(XpmWriteFileFromPixmap, int, (Display *display,
+ 				       char *filename,
+ 				       Pixmap pixmap,
+ 				       Pixmap shapemask,
+ 				       XpmAttributes *attributes));
+ #endif
+ 
+     FUNC(XpmCreateImageFromData, int, (Display *display,
+ 				       char **data,
+ 				       XImage **image_return,
+ 				       XImage **shapemask_return,
+ 				       XpmAttributes *attributes));
+ 
+     FUNC(XpmCreateDataFromImage, int, (Display *display,
+ 				       char ***data_return,
+ 				       XImage *image,
+ 				       XImage *shapeimage,
+ 				       XpmAttributes *attributes));
+ 
+     FUNC(XpmReadFileToImage, int, (Display *display,
+ 				   char *filename,
+ 				   XImage **image_return,
+ 				   XImage **shapeimage_return,
+ 				   XpmAttributes *attributes));
+ 
+     FUNC(XpmWriteFileFromImage, int, (Display *display,
+ 				      char *filename,
+ 				      XImage *image,
+ 				      XImage *shapeimage,
+ 				      XpmAttributes *attributes));
+ 
+     FUNC(XpmCreateImageFromBuffer, int, (Display *display,
+ 					 char *buffer,
+ 					 XImage **image_return,
+ 					 XImage **shapemask_return,
+ 					 XpmAttributes *attributes));
+ #if !defined(FOR_MSW) && !defined(AMIGA)
+     FUNC(XpmCreatePixmapFromBuffer, int, (Display *display,
+ 					  Drawable d,
+ 					  char *buffer,
+ 					  Pixmap *pixmap_return,
+ 					  Pixmap *shapemask_return,
+ 					  XpmAttributes *attributes));
+ 
+     FUNC(XpmCreateBufferFromImage, int, (Display *display,
+ 					 char **buffer_return,
+ 					 XImage *image,
+ 					 XImage *shapeimage,
+ 					 XpmAttributes *attributes));
+ 
+     FUNC(XpmCreateBufferFromPixmap, int, (Display *display,
+ 					  char **buffer_return,
+ 					  Pixmap pixmap,
+ 					  Pixmap shapemask,
+ 					  XpmAttributes *attributes));
+ #endif
+     FUNC(XpmReadFileToBuffer, int, (char *filename, char **buffer_return));
+     FUNC(XpmWriteFileFromBuffer, int, (char *filename, char *buffer));
+ 
+     FUNC(XpmReadFileToData, int, (char *filename, char ***data_return));
+     FUNC(XpmWriteFileFromData, int, (char *filename, char **data));
+ 
+     FUNC(XpmAttributesSize, int, ());
+     FUNC(XpmFreeAttributes, void, (XpmAttributes *attributes));
+     FUNC(XpmFreeExtensions, void, (XpmExtension *extensions,
+ 				   int nextensions));
+ 
+     FUNC(XpmFreeXpmImage, void, (XpmImage *image));
+     FUNC(XpmFreeXpmInfo, void, (XpmInfo *info));
+     FUNC(XpmGetErrorString, char *, (int errcode));
+     FUNC(XpmLibraryVersion, int, ());
+ 
+     /* XpmImage functions */
+     FUNC(XpmReadFileToXpmImage, int, (char *filename,
+ 				      XpmImage *image,
+ 				      XpmInfo *info));
+ 
+     FUNC(XpmWriteFileFromXpmImage, int, (char *filename,
+ 					 XpmImage *image,
+ 					 XpmInfo *info));
+ #if !defined(FOR_MSW) && !defined(AMIGA)
+     FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display,
+ 					    Drawable d,
+ 					    XpmImage *image,
+ 					    Pixmap *pixmap_return,
+ 					    Pixmap *shapemask_return,
+ 					    XpmAttributes *attributes));
+ #endif
+     FUNC(XpmCreateImageFromXpmImage, int, (Display *display,
+ 					   XpmImage *image,
+ 					   XImage **image_return,
+ 					   XImage **shapeimage_return,
+ 					   XpmAttributes *attributes));
+ 
+     FUNC(XpmCreateXpmImageFromImage, int, (Display *display,
+ 					   XImage *image,
+ 					   XImage *shapeimage,
+ 					   XpmImage *xpmimage,
+ 					   XpmAttributes *attributes));
+ #if !defined(FOR_MSW) && !defined(AMIGA)
+     FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display,
+ 					    Pixmap pixmap,
+ 					    Pixmap shapemask,
+ 					    XpmImage *xpmimage,
+ 					    XpmAttributes *attributes));
+ #endif
+     FUNC(XpmCreateDataFromXpmImage, int, (char ***data_return,
+ 					  XpmImage *image,
+ 					  XpmInfo *info));
+ 
+     FUNC(XpmCreateXpmImageFromData, int, (char **data,
+ 					  XpmImage *image,
+ 					  XpmInfo *info));
+ 
+     FUNC(XpmCreateXpmImageFromBuffer, int, (char *buffer,
+ 					    XpmImage *image,
+ 					    XpmInfo *info));
+ 
+     FUNC(XpmCreateBufferFromXpmImage, int, (char **buffer_return,
+ 					    XpmImage *image,
+ 					    XpmInfo *info));
+ 
+     FUNC(XpmGetParseError, int, (char *filename,
+ 				 int *linenum_return,
+ 				 int *charnum_return));
+ 
+     FUNC(XpmFree, void, (void *ptr));
+ 
+ #ifdef __cplusplus
+ } /* for C++ V2.0 */
+ #endif
+ 
+ 
+ /* backward compatibility */
+ 
+ /* for version 3.0c */
+ #define XpmPixmapColorError  XpmColorError
+ #define XpmPixmapSuccess     XpmSuccess
+ #define XpmPixmapOpenFailed  XpmOpenFailed
+ #define XpmPixmapFileInvalid XpmFileInvalid
+ #define XpmPixmapNoMemory    XpmNoMemory
+ #define XpmPixmapColorFailed XpmColorFailed
+ 
+ #define XpmReadPixmapFile(dpy, d, file, pix, mask, att) \
+     XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
+ #define XpmWritePixmapFile(dpy, file, pix, mask, att) \
+     XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
+ 
+ /* for version 3.0b */
+ #define PixmapColorError  XpmColorError
+ #define PixmapSuccess     XpmSuccess
+ #define PixmapOpenFailed  XpmOpenFailed
+ #define PixmapFileInvalid XpmFileInvalid
+ #define PixmapNoMemory    XpmNoMemory
+ #define PixmapColorFailed XpmColorFailed
+ 
+ #define ColorSymbol XpmColorSymbol
+ 
+ #define XReadPixmapFile(dpy, d, file, pix, mask, att) \
+     XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
+ #define XWritePixmapFile(dpy, file, pix, mask, att) \
+     XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
+ #define XCreatePixmapFromData(dpy, d, data, pix, mask, att) \
+     XpmCreatePixmapFromData(dpy, d, data, pix, mask, att)
+ #define XCreateDataFromPixmap(dpy, data, pix, mask, att) \
+     XpmCreateDataFromPixmap(dpy, data, pix, mask, att)
+ 
+ #endif /* XPM_NUMBERS */
+ #endif
*** ../vim-7.3.638/src/Make_mvc.mak	2012-08-02 21:48:20.000000000 +0200
--- src/Make_mvc.mak	2012-08-29 13:46:05.000000000 +0200
***************
*** 89,94 ****
--- 89,96 ----
  #       Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
  #
  #       XPM Image Support: XPM=[path to XPM directory]
+ #       Default is "xpm", using the files included in the distribution.
+ #       Use "no" to disable this feature.
  #
  #       Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
  #
***************
*** 279,295 ****
  NETBEANS_LIB	= WSock32.lib
  !endif
  
! !ifdef XPM
  # XPM - Include support for XPM signs
! # You need to download or build  xpm.lib somehow.
! # You can get the most recent version of libXpm-*.zip from
! #   http://cgit.freedesktop.org/xorg/lib/libXpm
! # from which you must build xpm.lib yourself
! #   OR get and unpack: ftp://ftp.vim.org/pub/vim/pcextra/xpm.zip
  XPM_OBJ   = $(OBJDIR)/xpm_w32.obj
  XPM_DEFS  = -DFEAT_XPM_W32
  XPM_LIB   = $(XPM)\lib\libXpm.lib
! XPM_INC	  = -I $(XPM)\include
  !endif
  !endif
  
--- 281,301 ----
  NETBEANS_LIB	= WSock32.lib
  !endif
  
! !ifndef XPM
! # XPM is not set, use the included xpm files, depending on the architecture.
! !if ("$(CPU)" == "AMD64") || ("$(CPU)" == "IA64")
! XPM = xpm\x64
! !else
! XPM = xpm\x86
! !endif
! !endif
! !if "$(XPM)" != "no"
  # XPM - Include support for XPM signs
! # See the xpm directory for more information.
  XPM_OBJ   = $(OBJDIR)/xpm_w32.obj
  XPM_DEFS  = -DFEAT_XPM_W32
  XPM_LIB   = $(XPM)\lib\libXpm.lib
! XPM_INC	  = -I $(XPM)\include -I $(XPM)\..\include
  !endif
  !endif
  
*** ../vim-7.3.638/src/bigvim.bat	2010-08-15 21:57:29.000000000 +0200
--- src/bigvim.bat	2012-08-29 13:46:18.000000000 +0200
***************
*** 1,3 ****
  :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
! nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl512 DYNAMIC_PERL=yes PERL_VER=512 PYTHON=e:\python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=e:\python31 DYNAMIC_PYTHON3=yes PYTHON3_VER=31 RUBY=e:\ruby191 DYNAMIC_RUBY=yes RUBY_VER=191 RUBY_VER_LONG=1.9.1 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes XPM=e:\xpm
  
--- 1,5 ----
  :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
! SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
! SET TOOLDIR=E:\
! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
  
*** ../vim-7.3.638/src/bigvim64.bat	2012-08-29 14:16:38.000000000 +0200
--- src/bigvim64.bat	2012-08-29 13:46:35.000000000 +0200
***************
*** 0 ****
--- 1,6 ----
+ :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl
+ :: First run: %VCDIR%\vcvarsall.bat x86_amd64
+ SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
+ SET TOOLDIR=E:\
+ %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
+ 
*** ../vim-7.3.638/Filelist	2012-07-16 17:27:57.000000000 +0200
--- Filelist	2012-08-29 13:53:52.000000000 +0200
***************
*** 349,354 ****
--- 349,360 ----
  		src/vim*.ico \
  		src/vim.tlb \
  		src/vimtbar.lib \
+ 		src/xpm/COPYRIGHT \
+ 		src/xpm/README.txt \
+ 		src/xpm/include/*.h \
+ 		src/xpm/x64/lib/libXpm.lib \
+ 		src/xpm/x86/lib/libXpm.a \
+ 		src/xpm/x86/lib/libXpm.lib \
  		src/vimtbar.dll \
  		nsis/icons/*.bmp \
  		nsis/icons/*.ico \
*** ../vim-7.3.638/src/version.c	2012-08-29 14:17:51.000000000 +0200
--- src/version.c	2012-08-29 14:14:19.000000000 +0200
***************
*** 721,722 ****
--- 721,724 ----
  {   /* Add new patch number below this line */
+ /**/
+     639,
  /**/

-- 
A successful man is one who makes more money than his wife can spend.
A successful woman is one who can find such a man.

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
