Loading ...
Sorry, an error occurred while loading the content.
 

Patch 7.3.639

Expand Messages
  • Bram Moolenaar
    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
    Message 1 of 4 , Aug 29, 2012
      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@...
      + 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@....
      *** ../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@...-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@...-kiel.de) 4/94
      + */
      +
      + /*
      + * The code related to AMIGA has been added by
      + * Lorens Younes (d93-hyo@...) 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@... -- 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 ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    • Sergey Khorev
      Hi Bram, ... Thanks for including this. Attached are a few tweaks: * IA64 would require another build of XPM because it is incompatible with x64. Unfortunately
      Message 2 of 4 , Aug 31, 2012
        Hi Bram,

        > 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.

        Thanks for including this. Attached are a few tweaks:
        * IA64 would require another build of XPM because it is incompatible
        with x64. Unfortunately I don't have access to Itanium-based hardware
        to test it properly.
        * I updated Make_ming.mak to enable XPM automatically and add support
        for 64-bit builds of MinGW 64.

        Since I added a binary file I had to use git diff format.

        --
        You received this message from the "vim_dev" maillist.
        Do not top-post! Type your reply below the text you are replying to.
        For more information, visit http://www.vim.org/maillist.php
      • Bram Moolenaar
        ... I don t think we need to care about Itanium much. Hopefully they can live without XPM support. ... Thanks. I belive the object directory name isn t set
        Message 3 of 4 , Sep 1, 2012
          Sergey Khorev wrote:

          > > 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.
          >
          > Thanks for including this. Attached are a few tweaks:
          > * IA64 would require another build of XPM because it is incompatible
          > with x64. Unfortunately I don't have access to Itanium-based hardware
          > to test it properly.

          I don't think we need to care about Itanium much. Hopefully they can
          live without XPM support.

          > * I updated Make_ming.mak to enable XPM automatically and add support
          > for 64-bit builds of MinGW 64.
          >
          > Since I added a binary file I had to use git diff format.

          Thanks. I belive the object directory name isn't set differently for 64
          bit builds, which may cause trouble if one forgets to clean first.

          --
          You had connectors? Eeee, when I were a lad we 'ad to carry the
          bits between the computer and the terminal with a spoon...

          /// Bram Moolenaar -- Bram@... -- 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 ///

          --
          You received this message from the "vim_dev" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php
        • Sergey Khorev
          Bram, ... Frankly speaking I fell into this trap a few times already. Attached is a new version of the patch which adds a suffix to distinguish between
          Message 4 of 4 , Sep 1, 2012
            Bram,

            >> * I updated Make_ming.mak to enable XPM automatically and add support
            >> for 64-bit builds of MinGW 64.
            >>
            >> Since I added a binary file I had to use git diff format.
            >
            > Thanks. I belive the object directory name isn't set differently for 64
            > bit builds, which may cause trouble if one forgets to clean first.

            Frankly speaking I fell into this trap a few times already. Attached
            is a new version of the patch which adds a suffix to distinguish
            between different object directories for different architectures.

            --
            You received this message from the "vim_dev" maillist.
            Do not top-post! Type your reply below the text you are replying to.
            For more information, visit http://www.vim.org/maillist.php
          Your message has been successfully submitted and would be delivered to recipients shortly.