From 4f5437d4db243474369fd3ce59fce0a0d8b2ab3f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:22 +0200 Subject: [PATCH 001/291] - patchlevel 639 --- 7.3.639 | 846 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 846 insertions(+) create mode 100644 7.3.639 diff --git a/7.3.639 b/7.3.639 new file mode 100644 index 00000000..359dc6d8 --- /dev/null +++ b/7.3.639 @@ -0,0 +1,846 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.639 +Fcc: outbox +From: Bram Moolenaar +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 ++ # 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 ++ # include ++ # 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 /// From 520ee8d5cb7725314a2509f1f9540f063e6d9827 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:23 +0200 Subject: [PATCH 002/291] - patchlevel 640 --- 7.3.640 | Bin 0 -> 455297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.3.640 diff --git a/7.3.640 b/7.3.640 new file mode 100644 index 0000000000000000000000000000000000000000..984df6400779e68332e9e016d04f19445b940e0b GIT binary patch literal 455297 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 GUjGYh4Wu0a literal 0 HcmV?d00001 From 9b3d87d6869a94bfbeddcfc3ba5c4cba9b84e880 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:24 +0200 Subject: [PATCH 003/291] - patchlevel 641 --- 7.3.641 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.3.641 diff --git a/7.3.641 b/7.3.641 new file mode 100644 index 00000000..daacdb4f --- /dev/null +++ b/7.3.641 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.641 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.641 +Problem: ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan) +Solution: Add the bang. (Christian Brabandt) +Files: src/fold.c + + +*** ../vim-7.3.640/src/fold.c 2012-08-08 18:01:00.000000000 +0200 +--- src/fold.c 2012-08-29 15:17:39.000000000 +0200 +*************** +*** 3373,3379 **** + /* open nested folds while this fold is open */ + if (fprintf(fd, "%ld", fp->fd_top + off) < 0 + || put_eol(fd) == FAIL +! || put_line(fd, "normal zo") == FAIL) + return FAIL; + if (put_foldopen_recurse(fd, wp, &fp->fd_nested, + off + fp->fd_top) +--- 3373,3379 ---- + /* open nested folds while this fold is open */ + if (fprintf(fd, "%ld", fp->fd_top + off) < 0 + || put_eol(fd) == FAIL +! || put_line(fd, "normal! zo") == FAIL) + return FAIL; + if (put_foldopen_recurse(fd, wp, &fp->fd_nested, + off + fp->fd_top) +*************** +*** 3417,3423 **** + { + if (fprintf(fd, "%ld", fp->fd_top + off) < 0 + || put_eol(fd) == FAIL +! || fprintf(fd, "normal z%c", + fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0 + || put_eol(fd) == FAIL) + return FAIL; +--- 3417,3423 ---- + { + if (fprintf(fd, "%ld", fp->fd_top + off) < 0 + || put_eol(fd) == FAIL +! || fprintf(fd, "normal! z%c", + fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0 + || put_eol(fd) == FAIL) + return FAIL; +*** ../vim-7.3.640/src/version.c 2012-08-29 14:23:06.000000000 +0200 +--- src/version.c 2012-08-29 15:18:26.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 641, + /**/ + +-- +You cannot propel yourself forward by patting yourself on the back. + + /// 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 /// From bb79499ba1a58f0105996f131f81a95bfeff152d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:24 +0200 Subject: [PATCH 004/291] - patchlevel 642 --- 7.3.642 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.3.642 diff --git a/7.3.642 b/7.3.642 new file mode 100644 index 00000000..ddc40321 --- /dev/null +++ b/7.3.642 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.642 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.642 +Problem: Segfault with specific autocommands. Was OK after 7.3.449 and + before 7.3.545. (Richard Brown) +Solution: Pass TRUE for abort_if_last in the call to close_buffer(). + (Christian Brabandt) +Files: src/window.c + + +*** ../vim-7.3.641/src/window.c 2012-07-19 18:05:40.000000000 +0200 +--- src/window.c 2012-08-29 15:42:15.000000000 +0200 +*************** +*** 2269,2275 **** + #ifdef FEAT_AUTOCMD + win->w_closing = TRUE; + #endif +! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE); + #ifdef FEAT_AUTOCMD + if (win_valid(win)) + win->w_closing = FALSE; +--- 2269,2275 ---- + #ifdef FEAT_AUTOCMD + win->w_closing = TRUE; + #endif +! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE); + #ifdef FEAT_AUTOCMD + if (win_valid(win)) + win->w_closing = FALSE; +*** ../vim-7.3.641/src/version.c 2012-08-29 15:22:14.000000000 +0200 +--- src/version.c 2012-08-29 15:49:52.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 642, + /**/ + +-- +The psychic said, "God bless you." I said, "I didn't sneeze." She +looked deep into my eyes and said, "You will, eventually." And, damn +if she wasn't right. Two days later, I sneezed. --Ellen Degeneres + + /// 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 /// From 51cb4bcc8c65fb84e8d598a1d3349d4f03240f4c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:24 +0200 Subject: [PATCH 005/291] - patchlevel 643 --- 7.3.643 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.3.643 diff --git a/7.3.643 b/7.3.643 new file mode 100644 index 00000000..c2f700c5 --- /dev/null +++ b/7.3.643 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.643 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.643 (after 7.3.635) +Problem: MS-Windows: When starting gvim maximized 'lines' and 'columns' are + wrong. (Christian Robinson) +Solution: Move the check for gui.starting from ui_get_shellsize() to + check_shellsize(). +Files: src/ui.c, src/term.c + + +*** ../vim-7.3.642/src/ui.c 2012-08-23 13:28:50.000000000 +0200 +--- src/ui.c 2012-08-29 16:20:04.000000000 +0200 +*************** +*** 298,306 **** + int retval; + + #ifdef FEAT_GUI +- if (gui.starting) +- /* possibly a system call during startup, check later */ +- return OK; + if (gui.in_use) + retval = gui_get_shellsize(); + else +--- 298,303 ---- +*** ../vim-7.3.642/src/term.c 2012-08-15 16:20:59.000000000 +0200 +--- src/term.c 2012-08-29 16:22:25.000000000 +0200 +*************** +*** 3006,3012 **** + int old_Rows = Rows; + int old_Columns = Columns; + +! if (!exiting) + { + (void)ui_get_shellsize(); + check_shellsize(); +--- 3006,3018 ---- + int old_Rows = Rows; + int old_Columns = Columns; + +! if (!exiting +! #ifdef FEAT_GUI +! /* Do not get the size when executing a shell command during +! * startup. */ +! && !gui.starting +! #endif +! ) + { + (void)ui_get_shellsize(); + check_shellsize(); +*** ../vim-7.3.642/src/version.c 2012-08-29 15:50:22.000000000 +0200 +--- src/version.c 2012-08-29 16:25:42.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 643, + /**/ + +-- +Eight Megabytes And Continually Swapping. + + /// 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 /// From 3d8454e5a4b5104ba9551692a6b7e1e722846e89 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:25 +0200 Subject: [PATCH 006/291] - patchlevel 644 --- 7.3.644 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.3.644 diff --git a/7.3.644 b/7.3.644 new file mode 100644 index 00000000..6f2630cc --- /dev/null +++ b/7.3.644 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.644 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.644 +Problem: Dead code for BeOS GUI. +Solution: Remove unused __BEOS__ stuff. +Files: src/gui.c + + +*** ../vim-7.3.643/src/gui.c 2012-07-10 16:49:08.000000000 +0200 +--- src/gui.c 2012-08-29 16:28:46.000000000 +0200 +*************** +*** 37,44 **** + static void gui_set_bg_color __ARGS((char_u *name)); + static win_T *xy2win __ARGS((int x, int y)); + +! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \ +! && !defined(__APPLE__) + # define MAY_FORK + static void gui_do_fork __ARGS((void)); + +--- 37,43 ---- + static void gui_set_bg_color __ARGS((char_u *name)); + static win_T *xy2win __ARGS((int x, int y)); + +! #if defined(UNIX) && !defined(MACOS_X) && !defined(__APPLE__) + # define MAY_FORK + static void gui_do_fork __ARGS((void)); + +*************** +*** 784,794 **** + gui_exit(rc) + int rc; + { +- #ifndef __BEOS__ + /* don't free the fonts, it leads to a BUS error + * richard@whitequeen.com Jul 99 */ + free_highlight_fonts(); +- #endif + gui.in_use = FALSE; + gui_mch_exit(rc); + } +--- 783,791 ---- +*** ../vim-7.3.643/src/version.c 2012-08-29 16:26:01.000000000 +0200 +--- src/version.c 2012-08-29 16:33:30.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 644, + /**/ + +-- +E M A C S +s e l o h +c t t n i +a a t f +p r t +e o + l + + /// 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 /// From a5040f589e2b40e65dd344b94c32c1c5aa76da06 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:25 +0200 Subject: [PATCH 007/291] - patchlevel 645 --- 7.3.645 | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 7.3.645 diff --git a/7.3.645 b/7.3.645 new file mode 100644 index 00000000..40d8ee0b --- /dev/null +++ b/7.3.645 @@ -0,0 +1,118 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.645 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.645 +Problem: No tests for patch 7.3.625 and 7.3.637. +Solution: Add more tests for the "gn" command and try/catch. (Christian + Brabandt) +Files: src/testdir/test53.in, src/testdir/test53.ok, + src/testdir/test55.in, src/testdir/test55.ok + + +*** ../vim-7.3.644/src/testdir/test53.in 2012-07-25 15:06:20.000000000 +0200 +--- src/testdir/test53.in 2012-08-29 16:37:44.000000000 +0200 +*************** +*** 34,40 **** + gnd + /[a]bcdx + :1 +! 2gnd + :/^start:/,/^end:/wq! test.out + ENDTEST + +--- 34,46 ---- + gnd + /[a]bcdx + :1 +! 2gnd/join +! /$ +! 0gnd +! /\>\zs +! 0gnd/^ +! gnd$h/\zs +! gnd + :/^start:/,/^end:/wq! test.out + ENDTEST + +*************** +*** 57,60 **** +--- 63,70 ---- + one + two + abcdx | abcdx | abcdx ++ join ++ lines ++ zero width pattern ++ delete first and last chars + end: +*** ../vim-7.3.644/src/testdir/test53.ok 2012-07-25 15:06:20.000000000 +0200 +--- src/testdir/test53.ok 2012-08-29 16:37:48.000000000 +0200 +*************** +*** 21,24 **** +--- 21,27 ---- + SEARCH: + searchmatch + abcdx | | abcdx ++ join lines ++ zerowidth pattern ++ elete first and last char + end: +*** ../vim-7.3.644/src/testdir/test55.in 2012-05-18 12:06:58.000000000 +0200 +--- src/testdir/test55.in 2012-08-29 16:50:51.000000000 +0200 +*************** +*** 378,383 **** +--- 378,393 ---- + :unlet dict + :call garbagecollect(1) + :" ++ :" test for patch 7.3.637 ++ :let a = 'No error caught' ++ :try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry ++ o=a :" ++ :lang C ++ :redir => a ++ :try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry ++ :redir END ++ o=a :" ++ :" + :/^start:/,$wq! test.out + ENDTEST + +*** ../vim-7.3.644/src/testdir/test55.ok 2012-05-18 12:06:58.000000000 +0200 +--- src/testdir/test55.ok 2012-08-29 16:51:15.000000000 +0200 +*************** +*** 115,117 **** +--- 115,123 ---- + {'a': {'b': 'B'}} + Vim(call):E737: a + {'a': {'b': 'B'}} ++ Vim(foldopen):E490: ++ ++ ++ Error detected while processing : ++ E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry ++ +*** ../vim-7.3.644/src/version.c 2012-08-29 16:34:23.000000000 +0200 +--- src/version.c 2012-08-29 16:37:20.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 645, + /**/ + +-- +TALL KNIGHT OF NI: Ni! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 4fc8774b08f357c8a22fc412dfde74f5d1e5e01d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:25 +0200 Subject: [PATCH 008/291] - patchlevel 646 --- 7.3.646 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.646 diff --git a/7.3.646 b/7.3.646 new file mode 100644 index 00000000..3e507a79 --- /dev/null +++ b/7.3.646 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.646 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.646 +Problem: When reloading a buffer the undo file becomes unusable unless ":w" + is executed. (Dmitri Frank) +Solution: After reloading the buffer write the undo file. (Christian + Brabandt) +Files: src/fileio.c + + +*** ../vim-7.3.645/src/fileio.c 2012-07-10 17:14:50.000000000 +0200 +--- src/fileio.c 2012-08-29 18:19:44.000000000 +0200 +*************** +*** 7060,7067 **** +--- 7060,7082 ---- + } + + if (reload) ++ { + /* Reload the buffer. */ + buf_reload(buf, orig_mode); ++ #ifdef FEAT_PERSISTENT_UNDO ++ if (buf->b_p_udf && buf->b_ffname != NULL) ++ { ++ char_u hash[UNDO_HASH_SIZE]; ++ buf_T *save_curbuf = curbuf; ++ ++ /* Any existing undo file is unusable, write it now. */ ++ curbuf = buf; ++ u_compute_hash(hash); ++ u_write_undo(NULL, FALSE, buf, hash); ++ curbuf = save_curbuf; ++ } ++ #endif ++ } + + #ifdef FEAT_AUTOCMD + /* Trigger FileChangedShell when the file was changed in any way. */ +*** ../vim-7.3.645/src/version.c 2012-08-29 16:55:09.000000000 +0200 +--- src/version.c 2012-08-29 18:21:07.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 646, + /**/ + +-- + An extraordinary TALL KNIGHT in all black (possibly John with Mike on his + shoulders) walks out from the dark trees. He is extremely fierce and + gruesome countenance. He walks towards KING ARTHUR and PATSY, who are + wazzing like mad. (Salopian slang, meaning very scared. almost to the + point of wetting oneself, e.g. before an important football match or + prior to a postering. Salopian slang meaning a beating by the school + praeposters. Sorry about the Salopian slant to this stage direction - Ed.) + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 52f4b22b0b9705f0d0890e142268406603a55644 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 3 Sep 2012 12:44:26 +0200 Subject: [PATCH 009/291] - patchlevel 646 --- README.patches | 8 ++++++++ vim.spec | 23 +++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index dfe8b806..477c90a2 100644 --- a/README.patches +++ b/README.patches @@ -669,3 +669,11 @@ Individual patches for Vim 7.3: 4539 7.3.636 (after 7.3.625) "gn" fails for some zero-width matches 3117 7.3.637 cannot catch error caused by a foldopen when there is no fold 1783 7.3.638 unecessary redraw of the previous character + 31440 7.3.639 it's not easy to build Vim on Windows with XPM support +455297 7.3.640 binary files for 7.3.639 + 2219 7.3.641 ":mkview" uses ":normal" instead of ":normal!" for folds + 1810 7.3.642 segfault with specific autocommands + 2060 7.3.643 MS-Windows: 'lines' is wrong when starting up maximized + 1925 7.3.644 dead code for BeOS GUI + 2910 7.3.645 no tests for patch 7.3.625 and 7.3.637 + 2353 7.3.646 undo file unusable after reloading a buffer diff --git a/vim.spec b/vim.spec index 527c445e..32fa4ff6 100644 --- a/vim.spec +++ b/vim.spec @@ -18,13 +18,13 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 638 +%define patchlevel 646 Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{beta}%{patchlevel} -Release: 2%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2 @@ -694,6 +694,14 @@ Patch635: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.635 Patch636: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.636 Patch637: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.637 Patch638: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.638 +Patch639: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.639 +Patch640: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.640 +Patch641: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.641 +Patch642: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.642 +Patch643: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.643 +Patch644: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.644 +Patch645: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.645 +Patch646: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.646 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1478,6 +1486,14 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch636 -p0 %patch637 -p0 %patch638 -p0 +%patch639 -p0 +%patch640 -p0 +%patch641 -p0 +%patch642 -p0 +%patch643 -p0 +%patch644 -p0 +%patch645 -p0 +%patch646 -p0 # install spell files @@ -1935,6 +1951,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Sep 03 2012 Karsten Hopp 7.3.646-1 +- patchlevel 646 + * Tue Aug 28 2012 Karsten Hopp 7.3.638-2 - fix some man page typos (#668894, #675480) - own usr/share/vim/vimfiles/doc/tags (#845564) From 4e9c0a0e1c3a92a9685d2da1d7d6fc2e6f3fa97f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:16:58 +0200 Subject: [PATCH 010/291] remove erroneous cd command --- vim-update.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/vim-update.sh b/vim-update.sh index dd8c34ba..6ef30d8b 100755 --- a/vim-update.sh +++ b/vim-update.sh @@ -2,7 +2,6 @@ debug="" #debug="echo" -cd $HOME/src/fedora/rpms/vim/master/ LANG=C SPEC=vim.spec From 09c09e364a9f1385725fe66c0d179b704b588f5f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:36 +0200 Subject: [PATCH 011/291] - patchlevel 683 --- 7.3.683 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.3.683 diff --git a/7.3.683 b/7.3.683 new file mode 100644 index 00000000..b26d3980 --- /dev/null +++ b/7.3.683 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.683 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.683 +Problem: ":python" may crash when vimbindeval() returns None. +Solution: Check for v_string to be NULL. (Yukihiro Nakadaira) +Files: src/if_py_both.h + + +*** ../vim-7.3.682/src/if_py_both.h 2012-09-21 14:00:05.000000000 +0200 +--- src/if_py_both.h 2012-10-05 21:05:06.000000000 +0200 +*************** +*** 351,357 **** + + if (our_tv->v_type == VAR_STRING) + { +! result = Py_BuildValue("s", our_tv->vval.v_string); + } + else if (our_tv->v_type == VAR_NUMBER) + { +--- 351,358 ---- + + if (our_tv->v_type == VAR_STRING) + { +! result = Py_BuildValue("s", our_tv->vval.v_string == NULL +! ? "" : (char *)our_tv->vval.v_string); + } + else if (our_tv->v_type == VAR_NUMBER) + { +*************** +*** 2751,2757 **** + switch (tv->v_type) + { + case VAR_STRING: +! return PyBytes_FromString((char *) tv->vval.v_string); + case VAR_NUMBER: + return PyLong_FromLong((long) tv->vval.v_number); + #ifdef FEAT_FLOAT +--- 2752,2759 ---- + switch (tv->v_type) + { + case VAR_STRING: +! return PyBytes_FromString(tv->vval.v_string == NULL +! ? "" : (char *)tv->vval.v_string); + case VAR_NUMBER: + return PyLong_FromLong((long) tv->vval.v_number); + #ifdef FEAT_FLOAT +*************** +*** 2763,2769 **** + case VAR_DICT: + return DictionaryNew(tv->vval.v_dict); + case VAR_FUNC: +! return FunctionNew(tv->vval.v_string); + case VAR_UNKNOWN: + Py_INCREF(Py_None); + return Py_None; +--- 2765,2772 ---- + case VAR_DICT: + return DictionaryNew(tv->vval.v_dict); + case VAR_FUNC: +! return FunctionNew(tv->vval.v_string == NULL +! ? (char_u *)"" : tv->vval.v_string); + case VAR_UNKNOWN: + Py_INCREF(Py_None); + return Py_None; +*** ../vim-7.3.682/src/version.c 2012-10-04 22:38:32.000000000 +0200 +--- src/version.c 2012-10-05 21:04:19.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 683, + /**/ + +-- +SIGIRO -- irony detected (iron core dumped) + + /// 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 /// From 502c3c420f25bd847e42b74518095d02c4b65a25 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:37 +0200 Subject: [PATCH 012/291] - patchlevel 684 --- 7.3.684 | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 7.3.684 diff --git a/7.3.684 b/7.3.684 new file mode 100644 index 00000000..0e9119be --- /dev/null +++ b/7.3.684 @@ -0,0 +1,132 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.684 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.684 +Problem: "make test" does not delete lua.vim. +Solution: Add lua.vim to the clean target. (Simon Ruderich) +Files: src/testdir/Makefile, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_vms.mms + + +*** ../vim-7.3.683/src/testdir/Makefile 2012-06-29 12:54:32.000000000 +0200 +--- src/testdir/Makefile 2012-10-06 19:04:54.000000000 +0200 +*************** +*** 48,57 **** + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + clean: +! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo + + test1.out: test1.in +! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo + $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ +--- 48,57 ---- + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + clean: +! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* valgrind.* viminfo + + test1.out: test1.in +! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* viminfo + $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ +*************** +*** 73,79 **** + fi \ + else echo $* NO OUTPUT >>test.log; \ + fi" +! # -rm -rf X* test.ok viminfo + + test49.out: test49.vim + +--- 73,79 ---- + fi \ + else echo $* NO OUTPUT >>test.log; \ + fi" +! -rm -rf X* test.ok viminfo + + test49.out: test49.vim + +*** ../vim-7.3.683/src/testdir/Make_dos.mak 2012-06-29 12:54:32.000000000 +0200 +--- src/testdir/Make_dos.mak 2012-10-06 19:04:02.000000000 +0200 +*************** +*** 62,67 **** +--- 62,68 ---- + -if exist tiny.vim del tiny.vim + -if exist mbyte.vim del mbyte.vim + -if exist mzscheme.vim del mzscheme.vim ++ -if exist lua.vim del lua.vim + -del X* + -if exist viminfo del viminfo + +*** ../vim-7.3.683/src/testdir/Make_ming.mak 2012-06-29 12:54:32.000000000 +0200 +--- src/testdir/Make_ming.mak 2012-10-06 19:04:08.000000000 +0200 +*************** +*** 85,90 **** +--- 85,91 ---- + -$(DEL) tiny.vim + -$(DEL) mbyte.vim + -$(DEL) mzscheme.vim ++ -$(DEL) lua.vim + -$(DEL) X* + -$(DEL) viminfo + +*** ../vim-7.3.683/src/testdir/Make_vms.mms 2012-04-05 16:56:38.000000000 +0200 +--- src/testdir/Make_vms.mms 2012-10-06 19:04:34.000000000 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2012 Apr 05 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2012 Oct 06 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 184,188 **** +--- 184,189 ---- + -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.* + -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.* + -@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.* ++ -@ if "''F$SEARCH("lua.vim")'" .NES. "" then delete/noconfirm/nolog lua.vim.* + -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.* + +*** ../vim-7.3.683/src/version.c 2012-10-05 21:30:04.000000000 +0200 +--- src/version.c 2012-10-06 18:59:40.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 684, + /**/ + +-- +ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY + KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T + HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR + LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER), + BROTHER MAYNARD + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 8eff41f5c8c251f66eb8c016064da695219321bb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:38 +0200 Subject: [PATCH 013/291] - patchlevel 685 --- 7.3.685 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.3.685 diff --git a/7.3.685 b/7.3.685 new file mode 100644 index 00000000..58cf4e94 --- /dev/null +++ b/7.3.685 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.685 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.685 +Problem: No test for what patch 7.3.673 fixes. +Solution: Add a test. (Christian Brabandt) +Files: src/testdir/test53.in, src/testdir/test53.ok + + +*** ../vim-7.3.684/src/testdir/test53.in 2012-09-05 12:16:40.000000000 +0200 +--- src/testdir/test53.in 2012-10-11 03:31:27.000000000 +0200 +*************** +*** 42,47 **** +--- 42,50 ---- + gnd$h/\zs + gnd/[u]niquepattern/s + vlgnd ++ /mother ++ :set selection=exclusive ++ $cgNmongoose + :/^start:/,/^end:/wq! test.out + ENDTEST + +*************** +*** 69,72 **** +--- 72,76 ---- + zero width pattern + delete first and last chars + uniquepattern uniquepattern ++ my very excellent mother just served us nachos + end: +*** ../vim-7.3.684/src/testdir/test53.ok 2012-09-05 12:16:40.000000000 +0200 +--- src/testdir/test53.ok 2012-10-11 03:31:33.000000000 +0200 +*************** +*** 25,28 **** +--- 25,29 ---- + zerowidth pattern + elete first and last char + uniquepattern ++ my very excellent mongoose just served us nachos + end: +*** ../vim-7.3.684/src/version.c 2012-10-06 19:10:29.000000000 +0200 +--- src/version.c 2012-10-11 03:34:06.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 685, + /**/ + +-- +FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing. + + /// 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 /// From 1efe4be0e9093209d21a226c71d3dd100dd1e94c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:39 +0200 Subject: [PATCH 014/291] - patchlevel 686 --- 7.3.686 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 7.3.686 diff --git a/7.3.686 b/7.3.686 new file mode 100644 index 00000000..81d23696 --- /dev/null +++ b/7.3.686 @@ -0,0 +1,63 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.686 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.686 +Problem: Using CTRL-\ e mappings is useful also when entering an + expression, but it doesn't work. (Marcin Szamotulski) +Solution: Allow using CTRL-\ e when entering an expression if it was not + typed. +Files: src/ex_getln.c + + +*** ../vim-7.3.685/src/ex_getln.c 2012-08-15 14:04:50.000000000 +0200 +--- src/ex_getln.c 2012-10-11 03:54:04.000000000 +0200 +*************** +*** 667,675 **** + c = plain_vgetc(); + --no_mapping; + --allow_keys; +! /* CTRL-\ e doesn't work when obtaining an expression. */ +! if (c != Ctrl_N && c != Ctrl_G +! && (c != 'e' || ccline.cmdfirstc == '=')) + { + vungetc(c); + c = Ctrl_BSL; +--- 667,676 ---- + c = plain_vgetc(); + --no_mapping; + --allow_keys; +! /* CTRL-\ e doesn't work when obtaining an expression, unless it +! * is in a mapping. */ +! if (c != Ctrl_N && c != Ctrl_G && (c != 'e' +! || (ccline.cmdfirstc == '=' && KeyTyped))) + { + vungetc(c); + c = Ctrl_BSL; +*** ../vim-7.3.685/src/version.c 2012-10-11 03:35:38.000000000 +0200 +--- src/version.c 2012-10-11 04:03:19.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 686, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + I would like to get back to the Censor and agree to lose the shits, take + the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in + your general direction', 'castanets of your testicles' and 'oral sex' + and ask him for an 'A' rating on that basis. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 168a9aaaf2c9945afb2d72ee6cda6a23f95aae6d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:40 +0200 Subject: [PATCH 015/291] - patchlevel 687 --- 7.3.687 | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 7.3.687 diff --git a/7.3.687 b/7.3.687 new file mode 100644 index 00000000..a98c3631 --- /dev/null +++ b/7.3.687 @@ -0,0 +1,44 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.687 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.687 +Problem: Test 16 fails when $DISPLAY is not set. +Solution: Skip the test when $DISPLAY is not set. +Files: src/testdir/test16.in + + +*** ../vim-7.3.686/src/testdir/test16.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test16.in 2012-10-11 04:02:11.000000000 +0200 +*************** +*** 2,7 **** +--- 2,8 ---- + For KDE set a font, empty 'guifont' may cause a hang. + + STARTTEST ++ :if $DISPLAY == "" | e! test.ok | wq! test.out | endif + :set exrc secure + :if has("gui_kde") + : set guifont=Courier\ 10\ Pitch/8/-1/5/50/0/0/0/0/0 +*** ../vim-7.3.686/src/version.c 2012-10-11 04:04:32.000000000 +0200 +--- src/version.c 2012-10-11 04:31:10.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 687, + /**/ + +-- +A fool must search for a greater fool to find admiration. + + /// 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 /// From 2c69c3db69e59012b4c14af12df4b5ebea74f974 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:41 +0200 Subject: [PATCH 016/291] - patchlevel 688 --- 7.3.688 | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 7.3.688 diff --git a/7.3.688 b/7.3.688 new file mode 100644 index 00000000..56f00249 --- /dev/null +++ b/7.3.688 @@ -0,0 +1,150 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.688 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.688 +Problem: Python 3.3 is not supported. +Solution: Add Python 3.3 support (Ken Takata) +Files: src/if_python3.c + + +*** ../vim-7.3.687/src/if_python3.c 2012-09-21 14:00:05.000000000 +0200 +--- src/if_python3.c 2012-10-14 03:19:53.000000000 +0200 +*************** +*** 174,180 **** + # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented) + # define PyModule_AddObject py3_PyModule_AddObject + # define PyImport_AppendInittab py3_PyImport_AppendInittab +! # define _PyUnicode_AsString py3__PyUnicode_AsString + # undef PyUnicode_AsEncodedString + # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString + # undef PyBytes_AsString +--- 174,185 ---- + # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented) + # define PyModule_AddObject py3_PyModule_AddObject + # define PyImport_AppendInittab py3_PyImport_AppendInittab +! # if PY_VERSION_HEX >= 0x030300f0 +! # undef _PyUnicode_AsString +! # define _PyUnicode_AsString py3_PyUnicode_AsUTF8String +! # else +! # define _PyUnicode_AsString py3__PyUnicode_AsString +! # endif + # undef PyUnicode_AsEncodedString + # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString + # undef PyBytes_AsString +*************** +*** 281,287 **** +--- 286,296 ---- + static PyObject* py3__Py_TrueStruct; + static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o); + static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void)); ++ #if PY_VERSION_HEX >= 0x030300f0 ++ static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode); ++ #else + static char* (*py3__PyUnicode_AsString)(PyObject *unicode); ++ #endif + static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors); + static char* (*py3_PyBytes_AsString)(PyObject *bytes); + static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length); +*************** +*** 397,403 **** +--- 406,416 ---- + {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, + {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, + {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, ++ #if PY_VERSION_HEX >= 0x030300f0 ++ {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String}, ++ #else + {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, ++ #endif + {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString}, + {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, + {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, +*************** +*** 490,495 **** +--- 503,514 ---- + + /* Load unicode functions separately as only the ucs2 or the ucs4 functions + * will be present in the library. */ ++ #if PY_VERSION_HEX >= 0x030300f0 ++ ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString"); ++ ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode"); ++ ucs_as_encoded_string = symbol_from_dll(hinstPy3, ++ "PyUnicode_AsEncodedString"); ++ #else + ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString"); + ucs_decode = symbol_from_dll(hinstPy3, + "PyUnicodeUCS2_Decode"); +*************** +*** 504,509 **** +--- 523,529 ---- + ucs_as_encoded_string = symbol_from_dll(hinstPy3, + "PyUnicodeUCS4_AsEncodedString"); + } ++ #endif + if (ucs_from_string && ucs_decode && ucs_as_encoded_string) + { + py3_PyUnicode_FromString = ucs_from_string; +*************** +*** 600,607 **** + + #define GET_ATTR_STRING(name, nameobj) \ + char *name = ""; \ +! if(PyUnicode_Check(nameobj)) \ +! name = _PyUnicode_AsString(nameobj) + + #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0) + +--- 620,627 ---- + + #define GET_ATTR_STRING(name, nameobj) \ + char *name = ""; \ +! if (PyUnicode_Check(nameobj)) \ +! name = _PyUnicode_AsString(nameobj) + + #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0) + +*************** +*** 704,709 **** +--- 724,731 ---- + Py_SetPythonHome(PYTHON3_HOME); + #endif + ++ PyImport_AppendInittab("vim", Py3Init_vim); ++ + #if !defined(MACOS) || defined(MACOS_X_UNIX) + Py_Initialize(); + #else +*************** +*** 719,726 **** + if (PythonIO_Init()) + goto fail; + +- PyImport_AppendInittab("vim", Py3Init_vim); +- + globals = PyModule_GetDict(PyImport_AddModule("__main__")); + + /* Remove the element from sys.path that was added because of our +--- 741,746 ---- +*** ../vim-7.3.687/src/version.c 2012-10-11 04:44:26.000000000 +0200 +--- src/version.c 2012-10-14 03:00:57.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 688, + /**/ + +-- +The problem with political jokes is that they get elected. + + /// 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 /// From 641e09a2cd8afab91d142760ddcc8b19e54f049b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:42 +0200 Subject: [PATCH 017/291] - patchlevel 689 --- 7.3.689 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.3.689 diff --git a/7.3.689 b/7.3.689 new file mode 100644 index 00000000..ae8e60d0 --- /dev/null +++ b/7.3.689 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.689 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.689 +Problem: MzScheme and Lua may use a NULL string. +Solution: Use an empty string instead of NULL. (Yukihiro Nakadaira) +Files: src/if_lua.c, src/if_mzsch.c + + +*** ../vim-7.3.688/src/if_lua.c 2012-06-29 12:54:32.000000000 +0200 +--- src/if_lua.c 2012-10-14 03:33:32.000000000 +0200 +*************** +*** 464,470 **** + switch (tv->v_type) + { + case VAR_STRING: +! lua_pushstring(L, (char *) tv->vval.v_string); + break; + case VAR_NUMBER: + lua_pushinteger(L, (int) tv->vval.v_number); +--- 464,471 ---- + switch (tv->v_type) + { + case VAR_STRING: +! lua_pushstring(L, tv->vval.v_string == NULL +! ? "" : (char *)tv->vval.v_string); + break; + case VAR_NUMBER: + lua_pushinteger(L, (int) tv->vval.v_number); +*** ../vim-7.3.688/src/if_mzsch.c 2012-02-12 01:55:50.000000000 +0100 +--- src/if_mzsch.c 2012-10-14 03:33:32.000000000 +0200 +*************** +*** 2649,2655 **** + new_value = FALSE; + else if (vim_value->v_type == VAR_STRING) + { +! result = scheme_make_string((char *)vim_value->vval.v_string); + MZ_GC_CHECK(); + } + else if (vim_value->v_type == VAR_NUMBER) +--- 2649,2656 ---- + new_value = FALSE; + else if (vim_value->v_type == VAR_STRING) + { +! result = scheme_make_string(vim_value->vval.v_string == NULL +! ? "" : (char *)vim_value->vval.v_string); + MZ_GC_CHECK(); + } + else if (vim_value->v_type == VAR_NUMBER) +*** ../vim-7.3.688/src/version.c 2012-10-14 03:22:49.000000000 +0200 +--- src/version.c 2012-10-14 03:33:49.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 689, + /**/ + +-- +Computers make very fast, very accurate, mistakes. + + /// 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 /// From 1068bbab081dd8e8aaf8ff9488f2a34f6d63cac7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:43 +0200 Subject: [PATCH 018/291] - patchlevel 690 --- 7.3.690 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.3.690 diff --git a/7.3.690 b/7.3.690 new file mode 100644 index 00000000..c638e26f --- /dev/null +++ b/7.3.690 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.690 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.690 +Problem: When the current directory name is exactly the maximum path length + Vim may crash. +Solution: Only add "/" when there is room. (Danek Duvall) +Files: src/os_unix.c + + +*** ../vim-7.3.689/src/os_unix.c 2012-08-15 17:26:53.000000000 +0200 +--- src/os_unix.c 2012-10-14 04:28:40.000000000 +0200 +*************** +*** 2512,2526 **** + } + + l = STRLEN(buf); +! if (l >= len) +! retval = FAIL; + #ifndef VMS +! else +! { +! if (l > 0 && buf[l - 1] != '/' && *fname != NUL + && STRCMP(fname, ".") != 0) +! STRCAT(buf, "/"); +! } + #endif + } + +--- 2512,2523 ---- + } + + l = STRLEN(buf); +! if (l >= len - 1) +! retval = FAIL; /* no space for trailing "/" */ + #ifndef VMS +! else if (l > 0 && buf[l - 1] != '/' && *fname != NUL + && STRCMP(fname, ".") != 0) +! STRCAT(buf, "/"); + #endif + } + +*** ../vim-7.3.689/src/version.c 2012-10-14 03:41:54.000000000 +0200 +--- src/version.c 2012-10-14 04:26:17.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 690, + /**/ + +-- +SOLDIER: What? Ridden on a horse? +ARTHUR: Yes! +SOLDIER: You're using coconuts! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 4113cca262782e7714173a132b5d76a2e78c1f08 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:44 +0200 Subject: [PATCH 019/291] - patchlevel 691 --- 7.3.691 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 7.3.691 diff --git a/7.3.691 b/7.3.691 new file mode 100644 index 00000000..6f44b5cf --- /dev/null +++ b/7.3.691 @@ -0,0 +1,61 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.691 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.691 +Problem: State specific to the Python thread is discarded. +Solution: Keep state between threads. (Paul) +Files: src/if_python.c + + +*** ../vim-7.3.690/src/if_python.c 2012-09-21 14:00:05.000000000 +0200 +--- src/if_python.c 2012-10-14 05:19:44.000000000 +0200 +*************** +*** 740,748 **** + #else + PyMac_Initialize(); + #endif +! /* initialise threads */ + PyEval_InitThreads(); +! + #ifdef DYNAMIC_PYTHON + get_exceptions(); + #endif +--- 740,750 ---- + #else + PyMac_Initialize(); + #endif +! /* Initialise threads and save the state using PyGILState_Ensure. +! * Without this call, thread-specific state (such as the system trace +! * hook), will be lost between invocations of Python code. */ + PyEval_InitThreads(); +! pygilstate = PyGILState_Ensure(); + #ifdef DYNAMIC_PYTHON + get_exceptions(); + #endif +*** ../vim-7.3.690/src/version.c 2012-10-14 04:35:16.000000000 +0200 +--- src/version.c 2012-10-14 05:14:35.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 691, + /**/ + +-- +ARTHUR: The swallow may fly south with the sun, or the house martin or the + plover seek warmer hot lands in winter, yet these are not strangers to + our land. +SOLDIER: Are you suggesting coconuts migrate? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 4f07895ef68e8386da75867fdb9d987059286e27 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Oct 2012 12:17:46 +0200 Subject: [PATCH 020/291] - patchlevel 691 --- README.patches | 9 +++++++++ vim.spec | 23 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index cb9e52ec..dc198b3a 100644 --- a/README.patches +++ b/README.patches @@ -713,3 +713,12 @@ Individual patches for Vim 7.3: 2190 7.3.680 some files missing in the list of distributed files 2014 7.3.681 list of distributed files picks up backup files 1791 7.3.682 (after 7.3.677) compiler complains about incompatible types + 2578 7.3.683 ":python" may crash when vimbindeval() returns None + 4714 7.3.684 "make test" does not delete lua.vim + 1827 7.3.685 no test for what patch 7.3.673 fixes + 2226 7.3.686 cannot use CTRL-\ e mapping when entering an expression + 1386 7.3.687 test 16 fails when $DISPLAY is not set + 5283 7.3.688 Python 3.3 is not supported + 2266 7.3.689 MzScheme and Lua may use a NULL string + 1806 7.3.690 crash with directory name equal to maximum path length + 1910 7.3.691 state specific to the Python thread is discarded diff --git a/vim.spec b/vim.spec index 7720f248..8bf941f9 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 682 +%define patchlevel 691 Summary: The VIM editor URL: http://www.vim.org/ @@ -738,6 +738,15 @@ Patch679: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.679 Patch680: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.680 Patch681: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.681 Patch682: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.682 +Patch683: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.683 +Patch684: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.684 +Patch685: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.685 +Patch686: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.686 +Patch687: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.687 +Patch688: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.688 +Patch689: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.689 +Patch690: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.690 +Patch691: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.691 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1566,6 +1575,15 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch680 -p0 %patch681 -p0 %patch682 -p0 +%patch683 -p0 +%patch684 -p0 +%patch685 -p0 +%patch686 -p0 +%patch687 -p0 +%patch688 -p0 +%patch689 -p0 +%patch690 -p0 +%patch691 -p0 # install spell files @@ -2028,6 +2046,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Oct 15 2012 Karsten Hopp 7.3.691-1 +- patchlevel 691 + * Fri Oct 05 2012 Karsten Hopp 7.3.682-1 - patchlevel 682 - use --enable-rubyinterp=dynamic and --enable-pythoninterp=dynamic From 9f6726f3abb1617d2371e44cacc8e5586f05963c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:12:56 +0200 Subject: [PATCH 021/291] - patchlevel 692 --- 7.3.692 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.3.692 diff --git a/7.3.692 b/7.3.692 new file mode 100644 index 00000000..67016efc --- /dev/null +++ b/7.3.692 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.692 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.692 +Problem: Can't build GTK version with GTK 2.0. +Solution: Put GtkFileFilter declaration in the right place. (Yegappan + Lakshmanan) +Files: src/gui_gtk.c + + +*** ../vim-7.3.691/src/gui_gtk.c 2012-07-10 13:41:09.000000000 +0200 +--- src/gui_gtk.c 2012-10-18 05:12:34.000000000 +0200 +*************** +*** 845,851 **** + char_u dirbuf[MAXPATHL]; + guint log_handler; + const gchar *domain = "Gtk"; +- GtkFileFilter *gfilter; + + title = CONVERT_TO_UTF8(title); + +--- 845,850 ---- +*************** +*** 883,888 **** +--- 882,888 ---- + int i = 0; + char_u *patt; + char_u *p = filter; ++ GtkFileFilter *gfilter; + + gfilter = gtk_file_filter_new(); + patt = alloc(STRLEN(filter)); +*** ../vim-7.3.691/src/version.c 2012-10-14 05:20:05.000000000 +0200 +--- src/version.c 2012-10-18 05:13:55.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 692, + /**/ + +-- +"The future's already arrived - it's just not evenly distributed yet." + -- William Gibson + + /// 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 /// From ccd1ffc6d800fca189f1c85d4b07ee5a93edd957 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:12:57 +0200 Subject: [PATCH 022/291] - patchlevel 693 --- 7.3.693 | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 7.3.693 diff --git a/7.3.693 b/7.3.693 new file mode 100644 index 00000000..c3b6b808 --- /dev/null +++ b/7.3.693 @@ -0,0 +1,165 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.693 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.693 +Problem: Can't make 'softtabstop' follow 'shiftwidth'. +Solution: When 'softtabstop' is negative use the value of 'shiftwidth'. + (so8res) +Files: src/edit.c, src/option.c, src/proto/option.pro + + +*** ../vim-7.3.692/src/edit.c 2012-10-04 22:38:32.000000000 +0200 +--- src/edit.c 2012-10-21 00:01:53.000000000 +0200 +*************** +*** 8885,8891 **** + */ + if ( mode == BACKSPACE_CHAR + && ((p_sta && in_indent) +! || (curbuf->b_p_sts != 0 + && curwin->w_cursor.col > 0 + && (*(ml_get_cursor() - 1) == TAB + || (*(ml_get_cursor() - 1) == ' ' +--- 8885,8891 ---- + */ + if ( mode == BACKSPACE_CHAR + && ((p_sta && in_indent) +! || (get_sts_value() != 0 + && curwin->w_cursor.col > 0 + && (*(ml_get_cursor() - 1) == TAB + || (*(ml_get_cursor() - 1) == ' ' +*************** +*** 8901,8907 **** + if (p_sta && in_indent) + ts = (int)get_sw_value(); + else +! ts = (int)curbuf->b_p_sts; + /* Compute the virtual column where we want to be. Since + * 'showbreak' may get in the way, need to get the last column of + * the previous character. */ +--- 8901,8907 ---- + if (p_sta && in_indent) + ts = (int)get_sw_value(); + else +! ts = (int)get_sts_value(); + /* Compute the virtual column where we want to be. Since + * 'showbreak' may get in the way, need to get the last column of + * the previous character. */ +*************** +*** 9590,9596 **** + */ + if (!curbuf->b_p_et + && !(p_sta && ind && curbuf->b_p_ts != get_sw_value()) +! && curbuf->b_p_sts == 0) + return TRUE; + + if (stop_arrow() == FAIL) +--- 9590,9596 ---- + */ + if (!curbuf->b_p_et + && !(p_sta && ind && curbuf->b_p_ts != get_sw_value()) +! && get_sts_value() == 0) + return TRUE; + + if (stop_arrow() == FAIL) +*************** +*** 9606,9613 **** + + if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */ + temp = (int)get_sw_value(); +! else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */ +! temp = (int)curbuf->b_p_sts; + else /* otherwise use 'tabstop' */ + temp = (int)curbuf->b_p_ts; + temp -= get_nolist_virtcol() % temp; +--- 9606,9613 ---- + + if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */ + temp = (int)get_sw_value(); +! else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */ +! temp = (int)get_sts_value(); + else /* otherwise use 'tabstop' */ + temp = (int)curbuf->b_p_ts; + temp -= get_nolist_virtcol() % temp; +*************** +*** 9635,9641 **** + /* + * When 'expandtab' not set: Replace spaces by TABs where possible. + */ +! if (!curbuf->b_p_et && (curbuf->b_p_sts || (p_sta && ind))) + { + char_u *ptr; + #ifdef FEAT_VREPLACE +--- 9635,9641 ---- + /* + * When 'expandtab' not set: Replace spaces by TABs where possible. + */ +! if (!curbuf->b_p_et && (get_sts_value() || (p_sta && ind))) + { + char_u *ptr; + #ifdef FEAT_VREPLACE +*** ../vim-7.3.692/src/option.c 2012-08-08 18:01:00.000000000 +0200 +--- src/option.c 2012-10-21 00:05:06.000000000 +0200 +*************** +*** 8509,8519 **** + p_window = Rows - 1; + } + +- if (curbuf->b_p_sts < 0) +- { +- errmsg = e_positive; +- curbuf->b_p_sts = 0; +- } + if (curbuf->b_p_ts <= 0) + { + errmsg = e_positive; +--- 8509,8514 ---- +*************** +*** 11429,11431 **** +--- 11424,11436 ---- + { + return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts; + } ++ ++ /* ++ * Return the effective softtabstop value for the current buffer, using the ++ * 'tabstop' value when 'softtabstop' is negative. ++ */ ++ long ++ get_sts_value() ++ { ++ return curbuf->b_p_sts < 0 ? get_sw_value() : curbuf->b_p_sts; ++ } +*** ../vim-7.3.692/src/proto/option.pro 2012-08-08 18:01:00.000000000 +0200 +--- src/proto/option.pro 2012-10-21 00:01:59.000000000 +0200 +*************** +*** 57,60 **** +--- 57,61 ---- + int file_ff_differs __ARGS((buf_T *buf, int ignore_empty)); + int check_ff_value __ARGS((char_u *p)); + long get_sw_value __ARGS((void)); ++ long get_sts_value __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.3.692/src/version.c 2012-10-18 05:18:27.000000000 +0200 +--- src/version.c 2012-10-21 00:07:19.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 693, + /**/ + +-- +FIRST VILLAGER: We have found a witch. May we burn her? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 85476a029cdde08b3605e27d8bde6a494e499efd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:00 +0200 Subject: [PATCH 023/291] - patchlevel 694 --- 7.3.694 | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 7.3.694 diff --git a/7.3.694 b/7.3.694 new file mode 100644 index 00000000..89b4bcf7 --- /dev/null +++ b/7.3.694 @@ -0,0 +1,139 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.694 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.694 +Problem: Now that 'shiftwidth' may use the value of 'tabstop' it is not so + easy to use in indent files. +Solution: Add the shiftwidth() function. (so8res) +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.3.693/runtime/doc/eval.txt 2012-06-29 12:54:32.000000000 +0200 +--- runtime/doc/eval.txt 2012-10-21 00:43:22.000000000 +0200 +*************** +*** 1921,1926 **** +--- 1932,1938 ---- + shellescape( {string} [, {special}]) + String escape {string} for use as shell + command argument ++ shiftwidth() Number effective value of 'shiftwidth' + simplify( {filename}) String simplify filename as much as possible + sin( {expr}) Float sine of {expr} + sinh( {expr}) Float hyperbolic sine of {expr} +*************** +*** 3732,3741 **** + Like |input()|, but when the GUI is running and text dialogs + are supported, a dialog window pops up to input the text. + Example: > +! :let n = inputdialog("value for shiftwidth", &sw) +! :if n != "" +! : let &sw = n +! :endif + < When the dialog is cancelled {cancelreturn} is returned. When + omitted an empty string is returned. + Hitting works like pressing the OK button. Hitting +--- 3755,3764 ---- + Like |input()|, but when the GUI is running and text dialogs + are supported, a dialog window pops up to input the text. + Example: > +! :let n = inputdialog("value for shiftwidth", shiftwidth()) +! :if n != "" +! : let &sw = n +! :endif + < When the dialog is cancelled {cancelreturn} is returned. When + omitted an empty string is returned. + Hitting works like pressing the OK button. Hitting +*************** +*** 5308,5313 **** +--- 5332,5354 ---- + :call system("chmod +w -- " . shellescape(expand("%"))) + + ++ shiftwidth() *shiftwidth()* ++ Returns the effective value of 'shiftwidth'. This is the ++ 'shiftwidth' value unless it is zero, in which case it is the ++ 'tabstop' value. To be backwards compatible in indent ++ plugins, use this: > ++ if exists('*shiftwidth') ++ func s:sw() ++ return shiftwidth() ++ endfunc ++ else ++ func s:sw() ++ return &sw ++ endfunc ++ endif ++ < And then use s:sw() instead of &sw. ++ ++ + simplify({filename}) *simplify()* + Simplify the file name as much as possible without changing + the meaning. Shortcuts (on MS-Windows) or symbolic links (on +*** ../vim-7.3.693/src/eval.c 2012-08-08 14:33:16.000000000 +0200 +--- src/eval.c 2012-10-21 00:29:15.000000000 +0200 +*************** +*** 687,692 **** +--- 687,693 ---- + static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv)); + #ifdef FEAT_FLOAT + static void f_sin __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 8051,8056 **** +--- 8052,8058 ---- + {"settabwinvar", 4, 4, f_settabwinvar}, + {"setwinvar", 3, 3, f_setwinvar}, + {"shellescape", 1, 2, f_shellescape}, ++ {"shiftwidth", 0, 0, f_shiftwidth}, + {"simplify", 1, 1, f_simplify}, + #ifdef FEAT_FLOAT + {"sin", 1, 1, f_sin}, +*************** +*** 16652,16657 **** +--- 16654,16670 ---- + } + + /* ++ * shiftwidth() function ++ */ ++ static void ++ f_shiftwidth(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = get_sw_value(); ++ } ++ ++ /* + * "simplify()" function + */ + static void +*** ../vim-7.3.693/src/version.c 2012-10-21 00:10:29.000000000 +0200 +--- src/version.c 2012-10-21 00:30:27.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 694, + /**/ + +-- +CRONE: Who sent you? +ARTHUR: The Knights Who Say GNU! +CRONE: Aaaagh! (she looks around in rear) No! We have no licenses here. + "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD + + /// 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 /// From d8bb874c67835f7521d36a2937abc40e71f88c26 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:01 +0200 Subject: [PATCH 024/291] - patchlevel 695 --- 7.3.695 | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 7.3.695 diff --git a/7.3.695 b/7.3.695 new file mode 100644 index 00000000..32010535 --- /dev/null +++ b/7.3.695 @@ -0,0 +1,129 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.695 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.695 +Problem: Balloon cannot show multi-byte text. +Solution: Properly deal with multi-byte characters. (Dominique Pelle) +Files: src/gui_beval.c, src/ui.c + + +*** ../vim-7.3.694/src/gui_beval.c 2010-08-15 21:57:28.000000000 +0200 +--- src/gui_beval.c 2012-10-21 00:54:19.000000000 +0200 +*************** +*** 359,365 **** + } + } + +! col = vcol2col(wp, lnum, col) - 1; + + if (VIsual_active + && wp->w_buffer == curwin->w_buffer +--- 359,365 ---- + } + } + +! col = vcol2col(wp, lnum, col); + + if (VIsual_active + && wp->w_buffer == curwin->w_buffer +*************** +*** 377,384 **** + return FAIL; + + lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE); +! lbuf = vim_strnsave(lbuf + spos->col, +! epos->col - spos->col + (*p_sel != 'e')); + lnum = spos->lnum; + col = spos->col; + } +--- 377,386 ---- + return FAIL; + + lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE); +! len = epos->col - spos->col; +! if (*p_sel != 'e') +! len += MB_PTR2LEN(lbuf + epos->col); +! lbuf = vim_strnsave(lbuf + spos->col, len); + lnum = spos->lnum; + col = spos->col; + } +*** ../vim-7.3.694/src/ui.c 2012-08-29 16:26:01.000000000 +0200 +--- src/ui.c 2012-10-21 00:50:17.000000000 +0200 +*************** +*** 98,104 **** + #endif + + /* +! * ui_inchar(): low level input funcion. + * Get characters from the keyboard. + * Return the number of characters that are available. + * If "wtime" == 0 do not wait for characters. +--- 98,104 ---- + #endif + + /* +! * ui_inchar(): low level input function. + * Get characters from the keyboard. + * Return the number of characters that are available. + * If "wtime" == 0 do not wait for characters. +*************** +*** 493,499 **** + } + } + #else +! /* Only own the clibpard when we didn't own it yet. */ + if (!cbd->owned && cbd->available) + cbd->owned = (clip_gen_own_selection(cbd) == OK); + #endif +--- 493,499 ---- + } + } + #else +! /* Only own the clipboard when we didn't own it yet. */ + if (!cbd->owned && cbd->available) + cbd->owned = (clip_gen_own_selection(cbd) == OK); + #endif +*************** +*** 3132,3138 **** + char_u *start; + + start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE); +! while (count <= vcol && *ptr != NUL) + { + count += win_lbr_chartabsize(wp, ptr, count, NULL); + mb_ptr_adv(ptr); +--- 3132,3138 ---- + char_u *start; + + start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE); +! while (count < vcol && *ptr != NUL) + { + count += win_lbr_chartabsize(wp, ptr, count, NULL); + mb_ptr_adv(ptr); +*** ../vim-7.3.694/src/version.c 2012-10-21 00:44:59.000000000 +0200 +--- src/version.c 2012-10-21 00:50:32.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 695, + /**/ + +-- +BEDEVERE: Why do you think she is a witch? +SECOND VILLAGER: She turned me into a newt. +BEDEVERE: A newt? +SECOND VILLAGER: (After looking at himself for some time) I got better. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From bcbedee75ec8a21f8dfbe4d3e16f65b2f2fd3831 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:02 +0200 Subject: [PATCH 025/291] - patchlevel 696 --- 7.3.696 | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 7.3.696 diff --git a/7.3.696 b/7.3.696 new file mode 100644 index 00000000..9084022e --- /dev/null +++ b/7.3.696 @@ -0,0 +1,89 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.696 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.696 +Problem: Message about added spell language can be wrong. +Solution: Give correct message. Add g:menutrans_set_lang_to to allow for + translation. (Jiri Sedlak) +Files: runtime/menu.vim + + +*** ../vim-7.3.695/runtime/menu.vim 2010-08-15 21:57:11.000000000 +0200 +--- runtime/menu.vim 2012-10-21 01:17:27.000000000 +0200 +*************** +*** 434,439 **** +--- 434,443 ---- + let enc = &enc + endif + ++ if !exists("g:menutrans_set_lang_to") ++ let g:menutrans_set_lang_to = 'Set language to' ++ endif ++ + let found = 0 + let s = globpath(&rtp, "spell/*." . enc . ".spl") + if s != "" +*************** +*** 441,448 **** + for f in split(s, "\n") + let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "") + if nm != "en" && nm !~ '/' + let found += 1 +! let menuname = '&Tools.&Spelling.Set\ language\ to\ "' . nm . '"' + exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell' + let s:undo_spellang += ['aun ' . menuname] + endif +--- 445,453 ---- + for f in split(s, "\n") + let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "") + if nm != "en" && nm !~ '/' ++ let _nm = nm + let found += 1 +! let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"' + exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell' + let s:undo_spellang += ['aun ' . menuname] + endif +*************** +*** 452,458 **** + if found == 0 + echomsg "Could not find other spell files" + elseif found == 1 +! echomsg "Found spell file " . nm + else + echomsg "Found " . found . " more spell files" + endif +--- 457,463 ---- + if found == 0 + echomsg "Could not find other spell files" + elseif found == 1 +! echomsg "Found spell file " . _nm + else + echomsg "Found " . found . " more spell files" + endif +*** ../vim-7.3.695/src/version.c 2012-10-21 00:58:34.000000000 +0200 +--- src/version.c 2012-10-21 01:15:00.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 696, + /**/ + +-- +BEDEVERE: And what do you burn, apart from witches? +FOURTH VILLAGER: ... Wood? +BEDEVERE: So why do witches burn? +SECOND VILLAGER: (pianissimo) ... Because they're made of wood...? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From a50f2d86707f2743927ab8eebc4b439bf7304b51 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:03 +0200 Subject: [PATCH 026/291] - patchlevel 697 --- 7.3.697 | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 7.3.697 diff --git a/7.3.697 b/7.3.697 new file mode 100644 index 00000000..b8d7814a --- /dev/null +++ b/7.3.697 @@ -0,0 +1,188 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.697 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.697 +Problem: Leaking resources when setting GUI font. +Solution: Free the font. (Ken Takata) +Files: src/syntax.c + + +*** ../vim-7.3.696/src/syntax.c 2012-07-19 17:39:01.000000000 +0200 +--- src/syntax.c 2012-10-21 01:37:19.000000000 +0200 +*************** +*** 105,111 **** + # ifdef FEAT_XFONTSET + static GuiFontset fontset_name2handle __ARGS((char_u *name, int fixed_width)); + # endif +! static void hl_do_font __ARGS((int idx, char_u *arg, int do_normal, int do_menu, int do_tooltip)); + #endif + + /* +--- 105,111 ---- + # ifdef FEAT_XFONTSET + static GuiFontset fontset_name2handle __ARGS((char_u *name, int fixed_width)); + # endif +! static void hl_do_font __ARGS((int idx, char_u *arg, int do_normal, int do_menu, int do_tooltip, int free_font)); + #endif + + /* +*************** +*** 7259,7272 **** + HL_TABLE()[idx].sg_fontset = NOFONTSET; + # endif + hl_do_font(idx, arg, is_normal_group, is_menu_group, +! is_tooltip_group); + + # ifdef FEAT_XFONTSET + if (HL_TABLE()[idx].sg_fontset != NOFONTSET) + { +! /* New fontset was accepted. Free the old one, if there was +! * one. +! */ + gui_mch_free_fontset(temp_sg_fontset); + vim_free(HL_TABLE()[idx].sg_font_name); + HL_TABLE()[idx].sg_font_name = vim_strsave(arg); +--- 7259,7271 ---- + HL_TABLE()[idx].sg_fontset = NOFONTSET; + # endif + hl_do_font(idx, arg, is_normal_group, is_menu_group, +! is_tooltip_group, FALSE); + + # ifdef FEAT_XFONTSET + if (HL_TABLE()[idx].sg_fontset != NOFONTSET) + { +! /* New fontset was accepted. Free the old one, if there +! * was one. */ + gui_mch_free_fontset(temp_sg_fontset); + vim_free(HL_TABLE()[idx].sg_font_name); + HL_TABLE()[idx].sg_font_name = vim_strsave(arg); +*************** +*** 7277,7284 **** + if (HL_TABLE()[idx].sg_font != NOFONT) + { + /* New font was accepted. Free the old one, if there was +! * one. +! */ + gui_mch_free_font(temp_sg_font); + vim_free(HL_TABLE()[idx].sg_font_name); + HL_TABLE()[idx].sg_font_name = vim_strsave(arg); +--- 7276,7282 ---- + if (HL_TABLE()[idx].sg_font != NOFONT) + { + /* New font was accepted. Free the old one, if there was +! * one. */ + gui_mch_free_font(temp_sg_font); + vim_free(HL_TABLE()[idx].sg_font_name); + HL_TABLE()[idx].sg_font_name = vim_strsave(arg); +*************** +*** 8064,8075 **** + * Get the font or fontset for one highlight group. + */ + static void +! hl_do_font(idx, arg, do_normal, do_menu, do_tooltip) + int idx; + char_u *arg; + int do_normal; /* set normal font */ + int do_menu UNUSED; /* set menu font */ + int do_tooltip UNUSED; /* set tooltip font */ + { + # ifdef FEAT_XFONTSET + /* If 'guifontset' is not empty, first try using the name as a +--- 8062,8074 ---- + * Get the font or fontset for one highlight group. + */ + static void +! hl_do_font(idx, arg, do_normal, do_menu, do_tooltip, free_font) + int idx; + char_u *arg; + int do_normal; /* set normal font */ + int do_menu UNUSED; /* set menu font */ + int do_tooltip UNUSED; /* set tooltip font */ ++ int free_font; /* free current font/fontset */ + { + # ifdef FEAT_XFONTSET + /* If 'guifontset' is not empty, first try using the name as a +*************** +*** 8083,8088 **** +--- 8082,8089 ---- + || do_tooltip + # endif + ) ++ if (free_fontset) ++ gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset); + HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0 + # ifdef FONTSET_ALWAYS + || do_menu +*************** +*** 8093,8100 **** + ); + if (HL_TABLE()[idx].sg_fontset != NOFONTSET) + { +! /* If it worked and it's the Normal group, use it as the +! * normal fontset. Same for the Menu group. */ + if (do_normal) + gui_init_font(arg, TRUE); + # if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU) +--- 8094,8101 ---- + ); + if (HL_TABLE()[idx].sg_fontset != NOFONTSET) + { +! /* If it worked and it's the Normal group, use it as the normal +! * fontset. Same for the Menu group. */ + if (do_normal) + gui_init_font(arg, TRUE); + # if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU) +*************** +*** 8126,8131 **** +--- 8127,8134 ---- + else + # endif + { ++ if (free_font) ++ gui_mch_free_font(HL_TABLE()[idx].sg_font); + HL_TABLE()[idx].sg_font = font_name2handle(arg); + /* If it worked and it's the Normal group, use it as the + * normal font. Same for the Menu group. */ +*************** +*** 9162,9168 **** + if (HL_TABLE()[idx].sg_font_name != NULL) + { + hl_do_font(idx, HL_TABLE()[idx].sg_font_name, FALSE, do_menu, +! do_tooltip); + didit = TRUE; + } + if (HL_TABLE()[idx].sg_gui_fg_name != NULL) +--- 9165,9171 ---- + if (HL_TABLE()[idx].sg_font_name != NULL) + { + hl_do_font(idx, HL_TABLE()[idx].sg_font_name, FALSE, do_menu, +! do_tooltip, TRUE); + didit = TRUE; + } + if (HL_TABLE()[idx].sg_gui_fg_name != NULL) +*** ../vim-7.3.696/src/version.c 2012-10-21 01:21:53.000000000 +0200 +--- src/version.c 2012-10-21 01:27:55.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 697, + /**/ + +-- +BEDEVERE: Wait. Wait ... tell me, what also floats on water? +ALL: Bread? No, no, no. Apples .... gravy ... very small rocks ... +ARTHUR: A duck. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 3ce828eae7a4e2cf34b791ff8c60c8aef5cd408f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:05 +0200 Subject: [PATCH 027/291] - patchlevel 698 --- 7.3.698 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.3.698 diff --git a/7.3.698 b/7.3.698 new file mode 100644 index 00000000..57b37d6c --- /dev/null +++ b/7.3.698 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.698 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.698 +Problem: Python 3 does not preserve state beween commands. +Solution: Preserve the state. (Paul Ollis) +Files: src/if_python.c, src/if_python3.c + + +*** ../vim-7.3.697/src/if_python.c 2012-10-14 05:20:05.000000000 +0200 +--- src/if_python.c 2012-10-21 01:44:10.000000000 +0200 +*************** +*** 740,748 **** + #else + PyMac_Initialize(); + #endif +! /* Initialise threads and save the state using PyGILState_Ensure. +! * Without this call, thread-specific state (such as the system trace +! * hook), will be lost between invocations of Python code. */ + PyEval_InitThreads(); + pygilstate = PyGILState_Ensure(); + #ifdef DYNAMIC_PYTHON +--- 740,749 ---- + #else + PyMac_Initialize(); + #endif +! /* Initialise threads, and save the state using PyGILState_Ensure. +! * Without the call to PyGILState_Ensure, thread specific state (such +! * as the system trace hook), will be lost between invocations of +! * Python code. */ + PyEval_InitThreads(); + pygilstate = PyGILState_Ensure(); + #ifdef DYNAMIC_PYTHON +*** ../vim-7.3.697/src/if_python3.c 2012-10-14 03:22:49.000000000 +0200 +--- src/if_python3.c 2012-10-21 01:44:37.000000000 +0200 +*************** +*** 731,738 **** + #else + PyMac_Initialize(); + #endif +! /* initialise threads, must be after Py_Initialize() */ + PyEval_InitThreads(); + + #ifdef DYNAMIC_PYTHON3 + get_py3_exceptions(); +--- 731,742 ---- + #else + PyMac_Initialize(); + #endif +! /* Initialise threads, and save the state using PyGILState_Ensure. +! * Without the call to PyGILState_Ensure, thread specific state (such +! * as the system trace hook), will be lost between invocations of +! * Python code. */ + PyEval_InitThreads(); ++ pygilstate = PyGILState_Ensure(); + + #ifdef DYNAMIC_PYTHON3 + get_py3_exceptions(); +*** ../vim-7.3.697/src/version.c 2012-10-21 01:40:24.000000000 +0200 +--- src/version.c 2012-10-21 01:42:44.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 698, + /**/ + +-- +ALL: A witch! A witch! +WITCH: It's a fair cop. +ALL: Burn her! Burn her! Let's make her into a ladder. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 30230d1aaa3a82f6887030806b00e44f97787701 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:05 +0200 Subject: [PATCH 028/291] - patchlevel 699 --- 7.3.699 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.3.699 diff --git a/7.3.699 b/7.3.699 new file mode 100644 index 00000000..6efc8695 --- /dev/null +++ b/7.3.699 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.699 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.699 +Problem: When 'ttymouse' is set to "sgr" manually, it is overruled by + automatic detection. +Solution: Do not use automatic detection when 'ttymouse' was set manually. + (Hayaki Saito) +Files: src/term.c + + +*** ../vim-7.3.698/src/term.c 2012-08-29 16:26:01.000000000 +0200 +--- src/term.c 2012-10-21 02:07:25.000000000 +0200 +*************** +*** 4079,4102 **** + + if (tp[1 + (tp[0] != CSI)] == '>' && j == 2) + { + # ifdef TTYM_SGR +! if (extra >= 277 +! # ifdef TTYM_URXVT +! && ttym_flags != TTYM_URXVT +! # endif +! ) +! set_option_value((char_u *)"ttym", 0L, + (char_u *)"sgr", 0); +! else + # endif +! /* if xterm version >= 95 use mouse dragging */ +! if (extra >= 95 +! # ifdef TTYM_URXVT +! && ttym_flags != TTYM_URXVT +! # endif +! ) +! set_option_value((char_u *)"ttym", 0L, + (char_u *)"xterm2", 0); + /* if xterm version >= 141 try to get termcap codes */ + if (extra >= 141) + { +--- 4079,4100 ---- + + if (tp[1 + (tp[0] != CSI)] == '>' && j == 2) + { ++ /* Only set 'ttymouse' automatically if it was not set ++ * by the user already. */ ++ if (!option_was_set((char_u *)"ttym")) ++ { + # ifdef TTYM_SGR +! if (extra >= 277) +! set_option_value((char_u *)"ttym", 0L, + (char_u *)"sgr", 0); +! else + # endif +! /* if xterm version >= 95 use mouse dragging */ +! if (extra >= 95) +! set_option_value((char_u *)"ttym", 0L, + (char_u *)"xterm2", 0); ++ } ++ + /* if xterm version >= 141 try to get termcap codes */ + if (extra >= 141) + { +*** ../vim-7.3.698/src/version.c 2012-10-21 01:46:56.000000000 +0200 +--- src/version.c 2012-10-21 02:09:17.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 699, + /**/ + +-- +Never under any circumstances take a sleeping pill +and a laxative on the same night. + + /// 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 /// From d22fb15cafb718e1b19c6721c49ea1b55c1777fc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:07 +0200 Subject: [PATCH 029/291] - patchlevel 700 --- 7.3.700 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.700 diff --git a/7.3.700 b/7.3.700 new file mode 100644 index 00000000..a1b530eb --- /dev/null +++ b/7.3.700 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.700 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.700 +Problem: Cannot detect URXVT and SGR mouse support. +Solution: add +mouse_urxvt and +mouse_sgr. (Hayaki Saito) +Files: src/feature.h, src/eval.c + + +*** ../vim-7.3.699/src/feature.h 2012-08-15 16:20:59.000000000 +0200 +--- src/feature.h 2012-10-21 02:13:36.000000000 +0200 +*************** +*** 1038,1045 **** +--- 1038,1047 ---- + * +mouse_gpm Unix only: Include code for Linux console mouse + * handling. + * +mouse_pterm PTerm mouse support for QNX ++ * +mouse_sgr Unix only: Include code for for SGR-styled mouse. + * +mouse_sysmouse Unix only: Include code for FreeBSD and DragonFly + * console mouse handling. ++ * +mouse_urxvt Unix only: Include code for for urxvt mosue handling. + * +mouse Any mouse support (any of the above enabled). + */ + /* OS/2 and Amiga console have no mouse support */ +*** ../vim-7.3.699/src/eval.c 2012-10-21 00:44:59.000000000 +0200 +--- src/eval.c 2012-10-21 02:12:48.000000000 +0200 +*************** +*** 12276,12284 **** +--- 12276,12290 ---- + # ifdef FEAT_MOUSE_PTERM + "mouse_pterm", + # endif ++ # ifdef FEAT_MOUSE_SGR ++ "mouse_sgr", ++ # endif + # ifdef FEAT_SYSMOUSE + "mouse_sysmouse", + # endif ++ # ifdef FEAT_MOUSE_URXVT ++ "mouse_urxvt", ++ # endif + # ifdef FEAT_MOUSE_XTERM + "mouse_xterm", + # endif +*** ../vim-7.3.699/src/version.c 2012-10-21 02:10:20.000000000 +0200 +--- src/version.c 2012-10-21 02:15:32.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 700, + /**/ + +-- +If you had to identify, in one word, the reason why the +human race has not achieved, and never will achieve, its +full potential, that word would be "meetings." + + /// 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 /// From f615fd9a421702b061d1ecfd6d8b1b46b7c21b26 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:09 +0200 Subject: [PATCH 030/291] - patchlevel 701 --- 7.3.701 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.3.701 diff --git a/7.3.701 b/7.3.701 new file mode 100644 index 00000000..1c17aab6 --- /dev/null +++ b/7.3.701 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.701 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.701 +Problem: MS-Windows: Crash with stack overflow when setting 'encoding'. +Solution: Handle that loading the iconv library may be called recursively. + (Jiri Sedlak) +Files: src/os_win32.c + + +*** ../vim-7.3.700/src/os_win32.c 2012-08-02 12:31:40.000000000 +0200 +--- src/os_win32.c 2012-10-21 02:35:21.000000000 +0200 +*************** +*** 288,305 **** + vimLoadLib(char *name) + { + HINSTANCE dll = NULL; +! char old_dir[MAXPATHL]; + + if (exe_path == NULL) + get_exe_name(); +! if (exe_path != NULL && mch_dirname(old_dir, MAXPATHL) == OK) + { + /* Change directory to where the executable is, both to make sure we + * find a .dll there and to avoid looking for a .dll in the current + * directory. */ +! mch_chdir(exe_path); + dll = LoadLibrary(name); +- mch_chdir(old_dir); + } + return dll; + } +--- 288,313 ---- + vimLoadLib(char *name) + { + HINSTANCE dll = NULL; +! TCHAR old_dir[MAXPATHL]; + ++ /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call ++ * vimLoadLib() recursively, which causes a stack overflow. */ + if (exe_path == NULL) + get_exe_name(); +! if (exe_path != NULL && GetCurrentDirectory(MAXPATHL, old_dir) != 0) + { + /* Change directory to where the executable is, both to make sure we + * find a .dll there and to avoid looking for a .dll in the current + * directory. */ +! SetCurrentDirectory(exe_path); +! dll = LoadLibrary(name); +! SetCurrentDirectory(old_dir); +! } +! else +! { +! /* We are not able to change directory to where the executable is, try +! * to load library anyway. */ + dll = LoadLibrary(name); + } + return dll; + } +*** ../vim-7.3.700/src/version.c 2012-10-21 02:17:28.000000000 +0200 +--- src/version.c 2012-10-21 02:35:48.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 701, + /**/ + +-- +BEDEVERE: And that, my lord, is how we know the Earth to be banana-shaped. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 026474bdc05a79a725d82cfe41781cc403d1324b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:12 +0200 Subject: [PATCH 031/291] - patchlevel 702 --- 7.3.702 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.3.702 diff --git a/7.3.702 b/7.3.702 new file mode 100644 index 00000000..d36f96c7 --- /dev/null +++ b/7.3.702 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.702 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.702 +Problem: Nmake from VS6 service pack 6 is not recognized. +Solution: Detect the version number. (Jiri Sedlak) +Files: src/Make_mvc.mak + + +*** ../vim-7.3.701/src/Make_mvc.mak 2012-09-18 22:00:02.000000000 +0200 +--- src/Make_mvc.mak 2012-10-21 02:38:21.000000000 +0200 +*************** +*** 373,378 **** +--- 373,382 ---- + MSVCVER = 6.0 + CPU = ix86 + !endif ++ !if "$(_NMAKE_VER)" == "6.00.9782.0" ++ MSVCVER = 6.0 ++ CPU = ix86 ++ !endif + !if "$(_NMAKE_VER)" == "7.00.9466" + MSVCVER = 7.0 + !endif +*** ../vim-7.3.701/src/version.c 2012-10-21 02:37:02.000000000 +0200 +--- src/version.c 2012-10-21 02:40:00.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 702, + /**/ + +-- +Back off man, I'm a scientist. + -- Peter, Ghostbusters + + /// 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 /// From 6fe298c7d2fd6c1a49ba746165127f0f043f6b04 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:13 +0200 Subject: [PATCH 032/291] - patchlevel 703 --- 7.3.703 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 7.3.703 diff --git a/7.3.703 b/7.3.703 new file mode 100644 index 00000000..c9f0c8a9 --- /dev/null +++ b/7.3.703 @@ -0,0 +1,97 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.703 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.703 +Problem: When 'undofile' is reset the hash is computed unnecessarily. +Solution: Only compute the hash when the option was set. (Christian Brabandt) +Files: src/option.c + + +*** ../vim-7.3.702/src/option.c 2012-10-21 00:10:29.000000000 +0200 +--- src/option.c 2012-10-21 03:42:10.000000000 +0200 +*************** +*** 7573,7596 **** + /* 'undofile' */ + else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf) + { +! char_u hash[UNDO_HASH_SIZE]; +! buf_T *save_curbuf = curbuf; +! +! for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next) + { +! /* When 'undofile' is set globally: for every buffer, otherwise +! * only for the current buffer: Try to read in the undofile, if +! * one exists and the buffer wasn't changed and the buffer was +! * loaded. */ +! if ((curbuf == save_curbuf +! || (opt_flags & OPT_GLOBAL) || opt_flags == 0) +! && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL) + { +! u_compute_hash(hash); +! u_read_undo(NULL, hash, curbuf->b_fname); + } + } +- curbuf = save_curbuf; + } + #endif + +--- 7573,7602 ---- + /* 'undofile' */ + else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf) + { +! /* Only take action when the option was set. When reset we do not +! * delete the undo file, the option may be set again without making +! * any changes in between. */ +! if (curbuf->b_p_udf || p_udf) + { +! char_u hash[UNDO_HASH_SIZE]; +! buf_T *save_curbuf = curbuf; +! +! for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next) + { +! /* When 'undofile' is set globally: for every buffer, otherwise +! * only for the current buffer: Try to read in the undofile, +! * if one exists, the buffer wasn't changed and the buffer was +! * loaded */ +! if ((curbuf == save_curbuf +! || (opt_flags & OPT_GLOBAL) || opt_flags == 0) +! && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL) +! { +! u_compute_hash(hash); +! u_read_undo(NULL, hash, curbuf->b_fname); +! } + } ++ curbuf = save_curbuf; + } + } + #endif + +*** ../vim-7.3.702/src/version.c 2012-10-21 02:41:04.000000000 +0200 +--- src/version.c 2012-10-21 03:43:29.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 703, + /**/ + +-- +Scientists decoded the first message from an alien civilization: + SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR +SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT +YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER +STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE +ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS +MAXIMUM! IT REALLY WORKS! + + /// 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 /// From 8880eecd4e082cac07f4eeef48f6e9fa81e874e2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:14 +0200 Subject: [PATCH 033/291] - patchlevel 704 --- 7.3.704 | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 7.3.704 diff --git a/7.3.704 b/7.3.704 new file mode 100644 index 00000000..3b262bc4 --- /dev/null +++ b/7.3.704 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.704 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.704 +Problem: Repeating "cgn" does not always work correctly. +Solution: Also fetch the operator character. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.3.703/src/normal.c 2012-08-15 13:30:55.000000000 +0200 +--- src/normal.c 2012-10-21 03:51:38.000000000 +0200 +*************** +*** 960,967 **** + #ifdef FEAT_CMDL_INFO + need_flushbuf |= add_to_showcmd(ca.nchar); + #endif + if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`' +! || ca.nchar == Ctrl_BSL) + { + cp = &ca.extra_char; /* need to get a third character */ + if (ca.nchar != 'r') +--- 960,970 ---- + #ifdef FEAT_CMDL_INFO + need_flushbuf |= add_to_showcmd(ca.nchar); + #endif ++ /* For "gn" from redo, need to get one more char to determine the ++ * operator */ + if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`' +! || ca.nchar == Ctrl_BSL +! || ((ca.nchar == 'n' || ca.nchar == 'N') && !stuff_empty())) + { + cp = &ca.extra_char; /* need to get a third character */ + if (ca.nchar != 'r') +*************** +*** 1083,1088 **** +--- 1086,1093 ---- + ca.nchar = ca.extra_char; + idx = find_command(ca.cmdchar); + } ++ else if (ca.nchar == 'n' || ca.nchar == 'N') ++ ca.oap->op_type = get_op_type(*cp, NUL); + else if (*cp == Ctrl_BSL) + { + long towait = (p_ttm >= 0 ? p_ttm : p_tm); +*************** +*** 8009,8015 **** + #ifdef FEAT_VISUAL + if (!current_search(cap->count1, cap->nchar == 'n')) + #endif +! beep_flush(); + break; + + /* +--- 8014,8020 ---- + #ifdef FEAT_VISUAL + if (!current_search(cap->count1, cap->nchar == 'n')) + #endif +! clearopbeep(oap); + break; + + /* +*** ../vim-7.3.703/src/version.c 2012-10-21 03:45:57.000000000 +0200 +--- src/version.c 2012-10-21 03:53:51.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 704, + /**/ + +-- +The word "leader" is derived from the word "lead", as in the material that +bullets are made out of. The term "leader" was popularized at about the same +time as the invention of firearms. It grew out of the observation that the +person in charge of every organization was the person whom everyone wanted to +fill with hot lead. + I don't recomment this; it's just a point of historical interest. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 355fcbd83ec2e6e172f5a79ccee22421f4929ab3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:15 +0200 Subject: [PATCH 034/291] - patchlevel 705 --- 7.3.705 | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 7.3.705 diff --git a/7.3.705 b/7.3.705 new file mode 100644 index 00000000..6a642e58 --- /dev/null +++ b/7.3.705 @@ -0,0 +1,122 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.705 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.705 +Problem: Mouse features are not sorted properly. (Tony Mechelynck) +Solution: Put the mouse features in alphabetical order. +Files: src/version.c + + +*** ../vim-7.3.704/src/version.c 2012-10-21 03:54:27.000000000 +0200 +--- src/version.c 2012-10-21 03:59:04.000000000 +0200 +*************** +*** 348,353 **** +--- 348,354 ---- + # else + "-mouse", + #endif ++ + #if defined(UNIX) || defined(VMS) + # ifdef FEAT_MOUSE_DEC + "+mouse_dec", +*************** +*** 369,402 **** + # else + "-mouse_netterm", + # endif + # ifdef FEAT_SYSMOUSE + "+mouse_sysmouse", + # else + "-mouse_sysmouse", + # endif +- # ifdef FEAT_MOUSE_XTERM +- "+mouse_xterm", +- # else +- "-mouse_xterm", +- # endif + # ifdef FEAT_MOUSE_URXVT + "+mouse_urxvt", + # else + "-mouse_urxvt", + # endif +! # ifdef FEAT_MOUSE_SGR +! "+mouse_sgr", +! # else +! "-mouse_sgr", +! # endif +! #endif +! #ifdef __QNX__ +! # ifdef FEAT_MOUSE_PTERM +! "+mouse_pterm", + # else +! "-mouse_pterm", + # endif + #endif + #ifdef FEAT_MBYTE_IME + # ifdef DYNAMIC_IME + "+multi_byte_ime/dyn", +--- 370,408 ---- + # else + "-mouse_netterm", + # endif ++ #endif ++ ++ #ifdef __QNX__ ++ # ifdef FEAT_MOUSE_PTERM ++ "+mouse_pterm", ++ # else ++ "-mouse_pterm", ++ # endif ++ #endif ++ ++ #if defined(UNIX) || defined(VMS) ++ # ifdef FEAT_MOUSE_SGR ++ "+mouse_sgr", ++ # else ++ "-mouse_sgr", ++ # endif + # ifdef FEAT_SYSMOUSE + "+mouse_sysmouse", + # else + "-mouse_sysmouse", + # endif + # ifdef FEAT_MOUSE_URXVT + "+mouse_urxvt", + # else + "-mouse_urxvt", + # endif +! # ifdef FEAT_MOUSE_XTERM +! "+mouse_xterm", + # else +! "-mouse_xterm", + # endif + #endif ++ + #ifdef FEAT_MBYTE_IME + # ifdef DYNAMIC_IME + "+multi_byte_ime/dyn", +*** ../vim-7.3.704/src/version.c 2012-10-21 03:54:27.000000000 +0200 +--- src/version.c 2012-10-21 03:59:04.000000000 +0200 +*************** +*** 721,722 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 705, + /**/ + +-- +Are leaders born or made? And if they're made, can we return them under +warranty? + (Scott Adams - The Dilbert principle) + + /// 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 /// From 1fcea193967774d9c76105f2a558b43ba722a476 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:16 +0200 Subject: [PATCH 035/291] - patchlevel 706 --- 7.3.706 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.3.706 diff --git a/7.3.706 b/7.3.706 new file mode 100644 index 00000000..acf74262 --- /dev/null +++ b/7.3.706 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.706 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.706 (after 7.3.697) +Problem: Can't build Motif version. +Solution: Fix wrongly named variable. (Ike Devolder) +Files: src/syntax.c + + +*** ../vim-7.3.705/src/syntax.c 2012-10-21 01:40:24.000000000 +0200 +--- src/syntax.c 2012-10-21 21:22:46.000000000 +0200 +*************** +*** 8082,8088 **** + || do_tooltip + # endif + ) +! if (free_fontset) + gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset); + HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0 + # ifdef FONTSET_ALWAYS +--- 8082,8088 ---- + || do_tooltip + # endif + ) +! if (free_font) + gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset); + HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0 + # ifdef FONTSET_ALWAYS +*** ../vim-7.3.705/src/version.c 2012-10-21 04:00:03.000000000 +0200 +--- src/version.c 2012-10-21 21:25:07.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 706, + /**/ + +-- +"You're fired." (1980) +"You're laid off." (1985) +"You're downsized." (1990) +"You're rightsized." (1992) + (Scott Adams - The Dilbert principle) + + /// 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 /// From fc76dde3e77f2092f5442146b76cce9fd31feb7f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:20 +0200 Subject: [PATCH 036/291] - patchlevel 707 --- 7.3.707 | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 7.3.707 diff --git a/7.3.707 b/7.3.707 new file mode 100644 index 00000000..a541b2e9 --- /dev/null +++ b/7.3.707 @@ -0,0 +1,127 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.707 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.707 (after 7.3.701) +Problem: Problems loading a library for a file name with non-latin + characters. +Solution: Use wide system functions when possible. (Ken Takata) +Files: src/os_win32.c, src/os_win32.h + + +*** ../vim-7.3.706/src/os_win32.c 2012-10-21 02:37:02.000000000 +0200 +--- src/os_win32.c 2012-10-21 21:33:58.000000000 +0200 +*************** +*** 287,313 **** + HINSTANCE + vimLoadLib(char *name) + { +! HINSTANCE dll = NULL; +! TCHAR old_dir[MAXPATHL]; + + /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call + * vimLoadLib() recursively, which causes a stack overflow. */ + if (exe_path == NULL) + get_exe_name(); +! if (exe_path != NULL && GetCurrentDirectory(MAXPATHL, old_dir) != 0) + { +! /* Change directory to where the executable is, both to make sure we +! * find a .dll there and to avoid looking for a .dll in the current +! * directory. */ +! SetCurrentDirectory(exe_path); +! dll = LoadLibrary(name); +! SetCurrentDirectory(old_dir); +! } +! else +! { +! /* We are not able to change directory to where the executable is, try +! * to load library anyway. */ +! dll = LoadLibrary(name); + } + return dll; + } +--- 287,326 ---- + HINSTANCE + vimLoadLib(char *name) + { +! HINSTANCE dll = NULL; +! char old_dir[MAXPATHL]; + + /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call + * vimLoadLib() recursively, which causes a stack overflow. */ + if (exe_path == NULL) + get_exe_name(); +! if (exe_path != NULL) + { +! #ifdef FEAT_MBYTE +! WCHAR old_dirw[MAXPATHL]; +! +! if (GetCurrentDirectoryW(MAXPATHL, old_dirw) != 0) +! { +! /* Change directory to where the executable is, both to make +! * sure we find a .dll there and to avoid looking for a .dll +! * in the current directory. */ +! SetCurrentDirectory(exe_path); +! dll = LoadLibrary(name); +! SetCurrentDirectoryW(old_dirw); +! return dll; +! } +! /* Retry with non-wide function (for Windows 98). */ +! if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) +! #endif +! if (GetCurrentDirectory(MAXPATHL, old_dir) != 0) +! { +! /* Change directory to where the executable is, both to make +! * sure we find a .dll there and to avoid looking for a .dll +! * in the current directory. */ +! SetCurrentDirectory(exe_path); +! dll = LoadLibrary(name); +! SetCurrentDirectory(old_dir); +! } + } + return dll; + } +*** ../vim-7.3.706/src/os_win32.h 2011-08-10 17:07:56.000000000 +0200 +--- src/os_win32.h 2012-10-21 21:33:30.000000000 +0200 +*************** +*** 108,114 **** + */ + #define CMDBUFFSIZE 1024 /* size of the command processing buffer */ + +! /* _MAX_PATH is only 256 (stdlib.h), but we want more for the 'path' option, + * thus use a larger number. */ + #define MAXPATHL 1024 + +--- 108,114 ---- + */ + #define CMDBUFFSIZE 1024 /* size of the command processing buffer */ + +! /* _MAX_PATH is only 260 (stdlib.h), but we want more for the 'path' option, + * thus use a larger number. */ + #define MAXPATHL 1024 + +*** ../vim-7.3.706/src/version.c 2012-10-21 21:25:17.000000000 +0200 +--- src/version.c 2012-10-21 21:37:52.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 707, + /**/ + +-- +Our job was to build a computer information system for the branch banks. We +were the perfect people for the job: Dean had seen a computer once, and I had +heard Dean talk about it. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 4b72b19a9c9c82234d49793c29dbb0514a5ccb44 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:21 +0200 Subject: [PATCH 037/291] - patchlevel 708 --- 7.3.708 | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 7.3.708 diff --git a/7.3.708 b/7.3.708 new file mode 100644 index 00000000..644930d1 --- /dev/null +++ b/7.3.708 @@ -0,0 +1,107 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.708 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.708 +Problem: Filler lines above the first line may be hidden when opening Vim. +Solution: Change how topfill is computed. (Christian Brabandt) +Files: src/diff.c, src/testdir/test47.in, src/testdir/test47.ok + + +*** ../vim-7.3.707/src/diff.c 2012-05-18 18:47:11.000000000 +0200 +--- src/diff.c 2012-10-21 22:08:44.000000000 +0200 +*************** +*** 615,625 **** + #endif + /* A change may have made filler lines invalid, need to take care + * of that for other windows. */ +! if (wp != curwin && wp->w_topfill > 0) + { +- n = diff_check(wp, wp->w_topline); + if (wp->w_topfill > n) + wp->w_topfill = (n < 0 ? 0 : n); + } + } + } +--- 615,627 ---- + #endif + /* A change may have made filler lines invalid, need to take care + * of that for other windows. */ +! n = diff_check(wp, wp->w_topline); +! if ((wp != curwin && wp->w_topfill > 0) || n > 0) + { + if (wp->w_topfill > n) + wp->w_topfill = (n < 0 ? 0 : n); ++ else if (n > 0 && n > wp->w_topfill) ++ wp->w_topfill = n; + } + } + } +*** ../vim-7.3.707/src/testdir/test47.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test47.in 2012-10-21 22:08:44.000000000 +0200 +*************** +*** 36,42 **** + :call append("$", two) + :call append("$", three) + :$-2,$w! test.out +! :unlet one two three + :qa! + ENDTEST + +--- 36,57 ---- + :call append("$", two) + :call append("$", three) + :$-2,$w! test.out +! :" Test that diffing shows correct filler lines +! :diffoff! +! :windo :bw! +! :enew +! :put =range(4,10) +! :1d _ +! :vnew +! :put =range(1,10) +! :1d _ +! :windo :diffthis +! :wincmd h +! :let w0=line('w0') +! :enew +! :put =w0 +! :.w >> test.out +! :unlet! one two three w0 + :qa! + ENDTEST + +*** ../vim-7.3.707/src/testdir/test47.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test47.ok 2012-10-21 22:08:44.000000000 +0200 +*************** +*** 1,3 **** +--- 1,4 ---- + 2-4-5-6-8-9 + 1-2-4-5-8 + 2-3-4-5-6-7-8 ++ 1 +*** ../vim-7.3.707/src/version.c 2012-10-21 21:38:42.000000000 +0200 +--- src/version.c 2012-10-21 22:10:42.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 708, + /**/ + +-- +At some point in the project somebody will start whining about the need to +determine the project "requirements". This involves interviewing people who +don't know what they want but, curiously, know exactly when they need it. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 699b89753ee3d3579e8d3bc7c66bcf41ab5d7cb0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:22 +0200 Subject: [PATCH 038/291] - patchlevel 709 --- 7.3.709 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.3.709 diff --git a/7.3.709 b/7.3.709 new file mode 100644 index 00000000..40c837fc --- /dev/null +++ b/7.3.709 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.709 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.709 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. +Files: src/eval.c + + +*** ../vim-7.3.708/src/eval.c 2012-10-21 02:17:28.000000000 +0200 +--- src/eval.c 2012-10-21 23:53:32.000000000 +0200 +*************** +*** 16664,16670 **** + */ + static void + f_shiftwidth(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = get_sw_value(); +--- 16664,16670 ---- + */ + static void + f_shiftwidth(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = get_sw_value(); +*** ../vim-7.3.708/src/version.c 2012-10-21 22:18:17.000000000 +0200 +--- src/version.c 2012-10-21 23:55:01.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 709, + /**/ + +-- +The only way the average employee can speak to an executive is by taking a +second job as a golf caddie. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 2a4610ed67bcc5bd9ae18fbf4a7253c0a9eae7c7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:22 +0200 Subject: [PATCH 039/291] - patchlevel 710 --- 7.3.710 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.3.710 diff --git a/7.3.710 b/7.3.710 new file mode 100644 index 00000000..bfefea36 --- /dev/null +++ b/7.3.710 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.710 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.710 (after 7.3.704) +Problem: Patch 7.3.704 breaks "fn". +Solution: Add check for ca.cmdchar. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.3.709/src/normal.c 2012-10-21 03:54:27.000000000 +0200 +--- src/normal.c 2012-10-23 05:02:27.000000000 +0200 +*************** +*** 1086,1092 **** + ca.nchar = ca.extra_char; + idx = find_command(ca.cmdchar); + } +! else if (ca.nchar == 'n' || ca.nchar == 'N') + ca.oap->op_type = get_op_type(*cp, NUL); + else if (*cp == Ctrl_BSL) + { +--- 1086,1092 ---- + ca.nchar = ca.extra_char; + idx = find_command(ca.cmdchar); + } +! else if ((ca.nchar == 'n' || ca.nchar == 'N') && ca.cmdchar == 'g') + ca.oap->op_type = get_op_type(*cp, NUL); + else if (*cp == Ctrl_BSL) + { +*** ../vim-7.3.709/src/version.c 2012-10-21 23:55:59.000000000 +0200 +--- src/version.c 2012-10-23 04:59:21.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 710, + /**/ + +-- +The budget process was invented by an alien race of sadistic beings who +resemble large cats. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 4367eaabdfc5594ff8efda16e33a242fc4561472 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:28 +0200 Subject: [PATCH 040/291] - patchlevel 711 --- 7.3.711 | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 7.3.711 diff --git a/7.3.711 b/7.3.711 new file mode 100644 index 00000000..74ef3cbc --- /dev/null +++ b/7.3.711 @@ -0,0 +1,178 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.711 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.711 (after 7.3.688) +Problem: vim.current.buffer is not available. (lilydjwg) +Solution: Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String. + (Ken Takata) +Files: src/if_python3.c + + +*** ../vim-7.3.710/src/if_python3.c 2012-10-21 01:46:56.000000000 +0200 +--- src/if_python3.c 2012-10-23 05:15:31.000000000 +0200 +*************** +*** 176,182 **** + # define PyImport_AppendInittab py3_PyImport_AppendInittab + # if PY_VERSION_HEX >= 0x030300f0 + # undef _PyUnicode_AsString +! # define _PyUnicode_AsString py3_PyUnicode_AsUTF8String + # else + # define _PyUnicode_AsString py3__PyUnicode_AsString + # endif +--- 176,182 ---- + # define PyImport_AppendInittab py3_PyImport_AppendInittab + # if PY_VERSION_HEX >= 0x030300f0 + # undef _PyUnicode_AsString +! # define _PyUnicode_AsString py3_PyUnicode_AsUTF8 + # else + # define _PyUnicode_AsString py3__PyUnicode_AsString + # endif +*************** +*** 286,296 **** + static PyObject* py3__Py_TrueStruct; + static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o); + static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void)); +! #if PY_VERSION_HEX >= 0x030300f0 +! static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode); +! #else + static char* (*py3__PyUnicode_AsString)(PyObject *unicode); +! #endif + static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors); + static char* (*py3_PyBytes_AsString)(PyObject *bytes); + static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length); +--- 286,296 ---- + static PyObject* py3__Py_TrueStruct; + static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o); + static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void)); +! # if PY_VERSION_HEX >= 0x030300f0 +! static char* (*py3_PyUnicode_AsUTF8)(PyObject *unicode); +! # else + static char* (*py3__PyUnicode_AsString)(PyObject *unicode); +! # endif + static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors); + static char* (*py3_PyBytes_AsString)(PyObject *bytes); + static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length); +*************** +*** 348,360 **** + {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv}, + {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome}, + {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize}, +! #ifndef PY_SSIZE_T_CLEAN + {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, + {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue}, +! #else + {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, + {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue}, +! #endif + {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free}, + {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc}, + {"PyList_New", (PYTHON_PROC*)&py3_PyList_New}, +--- 348,360 ---- + {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv}, + {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome}, + {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize}, +! # ifndef PY_SSIZE_T_CLEAN + {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, + {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue}, +! # else + {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, + {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue}, +! # endif + {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free}, + {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc}, + {"PyList_New", (PYTHON_PROC*)&py3_PyList_New}, +*************** +*** 406,416 **** + {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, + {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, + {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, +! #if PY_VERSION_HEX >= 0x030300f0 +! {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String}, +! #else + {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, +! #endif + {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString}, + {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, + {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, +--- 406,416 ---- + {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, + {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, + {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, +! # if PY_VERSION_HEX >= 0x030300f0 +! {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8}, +! # else + {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, +! # endif + {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString}, + {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, + {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, +*************** +*** 503,514 **** + + /* Load unicode functions separately as only the ucs2 or the ucs4 functions + * will be present in the library. */ +! #if PY_VERSION_HEX >= 0x030300f0 + ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString"); + ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode"); + ucs_as_encoded_string = symbol_from_dll(hinstPy3, + "PyUnicode_AsEncodedString"); +! #else + ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString"); + ucs_decode = symbol_from_dll(hinstPy3, + "PyUnicodeUCS2_Decode"); +--- 503,514 ---- + + /* Load unicode functions separately as only the ucs2 or the ucs4 functions + * will be present in the library. */ +! # if PY_VERSION_HEX >= 0x030300f0 + ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString"); + ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode"); + ucs_as_encoded_string = symbol_from_dll(hinstPy3, + "PyUnicode_AsEncodedString"); +! # else + ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString"); + ucs_decode = symbol_from_dll(hinstPy3, + "PyUnicodeUCS2_Decode"); +*************** +*** 523,529 **** + ucs_as_encoded_string = symbol_from_dll(hinstPy3, + "PyUnicodeUCS4_AsEncodedString"); + } +! #endif + if (ucs_from_string && ucs_decode && ucs_as_encoded_string) + { + py3_PyUnicode_FromString = ucs_from_string; +--- 523,529 ---- + ucs_as_encoded_string = symbol_from_dll(hinstPy3, + "PyUnicodeUCS4_AsEncodedString"); + } +! # endif + if (ucs_from_string && ucs_decode && ucs_as_encoded_string) + { + py3_PyUnicode_FromString = ucs_from_string; +*** ../vim-7.3.710/src/version.c 2012-10-23 05:08:49.000000000 +0200 +--- src/version.c 2012-10-23 05:14:27.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 711, + /**/ + +-- +The fastest way to get an engineer to solve a problem is to declare that the +problem is unsolvable. No engineer can walk away from an unsolvable problem +until it's solved. + (Scott Adams - The Dilbert principle) + + /// 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 /// From b925d98c69730ff0218e6d7695a68eb447dd6cc2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:29 +0200 Subject: [PATCH 041/291] - patchlevel 712 --- 7.3.712 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.3.712 diff --git a/7.3.712 b/7.3.712 new file mode 100644 index 00000000..2ca9fb9a --- /dev/null +++ b/7.3.712 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.712 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.712 +Problem: Nmake from VS2010 SP1 is not recognized. +Solution: Add the version number. (Ken Takata) +Files: src/Make_mvc.mak + + +*** ../vim-7.3.711/src/Make_mvc.mak 2012-10-21 02:41:04.000000000 +0200 +--- src/Make_mvc.mak 2012-10-23 05:33:33.000000000 +0200 +*************** +*** 407,412 **** +--- 407,415 ---- + !if "$(_NMAKE_VER)" == "10.00.30319.01" + MSVCVER = 10.0 + !endif ++ !if "$(_NMAKE_VER)" == "10.00.40219.01" ++ MSVCVER = 10.0 ++ !endif + !if "$(_NMAKE_VER)" == "11.00.50727.1" + MSVCVER = 11.0 + !endif +*** ../vim-7.3.711/src/version.c 2012-10-23 05:17:33.000000000 +0200 +--- src/version.c 2012-10-23 05:34:24.000000000 +0200 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 712, + /**/ + +-- +Engineers are widely recognized as superior marriage material: intelligent, +dependable, employed, honest, and handy around the house. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 32cfa5ae4064caf65352946f3a17947b69d1b323 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Oct 2012 12:13:33 +0200 Subject: [PATCH 042/291] - patchlevel 712 --- README.patches | 21 +++++++++++++++++++++ vim.spec | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index dc198b3a..c407164b 100644 --- a/README.patches +++ b/README.patches @@ -722,3 +722,24 @@ Individual patches for Vim 7.3: 2266 7.3.689 MzScheme and Lua may use a NULL string 1806 7.3.690 crash with directory name equal to maximum path length 1910 7.3.691 state specific to the Python thread is discarded + 1598 7.3.692 can't build GTK version with GTK 2.0 + 5071 7.3.693 can't make 'softtabstop' follow 'shiftwidth' + 4631 7.3.694 'shiftwidth' is not so easy to use in indent files + 3710 7.3.695 balloon cannot show multi-byte text + 2994 7.3.696 message about added spell language can be wrong + 6108 7.3.697 leaking resources when setting GUI font + 2742 7.3.698 Python 3 does not preserve state beween commands + 2522 7.3.699 manually set 'ttymouse' is overruled by automatic detection + 2214 7.3.700 cannot detect URXVT and SGR mouse support + 2616 7.3.701 MS-Windows: Crash with stack overflow when setting 'encoding' + 1352 7.3.702 nmake from VS6 service pack 6 is not recognized + 3326 7.3.703 when 'undofile' is reset the hash is computed unnecessarily + 2906 7.3.704 repeating "cgn" does not always work correctly + 2581 7.3.705 mouse features are not in alphabetical order + 1638 7.3.706 (after 7.3.697) can't build Motif version + 4088 7.3.707 (after 7.3.701) library name with non-latin characters fails + 3001 7.3.708 filler lines above the first line may be hidden + 1513 7.3.709 compiler warning for unused argument + 1685 7.3.710 (after 7.3.704) "fn" is broken + 7579 7.3.711 (after 7.3.688) vim.current.buffer is not available + 1474 7.3.712 nmake from VS2010 SP1 is not recognized diff --git a/vim.spec b/vim.spec index 8bf941f9..80801bb1 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 691 +%define patchlevel 712 Summary: The VIM editor URL: http://www.vim.org/ @@ -747,6 +747,27 @@ Patch688: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.688 Patch689: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.689 Patch690: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.690 Patch691: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.691 +Patch692: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.692 +Patch693: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.693 +Patch694: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.694 +Patch695: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.695 +Patch696: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.696 +Patch697: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.697 +Patch698: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.698 +Patch699: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.699 +Patch700: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.700 +Patch701: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.701 +Patch702: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.702 +Patch703: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.703 +Patch704: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.704 +Patch705: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.705 +Patch706: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.706 +Patch707: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.707 +Patch708: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.708 +Patch709: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.709 +Patch710: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.710 +Patch711: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.711 +Patch712: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.712 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1584,6 +1605,27 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch689 -p0 %patch690 -p0 %patch691 -p0 +%patch692 -p0 +%patch693 -p0 +%patch694 -p0 +%patch695 -p0 +%patch696 -p0 +%patch697 -p0 +%patch698 -p0 +%patch699 -p0 +%patch700 -p0 +%patch701 -p0 +%patch702 -p0 +%patch703 -p0 +%patch704 -p0 +%patch705 -p0 +%patch706 -p0 +%patch707 -p0 +%patch708 -p0 +%patch709 -p0 +%patch710 -p0 +%patch711 -p0 +%patch712 -p0 # install spell files @@ -2046,6 +2088,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Oct 23 2012 Karsten Hopp 7.3.712-1 +- patchlevel 712 + * Mon Oct 15 2012 Karsten Hopp 7.3.691-1 - patchlevel 691 From 88ac8848145af3946f865f339f1c181758b91c1b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Nov 2012 17:31:16 +0100 Subject: [PATCH 043/291] - patchlevel 713 --- 7.3.713 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.3.713 diff --git a/7.3.713 b/7.3.713 new file mode 100644 index 00000000..e195bf73 --- /dev/null +++ b/7.3.713 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.713 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.713 +Problem: printf() can only align to bytes, not characters. +Solution: Add the "S" item. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/message.c + + +*** ../vim-7.3.712/runtime/doc/eval.txt 2012-10-21 00:44:59.000000000 +0200 +--- runtime/doc/eval.txt 2012-11-14 18:00:40.000000000 +0100 +*************** +*** 4427,4432 **** +--- 4451,4457 ---- + + Often used items are: + %s string ++ %6S string right-aligned in 6 display cells + %6s string right-aligned in 6 bytes + %.9s string truncated to 9 bytes + %c single byte +*************** +*** 4541,4546 **** +--- 4566,4575 ---- + s The text of the String argument is used. If a + precision is specified, no more bytes than the number + specified are used. ++ S The text of the String argument is used. If a ++ precision is specified, no more display cells than the ++ number specified are used. Without the |+multi_byte| ++ feature works just like 's'. + + *printf-f* *E807* + f The Float argument is converted into a string of the +*** ../vim-7.3.712/src/message.c 2012-03-28 16:49:25.000000000 +0200 +--- src/message.c 2012-11-14 17:58:25.000000000 +0100 +*************** +*** 4290,4295 **** +--- 4290,4296 ---- + case '%': + case 'c': + case 's': ++ case 'S': + length_modifier = '\0'; + str_arg_l = 1; + switch (fmt_spec) +*************** +*** 4318,4323 **** +--- 4319,4325 ---- + } + + case 's': ++ case 'S': + str_arg = + #ifndef HAVE_STDARG_H + (char *)get_a_arg(arg_idx); +*************** +*** 4354,4359 **** +--- 4356,4379 ---- + str_arg_l = (q == NULL) ? precision + : (size_t)(q - str_arg); + } ++ #ifdef FEAT_MBYTE ++ if (fmt_spec == 'S') ++ { ++ if (min_field_width != 0) ++ min_field_width += STRLEN(str_arg) ++ - mb_string2cells((char_u *)str_arg, -1); ++ if (precision) ++ { ++ char_u *p1 = (char_u *)str_arg; ++ size_t i; ++ ++ for (i = 0; i < precision && *p1; i++) ++ p1 += mb_ptr2len(p1); ++ ++ str_arg_l = precision = p1 - (char_u *)str_arg; ++ } ++ } ++ #endif + break; + + default: +*** ../vim-7.3.712/src/version.c 2012-10-23 05:35:30.000000000 +0200 +--- src/version.c 2012-11-14 17:54:12.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 713, + /**/ + +-- +In many of the more relaxed civilizations on the Outer Eastern Rim of the +Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the +great "Encyclopedia Galactica" as the standard repository of all knowledge +and wisdom, for though it has many omissions and contains much that is +apocryphal, or at least wildly inaccurate, it scores over the older, more +pedestrian work in two important respects. +First, it is slightly cheaper; and second, it has the words "DON'T PANIC" +inscribed in large friendly letters on its cover. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From febd3051312dc2ad7cc436078272da1137b5ebbb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Nov 2012 17:31:17 +0100 Subject: [PATCH 044/291] - patchlevel 714 --- 7.3.714 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.3.714 diff --git a/7.3.714 b/7.3.714 new file mode 100644 index 00000000..97cafb06 --- /dev/null +++ b/7.3.714 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.714 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.714 +Problem: Inconsistency: :set can be used in the sandbox, but :setlocal and + :setglobal cannot. (Michael Henry) +Solution: Fix the flags for :setlocal and :setglobal. (Christian Brabandt) +Files: src/ex_cmds.h + + +*** ../vim-7.3.713/src/ex_cmds.h 2012-08-08 17:31:36.000000000 +0200 +--- src/ex_cmds.h 2012-11-14 20:41:28.000000000 +0100 +*************** +*** 832,840 **** + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, + TRLBAR|EXTRA|NEEDARG|CMDWIN), + EX(CMD_setglobal, "setglobal", ex_set, +! TRLBAR|EXTRA|CMDWIN), + EX(CMD_setlocal, "setlocal", ex_set, +! TRLBAR|EXTRA|CMDWIN), + EX(CMD_sfind, "sfind", ex_splitview, + BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_sfirst, "sfirst", ex_rewind, +--- 832,840 ---- + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, + TRLBAR|EXTRA|NEEDARG|CMDWIN), + EX(CMD_setglobal, "setglobal", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_setlocal, "setlocal", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_sfind, "sfind", ex_splitview, + BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_sfirst, "sfirst", ex_rewind, +*** ../vim-7.3.713/src/version.c 2012-11-14 18:10:49.000000000 +0100 +--- src/version.c 2012-11-14 20:43:01.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 714, + /**/ + +-- +"So this is it," said Arthur, "we are going to die." +"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across +the chamber at something behind Arthur's line of vision. "What's this +switch?" he cried. +"What? Where?" cried Arthur, twisting around. +"No, I was only fooling," said Ford, "we are going to die after all." + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 8eff73a0c2663448d0f148936484a762f807b229 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Nov 2012 17:31:18 +0100 Subject: [PATCH 045/291] - patchlevel 715 --- 7.3.715 | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 7.3.715 diff --git a/7.3.715 b/7.3.715 new file mode 100644 index 00000000..0542c431 --- /dev/null +++ b/7.3.715 @@ -0,0 +1,234 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.715 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.715 +Problem: Crash when calling setloclist() in BufUnload autocmd. (Marcin + Szamotulski) +Solution: Set w_llist to NULL when it was freed. Also add a test. + (Christian Brabandt) +Files: src/quickfix.c, src/testdir/test49.ok, src/testdir/test49.vim + + +*** ../vim-7.3.714/src/quickfix.c 2012-06-29 12:57:03.000000000 +0200 +--- src/quickfix.c 2012-11-14 22:33:20.000000000 +0100 +*************** +*** 107,113 **** + }; + + static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title)); +! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title)); + static void ll_free_all __ARGS((qf_info_T **pqi)); + static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid)); + static qf_info_T *ll_new_list __ARGS((void)); +--- 107,113 ---- + }; + + static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title)); +! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title, win_T *wp)); + static void ll_free_all __ARGS((qf_info_T **pqi)); + static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid)); + static qf_info_T *ll_new_list __ARGS((void)); +*************** +*** 266,272 **** + + if (newlist || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, qf_title); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start; +--- 266,272 ---- + + if (newlist || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, qf_title, curwin); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start; +*************** +*** 885,893 **** + * Prepare for adding a new quickfix list. + */ + static void +! qf_new_list(qi, qf_title) + qf_info_T *qi; + char_u *qf_title; + { + int i; + +--- 885,894 ---- + * Prepare for adding a new quickfix list. + */ + static void +! qf_new_list(qi, qf_title, wp) + qf_info_T *qi; + char_u *qf_title; ++ win_T *wp; + { + int i; + +*************** +*** 897,903 **** +--- 898,908 ---- + * way with ":grep'. + */ + while (qi->qf_listcount > qi->qf_curlist + 1) ++ { ++ if (wp != NULL && wp->w_llist == qi) ++ wp->w_llist = NULL; + qf_free(qi, --qi->qf_listcount); ++ } + + /* + * When the stack is full, remove to oldest entry +*************** +*** 905,910 **** +--- 910,917 ---- + */ + if (qi->qf_listcount == LISTCOUNT) + { ++ if (wp != NULL && wp->w_llist == qi) ++ wp->w_llist = NULL; + qf_free(qi, 0); + for (i = 1; i < LISTCOUNT; ++i) + qi->qf_lists[i - 1] = qi->qf_lists[i]; +*************** +*** 3181,3187 **** + eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd) + || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, *eap->cmdlinep); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +--- 3188,3194 ---- + eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd) + || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, *eap->cmdlinep, curwin); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +*************** +*** 3747,3753 **** + + if (action == ' ' || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, title); + else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +--- 3754,3760 ---- + + if (action == ' ' || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, title, wp); + else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +*************** +*** 4029,4035 **** + #endif + + /* create a new quickfix list */ +! qf_new_list(qi, *eap->cmdlinep); + + /* Go through all directories in 'runtimepath' */ + p = p_rtp; +--- 4036,4042 ---- + #endif + + /* create a new quickfix list */ +! qf_new_list(qi, *eap->cmdlinep, wp); + + /* Go through all directories in 'runtimepath' */ + p = p_rtp; +*** ../vim-7.3.714/src/testdir/test49.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test49.ok 2012-11-14 22:26:13.000000000 +0100 +*************** +*** 85,92 **** + *** Test 83: OK (2835) + *** Test 84: OK (934782101) + *** Test 85: OK (198689) +! --- Test 86: All tests were run with throwing exceptions on error. + The $VIMNOERRTHROW control is not configured. +! --- Test 86: All tests were run with throwing exceptions on interrupt. + The $VIMNOINTTHROW control is not configured. +! *** Test 86: OK (50443995) +--- 85,94 ---- + *** Test 83: OK (2835) + *** Test 84: OK (934782101) + *** Test 85: OK (198689) +! --- Test 86: No Crash for vimgrep on BufUnload +! *** Test 86: OK (0) +! --- Test 87: All tests were run with throwing exceptions on error. + The $VIMNOERRTHROW control is not configured. +! --- Test 87: All tests were run with throwing exceptions on interrupt. + The $VIMNOINTTHROW control is not configured. +! *** Test 87: OK (50443995) +*** ../vim-7.3.714/src/testdir/test49.vim 2010-09-29 16:55:45.000000000 +0200 +--- src/testdir/test49.vim 2012-11-14 22:26:13.000000000 +0100 +*************** +*** 9603,9611 **** + + Xcheck 198689 + + + "------------------------------------------------------------------------------- +! " Test 86: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1 + " + " It is possible to configure Vim for throwing exceptions on error + " or interrupt, controlled by variables $VIMNOERRTHROW and +--- 9603,9630 ---- + + Xcheck 198689 + ++ "------------------------------------------------------------------------------- ++ " Test 86 setloclist crash {{{1 ++ " ++ " Executing a setloclist() on BufUnload shouldn't crash Vim ++ "------------------------------------------------------------------------------- ++ ++ func F ++ au BufUnload * :call setloclist(0, [{'bufnr':1, 'lnum':1, 'col':1, 'text': 'tango down'}]) ++ ++ :lvimgrep /.*/ * ++ endfunc ++ ++ XpathINIT ++ ++ ExecAsScript F ++ ++ delfunction F ++ Xout "No Crash for vimgrep on BufUnload" ++ Xcheck 0 + + "------------------------------------------------------------------------------- +! " Test 87: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1 + " + " It is possible to configure Vim for throwing exceptions on error + " or interrupt, controlled by variables $VIMNOERRTHROW and +*** ../vim-7.3.714/src/version.c 2012-11-14 20:52:22.000000000 +0100 +--- src/version.c 2012-11-14 22:36:45.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 715, + /**/ + +-- +One difference between a man and a machine is that a machine is quiet +when well oiled. + + /// 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 /// From f977c88cb1679286f726d64774638eee6f7270a3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Nov 2012 17:31:20 +0100 Subject: [PATCH 046/291] - patchlevel 715 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index c407164b..4ba7007c 100644 --- a/README.patches +++ b/README.patches @@ -743,3 +743,6 @@ Individual patches for Vim 7.3: 1685 7.3.710 (after 7.3.704) "fn" is broken 7579 7.3.711 (after 7.3.688) vim.current.buffer is not available 1474 7.3.712 nmake from VS2010 SP1 is not recognized + 3513 7.3.713 printf() can only align to bytes, not characters + 2296 7.3.714 :setlocal and :setglobal do not work in the sandbox + 8244 7.3.715 crash when calling setloclist() in BufUnload autocmd diff --git a/vim.spec b/vim.spec index 80801bb1..dc21e213 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 712 +%define patchlevel 715 Summary: The VIM editor URL: http://www.vim.org/ @@ -768,6 +768,9 @@ Patch709: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.709 Patch710: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.710 Patch711: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.711 Patch712: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.712 +Patch713: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.713 +Patch714: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.714 +Patch715: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.715 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1626,6 +1629,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch710 -p0 %patch711 -p0 %patch712 -p0 +%patch713 -p0 +%patch714 -p0 +%patch715 -p0 # install spell files @@ -2088,6 +2094,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Nov 20 2012 Karsten Hopp 7.3.715-1 +- patchlevel 715 + * Tue Oct 23 2012 Karsten Hopp 7.3.712-1 - patchlevel 712 From 5fda7d71dc8eb1784342fb9a4e1fa9bce8f8cc9f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:39 +0100 Subject: [PATCH 047/291] - patchlevel 716 --- 7.3.716 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 7.3.716 diff --git a/7.3.716 b/7.3.716 new file mode 100644 index 00000000..90f90d53 --- /dev/null +++ b/7.3.716 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.716 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.716 +Problem: Error on exit when using Python 3. +Solution: Remove PythonIO_Fini(). (Roland Puntaier) +Files: src/if_python3.c + + +*** ../vim-7.3.715/src/if_python3.c 2012-10-23 05:17:33.000000000 +0200 +--- src/if_python3.c 2012-11-20 10:59:54.000000000 +0100 +*************** +*** 657,663 **** + static PyObject *globals; + + static int PythonIO_Init(void); +- static void PythonIO_Fini(void); + PyMODINIT_FUNC Py3Init_vim(void); + + /****************************************************** +--- 657,662 ---- +*************** +*** 685,691 **** + // acquire lock before finalizing + pygilstate = PyGILState_Ensure(); + +- PythonIO_Fini(); + Py_Finalize(); + } + +--- 684,689 ---- +*************** +*** 989,1001 **** + return PythonIO_Init_io(); + } + +- static void +- PythonIO_Fini(void) +- { +- PySys_SetObject("stdout", NULL); +- PySys_SetObject("stderr", NULL); +- } +- + /****************************************************** + * 3. Implementation of the Vim module for Python + */ +--- 987,992 ---- +*** ../vim-7.3.715/src/version.c 2012-11-14 22:38:04.000000000 +0100 +--- src/version.c 2012-11-15 21:40:47.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 716, + /**/ + +-- +Nothing is fool-proof to a sufficiently talented fool. + + /// 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 /// From 3566ab741195352abe5f6a09ff5a46e8a5decc6b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:41 +0100 Subject: [PATCH 048/291] - patchlevel 717 --- 7.3.717 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.3.717 diff --git a/7.3.717 b/7.3.717 new file mode 100644 index 00000000..02751c6c --- /dev/null +++ b/7.3.717 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.717 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.717 +Problem: When changing the font size, only MS-Windows limits the window + size. +Solution: Also limit the window size on other systems. (Roland Puntaier) +Files: src/gui.c + + +*** ../vim-7.3.716/src/gui.c 2012-08-29 16:34:23.000000000 +0200 +--- src/gui.c 2012-11-20 12:01:08.000000000 +0100 +*************** +*** 905,917 **** + # endif + gui_mch_set_font(gui.norm_font); + #endif +! gui_set_shellsize(FALSE, +! #ifdef MSWIN +! TRUE +! #else +! FALSE +! #endif +! , RESIZE_BOTH); + } + + return ret; +--- 905,911 ---- + # endif + gui_mch_set_font(gui.norm_font); + #endif +! gui_set_shellsize(FALSE, TRUE, RESIZE_BOTH); + } + + return ret; +*** ../vim-7.3.716/src/version.c 2012-11-20 11:02:49.000000000 +0100 +--- src/version.c 2012-11-20 12:02:04.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 717, + /**/ + +-- +The 50-50-90 rule: Anytime you have a 50-50 chance of getting +something right, there's a 90% probability you'll get it wrong. + + /// 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 /// From 954b0f096656076fe7ba6b323ae78abbebb0dab3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:42 +0100 Subject: [PATCH 049/291] - patchlevel 718 --- 7.3.718 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.3.718 diff --git a/7.3.718 b/7.3.718 new file mode 100644 index 00000000..f8f82f4b --- /dev/null +++ b/7.3.718 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.718 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.718 +Problem: When re-using the current buffer the buffer-local options stay. +Solution: Re-initialize the buffer-local options. (Christian Brabandt) +Files: src/buffer.c + + +*** ../vim-7.3.717/src/buffer.c 2012-10-03 18:24:55.000000000 +0200 +--- src/buffer.c 2012-11-17 14:11:35.000000000 +0100 +*************** +*** 1702,1707 **** +--- 1702,1712 ---- + #endif + /* buf->b_nwindows = 0; why was this here? */ + free_buffer_stuff(buf, FALSE); /* delete local variables et al. */ ++ ++ /* Init the options. */ ++ buf->b_p_initialized = FALSE; ++ buf_copy_options(buf, BCO_ENTER); ++ + #ifdef FEAT_KEYMAP + /* need to reload lmaps and set b:keymap_name */ + curbuf->b_kmap_state |= KEYMAP_INIT; +*** ../vim-7.3.717/src/version.c 2012-11-20 12:03:02.000000000 +0100 +--- src/version.c 2012-11-20 12:16:35.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 718, + /**/ + +-- +Latest survey shows that 3 out of 4 people make up 75% of the +world's population. + + /// 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 /// From 67b9f0c173f3425a668f2be6a66eaa3f82e0b428 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:43 +0100 Subject: [PATCH 050/291] - patchlevel 719 --- 7.3.719 | 849 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 849 insertions(+) create mode 100644 7.3.719 diff --git a/7.3.719 b/7.3.719 new file mode 100644 index 00000000..05295f9c --- /dev/null +++ b/7.3.719 @@ -0,0 +1,849 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.719 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.719 +Problem: Cannot run new version of cproto, it fails on missing include + files. +Solution: Add lots of #ifndef PROTO +Files: src/os_amiga.c, src/os_amiga.h, src/gui_w16.c, src/gui_w48.c, + src/gui_w32.c, src/vimio.h, src/os_msdos.c, src/os_msdos.h, + src/os_win16.h, src/os_win16.c, src/os_win32.h, src/os_win32.c, + src/os_mswin.c, src/gui_photon.c, src/os_unix.h, src/os_beos.c, + src/os_beos.h + + +*** ../vim-7.3.718/src/os_amiga.c 2012-06-29 15:51:26.000000000 +0200 +--- src/os_amiga.c 2012-11-20 15:47:31.000000000 +0100 +*************** +*** 22,27 **** +--- 22,30 ---- + #undef TRUE /* will be redefined by exec/types.h */ + #undef FALSE + ++ /* cproto fails on missing include files, skip them */ ++ #ifndef PROTO ++ + #ifndef LATTICE + # include + # include +*************** +*** 55,60 **** +--- 58,65 ---- + # include + #endif + ++ #endif /* PROTO */ ++ + /* + * At this point TRUE and FALSE are defined as 1L and 0L, but we want 1 and 0. + */ +*************** +*** 283,289 **** + #endif + } + +! #include + + /* + * Check_win checks whether we have an interactive window. +--- 288,296 ---- + #endif + } + +! #ifndef PROTO +! # include +! #endif + + /* + * Check_win checks whether we have an interactive window. +*************** +*** 1002,1008 **** + * Heavely modified by mool. + */ + +! #include + + /* + * try to get the real window size +--- 1009,1017 ---- + * Heavely modified by mool. + */ + +! #ifndef PROTO +! # include +! #endif + + /* + * try to get the real window size +*************** +*** 1129,1137 **** + * say 'oml lib:amiga.lib -r sendpacket.o' + */ + + /* #include */ + /* #include */ +! #include + + /* + * Function - dos_packet written by Phil Lindsay, Carolyn Scheppner, and Andy +--- 1138,1148 ---- + * say 'oml lib:amiga.lib -r sendpacket.o' + */ + ++ #ifndef PROTO + /* #include */ + /* #include */ +! # include +! #endif + + /* + * Function - dos_packet written by Phil Lindsay, Carolyn Scheppner, and Andy +*** ../vim-7.3.718/src/os_amiga.h 2010-08-15 21:57:25.000000000 +0200 +--- src/os_amiga.h 2012-11-20 15:46:37.000000000 +0100 +*************** +*** 56,61 **** +--- 56,64 ---- + # define TEMPNAMELEN 12 + #endif + ++ /* cproto fails on missing include files */ ++ #ifndef PROTO ++ + #include + #include + #include +*************** +*** 67,72 **** +--- 70,77 ---- + # include + #endif + ++ #endif /* PROTO */ ++ + #define FNAME_ILLEGAL ";*?`#%" /* illegal characters in a file name */ + + /* +*************** +*** 85,90 **** +--- 90,96 ---- + # include + #endif + ++ #ifndef PROTO + /* + * arpbase.h must be included before functions.h + */ +*************** +*** 92,97 **** +--- 98,105 ---- + # include + #endif + ++ #endif /* PROTO */ ++ + /* + * This won't be needed if you have a version of Lattice 4.01 without broken + * break signal handling. +*** ../vim-7.3.718/src/gui_w16.c 2012-02-04 22:01:44.000000000 +0100 +--- src/gui_w16.c 2012-11-20 15:55:04.000000000 +0100 +*************** +*** 1521,1527 **** + + + #if defined(FEAT_TOOLBAR) || defined(PROTO) +! #include "gui_w3~1.h" + /* + * Create the toolbar, initially unpopulated. + * (just like the menu, there are no defaults, it's all +--- 1521,1532 ---- + + + #if defined(FEAT_TOOLBAR) || defined(PROTO) +! +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include "gui_w3~1.h" +! #endif +! + /* + * Create the toolbar, initially unpopulated. + * (just like the menu, there are no defaults, it's all +*** ../vim-7.3.718/src/gui_w48.c 2012-01-20 20:54:15.000000000 +0100 +--- src/gui_w48.c 2012-11-20 15:53:49.000000000 +0100 +*************** +*** 25,30 **** +--- 25,34 ---- + #ifdef DEBUG + # include + #endif ++ ++ /* cproto fails on missing include files */ ++ #ifndef PROTO ++ + #ifndef __MINGW32__ + # include + #endif +*************** +*** 44,49 **** +--- 48,55 ---- + # include "glbl_ime.h" + #endif + ++ #endif /* PROTO */ ++ + #ifdef FEAT_MENU + # define MENUHINTS /* show menu hints in command line */ + #endif +*** ../vim-7.3.718/src/gui_w32.c 2012-01-04 20:29:18.000000000 +0100 +--- src/gui_w32.c 2012-11-20 15:56:31.000000000 +0100 +*************** +*** 198,208 **** + static UINT_PTR BevalTimerId = 0; + static DWORD LastActivity = 0; + + /* + * excerpts from headers since this may not be presented + * in the extremely old compilers + */ +! #include + + typedef struct _DllVersionInfo + { +--- 198,214 ---- + static UINT_PTR BevalTimerId = 0; + static DWORD LastActivity = 0; + ++ ++ /* cproto fails on missing include files */ ++ #ifndef PROTO ++ + /* + * excerpts from headers since this may not be presented + * in the extremely old compilers + */ +! # include +! +! #endif + + typedef struct _DllVersionInfo + { +*************** +*** 213,219 **** + DWORD dwPlatformID; + } DLLVERSIONINFO; + +! #include + + typedef struct tagTOOLINFOA_NEW + { +--- 219,227 ---- + DWORD dwPlatformID; + } DLLVERSIONINFO; + +! #ifndef PROTO +! # include +! #endif + + typedef struct tagTOOLINFOA_NEW + { +*** ../vim-7.3.718/src/vimio.h 2010-08-15 21:57:28.000000000 +0200 +--- src/vimio.h 2012-11-20 15:57:19.000000000 +0100 +*************** +*** 13,16 **** + # define _CRT_NONSTDC_NO_DEPRECATE + #endif + +! #include +--- 13,19 ---- + # define _CRT_NONSTDC_NO_DEPRECATE + #endif + +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include +! #endif +*** ../vim-7.3.718/src/os_msdos.c 2012-06-29 15:51:26.000000000 +0200 +--- src/os_msdos.c 2012-11-20 15:59:18.000000000 +0100 +*************** +*** 23,29 **** + + #include "vim.h" + +! #include + + /* + * MS-DOS only code, not used for Win16. +--- 23,32 ---- + + #include "vim.h" + +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include +! #endif + + /* + * MS-DOS only code, not used for Win16. +*************** +*** 31,47 **** + #ifndef WIN16 + + +! #include +! #ifdef DJGPP +! # include +! # include +! # include +! # include +! # ifdef FEAT_CLIPBOARD +! # include + # endif +- #else +- # include + #endif + + #if defined(DJGPP) || defined(PROTO) +--- 34,52 ---- + #ifndef WIN16 + + +! #ifndef PROTO +! # include +! # ifdef DJGPP +! # include +! # include +! # include +! # include +! # ifdef FEAT_CLIPBOARD +! # include +! # endif +! # else +! # include + # endif + #endif + + #if defined(DJGPP) || defined(PROTO) +*************** +*** 2130,2137 **** + + #undef setlocale + +! #include +! #include + #include + + #define UPCASE (__dj_ISALNUM | __dj_ISALPHA | __dj_ISGRAPH | __dj_ISPRINT | __dj_ISUPPER) +--- 2135,2144 ---- + + #undef setlocale + +! #ifndef PROTO +! # include +! # include +! #endif + #include + + #define UPCASE (__dj_ISALNUM | __dj_ISALPHA | __dj_ISGRAPH | __dj_ISPRINT | __dj_ISUPPER) +*** ../vim-7.3.718/src/os_msdos.h 2010-08-15 21:57:25.000000000 +0200 +--- src/os_msdos.h 2012-11-20 15:57:48.000000000 +0100 +*************** +*** 53,61 **** + + #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ + +! #include +! #include +! #include + + #ifdef DJGPP + # include +--- 53,64 ---- + + #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ + +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include +! # include +! # include +! #endif + + #ifdef DJGPP + # include +*** ../vim-7.3.718/src/os_win16.h 2010-08-15 21:57:25.000000000 +0200 +--- src/os_win16.h 2012-11-20 16:00:33.000000000 +0100 +*************** +*** 63,78 **** + + #include + #include +- #include +- #include + +! #ifndef STRICT +! # define STRICT +! #endif +! #ifndef COBJMACROS +! # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */ +! #endif +! #include + + /* + * plenty of memory, use large buffers +--- 63,83 ---- + + #include + #include + +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include +! # include +! +! # ifndef STRICT +! # define STRICT +! # endif +! # ifndef COBJMACROS +! # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */ +! # endif +! # include +! +! #endif /* PROTO */ + + /* + * plenty of memory, use large buffers +*** ../vim-7.3.718/src/os_win16.c 2012-06-29 15:51:26.000000000 +0200 +--- src/os_win16.c 2012-11-20 16:01:50.000000000 +0100 +*************** +*** 22,37 **** + + #include "vim.h" + +! #include + #include + #include + #include + #include +- #include + +! #undef chdir +! #include +! #include /* required for FindExecutable() */ + + + /* Record all output and all keyboard & mouse input */ +--- 22,44 ---- + + #include "vim.h" + +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include +! #endif +! + #include + #include + #include + #include + +! #ifndef PROTO +! # include +! +! # undef chdir +! # include +! # include /* required for FindExecutable() */ +! #endif + + + /* Record all output and all keyboard & mouse input */ +*** ../vim-7.3.718/src/os_win32.h 2012-10-21 21:38:42.000000000 +0200 +--- src/os_win32.h 2012-11-20 16:09:59.000000000 +0100 +*************** +*** 12,18 **** + + #include "os_dos.h" /* common MS-DOS and Win32 stuff */ + #ifndef __CYGWIN__ +! #include /* for _mkdir() */ + #endif + + /* Stop the VC2005 compiler from nagging. */ +--- 12,21 ---- + + #include "os_dos.h" /* common MS-DOS and Win32 stuff */ + #ifndef __CYGWIN__ +! /* cproto fails on missing include files */ +! # ifndef PROTO +! # include /* for _mkdir() */ +! # endif + #endif + + /* Stop the VC2005 compiler from nagging. */ +*************** +*** 101,107 **** + #ifndef COBJMACROS + # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */ + #endif +! #include + + /* + * Win32 has plenty of memory, use large buffers +--- 104,112 ---- + #ifndef COBJMACROS + # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */ + #endif +! #ifndef PROTO +! # include +! #endif + + /* + * Win32 has plenty of memory, use large buffers +*************** +*** 194,199 **** +--- 199,206 ---- + # define vim_mkdir(x, y) mch_mkdir(x) + #endif + ++ #ifndef PROTO ++ + /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE + /* The variables are defined in os_win32.c. */ +*************** +*** 207,209 **** +--- 214,218 ---- + # define pIsDialogMessage IsDialogMessage + # define pPeekMessage PeekMessage + #endif ++ ++ #endif /* PROTO */ +*** ../vim-7.3.718/src/os_win32.c 2012-10-21 21:38:42.000000000 +0200 +--- src/os_win32.c 2012-11-20 16:12:09.000000000 +0100 +*************** +*** 29,35 **** + #include + #include + #include +! #include + + #undef chdir + #ifdef __GNUC__ +--- 29,39 ---- + #include + #include + #include +! +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # include +! #endif + + #undef chdir + #ifdef __GNUC__ +*************** +*** 40,47 **** + # include + #endif + +! #if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32) +! # include + #endif + + #ifdef __MINGW32__ +--- 44,53 ---- + # include + #endif + +! #ifndef PROTO +! # if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32) +! # include +! # endif + #endif + + #ifdef __MINGW32__ +*************** +*** 125,130 **** +--- 131,137 ---- + typedef int WORD; + typedef int WCHAR; + typedef void VOID; ++ typedef int BY_HANDLE_FILE_INFORMATION; + #endif + + #ifndef FEAT_GUI_W32 +*************** +*** 152,157 **** +--- 159,166 ---- + # define wcsicmp(a, b) wcscmpi((a), (b)) + #endif + ++ #ifndef PROTO ++ + /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE + LRESULT (WINAPI *pDispatchMessage)(LPMSG) = DispatchMessage; +*************** +*** 160,165 **** +--- 169,176 ---- + BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage; + #endif + ++ #endif /* PROTO */ ++ + #ifndef FEAT_GUI_W32 + /* Win32 Console handles for input and output */ + static HANDLE g_hConIn = INVALID_HANDLE_VALUE; +*************** +*** 453,459 **** + DWORD g_PlatformId; + + #ifdef HAVE_ACL +! # include + /* + * These are needed to dynamically load the ADVAPI DLL, which is not + * implemented under Windows 95 (and causes VIM to crash) +--- 464,473 ---- + DWORD g_PlatformId; + + #ifdef HAVE_ACL +! # ifndef PROTO +! # include +! # endif +! + /* + * These are needed to dynamically load the ADVAPI DLL, which is not + * implemented under Windows 95 (and causes VIM to crash) +*************** +*** 1658,1665 **** + #endif /* FEAT_GUI_W32 */ + } + +! #ifndef __MINGW32__ +! # include /* required for FindExecutable() */ + #endif + + /* +--- 1672,1681 ---- + #endif /* FEAT_GUI_W32 */ + } + +! #ifndef PROTO +! # ifndef __MINGW32__ +! # include /* required for FindExecutable() */ +! # endif + #endif + + /* +*** ../vim-7.3.718/src/os_mswin.c 2011-11-30 13:42:40.000000000 +0100 +--- src/os_mswin.c 2012-11-20 16:15:05.000000000 +0100 +*************** +*** 26,38 **** + + #ifdef WIN16 + # define SHORT_FNAME /* always 8.3 file name */ +! # include + # include + #endif + #include + #include + #include +! #include + + #undef chdir + #ifdef __GNUC__ +--- 26,43 ---- + + #ifdef WIN16 + # define SHORT_FNAME /* always 8.3 file name */ +! /* cproto fails on missing include files */ +! # ifndef PROTO +! # include +! # endif + # include + #endif + #include + #include + #include +! #ifndef PROTO +! # include +! #endif + + #undef chdir + #ifdef __GNUC__ +*************** +*** 43,62 **** + # include + #endif + +! #if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32) +! # include +! #endif +! +! #if defined(FEAT_PRINTER) && !defined(FEAT_POSTSCRIPT) +! # include +! # ifdef WIN3264 +! # include +! # else +! # include + # endif +! # include + #endif + + #ifdef __MINGW32__ + # ifndef FROM_LEFT_1ST_BUTTON_PRESSED + # define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001 +--- 48,70 ---- + # include + #endif + +! #ifndef PROTO +! # if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32) +! # include + # endif +! +! # if defined(FEAT_PRINTER) && !defined(FEAT_POSTSCRIPT) +! # include +! # ifdef WIN3264 +! # include +! # else +! # include +! # endif +! # include + #endif + ++ #endif /* PROTO */ ++ + #ifdef __MINGW32__ + # ifndef FROM_LEFT_1ST_BUTTON_PRESSED + # define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001 +*************** +*** 2410,2416 **** + + + #if defined(FEAT_SHORTCUT) || defined(PROTO) +! # include + + /* + * When "fname" is the name of a shortcut (*.lnk) resolve the file it points +--- 2418,2426 ---- + + + #if defined(FEAT_SHORTCUT) || defined(PROTO) +! # ifndef PROTO +! # include +! # endif + + /* + * When "fname" is the name of a shortcut (*.lnk) resolve the file it points +*** ../vim-7.3.718/src/gui_photon.c 2011-09-14 16:04:52.000000000 +0200 +--- src/gui_photon.c 2012-11-20 16:16:11.000000000 +0100 +*************** +*** 13,20 **** + + #include "vim.h" + +! #ifdef FEAT_TOOLBAR +! # include + #endif + + #if !defined(__QNX__) +--- 13,23 ---- + + #include "vim.h" + +! /* cproto fails on missing include files */ +! #ifndef PROTO +! # ifdef FEAT_TOOLBAR +! # include +! # endif + #endif + + #if !defined(__QNX__) +*** ../vim-7.3.718/src/os_unix.h 2011-02-25 15:17:14.000000000 +0100 +--- src/os_unix.h 2012-11-20 16:51:06.000000000 +0100 +*************** +*** 198,203 **** +--- 198,206 ---- + # define HAVE_TOTAL_MEM + #endif + ++ ++ #ifndef PROTO ++ + #ifdef VMS + # include + # include +*************** +*** 226,232 **** +--- 229,239 ---- + # ifdef FEAT_GUI_GTK + # include "gui_gtk_vms.h" + # endif ++ #endif + ++ #endif /* PROTO */ ++ ++ #ifdef VMS + typedef struct dsc$descriptor DESC; + #endif + +*** ../vim-7.3.718/src/os_beos.c 2010-08-15 21:57:28.000000000 +0200 +--- src/os_beos.c 2012-11-20 16:22:17.000000000 +0100 +*************** +*** 13,19 **** + + #include + #include +! #include + #include "vim.h" + + #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT +--- 13,22 ---- + + #include + #include +! #ifndef PROTO +! # include +! #endif +! + #include "vim.h" + + #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT +*** ../vim-7.3.718/src/os_beos.h 2010-08-15 21:57:32.000000000 +0200 +--- src/os_beos.h 2012-11-20 16:22:48.000000000 +0100 +*************** +*** 22,25 **** + + /* select emulation */ + +! #include /* for typedefs and #defines only */ +--- 22,27 ---- + + /* select emulation */ + +! #ifndef PROTO +! # include /* for typedefs and #defines only */ +! #endif +*** ../vim-7.3.718/src/version.c 2012-11-20 12:16:54.000000000 +0100 +--- src/version.c 2012-11-20 16:32:18.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 719, + /**/ + +-- +George: "I just got a new set of golf clubs for my wife!" + John: "Great trade!" + + /// 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 /// From 8e98a1d1b84de7fa1de90419e48c4b2f2c3952b6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:44 +0100 Subject: [PATCH 051/291] - patchlevel 720 --- 7.3.720 | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 7.3.720 diff --git a/7.3.720 b/7.3.720 new file mode 100644 index 00000000..90bb099e --- /dev/null +++ b/7.3.720 @@ -0,0 +1,226 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.720 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.720 +Problem: Proto files are outdated. +Solution: Update the newly generated proto files. +Files: src/proto/digraph.pro, src/proto/fold.pro, src/proto/misc1.pro, + src/proto/move.pro, src/proto/screen.pro, src/proto/search.pro, + src/proto/os_win32.pro, src/proto/os_mswin.pro, + src/proto/os_beos.pro + +*** ../vim-7.3.719/src/proto/digraph.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/digraph.pro 2012-11-20 16:51:45.000000000 +0100 +*************** +*** 1,7 **** + /* digraph.c */ + int do_digraph __ARGS((int c)); + int get_digraph __ARGS((int cmdline)); +! int getdigraph __ARGS((int char1, int char2, int meta)); + void putdigraph __ARGS((char_u *str)); + void listdigraphs __ARGS((void)); + char_u *keymap_init __ARGS((void)); +--- 1,7 ---- + /* digraph.c */ + int do_digraph __ARGS((int c)); + int get_digraph __ARGS((int cmdline)); +! int getdigraph __ARGS((int char1, int char2, int meta_char)); + void putdigraph __ARGS((char_u *str)); + void listdigraphs __ARGS((void)); + char_u *keymap_init __ARGS((void)); +*** ../vim-7.3.719/src/proto/fold.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/fold.pro 2012-11-20 16:51:49.000000000 +0100 +*************** +*** 27,33 **** + void foldUpdate __ARGS((win_T *wp, linenr_T top, linenr_T bot)); + void foldUpdateAll __ARGS((win_T *win)); + int foldMoveTo __ARGS((int updown, int dir, long count)); +! void foldInitWin __ARGS((win_T *newwin)); + int find_wl_entry __ARGS((win_T *win, linenr_T lnum)); + void foldAdjustVisual __ARGS((void)); + void foldAdjustCursor __ARGS((void)); +--- 27,33 ---- + void foldUpdate __ARGS((win_T *wp, linenr_T top, linenr_T bot)); + void foldUpdateAll __ARGS((win_T *win)); + int foldMoveTo __ARGS((int updown, int dir, long count)); +! void foldInitWin __ARGS((win_T *new_win)); + int find_wl_entry __ARGS((win_T *win, linenr_T lnum)); + void foldAdjustVisual __ARGS((void)); + void foldAdjustCursor __ARGS((void)); +*** ../vim-7.3.719/src/proto/misc1.pro 2012-08-15 14:04:50.000000000 +0200 +--- src/proto/misc1.pro 2012-11-20 16:51:56.000000000 +0100 +*************** +*** 5,12 **** + int get_indent_str __ARGS((char_u *ptr, int ts)); + int set_indent __ARGS((int size, int flags)); + int get_number_indent __ARGS((linenr_T lnum)); +! int open_line __ARGS((int dir, int flags, int old_indent)); +! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int do_skip_space)); + int get_last_leader_offset __ARGS((char_u *line, char_u **flags)); + int plines __ARGS((linenr_T lnum)); + int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight)); +--- 5,12 ---- + int get_indent_str __ARGS((char_u *ptr, int ts)); + int set_indent __ARGS((int size, int flags)); + int get_number_indent __ARGS((linenr_T lnum)); +! int open_line __ARGS((int dir, int flags, int second_line_indent)); +! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int include_space)); + int get_last_leader_offset __ARGS((char_u *line, char_u **flags)); + int plines __ARGS((linenr_T lnum)); + int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight)); +*************** +*** 59,65 **** + void vim_setenv __ARGS((char_u *name, char_u *val)); + char_u *get_env_name __ARGS((expand_T *xp, int idx)); + char_u *get_users __ARGS((expand_T *xp, int idx)); +! int match_user __ARGS((char_u* name)); + void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one)); + char_u *home_replace_save __ARGS((buf_T *buf, char_u *src)); + int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname)); +--- 59,65 ---- + void vim_setenv __ARGS((char_u *name, char_u *val)); + char_u *get_env_name __ARGS((expand_T *xp, int idx)); + char_u *get_users __ARGS((expand_T *xp, int idx)); +! int match_user __ARGS((char_u *name)); + void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one)); + char_u *home_replace_save __ARGS((buf_T *buf, char_u *src)); + int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname)); +*** ../vim-7.3.719/src/proto/move.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/move.pro 2012-11-20 16:51:57.000000000 +0100 +*************** +*** 24,30 **** + int curwin_col_off __ARGS((void)); + int win_col_off2 __ARGS((win_T *wp)); + int curwin_col_off2 __ARGS((void)); +! void curs_columns __ARGS((int scroll)); + void scrolldown __ARGS((long line_count, int byfold)); + void scrollup __ARGS((long line_count, int byfold)); + void check_topfill __ARGS((win_T *wp, int down)); +--- 24,30 ---- + int curwin_col_off __ARGS((void)); + int win_col_off2 __ARGS((win_T *wp)); + int curwin_col_off2 __ARGS((void)); +! void curs_columns __ARGS((int may_scroll)); + void scrolldown __ARGS((long line_count, int byfold)); + void scrollup __ARGS((long line_count, int byfold)); + void check_topfill __ARGS((win_T *wp, int down)); +*** ../vim-7.3.719/src/proto/screen.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/screen.pro 2012-11-20 16:52:01.000000000 +0100 +*************** +*** 31,38 **** + void screen_draw_rectangle __ARGS((int row, int col, int height, int width, int invert)); + void screen_fill __ARGS((int start_row, int end_row, int start_col, int end_col, int c1, int c2, int attr)); + void check_for_delay __ARGS((int check_msg_scroll)); +! int screen_valid __ARGS((int clear)); +! void screenalloc __ARGS((int clear)); + void free_screenlines __ARGS((void)); + void screenclear __ARGS((void)); + int can_clear __ARGS((char_u *p)); +--- 31,38 ---- + void screen_draw_rectangle __ARGS((int row, int col, int height, int width, int invert)); + void screen_fill __ARGS((int start_row, int end_row, int start_col, int end_col, int c1, int c2, int attr)); + void check_for_delay __ARGS((int check_msg_scroll)); +! int screen_valid __ARGS((int doclear)); +! void screenalloc __ARGS((int doclear)); + void free_screenlines __ARGS((void)); + void screenclear __ARGS((void)); + int can_clear __ARGS((char_u *p)); +*** ../vim-7.3.719/src/proto/search.pro 2012-07-25 15:06:20.000000000 +0200 +--- src/proto/search.pro 2012-11-20 16:52:01.000000000 +0100 +*************** +*** 27,38 **** + int end_word __ARGS((long count, int bigword, int stop, int empty)); + int bckend_word __ARGS((long count, int bigword, int eol)); + int current_word __ARGS((oparg_T *oap, long count, int include, int bigword)); +- int current_search __ARGS((long count, int forward)); + int current_sent __ARGS((oparg_T *oap, long count, int include)); + int current_block __ARGS((oparg_T *oap, long count, int include, int what, int other)); + int current_tagblock __ARGS((oparg_T *oap, long count_arg, int include)); + int current_par __ARGS((oparg_T *oap, long count, int include, int type)); + int current_quote __ARGS((oparg_T *oap, long count, int include, int quotechar)); + int linewhite __ARGS((linenr_T lnum)); + void find_pattern_in_path __ARGS((char_u *ptr, int dir, int len, int whole, int skip_comments, int type, long count, int action, linenr_T start_lnum, linenr_T end_lnum)); + int read_viminfo_search_pattern __ARGS((vir_T *virp, int force)); +--- 27,38 ---- + int end_word __ARGS((long count, int bigword, int stop, int empty)); + int bckend_word __ARGS((long count, int bigword, int eol)); + int current_word __ARGS((oparg_T *oap, long count, int include, int bigword)); + int current_sent __ARGS((oparg_T *oap, long count, int include)); + int current_block __ARGS((oparg_T *oap, long count, int include, int what, int other)); + int current_tagblock __ARGS((oparg_T *oap, long count_arg, int include)); + int current_par __ARGS((oparg_T *oap, long count, int include, int type)); + int current_quote __ARGS((oparg_T *oap, long count, int include, int quotechar)); ++ int current_search __ARGS((long count, int forward)); + int linewhite __ARGS((linenr_T lnum)); + void find_pattern_in_path __ARGS((char_u *ptr, int dir, int len, int whole, int skip_comments, int type, long count, int action, linenr_T start_lnum, linenr_T end_lnum)); + int read_viminfo_search_pattern __ARGS((vir_T *virp, int force)); +*** ../vim-7.3.719/src/proto/os_win32.pro 2011-05-05 18:31:54.000000000 +0200 +--- src/proto/os_win32.pro 2012-11-20 16:52:13.000000000 +0100 +*************** +*** 22,28 **** + int mch_isdir __ARGS((char_u *name)); + int mch_mkdir __ARGS((char_u *name)); + int mch_is_linked __ARGS((char_u *fname)); +! int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo)); + int mch_writable __ARGS((char_u *name)); + int mch_can_exe __ARGS((char_u *name)); + int mch_nodetype __ARGS((char_u *name)); +--- 22,28 ---- + int mch_isdir __ARGS((char_u *name)); + int mch_mkdir __ARGS((char_u *name)); + int mch_is_linked __ARGS((char_u *fname)); +! int win32_fileinfo __ARGS((char_u *fname, BY_HANDLE_FILE_INFORMATION *info)); + int mch_writable __ARGS((char_u *name)); + int mch_can_exe __ARGS((char_u *name)); + int mch_nodetype __ARGS((char_u *name)); +*** ../vim-7.3.719/src/proto/os_mswin.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/os_mswin.pro 2012-11-20 16:52:14.000000000 +0100 +*************** +*** 28,38 **** + void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); + int clip_mch_own_selection __ARGS((VimClipboard *cbd)); + void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); + short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp)); + char_u *utf16_to_enc __ARGS((short_u *str, int *lenp)); +- void clip_mch_request_selection __ARGS((VimClipboard *cbd)); + void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); +- void clip_mch_set_selection __ARGS((VimClipboard *cbd)); + void DumpPutS __ARGS((const char *psz)); + int mch_get_winpos __ARGS((int *x, int *y)); + void mch_set_winpos __ARGS((int x, int y)); +--- 28,38 ---- + void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); + int clip_mch_own_selection __ARGS((VimClipboard *cbd)); + void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); ++ void clip_mch_request_selection __ARGS((VimClipboard *cbd)); ++ void clip_mch_set_selection __ARGS((VimClipboard *cbd)); + short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp)); + char_u *utf16_to_enc __ARGS((short_u *str, int *lenp)); + void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); + void DumpPutS __ARGS((const char *psz)); + int mch_get_winpos __ARGS((int *x, int *y)); + void mch_set_winpos __ARGS((int x, int y)); +*** ../vim-7.3.719/src/version.c 2012-11-20 16:53:34.000000000 +0100 +--- src/version.c 2012-11-20 16:55:09.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 720, + /**/ + +-- +Light travels faster than sound. This is why some people +appear bright until you hear them speak + + /// 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 /// From 7d5dcd840f33a384779bac06ca962e3c68bd093d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:45 +0100 Subject: [PATCH 052/291] - patchlevel 721 --- 7.3.721 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 7.3.721 diff --git a/7.3.721 b/7.3.721 new file mode 100644 index 00000000..d9a139f2 --- /dev/null +++ b/7.3.721 @@ -0,0 +1,60 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.721 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.721 +Problem: Ruby interface defines local functions globally. +Solution: Make the functions static. +Files: src/if_ruby.c + + +*** ../vim-7.3.720/src/if_ruby.c 2012-10-03 18:06:55.000000000 +0200 +--- src/if_ruby.c 2012-11-20 15:35:46.000000000 +0100 +*************** +*** 336,346 **** + #endif + + #ifdef RUBY19_OR_LATER +! SIGNED_VALUE rb_num2long_stub(VALUE x) + { + return dll_rb_num2long(x); + } +! VALUE rb_int2big_stub(SIGNED_VALUE x) + { + return dll_rb_int2big(x); + } +--- 336,346 ---- + #endif + + #ifdef RUBY19_OR_LATER +! static SIGNED_VALUE rb_num2long_stub(VALUE x) + { + return dll_rb_num2long(x); + } +! static VALUE rb_int2big_stub(SIGNED_VALUE x) + { + return dll_rb_int2big(x); + } +*** ../vim-7.3.720/src/version.c 2012-11-20 16:56:49.000000000 +0100 +--- src/version.c 2012-11-20 16:58:32.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 721, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +39. You move into a new house and decide to Netscape before you landscape. + + /// 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 /// From 0b8066b747f1456a30a8bb1378a49efe8e8f0971 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:46 +0100 Subject: [PATCH 053/291] - patchlevel 722 --- 7.3.722 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.3.722 diff --git a/7.3.722 b/7.3.722 new file mode 100644 index 00000000..d2d421d6 --- /dev/null +++ b/7.3.722 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.722 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.722 +Problem: Perl flags may contain "-g", which breaks "make proto". +Solution: Filter out the "-g" flag for cproto. (Ken Takata) +Files: src/Makefile + + +*** ../vim-7.3.721/src/Makefile 2012-07-25 16:32:03.000000000 +0200 +--- src/Makefile 2012-11-20 17:02:22.000000000 +0100 +*************** +*** 1753,1762 **** + # Filter out arguments that cproto doesn't support. + # Don't pass "-pthread" to cproto, it sees it as a list of individual flags. + # Don't pass "-fstack-protector" to cproto, for the same reason. + # The -E"gcc -E" argument must be separate to avoid problems with shell + # quoting. + CPROTO = cproto $(PROTO_FLAGS) -DPROTO \ +! `echo '$(LINT_CFLAGS)' | sed -e 's/-pthread//g' -e 's/-fstack-protector//g'` + + ### Would be nice if this would work for "normal" make. + ### Currently it only works for (Free)BSD make. +--- 1753,1763 ---- + # Filter out arguments that cproto doesn't support. + # Don't pass "-pthread" to cproto, it sees it as a list of individual flags. + # Don't pass "-fstack-protector" to cproto, for the same reason. ++ # Don't pass "-g" to cproto. + # The -E"gcc -E" argument must be separate to avoid problems with shell + # quoting. + CPROTO = cproto $(PROTO_FLAGS) -DPROTO \ +! `echo '$(LINT_CFLAGS)' | sed -e 's/-pthread//g' -e 's/-fstack-protector//g' -e 's/\ -g\ / /g'` + + ### Would be nice if this would work for "normal" make. + ### Currently it only works for (Free)BSD make. +*** ../vim-7.3.721/src/version.c 2012-11-20 16:59:09.000000000 +0100 +--- src/version.c 2012-11-20 17:02:54.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 722, + /**/ + +-- +The future isn't what it used to be. + + /// 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 /// From 6d2b8d40b7db0999a8bca99160a28b7c0737a3f8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:47 +0100 Subject: [PATCH 054/291] - patchlevel 723 --- 7.3.723 | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 7.3.723 diff --git a/7.3.723 b/7.3.723 new file mode 100644 index 00000000..b977e755 --- /dev/null +++ b/7.3.723 @@ -0,0 +1,264 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.723 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.723 +Problem: Various tiny problems. +Solution: Various tiny fixes. +Files: src/gui_mac.c, src/xpm_w32.c, src/netbeans.c, src/sha256.c, + src/if_sniff.c, README.txt + + +*** ../vim-7.3.722/src/gui_mac.c 2011-12-14 15:07:11.000000000 +0100 +--- src/gui_mac.c 2012-06-20 18:16:12.000000000 +0200 +*************** +*** 5728,5734 **** + case VIM_QUESTION: useIcon = kNoteIcon; break; + case VIM_WARNING: useIcon = kCautionIcon; break; + case VIM_ERROR: useIcon = kStopIcon; break; +! default: useIcon = kStopIcon; + } + AppendDITL(theDialog, iconDITL, overlayDITL); + ReleaseResource(iconDITL); +--- 5728,5734 ---- + case VIM_QUESTION: useIcon = kNoteIcon; break; + case VIM_WARNING: useIcon = kCautionIcon; break; + case VIM_ERROR: useIcon = kStopIcon; break; +! default: useIcon = kStopIcon; + } + AppendDITL(theDialog, iconDITL, overlayDITL); + ReleaseResource(iconDITL); +*** ../vim-7.3.722/src/xpm_w32.c 2012-02-05 00:47:56.000000000 +0100 +--- src/xpm_w32.c 2012-08-02 21:46:20.000000000 +0200 +*************** +*** 55,61 **** + return -1; + if (shp == NULL) + { +! if (img) + XDestroyImage(img); + return -1; + } +--- 55,61 ---- + return -1; + if (shp == NULL) + { +! if (img) + XDestroyImage(img); + return -1; + } +*** ../vim-7.3.722/src/netbeans.c 2012-04-20 19:47:00.000000000 +0200 +--- src/netbeans.c 2012-06-20 19:56:18.000000000 +0200 +*************** +*** 978,984 **** + buf_list_used = 0; + + /* free the queued key commands */ +! while(key_node != NULL && key_node != &keyHead) + { + keyQ_T *next = key_node->next; + vim_free(key_node->keystr); +--- 978,984 ---- + buf_list_used = 0; + + /* free the queued key commands */ +! while (key_node != NULL && key_node != &keyHead) + { + keyQ_T *next = key_node->next; + vim_free(key_node->keystr); +*************** +*** 993,999 **** + } + + /* free the queued netbeans commands */ +! while(cmd_node != NULL && cmd_node != &head) + { + queue_T *next = cmd_node->next; + vim_free(cmd_node->buffer); +--- 993,999 ---- + } + + /* free the queued netbeans commands */ +! while (cmd_node != NULL && cmd_node != &head) + { + queue_T *next = cmd_node->next; + vim_free(cmd_node->buffer); +*** ../vim-7.3.722/src/sha256.c 2010-08-15 21:57:25.000000000 +0200 +--- src/sha256.c 2012-03-18 21:35:07.000000000 +0100 +*************** +*** 7,15 **** + * See README.txt for an overview of the Vim source code. + * + * FIPS-180-2 compliant SHA-256 implementation +! * GPL by Christophe Devine. + * Modified for md5deep, in public domain. + * Modified For Vim, Mohsin Ahmed, http://www.cs.albany.edu/~mosh + * + * Vim specific notes: + * Functions exported by this file: +--- 7,17 ---- + * See README.txt for an overview of the Vim source code. + * + * FIPS-180-2 compliant SHA-256 implementation +! * GPL by Christophe Devine, applies to older version. + * Modified for md5deep, in public domain. + * Modified For Vim, Mohsin Ahmed, http://www.cs.albany.edu/~mosh ++ * Mohsin Ahmed states this work is distributed under the VIM License or GPL, ++ * at your choice. + * + * Vim specific notes: + * Functions exported by this file: +*** ../vim-7.3.722/src/if_sniff.c 2010-12-17 18:06:00.000000000 +0100 +--- src/if_sniff.c 2012-06-20 19:56:09.000000000 +0200 +*************** +*** 449,455 **** + if (!sniff_cmd) + { + struct sn_cmd_list *list = sniff_cmd_ext; +! while(list) + { + if (!strcmp(cmd, list->sniff_cmd->cmd_name)) + { +--- 449,455 ---- + if (!sniff_cmd) + { + struct sn_cmd_list *list = sniff_cmd_ext; +! while (list) + { + if (!strcmp(cmd, list->sniff_cmd->cmd_name)) + { +*************** +*** 479,485 **** + /* unescape message text */ + char *p = msg; + char *end = p+strlen(msg); +! while(*p) + { + if (*p == '\\') + mch_memmove(p,p+1,end-p); +--- 479,485 ---- + /* unescape message text */ + char *p = msg; + char *end = p+strlen(msg); +! while (*p) + { + if (*p == '\\') + mch_memmove(p,p+1,end-p); +*************** +*** 489,495 **** + SNIFF_TRACE1("request def = %s\n",def); + SNIFF_TRACE1("request msg = %s\n",msg); + +! while(list && list->next_cmd) + list = list->next_cmd; + if (!list) + sniff_cmd_ext = cmd_node; +--- 489,495 ---- + SNIFF_TRACE1("request def = %s\n",def); + SNIFF_TRACE1("request msg = %s\n",msg); + +! while (list && list->next_cmd) + list = list->next_cmd; + if (!list) + sniff_cmd_ext = cmd_node; +*************** +*** 628,634 **** + gui_mch_wait_for_chars(0L); + #endif + #ifdef WIN32 +! while(sniffBufStart != NULL) + { + struct sniffBufNode *node = sniffBufStart; + sniffBufStart = sniffBufStart->next; +--- 628,634 ---- + gui_mch_wait_for_chars(0L); + #endif + #ifdef WIN32 +! while (sniffBufStart != NULL) + { + struct sniffBufNode *node = sniffBufStart; + sniffBufStart = sniffBufStart->next; +*************** +*** 789,795 **** + command = buffer[0]; + arguments = &buffer[1]; + token = strtok(arguments, sniff_rq_sep); +! while(argc <3) + { + if (token) + { +--- 789,795 ---- + command = buffer[0]; + arguments = &buffer[1]; + token = strtok(arguments, sniff_rq_sep); +! while (argc <3) + { + if (token) + { +*************** +*** 925,931 **** + default : + break; + } +! while(argc) + vim_free(argv[--argc]); + } + +--- 925,931 ---- + default : + break; + } +! while (argc) + vim_free(argv[--argc]); + } + +*** ../vim-7.3.722/README.txt 2010-08-15 21:56:43.000000000 +0200 +--- README.txt 2012-10-28 18:58:18.000000000 +0100 +*************** +*** 97,103 **** + If you have problems, have a look at the Vim FAQ: + http://vimdoc.sf.net/vimfaq.html + +! Send bug reports to: + Bram Moolenaar + + There are several mailing lists for Vim, see http://www.vim.org/maillist.php. +--- 97,107 ---- + If you have problems, have a look at the Vim FAQ: + http://vimdoc.sf.net/vimfaq.html + +! If you still have problems, use one of the maillists to discuss t with Vim +! users and developers: +! http://www.vim.org/maillist.php +! +! If nothing else works, report bugs directly: + Bram Moolenaar + + There are several mailing lists for Vim, see http://www.vim.org/maillist.php. +*** ../vim-7.3.722/src/version.c 2012-11-20 17:03:23.000000000 +0100 +--- src/version.c 2012-11-20 17:14:09.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 723, + /**/ + +-- +"Oh, no! NOT the Spanish Inquisition!" +"NOBODY expects the Spanish Inquisition!!!" + -- Monty Python sketch -- +"Oh, no! NOT another option!" +"EVERYBODY expects another option!!!" + -- Discussion in vim-dev mailing list -- + + /// 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 /// From 6a9a084f9b108ec286d0f3c960793b5b2d041a6b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:48 +0100 Subject: [PATCH 055/291] - patchlevel 724 --- 7.3.724 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.3.724 diff --git a/7.3.724 b/7.3.724 new file mode 100644 index 00000000..d58a50b0 --- /dev/null +++ b/7.3.724 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.724 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.724 +Problem: Building with Ruby and Tcl on MS-Windows 64 bit does not work. +Solution: Remove Ruby and Tcl from the big MS-Windows build. +Files: src/bigvim64.bat + + +*** ../vim-7.3.723/src/bigvim64.bat 2012-08-29 14:18:26.000000000 +0200 +--- src/bigvim64.bat 2012-08-29 17:32:55.000000000 +0200 +*************** +*** 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 + +--- 1,7 ---- + :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl + :: First run: %VCDIR%\vcvarsall.bat x86_amd64 ++ :: Ruby and Tcl are excluded, doesn't seem to work. + 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 %1 IME=yes CSCOPE=yes + +*** ../vim-7.3.723/src/version.c 2012-11-20 17:18:56.000000000 +0100 +--- src/version.c 2012-11-20 17:20:51.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 724, + /**/ + +-- +Microsoft is to software what McDonalds is to gourmet cooking + + /// 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 /// From 73c4a232993b102de0c7fe1246a64d19e7b27229 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:49 +0100 Subject: [PATCH 056/291] - patchlevel 725 --- 7.3.725 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.3.725 diff --git a/7.3.725 b/7.3.725 new file mode 100644 index 00000000..a8d20f86 --- /dev/null +++ b/7.3.725 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.725 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.725 +Problem: :aboveleft and :belowright have no effect on :copen. +Solution: Check for cmdmod.split. (Christian Brabandt) +Files: src/quickfix.c + + +*** ../vim-7.3.724/src/quickfix.c 2012-11-14 22:38:04.000000000 +0100 +--- src/quickfix.c 2012-11-20 17:51:59.000000000 +0100 +*************** +*** 2347,2354 **** + /* The current window becomes the previous window afterwards. */ + win = curwin; + +! if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) +! /* Create the new window at the very bottom. */ + win_goto(lastwin); + if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) + return; /* not enough room for window */ +--- 2347,2356 ---- + /* The current window becomes the previous window afterwards. */ + win = curwin; + +! if ((eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) +! && cmdmod.split == 0) +! /* Create the new window at the very bottom, except when +! * :belowright or :aboveleft is used. */ + win_goto(lastwin); + if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) + return; /* not enough room for window */ +*** ../vim-7.3.724/src/version.c 2012-11-20 17:21:29.000000000 +0100 +--- src/version.c 2012-11-20 17:50:30.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 725, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +40. You tell the cab driver you live at + http://123.elm.street/house/bluetrim.html +41. You actually try that 123.elm.street address. + + /// 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 /// From 45437dae794fa921b3a8878ed4783740a05a7a6a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:50 +0100 Subject: [PATCH 057/291] - patchlevel 726 --- 7.3.726 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 7.3.726 diff --git a/7.3.726 b/7.3.726 new file mode 100644 index 00000000..93507536 --- /dev/null +++ b/7.3.726 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.726 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.726 +Problem: Typos and duplicate info in README. +Solution: Fix the text. +Files: README.txt + + +*** ../vim-7.3.725/README.txt 2012-11-20 17:18:56.000000000 +0100 +--- README.txt 2012-11-21 12:28:58.000000000 +0100 +*************** +*** 97,111 **** + If you have problems, have a look at the Vim FAQ: + http://vimdoc.sf.net/vimfaq.html + +! If you still have problems, use one of the maillists to discuss t with Vim +! users and developers: + http://www.vim.org/maillist.php + + If nothing else works, report bugs directly: + Bram Moolenaar + +- There are several mailing lists for Vim, see http://www.vim.org/maillist.php. +- + + MAIN AUTHOR + +--- 97,109 ---- + If you have problems, have a look at the Vim FAQ: + http://vimdoc.sf.net/vimfaq.html + +! If you still have problems or any other questions, use one of the mailing +! lists to discuss them with Vim users and developers: + http://www.vim.org/maillist.php + + If nothing else works, report bugs directly: + Bram Moolenaar + + + MAIN AUTHOR + +*** ../vim-7.3.725/src/version.c 2012-11-20 17:55:06.000000000 +0100 +--- src/version.c 2012-11-23 21:44:38.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 726, + /**/ + +-- +Q: Should I clean my house or work on Vim? +A: Whatever contains more bugs. + + /// 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 /// From a1e0feaf116f560494360448cf3129e274c66358 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:51 +0100 Subject: [PATCH 058/291] - patchlevel 727 --- 7.3.727 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.3.727 diff --git a/7.3.727 b/7.3.727 new file mode 100644 index 00000000..02ea4212 --- /dev/null +++ b/7.3.727 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.727 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.727 +Problem: Can't always find Win32.mak when building GvimExt. +Solution: Use same mechanism as in Make_mvc.mak. (Cade Foster) +Files: src/GvimExt/Makefile + + +*** ../vim-7.3.726/src/GvimExt/Makefile 2010-08-15 21:57:29.000000000 +0200 +--- src/GvimExt/Makefile 2012-11-21 19:53:02.000000000 +0100 +*************** +*** 10,16 **** + NODEBUG = 1 + !endif + +! !include + + all: gvimext.dll + +--- 10,20 ---- + NODEBUG = 1 + !endif + +! !ifdef SDK_INCLUDE_DIR +! !include $(SDK_INCLUDE_DIR)\Win32.mak +! !else +! !include +! !endif + + all: gvimext.dll + +*** ../vim-7.3.726/src/version.c 2012-11-23 21:45:20.000000000 +0100 +--- src/version.c 2012-11-23 21:46:35.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 727, + /**/ + +-- +Time is money. Especially if you make clocks. + + /// 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 /// From 30a10f835ff863e6ee0397c048032c1d18aee2d0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:52 +0100 Subject: [PATCH 059/291] - patchlevel 728 --- 7.3.728 | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 7.3.728 diff --git a/7.3.728 b/7.3.728 new file mode 100644 index 00000000..bdb0219f --- /dev/null +++ b/7.3.728 @@ -0,0 +1,191 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.728 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.728 +Problem: Cannot compile with MzScheme interface on Ubuntu 12.10. +Solution: Find the collects directory under /usr/share. +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.3.727/src/configure.in 2012-10-03 21:09:33.000000000 +0200 +--- src/configure.in 2012-11-23 21:51:39.000000000 +0100 +*************** +*** 650,666 **** + MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then +! SCHEME_COLLECTS=lib/plt/ + else + if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then +! SCHEME_COLLECTS=lib/racket/ + fi + fi +! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + else +! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + fi + fi +--- 650,679 ---- + MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi ++ ++ AC_MSG_CHECKING(for racket collects directory) + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then +! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/plt/ + else + if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then +! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/racket/ +! else +! if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then +! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/ +! fi + fi + fi +! if test "X$SCHEME_COLLECTS" != "X" ; then +! AC_MSG_RESULT(${SCHEME_COLLECTS}) +! else +! AC_MSG_RESULT(not found) +! fi +! +! AC_MSG_CHECKING(for mzscheme_base.c) +! if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + else +! if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + fi + fi +*************** +*** 668,676 **** + dnl need to generate bytecode for MzScheme base + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" + fi + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \ +! -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" + MZSCHEME_PRO="if_mzsch.pro" +--- 681,693 ---- + dnl need to generate bytecode for MzScheme base + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" ++ AC_MSG_RESULT(needed) ++ else ++ AC_MSG_RESULT(not needed) + fi ++ + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \ +! -DMZSCHEME_COLLECTS='\"${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" + MZSCHEME_PRO="if_mzsch.pro" +*** ../vim-7.3.727/src/auto/configure 2012-10-03 21:09:33.000000000 +0200 +--- src/auto/configure 2012-11-23 21:51:42.000000000 +0100 +*************** +*** 4957,4982 **** + MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then +! SCHEME_COLLECTS=lib/plt/ + else + if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then +! SCHEME_COLLECTS=lib/racket/ + fi + fi +! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + else +! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + fi + fi + if test "X$MZSCHEME_EXTRA" != "X" ; then + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" + fi + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \ +! -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" + MZSCHEME_PRO="if_mzsch.pro" +--- 4957,5005 ---- + MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for racket collects directory" >&5 ++ $as_echo_n "checking for racket collects directory... " >&6; } + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then +! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/plt/ + else + if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then +! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/racket/ +! else +! if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then +! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/ +! fi + fi + fi +! if test "X$SCHEME_COLLECTS" != "X" ; then +! { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${SCHEME_COLLECTS}" >&5 +! $as_echo "${SCHEME_COLLECTS}" >&6; } +! else +! { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +! $as_echo "not found" >&6; } +! fi +! +! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mzscheme_base.c" >&5 +! $as_echo_n "checking for mzscheme_base.c... " >&6; } +! if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + else +! if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + fi + fi + if test "X$MZSCHEME_EXTRA" != "X" ; then + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: needed" >&5 ++ $as_echo "needed" >&6; } ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not needed" >&5 ++ $as_echo "not needed" >&6; } + fi ++ + MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \ +! -DMZSCHEME_COLLECTS='\"${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" + MZSCHEME_PRO="if_mzsch.pro" +*** ../vim-7.3.727/src/version.c 2012-11-23 21:47:18.000000000 +0100 +--- src/version.c 2012-11-23 21:54:13.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 728, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +60. As your car crashes through the guardrail on a mountain road, your first + instinct is to search for the "back" button. + + /// 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 /// From 3f7a203944d215bf2d79f9f315823fa1863a897e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:53 +0100 Subject: [PATCH 060/291] - patchlevel 729 --- 7.3.729 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.3.729 diff --git a/7.3.729 b/7.3.729 new file mode 100644 index 00000000..ffd9c85e --- /dev/null +++ b/7.3.729 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.729 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.729 +Problem: Building with Ruby fails on some systems. +Solution: Remove "static" and add #ifndef PROTO. (Ken Takata) +Files: src/if_ruby.c + + +*** ../vim-7.3.728/src/if_ruby.c 2012-11-20 16:59:09.000000000 +0100 +--- src/if_ruby.c 2012-11-24 13:32:06.000000000 +0100 +*************** +*** 335,346 **** + static void* (*ruby_process_options)(int, char**); + #endif + +! #ifdef RUBY19_OR_LATER +! static SIGNED_VALUE rb_num2long_stub(VALUE x) + { + return dll_rb_num2long(x); + } +! static VALUE rb_int2big_stub(SIGNED_VALUE x) + { + return dll_rb_int2big(x); + } +--- 335,346 ---- + static void* (*ruby_process_options)(int, char**); + #endif + +! #if defined(RUBY19_OR_LATER) && !defined(PROTO) +! SIGNED_VALUE rb_num2long_stub(VALUE x) + { + return dll_rb_num2long(x); + } +! VALUE rb_int2big_stub(SIGNED_VALUE x) + { + return dll_rb_int2big(x); + } +*** ../vim-7.3.728/src/version.c 2012-11-23 21:54:43.000000000 +0100 +--- src/version.c 2012-11-24 13:34:20.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 729, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +64. The remote to the T.V. is missing...and you don't even care. + + /// 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 /// From ce26e1d6db2eef88e01ba5734485b61e6bb26d44 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:54 +0100 Subject: [PATCH 061/291] - patchlevel 730 --- 7.3.730 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.3.730 diff --git a/7.3.730 b/7.3.730 new file mode 100644 index 00000000..29cebe10 --- /dev/null +++ b/7.3.730 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.730 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.730 +Problem: Crash in PHP file when using syntastic. (Ike Devolder) +Solution: Avoid using NULL pointer. (Christian Brabandt) +Files: src/quickfix.c + + +*** ../vim-7.3.729/src/quickfix.c 2012-11-20 17:55:06.000000000 +0100 +--- src/quickfix.c 2012-11-28 15:20:21.000000000 +0100 +*************** +*** 898,908 **** + * way with ":grep'. + */ + while (qi->qf_listcount > qi->qf_curlist + 1) +- { +- if (wp != NULL && wp->w_llist == qi) +- wp->w_llist = NULL; + qf_free(qi, --qi->qf_listcount); +- } + + /* + * When the stack is full, remove to oldest entry +--- 898,904 ---- +*************** +*** 910,917 **** + */ + if (qi->qf_listcount == LISTCOUNT) + { +- if (wp != NULL && wp->w_llist == qi) +- wp->w_llist = NULL; + qf_free(qi, 0); + for (i = 1; i < LISTCOUNT; ++i) + qi->qf_lists[i - 1] = qi->qf_lists[i]; +--- 906,911 ---- +*************** +*** 2135,2143 **** + while (qi->qf_lists[idx].qf_count) + { + qfp = qi->qf_lists[idx].qf_start->qf_next; +! vim_free(qi->qf_lists[idx].qf_start->qf_text); +! vim_free(qi->qf_lists[idx].qf_start->qf_pattern); +! vim_free(qi->qf_lists[idx].qf_start); + qi->qf_lists[idx].qf_start = qfp; + --qi->qf_lists[idx].qf_count; + } +--- 2129,2140 ---- + while (qi->qf_lists[idx].qf_count) + { + qfp = qi->qf_lists[idx].qf_start->qf_next; +! if (qi->qf_lists[idx].qf_title != NULL) +! { +! vim_free(qi->qf_lists[idx].qf_start->qf_text); +! vim_free(qi->qf_lists[idx].qf_start->qf_pattern); +! vim_free(qi->qf_lists[idx].qf_start); +! } + qi->qf_lists[idx].qf_start = qfp; + --qi->qf_lists[idx].qf_count; + } +*** ../vim-7.3.729/src/version.c 2012-11-24 13:38:56.000000000 +0100 +--- src/version.c 2012-11-28 15:16:16.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 730, + /**/ + + +-- +hundred-and-one symptoms of being an internet addict: +89. In addition to your e-mail address being on your business + cards you even have your own domain. + + /// 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 /// From d766ee9073b4e57ee33468b9a0455c287973e368 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:55 +0100 Subject: [PATCH 062/291] - patchlevel 731 --- 7.3.731 | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 7.3.731 diff --git a/7.3.731 b/7.3.731 new file mode 100644 index 00000000..d1a0c236 --- /dev/null +++ b/7.3.731 @@ -0,0 +1,81 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.731 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.731 +Problem: Py3Init_vim() is exported uneccessarily. +Solution: Make it static. (Ken Takata) +Files: src/if_python3.c + + +*** ../vim-7.3.730/src/if_python3.c 2012-11-20 11:02:49.000000000 +0100 +--- src/if_python3.c 2012-11-28 15:32:00.000000000 +0100 +*************** +*** 657,663 **** + static PyObject *globals; + + static int PythonIO_Init(void); +! PyMODINIT_FUNC Py3Init_vim(void); + + /****************************************************** + * 1. Python interpreter main program. +--- 657,663 ---- + static PyObject *globals; + + static int PythonIO_Init(void); +! static PyObject *Py3Init_vim(void); + + /****************************************************** + * 1. Python interpreter main program. +*************** +*** 1773,1780 **** + + static struct PyModuleDef vimmodule; + +! #ifndef PROTO +! PyMODINIT_FUNC Py3Init_vim(void) + { + PyObject *mod; + PyObject *tmp; +--- 1773,1780 ---- + + static struct PyModuleDef vimmodule; + +! static PyObject * +! Py3Init_vim(void) + { + PyObject *mod; + PyObject *tmp; +*************** +*** 1824,1830 **** + + return mod; + } +- #endif + + /************************************************************************* + * 4. Utility functions for handling the interface between Vim and Python. +--- 1824,1829 ---- +*** ../vim-7.3.730/src/version.c 2012-11-28 15:25:28.000000000 +0100 +--- src/version.c 2012-11-28 15:30:47.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 731, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +90. Instead of calling you to dinner, your spouse sends e-mail. + + /// 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 /// From a35cc376abad96184a6307c15b57f07143128fa5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:56 +0100 Subject: [PATCH 063/291] - patchlevel 732 --- 7.3.732 | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 7.3.732 diff --git a/7.3.732 b/7.3.732 new file mode 100644 index 00000000..39a32648 --- /dev/null +++ b/7.3.732 @@ -0,0 +1,130 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.732 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.732 +Problem: Compiler warnings for function arguments. +Solution: Use inteptr_t instead of long. +Files: src/if_mzsch.c + + +*** ../vim-7.3.731/src/if_mzsch.c 2012-10-14 03:41:54.000000000 +0200 +--- src/if_mzsch.c 2012-11-24 14:00:31.000000000 +0100 +*************** +*** 142,148 **** + static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what); + static void startup_mzscheme(void); + static char *string_to_line(Scheme_Object *obj); +! static void do_output(char *mesg, long len); + static void do_printf(char *format, ...); + static void do_flush(void); + static Scheme_Object *_apply_thunk_catch_exceptions( +--- 142,148 ---- + static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what); + static void startup_mzscheme(void); + static char *string_to_line(Scheme_Object *obj); +! static void do_output(char *mesg, intptr_t len); + static void do_printf(char *format, ...); + static void do_flush(void); + static Scheme_Object *_apply_thunk_catch_exceptions( +*************** +*** 1349,1356 **** + } + + static void +! do_output(char *mesg, long len UNUSED) + { + do_intrnl_output(mesg, 0); + } + +--- 1349,1357 ---- + } + + static void +! do_output(char *mesg, intptr_t len UNUSED) + { ++ /* TODO: use len, the string may not be NUL terminated */ + do_intrnl_output(mesg, 0); + } + +*************** +*** 1370,1376 **** + do_flush(void) + { + char *buff; +! long length; + + buff = scheme_get_sized_string_output(curerr, &length); + MZ_GC_CHECK(); +--- 1371,1377 ---- + do_flush(void) + { + char *buff; +! intptr_t length; + + buff = scheme_get_sized_string_output(curerr, &length); + MZ_GC_CHECK(); +*************** +*** 2588,2594 **** + { + char *scheme_str = NULL; + char *vim_str = NULL; +! long len; + int i; + + scheme_str = scheme_display_to_string(obj, &len); +--- 2589,2595 ---- + { + char *scheme_str = NULL; + char *vim_str = NULL; +! intptr_t len; + int i; + + scheme_str = scheme_display_to_string(obj, &len); +*************** +*** 2597,2606 **** + * are replacing a single line, and we must replace it with + * a single line. + */ +! if (memchr(scheme_str, '\n', len)) + scheme_signal_error(_("string cannot contain newlines")); + +! vim_str = (char *)alloc(len + 1); + + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. +--- 2598,2607 ---- + * are replacing a single line, and we must replace it with + * a single line. + */ +! if (memchr(scheme_str, '\n', (size_t)len)) + scheme_signal_error(_("string cannot contain newlines")); + +! vim_str = (char *)alloc((int)(len + 1)); + + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. +*** ../vim-7.3.731/src/version.c 2012-11-28 15:33:10.000000000 +0100 +--- src/version.c 2012-11-28 15:34:30.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 732, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +91. It's Saturday afternoon in the middle of May and you + are on computer. + + /// 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 /// From 17c8eede02c105bce1c2642d027b62b2eec05975 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:57 +0100 Subject: [PATCH 064/291] - patchlevel 733 --- 7.3.733 | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 7.3.733 diff --git a/7.3.733 b/7.3.733 new file mode 100644 index 00000000..0c0a998f --- /dev/null +++ b/7.3.733 @@ -0,0 +1,118 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.733 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.733 +Problem: Tests fail when including MzScheme. +Solution: Change #ifdefs for vim_main2(). +Files: src/main.c + + +*** ../vim-7.3.732/src/main.c 2012-04-25 18:24:24.000000000 +0200 +--- src/main.c 2012-11-24 14:26:56.000000000 +0100 +*************** +*** 147,154 **** + #define ME_INVALID_ARG 5 + }; + +- #ifndef NO_VIM_MAIN /* skip this for unittests */ + #ifndef PROTO /* don't want a prototype for main() */ + int + # ifdef VIMDLL + _export +--- 147,154 ---- + #define ME_INVALID_ARG 5 + }; + + #ifndef PROTO /* don't want a prototype for main() */ ++ #ifndef NO_VIM_MAIN /* skip this for unittests */ + int + # ifdef VIMDLL + _export +*************** +*** 570,584 **** + return mzscheme_main(2, args); + } + } + +! int vim_main2(int argc, char **argv) + { + char_u *fname = (char_u *)argv[0]; + mparm_T params; + + memcpy(¶ms, argv[1], sizeof(params)); + #endif + + /* Execute --cmd arguments. */ + exe_pre_commands(¶ms); + +--- 570,596 ---- + return mzscheme_main(2, args); + } + } ++ #endif ++ #endif /* NO_VIM_MAIN */ + +! /* vim_main2() needs to be produced when FEAT_MZSCHEME is defined even when +! * NO_VIM_MAIN is defined. */ +! #ifdef FEAT_MZSCHEME +! int +! vim_main2(int argc UNUSED, char **argv UNUSED) + { ++ # ifndef NO_VIM_MAIN + char_u *fname = (char_u *)argv[0]; + mparm_T params; + + memcpy(¶ms, argv[1], sizeof(params)); ++ # else ++ return 0; ++ } ++ # endif + #endif + ++ #ifndef NO_VIM_MAIN + /* Execute --cmd arguments. */ + exe_pre_commands(¶ms); + +*************** +*** 999,1006 **** + + return 0; + } +- #endif /* PROTO */ + #endif /* NO_VIM_MAIN */ + + /* + * Main loop: Execute Normal mode commands until exiting Vim. +--- 1011,1018 ---- + + return 0; + } + #endif /* NO_VIM_MAIN */ ++ #endif /* PROTO */ + + /* + * Main loop: Execute Normal mode commands until exiting Vim. +*** ../vim-7.3.732/src/version.c 2012-11-28 15:37:46.000000000 +0100 +--- src/version.c 2012-11-28 15:54:07.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 733, + /**/ + +-- +From "know your smileys": + :^[/ mean-smiley-with-cigarette + + /// 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 /// From bfeacfafb20c42995e089fe27f438a50a8002e8e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:58 +0100 Subject: [PATCH 065/291] - patchlevel 734 --- 7.3.734 | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 7.3.734 diff --git a/7.3.734 b/7.3.734 new file mode 100644 index 00000000..1b4d16f5 --- /dev/null +++ b/7.3.734 @@ -0,0 +1,125 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.734 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.734 +Problem: Cannot put help files in a sub-directory. +Solution: Make :helptags work for sub-directories. (Charles Campbell) +Files: src/ex_cmds.c + + +*** ../vim-7.3.733/src/ex_cmds.c 2012-09-05 15:15:01.000000000 +0200 +--- src/ex_cmds.c 2012-11-28 15:59:58.000000000 +0100 +*************** +*** 6344,6353 **** + } + + #ifdef FEAT_MULTI_LANG +! /* Get a list of all files in the directory. */ + STRCPY(NameBuff, dirname); + add_pathsep(NameBuff); +! STRCAT(NameBuff, "*"); + if (gen_expand_wildcards(1, &NameBuff, &filecount, &files, + EW_FILE|EW_SILENT) == FAIL + || filecount == 0) +--- 6344,6353 ---- + } + + #ifdef FEAT_MULTI_LANG +! /* Get a list of all files in the help directory and in subdirectories. */ + STRCPY(NameBuff, dirname); + add_pathsep(NameBuff); +! STRCAT(NameBuff, "**"); + if (gen_expand_wildcards(1, &NameBuff, &filecount, &files, + EW_FILE|EW_SILENT) == FAIL + || filecount == 0) +*************** +*** 6436,6443 **** + helptags_one(dir, ext, tagfname, add_help_tags) + char_u *dir; /* doc directory */ + char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */ +! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */ +! int add_help_tags; /* add "help-tags" tag */ + { + FILE *fd_tags; + FILE *fd; +--- 6436,6443 ---- + helptags_one(dir, ext, tagfname, add_help_tags) + char_u *dir; /* doc directory */ + char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */ +! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */ +! int add_help_tags; /* add "help-tags" tag */ + { + FILE *fd_tags; + FILE *fd; +*************** +*** 6449,6454 **** +--- 6449,6455 ---- + char_u *s; + int i; + char_u *fname; ++ int dirlen; + # ifdef FEAT_MBYTE + int utf8 = MAYBE; + int this_utf8; +*************** +*** 6459,6467 **** + /* + * Find all *.txt files. + */ + STRCPY(NameBuff, dir); +! add_pathsep(NameBuff); +! STRCAT(NameBuff, "*"); + STRCAT(NameBuff, ext); + if (gen_expand_wildcards(1, &NameBuff, &filecount, &files, + EW_FILE|EW_SILENT) == FAIL +--- 6460,6468 ---- + /* + * Find all *.txt files. + */ ++ dirlen = STRLEN(dir); + STRCPY(NameBuff, dir); +! STRCAT(NameBuff, "/**/*"); + STRCAT(NameBuff, ext); + if (gen_expand_wildcards(1, &NameBuff, &filecount, &files, + EW_FILE|EW_SILENT) == FAIL +*************** +*** 6522,6528 **** + EMSG2(_("E153: Unable to open %s for reading"), files[fi]); + continue; + } +! fname = gettail(files[fi]); + + # ifdef FEAT_MBYTE + firstline = TRUE; +--- 6523,6529 ---- + EMSG2(_("E153: Unable to open %s for reading"), files[fi]); + continue; + } +! fname = files[fi] + dirlen + 1; + + # ifdef FEAT_MBYTE + firstline = TRUE; +*** ../vim-7.3.733/src/version.c 2012-11-28 15:55:37.000000000 +0100 +--- src/version.c 2012-11-28 15:58:26.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 734, + /**/ + +-- +From "know your smileys": + y:-) Bad toupee + + /// 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 /// From 4dcbec5a6ba3f23b8ff37eb9232ff4a904eedf03 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:10:59 +0100 Subject: [PATCH 066/291] - patchlevel 735 --- 7.3.735 | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 7.3.735 diff --git a/7.3.735 b/7.3.735 new file mode 100644 index 00000000..808bd298 --- /dev/null +++ b/7.3.735 @@ -0,0 +1,100 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.735 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.735 +Problem: Cannot build Ruby 1.9 with MingW or Cygwin. +Solution: Add another include directory. (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak + + +*** ../vim-7.3.734/src/Make_cyg.mak 2012-07-06 13:40:44.000000000 +0200 +--- src/Make_cyg.mak 2012-11-28 16:14:41.000000000 +0100 +*************** +*** 21,27 **** + # TCL_VER define to version of TCL being used (83) + # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes) + # RUBY define to path to Ruby dir to get Ruby support (not defined) +! # RUBY_VER define to version of Ruby being used (16) + # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes) + # MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined) + # MZSCHEME_VER define to version of MzScheme being used (209_000) +--- 21,31 ---- + # TCL_VER define to version of TCL being used (83) + # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes) + # RUBY define to path to Ruby dir to get Ruby support (not defined) +! # RUBY_VER define to version of Ruby being used (16) +! # RUBY_VER_LONG same, but in format with dot. (1.6) +! # You must set RUBY_VER_LONG when changing RUBY_VER. +! # You must set RUBY_API_VER version to RUBY_VER_LONG. +! # Don't set ruby API version to RUBY_VER like 191. + # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes) + # MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined) + # MZSCHEME_VER define to version of MzScheme being used (209_000) +*************** +*** 217,224 **** +--- 221,235 ---- + endif + endif + ++ ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) ++ RUBY_19_OR_LATER = 1 ++ endif ++ + DEFINES += -DFEAT_RUBY + INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) ++ ifdef RUBY_19_OR_LATER ++ INCLUDES += -I$(RUBY)/include/ruby-$(RUBY_VER_LONG) -I$(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) ++ endif + EXTRA_OBJS += $(OUTDIR)/if_ruby.o + + ifeq (yes, $(DYNAMIC_RUBY)) +*** ../vim-7.3.734/src/Make_ming.mak 2012-09-05 17:57:34.000000000 +0200 +--- src/Make_ming.mak 2012-11-28 16:14:16.000000000 +0100 +*************** +*** 301,307 **** + endif + endif + +! RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) + ifeq (no, $(DYNAMIC_RUBY)) + RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME) + endif +--- 301,314 ---- + endif + endif + +! ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) +! RUBY_19_OR_LATER = 1 +! endif +! +! RUBYINC = -I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +! ifdef RUBY_19_OR_LATER +! RUBYINC += -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +! endif + ifeq (no, $(DYNAMIC_RUBY)) + RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME) + endif +*** ../vim-7.3.734/src/version.c 2012-11-28 16:06:13.000000000 +0100 +--- src/version.c 2012-11-28 16:16:28.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 735, + /**/ + +-- +From "know your smileys": + :----} You lie like Pinocchio + + /// 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 /// From 009ecdc89dd7f80055cbcfd17bda16acc3b1dbe4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:00 +0100 Subject: [PATCH 067/291] - patchlevel 736 --- 7.3.736 | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 7.3.736 diff --git a/7.3.736 b/7.3.736 new file mode 100644 index 00000000..fa1fceba --- /dev/null +++ b/7.3.736 @@ -0,0 +1,258 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.736 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.736 +Problem: File name completion in input() escapes white space. (Frederic + Hardy) +Solution: Do not escape white space. (Christian Brabandt) +Files: src/ex_getln.c + + +*** ../vim-7.3.735/src/ex_getln.c 2012-10-11 04:04:32.000000000 +0200 +--- src/ex_getln.c 2012-11-28 16:42:12.000000000 +0100 +*************** +*** 102,108 **** + static void redrawcmdprompt __ARGS((void)); + static void cursorcmd __ARGS((void)); + static int ccheck_abbr __ARGS((int)); +! static int nextwild __ARGS((expand_T *xp, int type, int options)); + static void escape_fname __ARGS((char_u **pp)); + static int showmatches __ARGS((expand_T *xp, int wildmenu)); + static void set_expand_context __ARGS((expand_T *xp)); +--- 102,108 ---- + static void redrawcmdprompt __ARGS((void)); + static void cursorcmd __ARGS((void)); + static int ccheck_abbr __ARGS((int)); +! static int nextwild __ARGS((expand_T *xp, int type, int options, int escape)); + static void escape_fname __ARGS((char_u **pp)); + static int showmatches __ARGS((expand_T *xp, int wildmenu)); + static void set_expand_context __ARGS((expand_T *xp)); +*************** +*** 810,818 **** + did_wild_list = TRUE; + } + if (wim_flags[wim_index] & WIM_LONGEST) +! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP); + else if (wim_flags[wim_index] & WIM_FULL) +! res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP); + else + res = OK; /* don't insert 'wildchar' now */ + } +--- 810,820 ---- + did_wild_list = TRUE; + } + if (wim_flags[wim_index] & WIM_LONGEST) +! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP, +! firstc != '@'); + else if (wim_flags[wim_index] & WIM_FULL) +! res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP, +! firstc != '@'); + else + res = OK; /* don't insert 'wildchar' now */ + } +*************** +*** 823,831 **** + /* if 'wildmode' first contains "longest", get longest + * common part */ + if (wim_flags[0] & WIM_LONGEST) +! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP); + else +! res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP); + + /* if interrupted while completing, behave like it failed */ + if (got_int) +--- 825,835 ---- + /* if 'wildmode' first contains "longest", get longest + * common part */ + if (wim_flags[0] & WIM_LONGEST) +! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP, +! firstc != '@'); + else +! res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP, +! firstc != '@'); + + /* if interrupted while completing, behave like it failed */ + if (got_int) +*************** +*** 860,866 **** + int p_wmnu_save = p_wmnu; + p_wmnu = 0; + #endif +! nextwild(&xpc, WILD_PREV, 0); /* remove match */ + #ifdef FEAT_WILDMENU + p_wmnu = p_wmnu_save; + #endif +--- 864,871 ---- + int p_wmnu_save = p_wmnu; + p_wmnu = 0; + #endif +! /* remove match */ +! nextwild(&xpc, WILD_PREV, 0, firstc != '@'); + #ifdef FEAT_WILDMENU + p_wmnu = p_wmnu_save; + #endif +*************** +*** 874,882 **** + redrawcmd(); + did_wild_list = TRUE; + if (wim_flags[wim_index] & WIM_LONGEST) +! nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP); + else if (wim_flags[wim_index] & WIM_FULL) +! nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP); + } + else + vim_beep(); +--- 879,889 ---- + redrawcmd(); + did_wild_list = TRUE; + if (wim_flags[wim_index] & WIM_LONGEST) +! nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP, +! firstc != '@'); + else if (wim_flags[wim_index] & WIM_FULL) +! nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP, +! firstc != '@'); + } + else + vim_beep(); +*************** +*** 899,907 **** + /* goes to last match, in a clumsy way */ + if (c == K_S_TAB && KeyTyped) + { +! if (nextwild(&xpc, WILD_EXPAND_KEEP, 0) == OK +! && nextwild(&xpc, WILD_PREV, 0) == OK +! && nextwild(&xpc, WILD_PREV, 0) == OK) + goto cmdline_changed; + } + +--- 906,914 ---- + /* goes to last match, in a clumsy way */ + if (c == K_S_TAB && KeyTyped) + { +! if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK +! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK +! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK) + goto cmdline_changed; + } + +*************** +*** 1418,1424 **** + goto cmdline_not_changed; + + case Ctrl_A: /* all matches */ +! if (nextwild(&xpc, WILD_ALL, 0) == FAIL) + break; + goto cmdline_changed; + +--- 1425,1431 ---- + goto cmdline_not_changed; + + case Ctrl_A: /* all matches */ +! if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL) + break; + goto cmdline_changed; + +*************** +*** 1454,1460 **** + #endif + + /* completion: longest common part */ +! if (nextwild(&xpc, WILD_LONGEST, 0) == FAIL) + break; + goto cmdline_changed; + +--- 1461,1467 ---- + #endif + + /* completion: longest common part */ +! if (nextwild(&xpc, WILD_LONGEST, 0, firstc != '@') == FAIL) + break; + goto cmdline_changed; + +*************** +*** 1462,1469 **** + case Ctrl_P: /* previous match */ + if (xpc.xp_numfiles > 0) + { +! if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT, 0) +! == FAIL) + break; + goto cmdline_changed; + } +--- 1469,1476 ---- + case Ctrl_P: /* previous match */ + if (xpc.xp_numfiles > 0) + { +! if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT, +! 0, firstc != '@') == FAIL) + break; + goto cmdline_changed; + } +*************** +*** 3338,3347 **** + * normal character (instead of being expanded). This allows :s/^I^D etc. + */ + static int +! nextwild(xp, type, options) + expand_T *xp; + int type; + int options; /* extra options for ExpandOne() */ + { + int i, j; + char_u *p1; +--- 3345,3355 ---- + * normal character (instead of being expanded). This allows :s/^I^D etc. + */ + static int +! nextwild(xp, type, options, escape) + expand_T *xp; + int type; + int options; /* extra options for ExpandOne() */ ++ int escape; /* if TRUE, escape the returned matches */ + { + int i, j; + char_u *p1; +*************** +*** 3390,3396 **** + else + { + int use_options = options | +! WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE; + + if (p_wic) + use_options += WILD_ICASE; +--- 3398,3406 ---- + else + { + int use_options = options | +! WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT; +! if (escape) +! use_options |= WILD_ESCAPE; + + if (p_wic) + use_options += WILD_ICASE; +*** ../vim-7.3.735/src/version.c 2012-11-28 16:18:26.000000000 +0100 +--- src/version.c 2012-11-28 16:30:45.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 736, + /**/ + +-- +From "know your smileys": + ;-0 Can't find shift key + ,-9 Kann Umschalttaste nicht finden + + /// 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 /// From 493964e6c35ba920fa25dd0f89268731a50d6c1f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:01 +0100 Subject: [PATCH 068/291] - patchlevel 737 --- 7.3.737 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.3.737 diff --git a/7.3.737 b/7.3.737 new file mode 100644 index 00000000..44aeafa5 --- /dev/null +++ b/7.3.737 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.737 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.737 +Problem: When using do_cmdline() recursively did_endif is not reset, + causing messages to be overwritten. +Solution: Reset did_endif. (Christian Brabandt) +Files: src/ex_docmd.c + + +*** ../vim-7.3.736/src/ex_docmd.c 2012-10-03 18:24:55.000000000 +0200 +--- src/ex_docmd.c 2012-11-28 17:25:27.000000000 +0100 +*************** +*** 1536,1541 **** +--- 1536,1543 ---- + if_level = 0; + #endif + ++ did_endif = FALSE; /* in case do_cmdline used recursively */ ++ + --call_depth; + return retval; + } +*** ../vim-7.3.736/src/version.c 2012-11-28 16:49:53.000000000 +0100 +--- src/version.c 2012-11-28 17:33:54.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 737, + /**/ + +-- +From "know your smileys": + :-) Funny + |-) Funny Oriental + (-: Funny Australian + + /// 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 /// From a34cda23ed87e4072c0741da3b5893e87e06def8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:02 +0100 Subject: [PATCH 069/291] - patchlevel 738 --- 7.3.738 | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 7.3.738 diff --git a/7.3.738 b/7.3.738 new file mode 100644 index 00000000..59adfc53 --- /dev/null +++ b/7.3.738 @@ -0,0 +1,142 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.738 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.738 (after 7.3.730) +Problem: Unused function argument. +Solution: Remove it. (Christian Brabandt) +Files: src/quickfix.c + + +*** ../vim-7.3.737/src/quickfix.c 2012-11-28 15:25:28.000000000 +0100 +--- src/quickfix.c 2012-11-28 17:36:26.000000000 +0100 +*************** +*** 107,113 **** + }; + + static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title)); +! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title, win_T *wp)); + static void ll_free_all __ARGS((qf_info_T **pqi)); + static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid)); + static qf_info_T *ll_new_list __ARGS((void)); +--- 107,113 ---- + }; + + static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title)); +! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title)); + static void ll_free_all __ARGS((qf_info_T **pqi)); + static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid)); + static qf_info_T *ll_new_list __ARGS((void)); +*************** +*** 266,272 **** + + if (newlist || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, qf_title, curwin); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start; +--- 266,272 ---- + + if (newlist || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, qf_title); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start; +*************** +*** 885,894 **** + * Prepare for adding a new quickfix list. + */ + static void +! qf_new_list(qi, qf_title, wp) + qf_info_T *qi; + char_u *qf_title; +- win_T *wp; + { + int i; + +--- 885,893 ---- + * Prepare for adding a new quickfix list. + */ + static void +! qf_new_list(qi, qf_title) + qf_info_T *qi; + char_u *qf_title; + { + int i; + +*************** +*** 3187,3193 **** + eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd) + || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, *eap->cmdlinep, curwin); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +--- 3186,3192 ---- + eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd) + || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, *eap->cmdlinep); + else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +*************** +*** 3753,3759 **** + + if (action == ' ' || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, title, wp); + else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +--- 3752,3758 ---- + + if (action == ' ' || qi->qf_curlist == qi->qf_listcount) + /* make place for a new list */ +! qf_new_list(qi, title); + else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0) + /* Adding to existing list, find last entry. */ + for (prevp = qi->qf_lists[qi->qf_curlist].qf_start; +*************** +*** 4035,4041 **** + #endif + + /* create a new quickfix list */ +! qf_new_list(qi, *eap->cmdlinep, wp); + + /* Go through all directories in 'runtimepath' */ + p = p_rtp; +--- 4034,4040 ---- + #endif + + /* create a new quickfix list */ +! qf_new_list(qi, *eap->cmdlinep); + + /* Go through all directories in 'runtimepath' */ + p = p_rtp; +*** ../vim-7.3.737/src/version.c 2012-11-28 17:34:43.000000000 +0100 +--- src/version.c 2012-11-28 17:37:20.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 738, + /**/ + +-- +From "know your smileys": + :-H Is missing teeth + + /// 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 /// From d5cd99b5a1f9377c8047d9397e589e0855c7d5db Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:03 +0100 Subject: [PATCH 070/291] - patchlevel 739 --- 7.3.739 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.3.739 diff --git a/7.3.739 b/7.3.739 new file mode 100644 index 00000000..88a81f38 --- /dev/null +++ b/7.3.739 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.739 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.739 +Problem: Computing number of lines may have an integer overflow. +Solution: Check for MAXCOL explicitly. (Dominique Pelle) +Files: src/move.c + + +*** ../vim-7.3.738/src/move.c 2012-03-28 14:19:46.000000000 +0200 +--- src/move.c 2012-11-28 18:15:42.000000000 +0100 +*************** +*** 2576,2582 **** + else + topline_back(lp); + h2 = lp->height; +! if (h2 + h1 > min_height) + { + *lp = loff0; /* no overlap */ + return; +--- 2576,2582 ---- + else + topline_back(lp); + h2 = lp->height; +! if (h2 == MAXCOL || h2 + h1 > min_height) + { + *lp = loff0; /* no overlap */ + return; +*************** +*** 2588,2594 **** + else + topline_back(lp); + h3 = lp->height; +! if (h3 + h2 > min_height) + { + *lp = loff0; /* no overlap */ + return; +--- 2588,2594 ---- + else + topline_back(lp); + h3 = lp->height; +! if (h3 == MAXCOL || h3 + h2 > min_height) + { + *lp = loff0; /* no overlap */ + return; +*************** +*** 2600,2606 **** + else + topline_back(lp); + h4 = lp->height; +! if (h4 + h3 + h2 > min_height || h3 + h2 + h1 > min_height) + *lp = loff1; /* 1 line overlap */ + else + *lp = loff2; /* 2 lines overlap */ +--- 2600,2606 ---- + else + topline_back(lp); + h4 = lp->height; +! if (h4 == MAXCOL || h4 + h3 + h2 > min_height || h3 + h2 + h1 > min_height) + *lp = loff1; /* 1 line overlap */ + else + *lp = loff2; /* 2 lines overlap */ +*** ../vim-7.3.738/src/version.c 2012-11-28 17:41:55.000000000 +0100 +--- src/version.c 2012-11-28 18:16:40.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 739, + /**/ + +-- +From "know your smileys": + !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth + + /// 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 /// From 5b33a384250fc3ce46b481be87107c595ea1cd83 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:04 +0100 Subject: [PATCH 071/291] - patchlevel 740 --- 7.3.740 | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 7.3.740 diff --git a/7.3.740 b/7.3.740 new file mode 100644 index 00000000..80c7609e --- /dev/null +++ b/7.3.740 @@ -0,0 +1,168 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.740 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.740 +Problem: IOC tool complains about undefined behavior for int. +Solution: Change to unsigned int. (Dominique Pelle) +Files: src/hashtab.c, src/misc2.c + + +*** ../vim-7.3.739/src/hashtab.c 2010-08-15 21:57:25.000000000 +0200 +--- src/hashtab.c 2012-11-28 18:27:46.000000000 +0100 +*************** +*** 138,144 **** + hash_T perturb; + hashitem_T *freeitem; + hashitem_T *hi; +! int idx; + + #ifdef HT_DEBUG + ++hash_count_lookup; +--- 138,144 ---- + hash_T perturb; + hashitem_T *freeitem; + hashitem_T *hi; +! unsigned idx; + + #ifdef HT_DEBUG + ++hash_count_lookup; +*************** +*** 150,156 **** + * - skip over a removed item + * - return if the item matches + */ +! idx = (int)(hash & ht->ht_mask); + hi = &ht->ht_array[idx]; + + if (hi->hi_key == NULL) +--- 150,156 ---- + * - skip over a removed item + * - return if the item matches + */ +! idx = (unsigned)(hash & ht->ht_mask); + hi = &ht->ht_array[idx]; + + if (hi->hi_key == NULL) +*************** +*** 176,182 **** + #ifdef HT_DEBUG + ++hash_count_perturb; /* count a "miss" for hashtab lookup */ + #endif +! idx = (int)((idx << 2) + idx + perturb + 1); + hi = &ht->ht_array[idx & ht->ht_mask]; + if (hi->hi_key == NULL) + return freeitem == NULL ? hi : freeitem; +--- 176,182 ---- + #ifdef HT_DEBUG + ++hash_count_perturb; /* count a "miss" for hashtab lookup */ + #endif +! idx = (unsigned)((idx << 2U) + idx + perturb + 1U); + hi = &ht->ht_array[idx & ht->ht_mask]; + if (hi->hi_key == NULL) + return freeitem == NULL ? hi : freeitem; +*************** +*** 342,348 **** + hashitem_T temparray[HT_INIT_SIZE]; + hashitem_T *oldarray, *newarray; + hashitem_T *olditem, *newitem; +! int newi; + int todo; + long_u oldsize, newsize; + long_u minsize; +--- 342,348 ---- + hashitem_T temparray[HT_INIT_SIZE]; + hashitem_T *oldarray, *newarray; + hashitem_T *olditem, *newitem; +! unsigned newi; + int todo; + long_u oldsize, newsize; + long_u minsize; +*************** +*** 448,460 **** + * the algorithm to find an item in hash_lookup(). But we only + * need to search for a NULL key, thus it's simpler. + */ +! newi = (int)(olditem->hi_hash & newmask); + newitem = &newarray[newi]; + + if (newitem->hi_key != NULL) + for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT) + { +! newi = (int)((newi << 2) + newi + perturb + 1); + newitem = &newarray[newi & newmask]; + if (newitem->hi_key == NULL) + break; +--- 448,460 ---- + * the algorithm to find an item in hash_lookup(). But we only + * need to search for a NULL key, thus it's simpler. + */ +! newi = (unsigned)(olditem->hi_hash & newmask); + newitem = &newarray[newi]; + + if (newitem->hi_key != NULL) + for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT) + { +! newi = (unsigned)((newi << 2U) + newi + perturb + 1U); + newitem = &newarray[newi & newmask]; + if (newitem->hi_key == NULL) + break; +*** ../vim-7.3.739/src/misc2.c 2012-08-15 16:20:59.000000000 +0200 +--- src/misc2.c 2012-11-28 18:27:46.000000000 +0100 +*************** +*** 3860,3866 **** + ush temp; \ + \ + temp = (ush)keys[2] | 2; \ +! t = (int)(((unsigned)(temp * (temp ^ 1)) >> 8) & 0xff); \ + } + + /* +--- 3860,3866 ---- + ush temp; \ + \ + temp = (ush)keys[2] | 2; \ +! t = (int)(((unsigned)(temp * (temp ^ 1U)) >> 8) & 0xff); \ + } + + /* +*************** +*** 4002,4008 **** + ush temp; + + temp = (ush)keys[2] | 2; +! temp = (int)(((unsigned)(temp * (temp ^ 1)) >> 8) & 0xff); + UPDATE_KEYS_ZIP(*p ^= temp); + } + else +--- 4002,4008 ---- + ush temp; + + temp = (ush)keys[2] | 2; +! temp = (int)(((unsigned)(temp * (temp ^ 1U)) >> 8) & 0xff); + UPDATE_KEYS_ZIP(*p ^= temp); + } + else +*** ../vim-7.3.739/src/version.c 2012-11-28 18:22:04.000000000 +0100 +--- src/version.c 2012-11-28 18:28:00.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 740, + /**/ + +-- +From "know your smileys": + ~#:-( I just washed my hair, and I can't do nuthin' with it. + + /// 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 /// From 5b71a1eff19aeedefa9d193c29b438df5c47a78d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:05 +0100 Subject: [PATCH 072/291] - patchlevel 741 --- 7.3.741 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.3.741 diff --git a/7.3.741 b/7.3.741 new file mode 100644 index 00000000..d7f5c899 --- /dev/null +++ b/7.3.741 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.741 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.741 (after 7.3.737) +Problem: Tiny build fails. +Solution: Move #ifdef. (Ike Devolder) +Files: src/ex_docmd.c + + +*** ../vim-7.3.740/src/ex_docmd.c 2012-11-28 17:34:43.000000000 +0100 +--- src/ex_docmd.c 2012-11-28 19:09:39.000000000 +0100 +*************** +*** 1534,1542 **** + * ":endif" (could be ":if x | foo | endif"). + */ + if_level = 0; +- #endif + + did_endif = FALSE; /* in case do_cmdline used recursively */ + + --call_depth; + return retval; +--- 1534,1542 ---- + * ":endif" (could be ":if x | foo | endif"). + */ + if_level = 0; + + did_endif = FALSE; /* in case do_cmdline used recursively */ ++ #endif + + --call_depth; + return retval; +*** ../vim-7.3.740/src/version.c 2012-11-28 18:31:49.000000000 +0100 +--- src/version.c 2012-11-28 19:09:15.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 741, + /**/ + +-- +From "know your smileys": + :-O>-o Smiley American tourist (note big mouth and camera) + + /// 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 /// From 7e2ed2f64942b48f95f1148b8cc6439fe8298d66 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:06 +0100 Subject: [PATCH 073/291] - patchlevel 742 --- 7.3.742 | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 7.3.742 diff --git a/7.3.742 b/7.3.742 new file mode 100644 index 00000000..7bf6963b --- /dev/null +++ b/7.3.742 @@ -0,0 +1,44 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.742 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.742 +Problem: Leaking memory when :vimgrep restores the directory. +Solution: Free the allocated memory. (Christian Brabandt) +Files: src/quickfix.c + + +*** ../vim-7.3.741/src/quickfix.c 2012-11-28 17:41:55.000000000 +0100 +--- src/quickfix.c 2012-11-28 22:09:40.000000000 +0100 +*************** +*** 3515,3520 **** +--- 3515,3521 ---- + ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd; + ex_cd(&ea); + } ++ vim_free(dirname_now); + } + } + +*** ../vim-7.3.741/src/version.c 2012-11-28 19:10:51.000000000 +0100 +--- src/version.c 2012-11-28 22:11:50.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 742, + /**/ + +-- +How many light bulbs does it take to change a person? + + /// 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 /// From ee0e8388b2bcb25e3ee8829381552dd26b589881 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:07 +0100 Subject: [PATCH 074/291] - patchlevel 743 --- 7.3.743 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 7.3.743 diff --git a/7.3.743 b/7.3.743 new file mode 100644 index 00000000..f91a6569 --- /dev/null +++ b/7.3.743 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.743 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.743 (after 7.3.741) +Problem: Tiny build still fails. +Solution: Add #else in the right place. +Files: src/ex_docmd.c + + +*** ../vim-7.3.742/src/ex_docmd.c 2012-11-28 19:10:51.000000000 +0100 +--- src/ex_docmd.c 2012-11-28 22:14:21.000000000 +0100 +*************** +*** 1528,1541 **** + } + } + +! #ifndef FEAT_EVAL + /* + * Reset if_level, in case a sourced script file contains more ":if" than + * ":endif" (could be ":if x | foo | endif"). + */ + if_level = 0; +- +- did_endif = FALSE; /* in case do_cmdline used recursively */ + #endif + + --call_depth; +--- 1528,1541 ---- + } + } + +! #ifdef FEAT_EVAL +! did_endif = FALSE; /* in case do_cmdline used recursively */ +! #else + /* + * Reset if_level, in case a sourced script file contains more ":if" than + * ":endif" (could be ":if x | foo | endif"). + */ + if_level = 0; + #endif + + --call_depth; +*** ../vim-7.3.742/src/version.c 2012-11-28 22:12:40.000000000 +0100 +--- src/version.c 2012-11-28 22:15:15.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 743, + /**/ + +-- +From "know your smileys": + :-)-O Smiling doctor with stethoscope + + /// 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 /// From 0cf2a3c1919464c9181dd4293d21f6d5c0c6028b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:08 +0100 Subject: [PATCH 075/291] - patchlevel 744 --- 7.3.744 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.3.744 diff --git a/7.3.744 b/7.3.744 new file mode 100644 index 00000000..518617ad --- /dev/null +++ b/7.3.744 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.744 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.744 +Problem: 64 bit compiler warning. +Solution: Add type cast. (Mike Williams) +Files: src/ex_cmds.c + + +*** ../vim-7.3.743/src/ex_cmds.c 2012-11-28 16:06:13.000000000 +0100 +--- src/ex_cmds.c 2012-11-29 20:08:10.000000000 +0100 +*************** +*** 6460,6466 **** + /* + * Find all *.txt files. + */ +! dirlen = STRLEN(dir); + STRCPY(NameBuff, dir); + STRCAT(NameBuff, "/**/*"); + STRCAT(NameBuff, ext); +--- 6460,6466 ---- + /* + * Find all *.txt files. + */ +! dirlen = (int)STRLEN(dir); + STRCPY(NameBuff, dir); + STRCAT(NameBuff, "/**/*"); + STRCAT(NameBuff, ext); +*** ../vim-7.3.743/src/version.c 2012-11-28 23:03:02.000000000 +0100 +--- src/version.c 2012-11-29 20:08:37.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 744, + /**/ + +-- +From "know your smileys": + *<|:-) Santa Claus (Ho Ho Ho) + + /// 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 /// From d09cc44bba64d85124a630587e54979c35213443 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:09 +0100 Subject: [PATCH 076/291] - patchlevel 745 --- 7.3.745 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.3.745 diff --git a/7.3.745 b/7.3.745 new file mode 100644 index 00000000..2ef2483b --- /dev/null +++ b/7.3.745 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.745 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.745 +Problem: Automatically setting 'ttymouse' doesn't work. +Solution: Reset the "option was set" flag when using the default. +Files: src/option.c, src/proto/option.pro, src/term.c + + +*** ../vim-7.3.744/src/option.c 2012-10-21 03:45:57.000000000 +0200 +--- src/option.c 2012-12-03 20:07:32.000000000 +0100 +*************** +*** 11179,11184 **** +--- 11179,11197 ---- + } + + /* ++ * Reset the flag indicating option "name" was set. ++ */ ++ void ++ reset_option_was_set(name) ++ char_u *name; ++ { ++ int idx = findoption(name); ++ ++ if (idx >= 0) ++ options[idx].flags &= ~P_WAS_SET; ++ } ++ ++ /* + * compatible_set() - Called when 'compatible' has been set or unset. + * + * When 'compatible' set: Set all relevant options (those that have the P_VIM) +*** ../vim-7.3.744/src/proto/option.pro 2012-10-21 00:10:29.000000000 +0200 +--- src/proto/option.pro 2012-12-03 20:08:36.000000000 +0100 +*************** +*** 52,57 **** +--- 52,58 ---- + void vimrc_found __ARGS((char_u *fname, char_u *envname)); + void change_compatible __ARGS((int on)); + int option_was_set __ARGS((char_u *name)); ++ void reset_option_was_set __ARGS((char_u *name)); + int can_bs __ARGS((int what)); + void save_file_ff __ARGS((buf_T *buf)); + int file_ff_differs __ARGS((buf_T *buf, int ignore_empty)); +*** ../vim-7.3.744/src/term.c 2012-10-21 02:10:20.000000000 +0200 +--- src/term.c 2012-12-03 20:09:28.000000000 +0100 +*************** +*** 1864,1870 **** +--- 1864,1875 ---- + } + # endif + if (p != NULL) ++ { + set_option_value((char_u *)"ttym", 0L, p, 0); ++ /* Reset the WAS_SET flag, 'ttymouse' can be set to "sgr" or ++ * "xterm2" in check_termcode(). */ ++ reset_option_was_set((char_u *)"ttym"); ++ } + if (p == NULL + # ifdef FEAT_GUI + || gui.in_use +*** ../vim-7.3.744/src/version.c 2012-11-29 20:09:55.000000000 +0100 +--- src/version.c 2012-12-05 14:39:33.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 745, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +97. Your mother tells you to remember something, and you look for + a File/Save command. + + /// 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 /// From 152f0f572ade93ee9e9d57542a9ff42ed1ba2760 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:10 +0100 Subject: [PATCH 077/291] - patchlevel 746 --- 7.3.746 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 7.3.746 diff --git a/7.3.746 b/7.3.746 new file mode 100644 index 00000000..f5b4cfad --- /dev/null +++ b/7.3.746 @@ -0,0 +1,96 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.746 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.746 +Problem: Memory leaks when using location lists. +Solution: Set qf_title to something. (Christian Brabandt) +Files: src/eval.c, src/quickfix.c + + +*** ../vim-7.3.745/src/eval.c 2012-10-21 23:55:59.000000000 +0200 +--- src/eval.c 2012-12-05 14:47:56.000000000 +0100 +*************** +*** 16292,16298 **** + action = *act; + } + +! if (l != NULL && set_errorlist(wp, l, action, NULL) == OK) + rettv->vval.v_number = 0; + } + #endif +--- 16292,16299 ---- + action = *act; + } + +! if (l != NULL && set_errorlist(wp, l, action, +! (char_u *)(wp == NULL ? "setqflist()" : "setloclist()")) == OK) + rettv->vval.v_number = 0; + } + #endif +*** ../vim-7.3.745/src/quickfix.c 2012-11-28 22:12:40.000000000 +0100 +--- src/quickfix.c 2012-12-05 14:51:52.000000000 +0100 +*************** +*** 2124,2138 **** + int idx; + { + qfline_T *qfp; + + while (qi->qf_lists[idx].qf_count) + { + qfp = qi->qf_lists[idx].qf_start->qf_next; +! if (qi->qf_lists[idx].qf_title != NULL) + { + vim_free(qi->qf_lists[idx].qf_start->qf_text); + vim_free(qi->qf_lists[idx].qf_start->qf_pattern); + vim_free(qi->qf_lists[idx].qf_start); + } + qi->qf_lists[idx].qf_start = qfp; + --qi->qf_lists[idx].qf_count; +--- 2124,2145 ---- + int idx; + { + qfline_T *qfp; ++ int stop = FALSE; + + while (qi->qf_lists[idx].qf_count) + { + qfp = qi->qf_lists[idx].qf_start->qf_next; +! if (qi->qf_lists[idx].qf_title != NULL && !stop) + { + vim_free(qi->qf_lists[idx].qf_start->qf_text); ++ stop = (qi->qf_lists[idx].qf_start == qfp); + vim_free(qi->qf_lists[idx].qf_start->qf_pattern); + vim_free(qi->qf_lists[idx].qf_start); ++ if (stop) ++ /* Somehow qf_count may have an incorrect value, set it to 1 ++ * to avoid crashing when it's wrong. ++ * TODO: Avoid qf_count being incorrect. */ ++ qi->qf_lists[idx].qf_count = 1; + } + qi->qf_lists[idx].qf_start = qfp; + --qi->qf_lists[idx].qf_count; +*** ../vim-7.3.745/src/version.c 2012-12-05 14:42:56.000000000 +0100 +--- src/version.c 2012-12-05 15:15:45.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 746, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +98. The Alta Vista administrators ask you what sites are missing + in their index files. + + /// 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 /// From 2ddae5093a4604272e68f2a8e1ac4b71ffa4f929 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:11 +0100 Subject: [PATCH 078/291] - patchlevel 747 --- 7.3.747 | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 7.3.747 diff --git a/7.3.747 b/7.3.747 new file mode 100644 index 00000000..158c233b --- /dev/null +++ b/7.3.747 @@ -0,0 +1,67 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.747 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.747 +Problem: When characters are concealed text aligned with tabs are no longer + aligned, e.g. at ":help :index". +Solution: Compensate space for tabs for concealed characters. (Dominique + Pelle) +Files: src/screen.c + + +*** ../vim-7.3.746/src/screen.c 2012-10-03 18:24:55.000000000 +0200 +--- src/screen.c 2012-12-05 15:22:03.000000000 +0100 +*************** +*** 4269,4275 **** + { + /* tab amount depends on current column */ + n_extra = (int)wp->w_buffer->b_p_ts +! - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1; + #ifdef FEAT_MBYTE + mb_utf8 = FALSE; /* don't draw as UTF-8 */ + #endif +--- 4269,4288 ---- + { + /* tab amount depends on current column */ + n_extra = (int)wp->w_buffer->b_p_ts +! - vcol % (int)wp->w_buffer->b_p_ts - 1; +! #ifdef FEAT_CONCEAL +! /* Tab alignment should be identical regardless of +! * 'conceallevel' value. So tab compensates of all +! * previous concealed characters, and thus resets vcol_off +! * and boguscols accumulated so far in the line. Note that +! * the tab can be longer than 'tabstop' when there +! * are concealed characters. */ +! n_extra += vcol_off; +! vcol -= vcol_off; +! vcol_off = 0; +! col -= boguscols; +! boguscols = 0; +! #endif + #ifdef FEAT_MBYTE + mb_utf8 = FALSE; /* don't draw as UTF-8 */ + #endif +*** ../vim-7.3.746/src/version.c 2012-12-05 15:16:42.000000000 +0100 +--- src/version.c 2012-12-05 15:22:27.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 747, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +99. The hum of a cooling fan and the click of keys is comforting to you. + + /// 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 /// From 9fcb8d7a9ba63bb90cd5df727d182e002550aa40 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:12 +0100 Subject: [PATCH 079/291] - patchlevel 748 --- 7.3.748 | 473 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 473 insertions(+) create mode 100644 7.3.748 diff --git a/7.3.748 b/7.3.748 new file mode 100644 index 00000000..3148bd5b --- /dev/null +++ b/7.3.748 @@ -0,0 +1,473 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.748 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.748 +Problem: Cannot properly test conceal mode. +Solution: Add the screencol() and screenrow() functions. Use them in + test88. (Simon Ruderich) +Files: runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro, + src/screen.c, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + src/testdir/Makefile, src/testdir/test88.in, + src/testdir/test88.ok + + +*** ../vim-7.3.747/runtime/doc/eval.txt 2012-11-14 18:10:49.000000000 +0100 +--- runtime/doc/eval.txt 2012-12-05 15:45:34.000000000 +0100 +*************** +*** 1892,1897 **** +--- 1903,1910 ---- + resolve( {filename}) String get filename a shortcut points to + reverse( {list}) List reverse {list} in-place + round( {expr}) Float round off {expr} ++ screencol() Number current cursor column ++ screenrow() Number current cursor row + search( {pattern} [, {flags} [, {stopline} [, {timeout}]]]) + Number search for {pattern} + searchdecl( {name} [, {global} [, {thisblock}]]) +*************** +*** 4848,4862 **** + echo round(-4.5) + < -5.0 + {only available when compiled with the |+float| feature} +! +! + search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()* + Search for regexp pattern {pattern}. The search starts at the + cursor position (you can use |cursor()| to set it). + + If there is no match a 0 is returned and the cursor doesn't + move. No error message is given. +- When a match has been found its line number is returned. + + {flags} is a String, which can contain these character flags: + 'b' search backward instead of forward +--- 4874,4907 ---- + echo round(-4.5) + < -5.0 + {only available when compiled with the |+float| feature} +! +! screencol() *screencol()* +! The result is a Number, which is the current screen column of +! the cursor. The leftmost column has number 1. +! This function is mainly used for testing. +! +! Note: Always returns the current screen column, thus if used +! in a command (e.g. ":echo screencol()") it will return the +! column inside the command line, which is 1 when the command is +! executed. To get the cursor position in the file use one of +! the following mappings: > +! nnoremap GG ":echom ".screencol()."\n" +! nnoremap GG :echom screencol() +! < +! screenrow() *screenrow()* +! The result is a Number, which is the current screen row of the +! cursor. The top line has number one. +! This function is mainly used for testing. +! +! Note: Same restrictions as with |screencol()|. +! + search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()* + Search for regexp pattern {pattern}. The search starts at the + cursor position (you can use |cursor()| to set it). + ++ When a match has been found its line number is returned. + If there is no match a 0 is returned and the cursor doesn't + move. No error message is given. + + {flags} is a String, which can contain these character flags: + 'b' search backward instead of forward +*** ../vim-7.3.747/src/eval.c 2012-12-05 15:16:42.000000000 +0100 +--- src/eval.c 2012-12-05 16:03:23.000000000 +0100 +*************** +*** 668,673 **** +--- 668,675 ---- + #ifdef FEAT_FLOAT + static void f_round __ARGS((typval_T *argvars, typval_T *rettv)); + #endif ++ static void f_screencol __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_screenrow __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_search __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_searchdecl __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_searchpair __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 8033,8038 **** +--- 8035,8042 ---- + #ifdef FEAT_FLOAT + {"round", 1, 1, f_round}, + #endif ++ {"screencol", 0, 0, f_screencol}, ++ {"screenrow", 0, 0, f_screenrow}, + {"search", 1, 4, f_search}, + {"searchdecl", 1, 3, f_searchdecl}, + {"searchpair", 3, 7, f_searchpair}, +*************** +*** 15725,15730 **** +--- 15729,15758 ---- + #endif + + /* ++ * "screencol()" function ++ * ++ * First column is 1 to be consistent with virtcol(). ++ */ ++ static void ++ f_screencol(argvars, rettv) ++ typval_T *argvars UNUSED; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = screen_screencol() + 1; ++ } ++ ++ /* ++ * "screenrow()" function ++ */ ++ static void ++ f_screenrow(argvars, rettv) ++ typval_T *argvars UNUSED; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = screen_screenrow() + 1; ++ } ++ ++ /* + * "search()" function + */ + static void +*** ../vim-7.3.747/src/proto/screen.pro 2012-11-20 16:56:49.000000000 +0100 +--- src/proto/screen.pro 2012-12-05 15:57:35.000000000 +0100 +*************** +*** 50,53 **** +--- 50,55 ---- + int messaging __ARGS((void)); + void showruler __ARGS((int always)); + int number_width __ARGS((win_T *wp)); ++ int screen_screencol __ARGS((void)); ++ int screen_screenrow __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.3.747/src/screen.c 2012-12-05 15:32:24.000000000 +0100 +--- src/screen.c 2012-12-05 15:58:02.000000000 +0100 +*************** +*** 10264,10266 **** +--- 10264,10286 ---- + return n; + } + #endif ++ ++ /* ++ * Return the current cursor column. This is the actual position on the ++ * screen. First column is 0. ++ */ ++ int ++ screen_screencol() ++ { ++ return screen_cur_col; ++ } ++ ++ /* ++ * Return the current cursor row. This is the actual position on the screen. ++ * First row is 0. ++ */ ++ int ++ screen_screenrow() ++ { ++ return screen_cur_row; ++ } +*** ../vim-7.3.747/src/testdir/Make_amiga.mak 2012-06-29 12:54:32.000000000 +0200 +--- src/testdir/Make_amiga.mak 2012-12-05 16:00:14.000000000 +0100 +*************** +*** 31,37 **** + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out + + .SUFFIXES: .in .out + +--- 31,37 ---- + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out test88.out + + .SUFFIXES: .in .out + +*************** +*** 135,137 **** +--- 135,138 ---- + test82.out: test82.in + test83.out: test83.in + test84.out: test84.in ++ test88.out: test88.in +*** ../vim-7.3.747/src/testdir/Make_dos.mak 2012-10-06 19:10:29.000000000 +0200 +--- src/testdir/Make_dos.mak 2012-12-05 16:00:29.000000000 +0100 +*************** +*** 30,36 **** + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out + + SCRIPTS32 = test50.out test70.out + +--- 30,36 ---- + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.747/src/testdir/Make_ming.mak 2012-10-06 19:10:29.000000000 +0200 +--- src/testdir/Make_ming.mak 2012-12-05 16:00:40.000000000 +0100 +*************** +*** 50,56 **** + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out + + SCRIPTS32 = test50.out test70.out + +--- 50,56 ---- + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.747/src/testdir/Make_os2.mak 2012-06-29 12:54:32.000000000 +0200 +--- src/testdir/Make_os2.mak 2012-12-05 16:00:50.000000000 +0100 +*************** +*** 31,37 **** + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out + + .SUFFIXES: .in .out + +--- 31,37 ---- + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out test88.out + + .SUFFIXES: .in .out + +*** ../vim-7.3.747/src/testdir/Make_vms.mms 2012-10-06 19:10:29.000000000 +0200 +--- src/testdir/Make_vms.mms 2012-12-05 16:01:03.000000000 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2012 Oct 06 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2012 Dec 05 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 76,82 **** + test66.out test67.out test68.out test69.out \ + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ +! test82.out test83.out test84.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +--- 76,82 ---- + test66.out test67.out test68.out test69.out \ + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ +! test82.out test83.out test84.out test88.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +*** ../vim-7.3.747/src/testdir/Makefile 2012-10-06 19:10:29.000000000 +0200 +--- src/testdir/Makefile 2012-12-05 15:59:02.000000000 +0100 +*************** +*** 13,19 **** + + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ +! test12.out test13.out test14.out test15.out test17.out \ + test18.out test19.out test20.out test21.out test22.out \ + test23.out test24.out test25.out test26.out test27.out \ + test28.out test29.out test30.out test31.out test32.out \ +--- 13,19 ---- + + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ +! test12.out test13.out test14.out test15.out test17.out \ + test18.out test19.out test20.out test21.out test22.out \ + test23.out test24.out test25.out test26.out test27.out \ + test28.out test29.out test30.out test31.out test32.out \ +*************** +*** 27,33 **** + test69.out test70.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out + + SCRIPTS_GUI = test16.out + +--- 27,33 ---- + test69.out test70.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.3.747/src/testdir/test88.in 2012-12-05 16:08:56.000000000 +0100 +--- src/testdir/test88.in 2012-12-05 15:40:05.000000000 +0100 +*************** +*** 0 **** +--- 1,85 ---- ++ vim: set ft=vim ++ ++ Tests for correct display (cursor column position) with +conceal and ++ tabulators. ++ ++ STARTTEST ++ :so small.vim ++ :if !has('conceal') ++ e! test.ok ++ wq! test.out ++ :endif ++ :" Conceal settings. ++ :set conceallevel=2 ++ :set concealcursor=nc ++ :syntax match test /|/ conceal ++ :" Save current cursor position. Only works in mode, can't be used ++ :" with :normal because it moves the cursor to the command line. Thanks to ZyX ++ :" for the idea to use an mapping. ++ :let positions = [] ++ :nnoremap GG ":let positions += ['".screenrow().":".screencol()."']\n" ++ :" Start test. ++ /^start: ++ :normal ztj ++ GGk ++ :" We should end up in the same column when running these commands on the two ++ :" lines. ++ :normal ft ++ GGk ++ :normal $ ++ GGk ++ :normal 0j ++ GGk ++ :normal ft ++ GGk ++ :normal $ ++ GGk ++ :normal 0j0j ++ GGk ++ :" Same for next test block. ++ :normal ft ++ GGk ++ :normal $ ++ GGk ++ :normal 0j ++ GGk ++ :normal ft ++ GGk ++ :normal $ ++ GGk ++ :normal 0j0j ++ GGk ++ :" And check W with multiple tabs and conceals in a line. ++ :normal W ++ GGk ++ :normal W ++ GGk ++ :normal W ++ GGk ++ :normal $ ++ GGk ++ :normal 0j ++ GGk ++ :normal W ++ GGk ++ :normal W ++ GGk ++ :normal W ++ GGk ++ :normal $ ++ GGk ++ :" Display result. ++ :call append('$', 'end:') ++ :call append('$', positions) ++ :/^end/,$wq! test.out ++ ENDTEST ++ ++ start: ++ .concealed. text ++ |concealed| text ++ ++ .concealed. text ++ |concealed| text ++ ++ .a. .b. .c. .d. ++ |a| |b| |c| |d| +*** ../vim-7.3.747/src/testdir/test88.ok 2012-12-05 16:08:56.000000000 +0100 +--- src/testdir/test88.ok 2012-12-05 15:40:05.000000000 +0100 +*************** +*** 0 **** +--- 1,23 ---- ++ end: ++ 2:1 ++ 2:17 ++ 2:20 ++ 3:1 ++ 3:17 ++ 3:20 ++ 5:8 ++ 5:25 ++ 5:28 ++ 6:8 ++ 6:25 ++ 6:28 ++ 8:1 ++ 8:9 ++ 8:17 ++ 8:25 ++ 8:27 ++ 9:1 ++ 9:9 ++ 9:17 ++ 9:25 ++ 9:26 +*** ../vim-7.3.747/src/version.c 2012-12-05 15:32:24.000000000 +0100 +--- src/version.c 2012-12-05 16:07:46.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 748, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +101. U can read htis w/o ny porblm and cant figur eout Y its evn listd. + + /// 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 /// From 5f7d04a86244f591014693eeb25ad35cf43b590d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:13 +0100 Subject: [PATCH 080/291] - patchlevel 749 --- 7.3.749 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.3.749 diff --git a/7.3.749 b/7.3.749 new file mode 100644 index 00000000..69030830 --- /dev/null +++ b/7.3.749 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.749 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.749 +Problem: Python interface doesn't build without the multi-byte feature. +Solution: Add #ifdef. (Ken Takata) +Files: src/if_py_both.h + + +*** ../vim-7.3.748/src/if_py_both.h 2012-10-05 21:30:04.000000000 +0200 +--- src/if_py_both.h 2012-12-05 16:27:20.000000000 +0100 +*************** +*** 520,526 **** + if (!PyArg_ParseTuple(args, "s", &expr)) + return NULL; + +! return PyLong_FromLong(mb_string2cells((char_u *)expr, (int)STRLEN(expr))); + } + + /* +--- 520,532 ---- + if (!PyArg_ParseTuple(args, "s", &expr)) + return NULL; + +! return PyLong_FromLong( +! #ifdef FEAT_MBYTE +! mb_string2cells((char_u *)expr, (int)STRLEN(expr)) +! #else +! STRLEN(expr) +! #endif +! ); + } + + /* +*** ../vim-7.3.748/src/version.c 2012-12-05 16:10:21.000000000 +0100 +--- src/version.c 2012-12-05 16:29:27.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 749, + /**/ + +-- +Contrary to popular belief, Unix is user friendly. +It just happens to be selective about who it makes friends with. + -- Dave Parnas + + /// 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 /// From b1cb5a3527114b05ae504dbe3c8fca1d2dc97694 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:14 +0100 Subject: [PATCH 081/291] - patchlevel 750 --- 7.3.750 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.3.750 diff --git a/7.3.750 b/7.3.750 new file mode 100644 index 00000000..d6d70fe3 --- /dev/null +++ b/7.3.750 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.750 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.750 +Problem: The justify macro does not always work correctly. +Solution: Fix off-by-one error (James McCoy) +Files: runtime/macros/justify.vim + + +*** ../vim-7.3.749/runtime/macros/justify.vim 2010-08-15 21:57:19.000000000 +0200 +--- runtime/macros/justify.vim 2012-12-05 16:58:40.000000000 +0100 +*************** +*** 1,4 **** +! " Function to left and rigt align text. + " + " Written by: Preben "Peppe" Guldberg + " Created: 980806 14:13 (or around that time anyway) +--- 1,4 ---- +! " Function to left and right align text. + " + " Written by: Preben "Peppe" Guldberg + " Created: 980806 14:13 (or around that time anyway) +*************** +*** 256,273 **** + let str = substitute(str, '\s\+$', '', '') + let str = substitute(str, '^\s\+', '', '') + let str = substitute(str, '\s\+', ' ', 'g') +! " Use substitute() hack to get strlen in characters instead of bytes +! let str_n = strlen(substitute(str, '.', 'x', 'g')) + + " Possible addition of space after punctuation + if exists("join_str") + let str = substitute(str, join_str, '\1 ', 'g') + endif +! let join_n = strlen(substitute(str, '.', 'x', 'g')) - str_n + + " Can extraspaces be added? + " Note that str_n may be less than strlen(str) [joinspaces above] +! if strlen(substitute(str, '.', 'x', 'g')) < tw - indent_n && str_n > 0 + " How many spaces should be added + let s_add = tw - str_n - indent_n - join_n + let s_nr = strlen(substitute(str, '\S', '', 'g') ) - join_n +--- 256,272 ---- + let str = substitute(str, '\s\+$', '', '') + let str = substitute(str, '^\s\+', '', '') + let str = substitute(str, '\s\+', ' ', 'g') +! let str_n = strdisplaywidth(str) + + " Possible addition of space after punctuation + if exists("join_str") + let str = substitute(str, join_str, '\1 ', 'g') + endif +! let join_n = strdisplaywidth(str) - str_n + + " Can extraspaces be added? + " Note that str_n may be less than strlen(str) [joinspaces above] +! if strdisplaywidth(str) <= tw - indent_n && str_n > 0 + " How many spaces should be added + let s_add = tw - str_n - indent_n - join_n + let s_nr = strlen(substitute(str, '\S', '', 'g') ) - join_n +*** ../vim-7.3.749/src/version.c 2012-12-05 16:30:03.000000000 +0100 +--- src/version.c 2012-12-05 17:01:02.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 750, + /**/ + +-- +To be rich is not the end, but only a change of worries. + + /// 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 /// From 011c1b828615bc14109f09c88d91888206422d3f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:15 +0100 Subject: [PATCH 082/291] - patchlevel 751 --- 7.3.751 | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 7.3.751 diff --git a/7.3.751 b/7.3.751 new file mode 100644 index 00000000..d990a2f7 --- /dev/null +++ b/7.3.751 @@ -0,0 +1,103 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.751 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.751 +Problem: Test 61 is flaky, it fails once in a while. +Solution: When it fails retry once. +Files: src/testdir/Makefile + + +*** ../vim-7.3.750/src/testdir/Makefile 2012-12-05 16:10:21.000000000 +0100 +--- src/testdir/Makefile 2012-12-05 18:17:03.000000000 +0100 +*************** +*** 47,58 **** + + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + clean: +! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* valgrind.* viminfo + + test1.out: test1.in +! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* viminfo +! $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ + else echo; \ +--- 47,62 ---- + + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + ++ RM_ON_RUN = test.out X* viminfo ++ RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok ++ RUN_VIM = $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in ++ + clean: +! -rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.* + + test1.out: test1.in +! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) +! $(RUN_VIM) $*.in + @/bin/sh -c "if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ + else echo; \ +*************** +*** 61,71 **** + -rm -rf X* viminfo + + .in.out: +! -rm -rf $*.failed test.ok test.out X* viminfo + cp $*.ok test.ok + # Sleep a moment to avoid that the xterm title is messed up + @-sleep .2 +! -$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in + @/bin/sh -c "if test -f test.out; then\ + if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ +--- 65,86 ---- + -rm -rf X* viminfo + + .in.out: +! -rm -rf $*.failed test.ok $(RM_ON_RUN) + cp $*.ok test.ok + # Sleep a moment to avoid that the xterm title is messed up + @-sleep .2 +! -$(RUN_VIM) $*.in +! +! # For flaky tests retry one time. +! @/bin/sh -c "if test -f test.out -a $* = test61; then \ +! if diff test.out $*.ok; \ +! then echo flaky test ok first time; \ +! else rm -rf $*.failed $(RM_ON_RUN); \ +! $(RUN_VIM) $*.in; \ +! fi \ +! fi" +! +! # Check if the test.out file matches test.ok. + @/bin/sh -c "if test -f test.out; then\ + if diff test.out $*.ok; \ + then mv -f test.out $*.out; \ +*** ../vim-7.3.750/src/version.c 2012-12-05 17:03:17.000000000 +0100 +--- src/version.c 2012-12-05 18:10:49.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 751, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +103. When you find yourself in the "Computer" section of Barnes & Noble + enjoying yourself. + + /// 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 /// From bf2758706ae43114dfa456a4942a0252e39a9549 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:16 +0100 Subject: [PATCH 083/291] - patchlevel 752 --- 7.3.752 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.3.752 diff --git a/7.3.752 b/7.3.752 new file mode 100644 index 00000000..f9cd46b7 --- /dev/null +++ b/7.3.752 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.752 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.752 +Problem: Test 49 script file doesn't fold properly. +Solution: Add a colon. +Files: src/testdir/test49.vim + + +*** ../vim-7.3.751/src/testdir/test49.vim 2012-11-14 22:38:04.000000000 +0100 +--- src/testdir/test49.vim 2012-11-23 22:08:37.000000000 +0100 +*************** +*** 1,6 **** + " Vim script language tests + " Author: Servatius Brandt +! " Last Change: 2010 Sep 29 + + "------------------------------------------------------------------------------- + " Test environment {{{1 +--- 1,6 ---- + " Vim script language tests + " Author: Servatius Brandt +! " Last Change: 2012 Nov 23 + + "------------------------------------------------------------------------------- + " Test environment {{{1 +*************** +*** 9604,9610 **** + Xcheck 198689 + + "------------------------------------------------------------------------------- +! " Test 86 setloclist crash {{{1 + " + " Executing a setloclist() on BufUnload shouldn't crash Vim + "------------------------------------------------------------------------------- +--- 9604,9610 ---- + Xcheck 198689 + + "------------------------------------------------------------------------------- +! " Test 86: setloclist crash {{{1 + " + " Executing a setloclist() on BufUnload shouldn't crash Vim + "------------------------------------------------------------------------------- +*** ../vim-7.3.751/src/version.c 2012-12-05 18:21:28.000000000 +0100 +--- src/version.c 2012-12-05 18:59:50.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 752, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +106. When told to "go to your room" you inform your parents that you + can't...because you were kicked out and banned. + + /// 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 /// From b8fc4b030a6ee2b7c92c364f19eb7ab7ae6dd83a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:17 +0100 Subject: [PATCH 084/291] - patchlevel 753 --- 7.3.753 | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 7.3.753 diff --git a/7.3.753 b/7.3.753 new file mode 100644 index 00000000..f6ae2305 --- /dev/null +++ b/7.3.753 @@ -0,0 +1,103 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.753 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.753 +Problem: When there is a QuitPre autocommand using ":q" twice does not work + for exiting when there are more files to edit. +Solution: Do not decrement quitmore in an autocommand. (Techlive Zheng) +Files: src/ex_docmd.c, src/fileio.c, src/proto/fileio.pro + + +*** ../vim-7.3.752/src/ex_docmd.c 2012-11-28 23:03:02.000000000 +0100 +--- src/ex_docmd.c 2012-12-05 19:07:01.000000000 +0100 +*************** +*** 1729,1739 **** + ++ex_nesting_level; + #endif + +! /* when not editing the last file :q has to be typed twice */ + if (quitmore + #ifdef FEAT_EVAL + /* avoid that a function call in 'statusline' does this */ + && !getline_equal(fgetline, cookie, get_func_line) + #endif + ) + --quitmore; +--- 1729,1741 ---- + ++ex_nesting_level; + #endif + +! /* When the last file has not been edited :q has to be typed twice. */ + if (quitmore + #ifdef FEAT_EVAL + /* avoid that a function call in 'statusline' does this */ + && !getline_equal(fgetline, cookie, get_func_line) ++ /* avoid that an autocommand, e.g. QuitPre, does this */ ++ && !getline_equal(fgetline, cookie, getnextac) + #endif + ) + --quitmore; +*** ../vim-7.3.752/src/fileio.c 2012-08-29 18:50:50.000000000 +0200 +--- src/fileio.c 2012-12-05 19:08:17.000000000 +0100 +*************** +*** 7774,7780 **** + static int event_ignored __ARGS((event_T event)); + static int au_get_grouparg __ARGS((char_u **argp)); + static int do_autocmd_event __ARGS((event_T event, char_u *pat, int nested, char_u *cmd, int forceit, int group)); +- static char_u *getnextac __ARGS((int c, void *cookie, int indent)); + static int apply_autocmds_group __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, int group, buf_T *buf, exarg_T *eap)); + static void auto_next_pat __ARGS((AutoPatCmd *apc, int stop_at_last)); + +--- 7774,7779 ---- +*************** +*** 9613,9619 **** + * Called by do_cmdline() to get the next line for ":if". + * Returns allocated string, or NULL for end of autocommands. + */ +! static char_u * + getnextac(c, cookie, indent) + int c UNUSED; + void *cookie; +--- 9612,9618 ---- + * Called by do_cmdline() to get the next line for ":if". + * Returns allocated string, or NULL for end of autocommands. + */ +! char_u * + getnextac(c, cookie, indent) + int c UNUSED; + void *cookie; +*** ../vim-7.3.752/src/proto/fileio.pro 2012-02-29 18:22:03.000000000 +0100 +--- src/proto/fileio.pro 2012-12-05 19:08:24.000000000 +0100 +*************** +*** 47,52 **** +--- 47,53 ---- + int has_insertcharpre __ARGS((void)); + void block_autocmds __ARGS((void)); + void unblock_autocmds __ARGS((void)); ++ char_u *getnextac __ARGS((int c, void *cookie, int indent)); + int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf)); + char_u *get_augroup_name __ARGS((expand_T *xp, int idx)); + char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd)); +*** ../vim-7.3.752/src/version.c 2012-12-05 19:00:03.000000000 +0100 +--- src/version.c 2012-12-05 19:08:34.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 753, + /**/ + +-- +Laughing helps. It's like jogging on the inside. + + /// 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 /// From f3967167998b449acbb8f7ed099123f609c0719e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:18 +0100 Subject: [PATCH 085/291] - patchlevel 754 --- 7.3.754 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.3.754 diff --git a/7.3.754 b/7.3.754 new file mode 100644 index 00000000..7584429e --- /dev/null +++ b/7.3.754 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.754 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.754 +Problem: Latest nmake is not recognized. +Solution: Add nmake version 11.00.51106.1. (Raymond Ko) +Files: src/Make_mvc.mak + + +*** ../vim-7.3.753/src/Make_mvc.mak 2012-10-23 05:35:30.000000000 +0200 +--- src/Make_mvc.mak 2012-12-06 21:27:56.000000000 +0100 +*************** +*** 413,418 **** +--- 413,421 ---- + !if "$(_NMAKE_VER)" == "11.00.50727.1" + MSVCVER = 11.0 + !endif ++ !if "$(_NMAKE_VER)" == "11.00.51106.1" ++ MSVCVER = 11.0 ++ !endif + !endif + + # Abort bulding VIM if version of VC is unrecognised. +*** ../vim-7.3.753/src/version.c 2012-12-05 19:13:11.000000000 +0100 +--- src/version.c 2012-12-06 21:29:12.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 754, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +116. You are living with your boyfriend who networks your respective + computers so you can sit in separate rooms and email each other + + /// 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 /// From 33cb5f36eefdff971d004ed8bb8416e69f1acd6d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:19 +0100 Subject: [PATCH 086/291] - patchlevel 755 --- 7.3.755 | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 7.3.755 diff --git a/7.3.755 b/7.3.755 new file mode 100644 index 00000000..89e424dd --- /dev/null +++ b/7.3.755 @@ -0,0 +1,137 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.755 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.755 +Problem: Autoconf doesn't find Python 3 if it's called "python". +Solution: Search for "python2" and "python3" first, then "python". +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.3.754/src/configure.in 2012-11-23 21:54:43.000000000 +0100 +--- src/configure.in 2012-12-09 15:41:59.000000000 +0100 +*************** +*** 838,844 **** + AC_MSG_RESULT($enable_pythoninterp) + if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then + dnl -- find the python executable +! AC_PATH_PROG(vi_cv_path_python, python) + if test "X$vi_cv_path_python" != "X"; then + + dnl -- get its version number +--- 838,844 ---- + AC_MSG_RESULT($enable_pythoninterp) + if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then + dnl -- find the python executable +! AC_PATH_PROGS(vi_cv_path_python, python2 python) + if test "X$vi_cv_path_python" != "X"; then + + dnl -- get its version number +*************** +*** 1028,1034 **** + AC_MSG_RESULT($enable_python3interp) + if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then + dnl -- find the python3 executable +! AC_PATH_PROG(vi_cv_path_python3, python3) + if test "X$vi_cv_path_python3" != "X"; then + + dnl -- get its version number +--- 1028,1034 ---- + AC_MSG_RESULT($enable_python3interp) + if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then + dnl -- find the python3 executable +! AC_PATH_PROGS(vi_cv_path_python3, python3 python) + if test "X$vi_cv_path_python3" != "X"; then + + dnl -- get its version number +*** ../vim-7.3.754/src/auto/configure 2012-11-23 21:54:43.000000000 +0100 +--- src/auto/configure 2012-12-12 14:23:46.000000000 +0100 +*************** +*** 5214,5221 **** + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pythoninterp" >&5 + $as_echo "$enable_pythoninterp" >&6; } + if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then +! # Extract the first word of "python", so it can be a program name with args. +! set dummy python; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if test "${ac_cv_path_vi_cv_path_python+set}" = set; then : +--- 5214,5223 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pythoninterp" >&5 + $as_echo "$enable_pythoninterp" >&6; } + if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then +! for ac_prog in python2 python +! do +! # Extract the first word of "$ac_prog", so it can be a program name with args. +! set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if test "${ac_cv_path_vi_cv_path_python+set}" = set; then : +*************** +*** 5254,5259 **** +--- 5256,5264 ---- + fi + + ++ test -n "$vi_cv_path_python" && break ++ done ++ + if test "X$vi_cv_path_python" != "X"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python version" >&5 +*************** +*** 5509,5516 **** + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_python3interp" >&5 + $as_echo "$enable_python3interp" >&6; } + if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then +! # Extract the first word of "python3", so it can be a program name with args. +! set dummy python3; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if test "${ac_cv_path_vi_cv_path_python3+set}" = set; then : +--- 5514,5523 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_python3interp" >&5 + $as_echo "$enable_python3interp" >&6; } + if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then +! for ac_prog in python3 python +! do +! # Extract the first word of "$ac_prog", so it can be a program name with args. +! set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if test "${ac_cv_path_vi_cv_path_python3+set}" = set; then : +*************** +*** 5549,5554 **** +--- 5556,5564 ---- + fi + + ++ test -n "$vi_cv_path_python3" && break ++ done ++ + if test "X$vi_cv_path_python3" != "X"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python version" >&5 +*** ../vim-7.3.754/src/version.c 2012-12-06 21:30:24.000000000 +0100 +--- src/version.c 2012-12-12 14:23:14.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 755, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +145. You e-mail your boss, informing him you'll be late. + + /// 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 /// From 97760f0588fdcf8ef222466c8a7c2eef6f871a38 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:20 +0100 Subject: [PATCH 087/291] - patchlevel 756 --- 7.3.756 | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 7.3.756 diff --git a/7.3.756 b/7.3.756 new file mode 100644 index 00000000..95d862e0 --- /dev/null +++ b/7.3.756 @@ -0,0 +1,107 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.756 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.756 +Problem: A location list can get a wrong count in :lvimgrep. +Solution: Check if the list was changed by autocommands. (mostly by + Christian Brabandt) +Files: src/quickfic.c + + +*** ../vim-7.3.755/src/quickfix.c 2012-12-05 15:16:42.000000000 +0100 +--- src/quickfix.c 2012-12-12 15:50:08.000000000 +0100 +*************** +*** 3109,3114 **** +--- 3109,3117 ---- + char_u *p; + int fi; + qf_info_T *qi = &ql_info; ++ #ifdef FEAT_AUTOCMD ++ qfline_T *cur_qf_start; ++ #endif + qfline_T *prevp = NULL; + long lnum; + buf_T *buf; +*************** +*** 3218,3223 **** +--- 3221,3232 ---- + * ":lcd %:p:h" changes the meaning of short path names. */ + mch_dirname(dirname_start, MAXPATHL); + ++ #ifdef FEAT_AUTOCMD ++ /* Remeber the value of qf_start, so that we can check for autocommands ++ * changing the current quickfix list. */ ++ cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start; ++ #endif ++ + seconds = (time_t)0; + for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi) + { +*************** +*** 3273,3278 **** +--- 3282,3309 ---- + /* Use existing, loaded buffer. */ + using_dummy = FALSE; + ++ #ifdef FEAT_AUTOCMD ++ if (cur_qf_start != qi->qf_lists[qi->qf_curlist].qf_start) ++ { ++ int idx; ++ ++ /* Autocommands changed the quickfix list. Find the one we were ++ * using and restore it. */ ++ for (idx = 0; idx < LISTCOUNT; ++idx) ++ if (cur_qf_start == qi->qf_lists[idx].qf_start) ++ { ++ qi->qf_curlist = idx; ++ break; ++ } ++ if (idx == LISTCOUNT) ++ { ++ /* List cannot be found, create a new one. */ ++ qf_new_list(qi, *eap->cmdlinep); ++ cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start; ++ } ++ } ++ #endif ++ + if (buf == NULL) + { + if (!got_int) +*************** +*** 3324,3329 **** +--- 3355,3363 ---- + if (got_int) + break; + } ++ #ifdef FEAT_AUTOCMD ++ cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start; ++ #endif + + if (using_dummy) + { +*** ../vim-7.3.755/src/version.c 2012-12-12 14:25:01.000000000 +0100 +--- src/version.c 2012-12-12 15:35:58.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 756, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +146. You experience ACTUAL physical withdrawal symptoms when away + from your 'puter and the net. + + /// 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 /// From c7c67b8b20985755d44004f588e2661cf0f6e518 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:21 +0100 Subject: [PATCH 088/291] - patchlevel 757 --- 7.3.757 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.3.757 diff --git a/7.3.757 b/7.3.757 new file mode 100644 index 00000000..e7b7698c --- /dev/null +++ b/7.3.757 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.757 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.757 +Problem: Issue 96: May access freed memory when a put command triggers + autocommands. (Dominique Pelle) +Solution: Call u_save() before getting y_array. +Files: src/ops.c + + +*** ../vim-7.3.756/src/ops.c 2012-09-05 14:18:42.000000000 +0200 +--- src/ops.c 2012-12-12 16:03:35.000000000 +0100 +*************** +*** 3351,3356 **** +--- 3351,3362 ---- + return; + } + ++ #ifdef FEAT_AUTOCMD ++ /* Autocommands may be executed when saving lines for undo, which may make ++ * y_array invalid. Start undo now to avoid that. */ ++ u_save(curwin->w_cursor.lnum, curwin->w_cursor.lnum + 1); ++ #endif ++ + if (insert_string != NULL) + { + y_type = MCHAR; +*** ../vim-7.3.756/src/version.c 2012-12-12 15:55:16.000000000 +0100 +--- src/version.c 2012-12-12 16:06:47.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 757, + /**/ + +-- +We are the Borg of GNU GPL. We will assimilate your source code. +Resistance is futile. + + /// 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 /// From 08872916c46aacb22a85c27e0f9da16efb4e642f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:22 +0100 Subject: [PATCH 089/291] - patchlevel 758 --- 7.3.758 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.3.758 diff --git a/7.3.758 b/7.3.758 new file mode 100644 index 00000000..49febd82 --- /dev/null +++ b/7.3.758 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.758 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.758 +Problem: Matchit plugin does not handle space in #ifdef. +Solution: Change matching pattern to allow spaces. (Mike Morearty) +Files: runtime/macros/matchit.vim + + +*** ../vim-7.3.757/runtime/macros/matchit.vim 2010-08-15 21:57:19.000000000 +0200 +--- runtime/macros/matchit.vim 2012-12-12 16:34:11.000000000 +0100 +*************** +*** 131,137 **** + " let default = substitute(escape(&mps, '[$^.*~\\/?]'), '[,:]\+', + " \ '\\|', 'g').'\|\/\*\|\*\/\|#if\>\|#ifdef\>\|#else\>\|#elif\>\|#endif\>' + let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") . +! \ '\/\*:\*\/,#if\%(def\)\=:#else\>:#elif\>:#endif\>' + " s:all = pattern with all the keywords + let match_words = match_words . (strlen(match_words) ? "," : "") . default + if match_words !~ s:notslash . '\\\d' +--- 131,137 ---- + " let default = substitute(escape(&mps, '[$^.*~\\/?]'), '[,:]\+', + " \ '\\|', 'g').'\|\/\*\|\*\/\|#if\>\|#ifdef\>\|#else\>\|#elif\>\|#endif\>' + let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") . +! \ '\/\*:\*\/,#\s*if\%(def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>' + " s:all = pattern with all the keywords + let match_words = match_words . (strlen(match_words) ? "," : "") . default + if match_words !~ s:notslash . '\\\d' +*************** +*** 649,655 **** + " s:all regexp based on s:pat and the default groups + " This part is copied and slightly modified from s:Match_wrapper(). + let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") . +! \ '\/\*:\*\/,#if\%(def\)\=:#else\>:#elif\>:#endif\>' + " Allow b:match_words = "GetVimMatchWords()" . + if b:match_words =~ ":" + let match_words = b:match_words +--- 649,655 ---- + " s:all regexp based on s:pat and the default groups + " This part is copied and slightly modified from s:Match_wrapper(). + let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") . +! \ '\/\*:\*\/,#\s*if\%(def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>' + " Allow b:match_words = "GetVimMatchWords()" . + if b:match_words =~ ":" + let match_words = b:match_words +*************** +*** 808,812 **** +--- 808,813 ---- + endfun + + let &cpo = s:save_cpo ++ unlet s:save_cpo + + " vim:sts=2:sw=2: +*** ../vim-7.3.757/src/version.c 2012-12-12 16:11:28.000000000 +0100 +--- src/version.c 2012-12-12 16:41:40.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 758, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +147. You finally give up smoking...because it made the monitor dirty. + + /// 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 /// From 652f5e06decc70ec9ad48f9120d77384b9d7db5e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:23 +0100 Subject: [PATCH 090/291] - patchlevel 759 --- 7.3.759 | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 7.3.759 diff --git a/7.3.759 b/7.3.759 new file mode 100644 index 00000000..02739266 --- /dev/null +++ b/7.3.759 @@ -0,0 +1,106 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.759 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.759 +Problem: MS-Windows: Updating the tabline is slow when there are many tabs. +Solution: Disable redrawing while performing the update. (Arseny Kapoulkine) +Files: src/gui_w48.c + + +*** ../vim-7.3.758/src/gui_w48.c 2012-11-20 16:53:34.000000000 +0100 +--- src/gui_w48.c 2012-12-12 17:10:21.000000000 +0100 +*************** +*** 2452,2458 **** + TCITEM tie; + int nr = 0; + int curtabidx = 0; +- RECT rc; + #ifdef FEAT_MBYTE + static int use_unicode = FALSE; + int uu; +--- 2452,2457 ---- +*************** +*** 2479,2491 **** + tie.mask = TCIF_TEXT; + tie.iImage = -1; + + /* Add a label for each tab page. They all contain the same text area. */ + for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr) + { + if (tp == curtab) + curtabidx = nr; + +! if (!TabCtrl_GetItemRect(s_tabhwnd, nr, &rc)) + { + /* Add the tab */ + tie.pszText = "-Empty-"; +--- 2478,2493 ---- + tie.mask = TCIF_TEXT; + tie.iImage = -1; + ++ /* Disable redraw for tab updates to eliminate O(N^2) draws. */ ++ SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)FALSE, 0); ++ + /* Add a label for each tab page. They all contain the same text area. */ + for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr) + { + if (tp == curtab) + curtabidx = nr; + +! if (nr >= TabCtrl_GetItemCount(s_tabhwnd)) + { + /* Add the tab */ + tie.pszText = "-Empty-"; +*************** +*** 2519,2529 **** + } + + /* Remove any old labels. */ +! while (TabCtrl_GetItemRect(s_tabhwnd, nr, &rc)) + TabCtrl_DeleteItem(s_tabhwnd, nr); + + if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx) + TabCtrl_SetCurSel(s_tabhwnd, curtabidx); + } + + /* +--- 2521,2534 ---- + } + + /* Remove any old labels. */ +! while (nr < TabCtrl_GetItemCount(s_tabhwnd)) + TabCtrl_DeleteItem(s_tabhwnd, nr); + + if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx) + TabCtrl_SetCurSel(s_tabhwnd, curtabidx); ++ ++ /* Re-enable redraw. This should trigger a repaint. */ ++ SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)TRUE, 0); + } + + /* +*** ../vim-7.3.758/src/version.c 2012-12-12 16:43:52.000000000 +0100 +--- src/version.c 2012-12-12 17:10:46.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 759, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +148. You find it easier to dial-up the National Weather Service + Weather/your_town/now.html than to simply look out the window. + + /// 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 /// From c106bdf5f5f6acc159e551a5eeea02e8ff5e7cda Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:24 +0100 Subject: [PATCH 091/291] - patchlevel 760 --- 7.3.760 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 7.3.760 diff --git a/7.3.760 b/7.3.760 new file mode 100644 index 00000000..bdc4b793 --- /dev/null +++ b/7.3.760 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.760 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.760 +Problem: dv_ deletes the white space before the line. +Solution: Move the cursor to the first non-white. (Christian Brabandt) +Files: src/normal.c, src/testdir/test19.in, src/testdir/test19.ok + + +*** ../vim-7.3.759/src/normal.c 2012-10-23 05:08:49.000000000 +0200 +--- src/normal.c 2012-12-12 17:23:00.000000000 +0100 +*************** +*** 8628,8634 **** + cap->oap->motion_type = MLINE; + if (cursor_down(cap->count1 - 1L, cap->oap->op_type == OP_NOP) == FAIL) + clearopbeep(cap->oap); +! else if ( cap->oap->op_type == OP_DELETE + || cap->oap->op_type == OP_LSHIFT + || cap->oap->op_type == OP_RSHIFT) + beginline(BL_SOL | BL_FIX); +--- 8628,8636 ---- + cap->oap->motion_type = MLINE; + if (cursor_down(cap->count1 - 1L, cap->oap->op_type == OP_NOP) == FAIL) + clearopbeep(cap->oap); +! else if ( (cap->oap->op_type == OP_DELETE /* only with linewise motions */ +! && cap->oap->motion_force != 'v' +! && cap->oap->motion_force != Ctrl_V) + || cap->oap->op_type == OP_LSHIFT + || cap->oap->op_type == OP_RSHIFT) + beginline(BL_SOL | BL_FIX); +*** ../vim-7.3.759/src/testdir/test19.in 2011-09-08 23:22:35.000000000 +0200 +--- src/testdir/test19.in 2012-12-12 17:19:36.000000000 +0100 +*************** +*** 1,4 **** +--- 1,5 ---- + Tests for "r" with 'smarttab' and 'expandtab' set/not set. ++ Also test that dv_ works correctly + + STARTTEST + :so small.vim +*************** +*** 16,22 **** + :" Test that copyindent works with expandtab set + :set expandtab smartindent copyindent ts=8 sw=8 sts=8 + o{ +! x:?^start?,$w! test.out + :qa! + ENDTEST + +--- 17,25 ---- + :" Test that copyindent works with expandtab set + :set expandtab smartindent copyindent ts=8 sw=8 sts=8 + o{ +! x:set nosol +! /Second line/ +! fwdv_:?^start?,$w! test.out + :qa! + ENDTEST + +*************** +*** 27,29 **** +--- 30,33 ---- + a cde + f ghi + test text ++ Second line beginning with whitespace +*** ../vim-7.3.759/src/testdir/test19.ok 2011-09-07 19:58:04.000000000 +0200 +--- src/testdir/test19.ok 2012-12-12 17:19:36.000000000 +0100 +*************** +*** 7,9 **** +--- 7,10 ---- + test text + { + x ++ with whitespace +*** ../vim-7.3.759/src/version.c 2012-12-12 17:12:21.000000000 +0100 +--- src/version.c 2012-12-12 17:20:47.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 760, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +149. You find your computer sexier than your girlfriend + + /// 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 /// From 2e6fe65aefcd3b27194005c9769f362e764519c8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:25 +0100 Subject: [PATCH 092/291] - patchlevel 761 --- 7.3.761 | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 7.3.761 diff --git a/7.3.761 b/7.3.761 new file mode 100644 index 00000000..8b159bec --- /dev/null +++ b/7.3.761 @@ -0,0 +1,93 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.761 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.761 +Problem: In Visual mode a "-p does not work. (Marcin Szamotulski) +Solution: Avoid writing to "- before putting it. (Christian Brabandt) +Files: src/normal.c, src/testdir/test48.in, src/testdir/test48.ok + + +*** ../vim-7.3.760/src/normal.c 2012-12-12 17:33:26.000000000 +0100 +--- src/normal.c 2012-12-12 18:11:06.000000000 +0100 +*************** +*** 9412,9425 **** + # ifdef FEAT_CLIPBOARD + adjust_clip_reg(®name); + # endif +! if (regname == 0 || regname == '"' || VIM_ISDIGIT(regname) + # ifdef FEAT_CLIPBOARD + || (clip_unnamed && (regname == '*' || regname == '+')) + # endif + + ) + { +! /* the delete is going to overwrite the register we want to + * put, save it first. */ + reg1 = get_register(regname, TRUE); + } +--- 9412,9426 ---- + # ifdef FEAT_CLIPBOARD + adjust_clip_reg(®name); + # endif +! if (regname == 0 || regname == '"' +! || VIM_ISDIGIT(regname) || regname == '-' + # ifdef FEAT_CLIPBOARD + || (clip_unnamed && (regname == '*' || regname == '+')) + # endif + + ) + { +! /* The delete is going to overwrite the register we want to + * put, save it first. */ + reg1 = get_register(regname, TRUE); + } +*** ../vim-7.3.760/src/testdir/test48.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test48.in 2012-12-12 18:09:21.000000000 +0100 +*************** +*** 54,61 **** +--- 54,65 ---- + ^O3li4li4li <-- should show the name of a noted text editor + ^o4li4li4li <-- and its version number-dd + :" ++ :" Test for yanking and pasting using the small delete register ++ gg/^foo ++ dewve"-p + :wq! test.out + ENDTEST ++ foo, bar + keyword keyw + all your base are belong to us + 1 2 3 4 5 6 +*** ../vim-7.3.760/src/testdir/test48.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test48.ok 2012-12-12 18:09:25.000000000 +0100 +*************** +*** 1,3 **** +--- 1,4 ---- ++ , foo + keyword keyword + all your base + are belong to vim +*** ../vim-7.3.760/src/version.c 2012-12-12 17:33:26.000000000 +0100 +--- src/version.c 2012-12-12 18:19:51.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 761, + /**/ + +-- +You are not really successful until someone claims he sat +beside you in school. + + /// 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 /// From ef7793c94fb8ea1b6cbbd08e576b191a1e58b8d9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:26 +0100 Subject: [PATCH 093/291] - patchlevel 762 --- 7.3.762 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.3.762 diff --git a/7.3.762 b/7.3.762 new file mode 100644 index 00000000..56007717 --- /dev/null +++ b/7.3.762 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.762 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.762 (after 7.3.759) +Problem: On some systems the tabline is not redrawn. +Solution: Call RedrawWindow(). (Charles Peacech) +Files: src/gui_w48.c + + +*** ../vim-7.3.761/src/gui_w48.c 2012-12-12 17:12:21.000000000 +0100 +--- src/gui_w48.c 2012-12-16 12:45:47.000000000 +0100 +*************** +*** 2527,2534 **** + if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx) + TabCtrl_SetCurSel(s_tabhwnd, curtabidx); + +! /* Re-enable redraw. This should trigger a repaint. */ + SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)TRUE, 0); + } + + /* +--- 2527,2536 ---- + if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx) + TabCtrl_SetCurSel(s_tabhwnd, curtabidx); + +! /* Re-enable redraw and redraw. */ + SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)TRUE, 0); ++ RedrawWindow(s_tabhwnd, NULL, NULL, ++ RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN); + } + + /* +*** ../vim-7.3.761/src/version.c 2012-12-12 18:20:28.000000000 +0100 +--- src/version.c 2012-12-16 12:46:44.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 762, + /**/ + +-- +"The question of whether computers can think is just like the question +of whether submarines can swim." -- Edsger W. Dijkstra + + /// 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 /// From f7e856499b70be2979966f2d124b618c3837524e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:27 +0100 Subject: [PATCH 094/291] - patchlevel 763 --- 7.3.763 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.763 diff --git a/7.3.763 b/7.3.763 new file mode 100644 index 00000000..0a308b1d --- /dev/null +++ b/7.3.763 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.763 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.763 +Problem: Jumping to a mark does not open a fold if it is in the same line. + (Wiktor Ruben) +Solution: Also compare the column after the jump. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.3.762/src/normal.c 2012-12-12 18:20:28.000000000 +0100 +--- src/normal.c 2013-01-11 22:02:30.000000000 +0100 +*************** +*** 7523,7529 **** + pos_T *pos; + int c; + #ifdef FEAT_FOLDING +! linenr_T lnum = curwin->w_cursor.lnum; + int old_KeyTyped = KeyTyped; /* getting file may reset it */ + #endif + +--- 7523,7529 ---- + pos_T *pos; + int c; + #ifdef FEAT_FOLDING +! pos_T old_cursor = curwin->w_cursor; + int old_KeyTyped = KeyTyped; /* getting file may reset it */ + #endif + +*************** +*** 7552,7558 **** + #endif + #ifdef FEAT_FOLDING + if (cap->oap->op_type == OP_NOP +! && (pos == (pos_T *)-1 || lnum != curwin->w_cursor.lnum) + && (fdo_flags & FDO_MARK) + && old_KeyTyped) + foldOpenCursor(); +--- 7552,7558 ---- + #endif + #ifdef FEAT_FOLDING + if (cap->oap->op_type == OP_NOP +! && (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos)) + && (fdo_flags & FDO_MARK) + && old_KeyTyped) + foldOpenCursor(); +*** ../vim-7.3.762/src/version.c 2012-12-16 12:50:33.000000000 +0100 +--- src/version.c 2013-01-17 13:23:27.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 763, + /**/ + +-- +This is an airconditioned room, do not open Windows. + + /// 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 /// From 7e89c651b1f131b8ac95cafe094cf97671017d9c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:28 +0100 Subject: [PATCH 095/291] - patchlevel 764 --- 7.3.764 | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 7.3.764 diff --git a/7.3.764 b/7.3.764 new file mode 100644 index 00000000..f08bd1dc --- /dev/null +++ b/7.3.764 @@ -0,0 +1,175 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.764 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.764 +Problem: Not all message translation files are installed. +Solution: Also install the converted files. +Files: src/po/Makefile + + +*** ../vim-7.3.763/src/po/Makefile 2010-08-15 21:57:26.000000000 +0200 +--- src/po/Makefile 2013-01-17 13:30:30.000000000 +0100 +*************** +*** 20,25 **** +--- 20,26 ---- + ko \ + ko.UTF-8 \ + nb \ ++ nl \ + no \ + pl \ + pt_BR \ +*************** +*** 33,38 **** +--- 34,49 ---- + zh_TW \ + zh_TW.UTF-8 + ++ CONVERTED = \ ++ cs.cp1250 \ ++ ja.sjis \ ++ pl.cp1250 \ ++ pl.UTF-8 \ ++ ru.cp1251 \ ++ sk.cp1250 \ ++ uk.cp1251 \ ++ zh_CN.cp936 ++ + MOFILES = \ + af.mo \ + ca.mo \ +*************** +*** 49,54 **** +--- 60,66 ---- + ko.mo \ + ko.UTF-8.mo \ + nb.mo \ ++ nl.mo \ + no.mo \ + pl.mo \ + pt_BR.mo \ +*************** +*** 62,68 **** + zh_TW.UTF-8.mo \ + zh_TW.mo + +! CONVERTED = \ + cs.cp1250.mo \ + ja.sjis.mo \ + pl.cp1250.mo \ +--- 74,80 ---- + zh_TW.UTF-8.mo \ + zh_TW.mo + +! MOCONVERTED = \ + cs.cp1250.mo \ + ja.sjis.mo \ + pl.cp1250.mo \ +*************** +*** 88,93 **** +--- 100,106 ---- + ko.ck \ + ko.UTF-8.ck \ + nb.ck \ ++ nl.ck \ + no.ck \ + pl.ck \ + pt_BR.ck \ +*************** +*** 123,129 **** + + .SUFFIXES: + .SUFFIXES: .po .mo .pot .ck +! .PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) + + .po.mo: + $(MSGFMT) -o $@ $< +--- 136,142 ---- + + .SUFFIXES: + .SUFFIXES: .po .mo .pot .ck +! .PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) $(CONVERTED) + + .po.mo: + $(MSGFMT) -o $@ $< +*************** +*** 132,144 **** + $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $< + touch $@ + +! all: $(MOFILES) + + check: $(CHECKFILES) + +! install: $(MOFILES) + @$(MAKE) prefixcheck +! for lang in $(LANGUAGES); do \ + dir=$(LOCALEDIR)/$$lang/; \ + if test ! -x "$$dir"; then \ + mkdir $$dir; chmod 755 $$dir; \ +--- 145,157 ---- + $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $< + touch $@ + +! all: $(MOFILES) $(MOCONVERTED) + + check: $(CHECKFILES) + +! install: $(MOFILES) $(MOCONVERTED) + @$(MAKE) prefixcheck +! for lang in $(LANGUAGES) $(CONVERTED); do \ + dir=$(LOCALEDIR)/$$lang/; \ + if test ! -x "$$dir"; then \ + mkdir $$dir; chmod 755 $$dir; \ +*************** +*** 155,167 **** + + uninstall: + @$(MAKE) prefixcheck +! for cat in $(MOFILES); do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ + done + +! converted: $(CONVERTED) + + # Norwegian/Bokmal: "nb" is an alias for "no". + # Copying the file is not efficient, but I don't know of another way to make +--- 168,180 ---- + + uninstall: + @$(MAKE) prefixcheck +! for cat in $(MOFILES) $(MOCONVERTED); do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ + done + +! converted: $(MOCONVERTED) + + # Norwegian/Bokmal: "nb" is an alias for "no". + # Copying the file is not efficient, but I don't know of another way to make +*** ../vim-7.3.763/src/version.c 2013-01-17 13:24:00.000000000 +0100 +--- src/version.c 2013-01-17 13:25:41.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 764, + /**/ + +-- +The software said it requires Windows 95 or better, so I installed Linux. + + /// 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 /// From 96eb039f02e7c738b33f8999604945f76f8ed9e2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:29 +0100 Subject: [PATCH 096/291] - patchlevel 765 --- 7.3.765 | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 7.3.765 diff --git a/7.3.765 b/7.3.765 new file mode 100644 index 00000000..c76e6bd1 --- /dev/null +++ b/7.3.765 @@ -0,0 +1,98 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.765 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.765 +Problem: Segfault when doing "cclose" on BufUnload in a python function. + (Sean Reifschneider) +Solution: Skip window with NULL buffer. (Christian Brabandt) +Files: src/main.c, src/window.c + + +*** ../vim-7.3.764/src/main.c 2012-11-28 15:55:37.000000000 +0100 +--- src/main.c 2013-01-17 13:46:57.000000000 +0100 +*************** +*** 1376,1381 **** +--- 1376,1384 ---- + for (wp = (tp == curtab) + ? firstwin : tp->tp_firstwin; wp != NULL; wp = wp->w_next) + { ++ if (wp->w_buffer == NULL) ++ /* Autocmd must have close the buffer already, skip. */ ++ continue; + buf = wp->w_buffer; + if (buf->b_changedtick != -1) + { +*** ../vim-7.3.764/src/window.c 2012-08-29 15:50:22.000000000 +0200 +--- src/window.c 2013-01-17 13:53:10.000000000 +0100 +*************** +*** 2276,2284 **** + #endif + } + + /* Autocommands may have closed the window already, or closed the only + * other window or moved to another tab page. */ +! if (!win_valid(win) || last_window() || curtab != prev_curtab + || close_last_window_tabpage(win, free_buf, prev_curtab)) + return; + +--- 2276,2290 ---- + #endif + } + ++ if (only_one_window() && win_valid(win) && win->w_buffer == NULL ++ && (last_window() || curtab != prev_curtab ++ || close_last_window_tabpage(win, free_buf, prev_curtab))) ++ /* Autocommands have close all windows, quit now. */ ++ getout(0); ++ + /* Autocommands may have closed the window already, or closed the only + * other window or moved to another tab page. */ +! else if (!win_valid(win) || last_window() || curtab != prev_curtab + || close_last_window_tabpage(win, free_buf, prev_curtab)) + return; + +*************** +*** 6282,6288 **** + return FALSE; + + for (wp = firstwin; wp != NULL; wp = wp->w_next) +! if ((!((wp->w_buffer->b_help && !curbuf->b_help) + # ifdef FEAT_QUICKFIX + || wp->w_p_pvw + # endif +--- 6288,6295 ---- + return FALSE; + + for (wp = firstwin; wp != NULL; wp = wp->w_next) +! if (wp->w_buffer != NULL +! && (!((wp->w_buffer->b_help && !curbuf->b_help) + # ifdef FEAT_QUICKFIX + || wp->w_p_pvw + # endif +*** ../vim-7.3.764/src/version.c 2013-01-17 13:35:13.000000000 +0100 +--- src/version.c 2013-01-17 13:56:56.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 765, + /**/ + +-- + He was not in the least bit scared to be mashed into a pulp + Or to have his eyes gouged out and his elbows broken; + To have his kneecaps split and his body burned away + And his limbs all hacked and mangled, brave Sir Robin. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 53d5fbd419d6a7926c205ca16f6636f14a938bbf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:30 +0100 Subject: [PATCH 097/291] - patchlevel 766 --- 7.3.766 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.3.766 diff --git a/7.3.766 b/7.3.766 new file mode 100644 index 00000000..2f2c1f16 --- /dev/null +++ b/7.3.766 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.766 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.766 +Problem: ":help cpo-*" jumps to the wrong place. +Solution: Make it equivalent to ":help cpo-star". +Files: src/ex_cmds.c + + +*** ../vim-7.3.765/src/ex_cmds.c 2012-11-29 20:09:55.000000000 +0100 +--- src/ex_cmds.c 2013-01-17 14:05:45.000000000 +0100 +*************** +*** 5849,5862 **** + int i; + static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*", + "/*", "/\\*", "\"*", "**", +! "/\\(\\)", + "?", ":?", "?", "g?", "g?g?", "g??", "z?", + "/\\?", "/\\z(\\)", "\\=", ":s\\=", + "[count]", "[quotex]", "[range]", + "[pattern]", "\\|", "\\%$"}; + static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star", + "/star", "/\\\\star", "quotestar", "starstar", +! "/\\\\(\\\\)", + "?", ":?", "?", "g?", "g?g?", "g??", "z?", + "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", + "\\[count]", "\\[quotex]", "\\[range]", +--- 5849,5862 ---- + int i; + static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*", + "/*", "/\\*", "\"*", "**", +! "cpo-*", "/\\(\\)", + "?", ":?", "?", "g?", "g?g?", "g??", "z?", + "/\\?", "/\\z(\\)", "\\=", ":s\\=", + "[count]", "[quotex]", "[range]", + "[pattern]", "\\|", "\\%$"}; + static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star", + "/star", "/\\\\star", "quotestar", "starstar", +! "cpo-star", "/\\\\(\\\\)", + "?", ":?", "?", "g?", "g?g?", "g??", "z?", + "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", + "\\[count]", "\\[quotex]", "\\[range]", +*** ../vim-7.3.765/src/version.c 2013-01-17 13:59:56.000000000 +0100 +--- src/version.c 2013-01-17 14:09:04.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 766, + /**/ + +-- +The greatest lies of all time: + (1) The check is in the mail. + (2) We have a really challenging assignment for you. + (3) I love you. + (4) All bugs have been fixed. + (5) This won't hurt a bit. + (6) Honey, I just need to debug this program and be home in 5 minutes. + (7) I have just sent you an e-mail about that. + (8) Of course I'll respect you in the morning. + (9) I'm from the government, and I'm here to help you. + + /// 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 /// From ea0b275c62aea9d1b8174e385012e2e038538b9a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:31 +0100 Subject: [PATCH 098/291] - patchlevel 767 --- 7.3.767 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.3.767 diff --git a/7.3.767 b/7.3.767 new file mode 100644 index 00000000..89ce19e4 --- /dev/null +++ b/7.3.767 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.767 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.767 +Problem: (Win32) The _errno used for iconv may be the wrong one. +Solution: Use the _errno from iconv.dll. (Ken Takata) +Files: src/mbyte.c + + +*** ../vim-7.3.766/src/mbyte.c 2012-09-18 18:03:33.000000000 +0200 +--- src/mbyte.c 2013-01-17 14:33:42.000000000 +0100 +*************** +*** 3242,3248 **** + + /* + * Version of strnicmp() that handles multi-byte characters. +! * Needed for Big5, Sjift-JIS and UTF-8 encoding. Other DBCS encodings can + * probably use strnicmp(), because there are no ASCII characters in the + * second byte. + * Returns zero if s1 and s2 are equal (ignoring case), the difference between +--- 3242,3248 ---- + + /* + * Version of strnicmp() that handles multi-byte characters. +! * Needed for Big5, Shift-JIS and UTF-8 encoding. Other DBCS encodings can + * probably use strnicmp(), because there are no ASCII characters in the + * second byte. + * Returns zero if s1 and s2 are equal (ignoring case), the difference between +*************** +*** 4294,4299 **** +--- 4294,4337 ---- + # endif + + /* ++ * Get the address of 'funcname' which is imported by 'hInst' DLL. ++ */ ++ static void * ++ get_iconv_import_func(HINSTANCE hInst, const char *funcname) ++ { ++ PBYTE pImage = (PBYTE)hInst; ++ PIMAGE_DOS_HEADER pDOS = (PIMAGE_DOS_HEADER)hInst; ++ PIMAGE_NT_HEADERS pPE; ++ PIMAGE_IMPORT_DESCRIPTOR pImpDesc; ++ PIMAGE_THUNK_DATA pIAT; /* Import Address Table */ ++ PIMAGE_THUNK_DATA pINT; /* Import Name Table */ ++ PIMAGE_IMPORT_BY_NAME pImpName; ++ ++ if (pDOS->e_magic != IMAGE_DOS_SIGNATURE) ++ return NULL; ++ pPE = (PIMAGE_NT_HEADERS)(pImage + pDOS->e_lfanew); ++ if (pPE->Signature != IMAGE_NT_SIGNATURE) ++ return NULL; ++ pImpDesc = (PIMAGE_IMPORT_DESCRIPTOR)(pImage ++ + pPE->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT] ++ .VirtualAddress); ++ for (; pImpDesc->FirstThunk; ++pImpDesc) ++ { ++ pIAT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->FirstThunk); ++ pINT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->OriginalFirstThunk); ++ for (; pIAT->u1.Function; ++pIAT, ++pINT) ++ { ++ if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal)) ++ continue; ++ pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage + pINT->u1.AddressOfData); ++ if (strcmp(pImpName->Name, funcname) == 0) ++ return (void *)pIAT->u1.Function; ++ } ++ } ++ return NULL; ++ } ++ ++ /* + * Try opening the iconv.dll and return TRUE if iconv() can be used. + */ + int +*************** +*** 4326,4332 **** + iconv_open = (void *)GetProcAddress(hIconvDLL, "libiconv_open"); + iconv_close = (void *)GetProcAddress(hIconvDLL, "libiconv_close"); + iconvctl = (void *)GetProcAddress(hIconvDLL, "libiconvctl"); +! iconv_errno = (void *)GetProcAddress(hMsvcrtDLL, "_errno"); + if (iconv == NULL || iconv_open == NULL || iconv_close == NULL + || iconvctl == NULL || iconv_errno == NULL) + { +--- 4364,4372 ---- + iconv_open = (void *)GetProcAddress(hIconvDLL, "libiconv_open"); + iconv_close = (void *)GetProcAddress(hIconvDLL, "libiconv_close"); + iconvctl = (void *)GetProcAddress(hIconvDLL, "libiconvctl"); +! iconv_errno = get_iconv_import_func(hIconvDLL, "_errno"); +! if (iconv_errno == NULL) +! iconv_errno = (void *)GetProcAddress(hMsvcrtDLL, "_errno"); + if (iconv == NULL || iconv_open == NULL || iconv_close == NULL + || iconvctl == NULL || iconv_errno == NULL) + { +*** ../vim-7.3.766/src/version.c 2013-01-17 14:09:39.000000000 +0100 +--- src/version.c 2013-01-17 14:34:19.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 767, + /**/ + +-- +FIRST HEAD: Oh! quick! get the sword out I want to cut his head off. +THIRD HEAD: Oh, cut your own head off. +SECOND HEAD: Yes - do us all a favour. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 99db9aaa786e51c27eeac7452cc76eb0582007fe Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:32 +0100 Subject: [PATCH 099/291] - patchlevel 768 --- 7.3.768 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.3.768 diff --git a/7.3.768 b/7.3.768 new file mode 100644 index 00000000..3eadd536 --- /dev/null +++ b/7.3.768 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.768 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.768 +Problem: settabvar() and setwinvar() may move the cursor. +Solution: Save and restore the cursor position when appropriate. (idea by + Yasuhiro Matsumoto) +Files: src/edit.c + + +*** ../vim-7.3.767/src/edit.c 2012-10-21 00:10:29.000000000 +0200 +--- src/edit.c 2013-01-17 15:32:10.000000000 +0100 +*************** +*** 372,377 **** +--- 372,379 ---- + */ + if (cmdchar != 'r' && cmdchar != 'v') + { ++ pos_T save_cursor = curwin->w_cursor; ++ + # ifdef FEAT_EVAL + if (cmdchar == 'R') + ptr = (char_u *)"r"; +*************** +*** 382,387 **** +--- 384,402 ---- + set_vim_var_string(VV_INSERTMODE, ptr, 1); + # endif + apply_autocmds(EVENT_INSERTENTER, NULL, NULL, FALSE, curbuf); ++ ++ /* Since Insert mode was not started yet a call to check_cursor_col() ++ * may have moved the cursor, especially with the "A" command. */ ++ if (curwin->w_cursor.col != save_cursor.col ++ && curwin->w_cursor.lnum == save_cursor.lnum) ++ { ++ int save_state = State; ++ ++ curwin->w_cursor = save_cursor; ++ State = INSERT; ++ check_cursor_col(); ++ State = save_state; ++ } + } + #endif + +*** ../vim-7.3.767/src/version.c 2013-01-17 14:39:43.000000000 +0100 +--- src/version.c 2013-01-17 15:10:48.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 768, + /**/ + +-- +Life would be so much easier if we could just look at the source code. + + /// 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 /// From 5386764db4239e75e344b9915a7d07f5f955825d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:33 +0100 Subject: [PATCH 100/291] - patchlevel 769 --- 7.3.769 | 450 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 450 insertions(+) create mode 100644 7.3.769 diff --git a/7.3.769 b/7.3.769 new file mode 100644 index 00000000..aac4579f --- /dev/null +++ b/7.3.769 @@ -0,0 +1,450 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.769 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.769 +Problem: 'matchpairs' does not work with multi-byte characters. +Solution: Make it work. (Christian Brabandt) +Files: src/misc1.c, src/option.c, src/proto/option.pro, src/search.c, + src/testdir/test69.in, src/testdir/test69.ok + + +*** ../vim-7.3.768/src/misc1.c 2012-08-15 14:04:50.000000000 +0200 +--- src/misc1.c 2013-01-17 15:55:09.000000000 +0100 +*************** +*** 2288,2301 **** + */ + if (p_sm && (State & INSERT) + && msg_silent == 0 +- #ifdef FEAT_MBYTE +- && charlen == 1 +- #endif + #ifdef FEAT_INS_EXPAND + && !ins_compl_active() + #endif + ) +! showmatch(c); + + #ifdef FEAT_RIGHTLEFT + if (!p_ri || (State & REPLACE_FLAG)) +--- 2288,2305 ---- + */ + if (p_sm && (State & INSERT) + && msg_silent == 0 + #ifdef FEAT_INS_EXPAND + && !ins_compl_active() + #endif + ) +! { +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! showmatch(mb_ptr2char(buf)); +! else +! #endif +! showmatch(c); +! } + + #ifdef FEAT_RIGHTLEFT + if (!p_ri || (State & REPLACE_FLAG)) +*** ../vim-7.3.768/src/option.c 2012-12-05 14:42:56.000000000 +0100 +--- src/option.c 2013-01-17 16:38:42.000000000 +0100 +*************** +*** 6149,6164 **** + /* 'matchpairs' */ + else if (gvarp == &p_mps) + { +! /* Check for "x:y,x:y" */ +! for (p = *varp; *p != NUL; p += 4) + { +! if (p[1] != ':' || p[2] == NUL || (p[3] != NUL && p[3] != ',')) + { +! errmsg = e_invarg; +! break; + } +- if (p[3] == NUL) +- break; + } + } + +--- 6149,6194 ---- + /* 'matchpairs' */ + else if (gvarp == &p_mps) + { +! #ifdef FEAT_MBYTE +! if (has_mbyte) + { +! for (p = *varp; *p != NUL; ++p) + { +! int x2,x3 = -1; +! +! if (*p != NUL) +! p += mb_ptr2len(p); +! if (*p != NUL) +! x2 = *p++; +! if (*p != NUL) +! { +! x3 = mb_ptr2char(p); +! p += mb_ptr2len(p); +! } +! if (x2 != ':' || x2 == -1 || x3 == -1 +! || (*p != NUL && *p != ',')) +! { +! errmsg = e_invarg; +! break; +! } +! if (*p == NUL) +! break; +! } +! } +! else +! #endif +! { +! /* Check for "x:y,x:y" */ +! for (p = *varp; *p != NUL; p += 4) +! { +! if (p[1] != ':' || p[2] == NUL || (p[3] != NUL && p[3] != ',')) +! { +! errmsg = e_invarg; +! break; +! } +! if (p[3] == NUL) +! break; + } + } + } + +*************** +*** 11453,11455 **** +--- 11483,11583 ---- + { + return curbuf->b_p_sts < 0 ? get_sw_value() : curbuf->b_p_sts; + } ++ ++ /* ++ * Check matchpairs option for "*initc". ++ * If there is a match set "*initc" to the matching character and "*findc" to ++ * the opposite character. Set "*backwards" to the direction. ++ * When "switchit" is TRUE swap the direction. ++ */ ++ void ++ find_mps_values(initc, findc, backwards, switchit) ++ int *initc; ++ int *findc; ++ int *backwards; ++ int switchit; ++ { ++ char_u *ptr; ++ ++ ptr = curbuf->b_p_mps; ++ while (*ptr != NUL) ++ { ++ #ifdef FEAT_MBYTE ++ if (has_mbyte) ++ { ++ char_u *prev; ++ ++ if (mb_ptr2char(ptr) == *initc) ++ { ++ if (switchit) ++ { ++ *findc = *initc; ++ *initc = mb_ptr2char(ptr + mb_ptr2len(ptr) + 1); ++ *backwards = TRUE; ++ } ++ else ++ { ++ *findc = mb_ptr2char(ptr + mb_ptr2len(ptr) + 1); ++ *backwards = FALSE; ++ } ++ return; ++ } ++ prev = ptr; ++ ptr += mb_ptr2len(ptr) + 1; ++ if (mb_ptr2char(ptr) == *initc) ++ { ++ if (switchit) ++ { ++ *findc = *initc; ++ *initc = mb_ptr2char(prev); ++ *backwards = FALSE; ++ } ++ else ++ { ++ *findc = mb_ptr2char(prev); ++ *backwards = TRUE; ++ } ++ return; ++ } ++ ptr += mb_ptr2len(ptr); ++ } ++ else ++ #endif ++ { ++ if (*ptr == *initc) ++ { ++ if (switchit) ++ { ++ *backwards = TRUE; ++ *findc = *initc; ++ *initc = ptr[2]; ++ } ++ else ++ { ++ *backwards = FALSE; ++ *findc = ptr[2]; ++ } ++ return; ++ } ++ ptr += 2; ++ if (*ptr == *initc) ++ { ++ if (switchit) ++ { ++ *backwards = FALSE; ++ *findc = *initc; ++ *initc = ptr[-2]; ++ } ++ else ++ { ++ *backwards = TRUE; ++ *findc = ptr[-2]; ++ } ++ return; ++ } ++ ++ptr; ++ } ++ if (*ptr == ',') ++ ++ptr; ++ } ++ } +*** ../vim-7.3.768/src/proto/option.pro 2012-12-05 14:42:56.000000000 +0100 +--- src/proto/option.pro 2013-01-17 16:39:30.000000000 +0100 +*************** +*** 59,62 **** +--- 59,63 ---- + int check_ff_value __ARGS((char_u *p)); + long get_sw_value __ARGS((void)); + long get_sts_value __ARGS((void)); ++ void find_mps_values __ARGS((int *initc, int *findc, int *backwards, int switchit)); + /* vim: set ft=c : */ +*** ../vim-7.3.768/src/search.c 2012-10-03 13:35:45.000000000 +0200 +--- src/search.c 2013-01-17 16:50:12.000000000 +0100 +*************** +*** 1786,1813 **** + } + else if (initc != '#' && initc != NUL) + { +! /* 'matchpairs' is "x:y,x:y" */ +! for (ptr = curbuf->b_p_mps; *ptr; ptr += 2) +! { +! if (*ptr == initc) +! { +! findc = initc; +! initc = ptr[2]; +! backwards = TRUE; +! break; +! } +! ptr += 2; +! if (*ptr == initc) +! { +! findc = initc; +! initc = ptr[-2]; +! backwards = FALSE; +! break; +! } +! if (ptr[1] != ',') +! break; +! } +! if (!findc) /* invalid initc! */ + return NULL; + } + /* +--- 1786,1793 ---- + } + else if (initc != '#' && initc != NUL) + { +! find_mps_values(&initc, &findc, &backwards, TRUE); +! if (findc == NUL) + return NULL; + } + /* +*************** +*** 1886,1921 **** + --pos.col; + for (;;) + { +! initc = linep[pos.col]; + if (initc == NUL) + break; + +! for (ptr = curbuf->b_p_mps; *ptr; ++ptr) +! { +! if (*ptr == initc) +! { +! findc = ptr[2]; +! backwards = FALSE; +! break; +! } +! ptr += 2; +! if (*ptr == initc) +! { +! findc = ptr[-2]; +! backwards = TRUE; +! break; +! } +! if (!*++ptr) +! break; +! } + if (findc) + break; +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! pos.col += (*mb_ptr2len)(linep + pos.col); +! else +! #endif +! ++pos.col; + } + if (!findc) + { +--- 1866,1879 ---- + --pos.col; + for (;;) + { +! initc = PTR2CHAR(linep + pos.col); + if (initc == NUL) + break; + +! find_mps_values(&initc, &findc, &backwards, FALSE); + if (findc) + break; +! pos.col += MB_PTR2LEN(linep + pos.col); + } + if (!findc) + { +*************** +*** 2260,2266 **** + * inquote if the number of quotes in a line is even, unless this + * line or the previous one ends in a '\'. Complicated, isn't it? + */ +! switch (c = linep[pos.col]) + { + case NUL: + /* at end of line without trailing backslash, reset inquote */ +--- 2218,2225 ---- + * inquote if the number of quotes in a line is even, unless this + * line or the previous one ends in a '\'. Complicated, isn't it? + */ +! c = PTR2CHAR(linep + pos.col); +! switch (c) + { + case NUL: + /* at end of line without trailing backslash, reset inquote */ +*************** +*** 2469,2488 **** + * Only show match for chars in the 'matchpairs' option. + */ + /* 'matchpairs' is "x:y,x:y" */ +! for (p = curbuf->b_p_mps; *p != NUL; p += 2) + { + #ifdef FEAT_RIGHTLEFT +! if (*p == c && (curwin->w_p_rl ^ p_ri)) +! break; + #endif +! p += 2; +! if (*p == c + #ifdef FEAT_RIGHTLEFT + && !(curwin->w_p_rl ^ p_ri) + #endif + ) + break; +! if (p[1] != ',') + return; + } + +--- 2428,2450 ---- + * Only show match for chars in the 'matchpairs' option. + */ + /* 'matchpairs' is "x:y,x:y" */ +! for (p = curbuf->b_p_mps; *p != NUL; ++p) + { ++ if (PTR2CHAR(p) == c + #ifdef FEAT_RIGHTLEFT +! && (curwin->w_p_rl ^ p_ri) + #endif +! ) +! break; +! p += MB_PTR2LEN(p) + 1; +! if (PTR2CHAR(p) == c + #ifdef FEAT_RIGHTLEFT + && !(curwin->w_p_rl ^ p_ri) + #endif + ) + break; +! p += MB_PTR2LEN(p); +! if (*p == NUL) + return; + } + +*** ../vim-7.3.768/src/testdir/test69.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test69.in 2013-01-17 15:55:09.000000000 +0100 +*************** +*** 1,4 **** +--- 1,5 ---- + Test for multi-byte text formatting. ++ Also test, that 'mps' with multibyte chars works. + + STARTTEST + :so mbyte.vim +*************** +*** 134,139 **** +--- 135,149 ---- + } + + STARTTEST ++ /^{/+1 ++ :set mps+=u2018:u2019 ++ d% ++ ENDTEST ++ ++ { ++ ‘ two three ’ four ++ } ++ STARTTEST + :g/^STARTTEST/.,/^ENDTEST/d + :1;/^Results/,$wq! test.out + ENDTEST +*** ../vim-7.3.768/src/testdir/test69.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test69.ok 2013-01-17 15:55:09.000000000 +0100 +*************** +*** 140,142 **** +--- 140,146 ---- + a + } + ++ ++ { ++ four ++ } +*** ../vim-7.3.768/src/version.c 2013-01-17 15:36:54.000000000 +0100 +--- src/version.c 2013-01-17 15:55:49.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 769, + /**/ + +-- +Microsoft's definition of a boolean: TRUE, FALSE, MAYBE +"Embrace and extend"...? + + /// 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 /// From e9d15a70a524d7b9cfd4ffa59d9e29a5ea03f051 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:34 +0100 Subject: [PATCH 101/291] - patchlevel 770 --- 7.3.770 | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 7.3.770 diff --git a/7.3.770 b/7.3.770 new file mode 100644 index 00000000..366ca0e2 --- /dev/null +++ b/7.3.770 @@ -0,0 +1,136 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.770 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.770 +Problem: Vim.h indentation is inconsistent. +Solution: Adjust the indentation. (Elias Diem) +Files: src/vim.h + + +*** ../vim-7.3.769/src/vim.h 2012-08-15 14:04:50.000000000 +0200 +--- src/vim.h 2013-01-17 17:12:54.000000000 +0100 +*************** +*** 104,110 **** + # endif + #endif + #if defined(MACOS_X) || defined(MACOS_CLASSIC) +! # define MACOS + #endif + #if defined(MACOS_X) && defined(MACOS_CLASSIC) + Error: To compile for both MACOS X and Classic use a Classic Carbon +--- 104,110 ---- + # endif + #endif + #if defined(MACOS_X) || defined(MACOS_CLASSIC) +! # define MACOS + #endif + #if defined(MACOS_X) && defined(MACOS_CLASSIC) + Error: To compile for both MACOS X and Classic use a Classic Carbon +*************** +*** 490,496 **** + # include + # endif + # if defined(HAVE_STRINGS_H) && !defined(NO_STRINGS_WITH_STRING_H) +! # include + # endif + # ifdef HAVE_STAT_H + # include +--- 490,496 ---- + # include + # endif + # if defined(HAVE_STRINGS_H) && !defined(NO_STRINGS_WITH_STRING_H) +! # include + # endif + # ifdef HAVE_STAT_H + # include +*************** +*** 515,536 **** + # include + #endif + +! # if defined(HAVE_SYS_SELECT_H) && \ + (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME)) +! # include +! # endif + +! # ifndef HAVE_SELECT +! # ifdef HAVE_SYS_POLL_H +! # include + # define HAVE_POLL +- # else +- # ifdef HAVE_POLL_H +- # include +- # define HAVE_POLL +- # endif + # endif + # endif + + /* ================ end of the header file puzzle =============== */ + +--- 515,536 ---- + # include + #endif + +! #if defined(HAVE_SYS_SELECT_H) && \ + (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME)) +! # include +! #endif + +! #ifndef HAVE_SELECT +! # ifdef HAVE_SYS_POLL_H +! # include +! # define HAVE_POLL +! # else +! # ifdef HAVE_POLL_H +! # include + # define HAVE_POLL + # endif + # endif ++ #endif + + /* ================ end of the header file puzzle =============== */ + +*************** +*** 1877,1884 **** + /* VIM_ATOM_NAME is the older Vim-specific selection type for X11. Still + * supported for when a mix of Vim versions is used. VIMENC_ATOM_NAME includes + * the encoding to support Vims using different 'encoding' values. */ +! #define VIM_ATOM_NAME "_VIM_TEXT" +! #define VIMENC_ATOM_NAME "_VIMENC_TEXT" + + /* Selection states for modeless selection */ + # define SELECT_CLEARED 0 +--- 1877,1884 ---- + /* VIM_ATOM_NAME is the older Vim-specific selection type for X11. Still + * supported for when a mix of Vim versions is used. VIMENC_ATOM_NAME includes + * the encoding to support Vims using different 'encoding' values. */ +! # define VIM_ATOM_NAME "_VIM_TEXT" +! # define VIMENC_ATOM_NAME "_VIMENC_TEXT" + + /* Selection states for modeless selection */ + # define SELECT_CLEARED 0 +*** ../vim-7.3.769/src/version.c 2013-01-17 17:01:57.000000000 +0100 +--- src/version.c 2013-01-17 17:16:45.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 770, + /**/ + +-- +FIRST HEAD: All right! All right! We'll kill him first and then have tea and + biscuits. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 7a407322fb8c255e77ca3f3c911e18fb404ac92e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:36 +0100 Subject: [PATCH 102/291] - patchlevel 771 --- 7.3.771 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.3.771 diff --git a/7.3.771 b/7.3.771 new file mode 100644 index 00000000..1d8e9888 --- /dev/null +++ b/7.3.771 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.771 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.771 (after 7.3.769) +Problem: Uninitialized variable. (Yasuhiro Matsumoto) +Solution: Set x2 to -1. +Files: src/option.c + + +*** ../vim-7.3.770/src/option.c 2013-01-17 17:01:56.000000000 +0100 +--- src/option.c 2013-01-17 17:31:56.000000000 +0100 +*************** +*** 6154,6160 **** + { + for (p = *varp; *p != NUL; ++p) + { +! int x2,x3 = -1; + + if (*p != NUL) + p += mb_ptr2len(p); +--- 6154,6161 ---- + { + for (p = *varp; *p != NUL; ++p) + { +! int x2 = -1; +! int x3 = -1; + + if (*p != NUL) + p += mb_ptr2len(p); +*************** +*** 6165,6172 **** + x3 = mb_ptr2char(p); + p += mb_ptr2len(p); + } +! if (x2 != ':' || x2 == -1 || x3 == -1 +! || (*p != NUL && *p != ',')) + { + errmsg = e_invarg; + break; +--- 6166,6172 ---- + x3 = mb_ptr2char(p); + p += mb_ptr2len(p); + } +! if (x2 != ':' || x3 == -1 || (*p != NUL && *p != ',')) + { + errmsg = e_invarg; + break; +*** ../vim-7.3.770/src/version.c 2013-01-17 17:17:21.000000000 +0100 +--- src/version.c 2013-01-17 17:37:24.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 771, + /**/ + +-- + GALAHAD turns back. We see from his POV the lovely ZOOT standing by him + smiling enchantingly and a number of equally delectable GIRLIES draped + around in the seductively poulticed room. They look at him smilingly and + wave. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From a43378749ae230a6ea4cdc82d0e30e4704922c78 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:37 +0100 Subject: [PATCH 103/291] - patchlevel 772 --- 7.3.772 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.3.772 diff --git a/7.3.772 b/7.3.772 new file mode 100644 index 00000000..c58ff406 --- /dev/null +++ b/7.3.772 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.772 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.772 +Problem: Cursor is at the wrong location and below the end of the file + after doing substitutions with confirm flag: %s/x/y/c + (Dominique Pelle) +Solution: Update the cursor position. (Christian Brabandt & Dominique) +Files: src/ex_cmds.c + + +*** ../vim-7.3.771/src/ex_cmds.c 2013-01-17 14:09:39.000000000 +0100 +--- src/ex_cmds.c 2013-01-17 18:31:38.000000000 +0100 +*************** +*** 5200,5205 **** +--- 5200,5211 ---- + EMSG2(_(e_patnotf2), get_search_pat()); + } + ++ #ifdef FEAT_FOLDING ++ if (do_ask && hasAnyFolding(curwin)) ++ /* Cursor position may require updating */ ++ changed_window_setting(); ++ #endif ++ + vim_free(regmatch.regprog); + } + +*** ../vim-7.3.771/src/version.c 2013-01-17 17:37:31.000000000 +0100 +--- src/version.c 2013-01-17 18:32:56.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 772, + /**/ + +-- +Linux is just like a wigwam: no Windows, no Gates and an Apache inside. + + /// 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 /// From dc4cd9f115b22b7063451fe9b47ed705f905516b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:38 +0100 Subject: [PATCH 104/291] - patchlevel 773 --- 7.3.773 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.3.773 diff --git a/7.3.773 b/7.3.773 new file mode 100644 index 00000000..225eef24 --- /dev/null +++ b/7.3.773 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.773 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.773 (after 7.3.767) +Problem: Crash when OriginalFirstThunk is zero. +Solution: Skip items with OriginalFirstThunk not set. (Ken Takata) +Files: src/mbyte.c + + +*** ../vim-7.3.772/src/mbyte.c 2013-01-17 14:39:43.000000000 +0100 +--- src/mbyte.c 2013-01-19 13:59:21.000000000 +0100 +*************** +*** 4317,4322 **** +--- 4317,4324 ---- + .VirtualAddress); + for (; pImpDesc->FirstThunk; ++pImpDesc) + { ++ if (!pImpDesc->OriginalFirstThunk) ++ continue; + pIAT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->FirstThunk); + pINT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->OriginalFirstThunk); + for (; pIAT->u1.Function; ++pIAT, ++pINT) +*** ../vim-7.3.772/src/version.c 2013-01-17 18:33:58.000000000 +0100 +--- src/version.c 2013-01-19 14:01:50.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 773, + /**/ + +-- +Experience is what you get when you don't get what you want. + + /// 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 /// From f20505ddbee1c0bf9e392dc07b2cb0ceaeadc331 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:39 +0100 Subject: [PATCH 105/291] - patchlevel 774 --- 7.3.774 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.3.774 diff --git a/7.3.774 b/7.3.774 new file mode 100644 index 00000000..5e36ffd8 --- /dev/null +++ b/7.3.774 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.774 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.774 +Problem: Tiny GUI version misses console dialog feature. +Solution: Define FEAT_CON_DIALOG when apprpriate. (Christian Brabandt) +Files: src/feature.h, src/gui.h + + +*** ../vim-7.3.773/src/feature.h 2012-10-21 02:17:28.000000000 +0200 +--- src/feature.h 2013-01-23 13:33:52.000000000 +0100 +*************** +*** 792,797 **** +--- 792,806 ---- + #endif + + /* ++ * On some systems, when we compile with the GUI, we always use it. On Mac ++ * there is no terminal version, and on Windows we can't figure out how to ++ * fork one off with :gui. ++ */ ++ #if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX)) ++ # define ALWAYS_USE_GUI ++ #endif ++ ++ /* + * +dialog_gui Use GUI dialog. + * +dialog_con May use Console dialog. + * When none of these defined there is no dialog support. +*************** +*** 820,825 **** +--- 829,837 ---- + || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) \ + || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) + # define FEAT_GUI_TEXTDIALOG ++ # ifndef ALWAYS_USE_GUI ++ # define FEAT_CON_DIALOG ++ # endif + #endif + + /* Mac specific thing: Codewarrior interface. */ +*** ../vim-7.3.773/src/gui.h 2011-06-26 04:48:56.000000000 +0200 +--- src/gui.h 2013-01-23 13:33:24.000000000 +0100 +*************** +*** 59,73 **** + #endif + + /* +- * On some systems, when we compile with the GUI, we always use it. On Mac +- * there is no terminal version, and on Windows we can't figure out how to +- * fork one off with :gui. +- */ +- #if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX)) +- # define ALWAYS_USE_GUI +- #endif +- +- /* + * On some systems scrolling needs to be done right away instead of in the + * main loop. + */ +--- 59,64 ---- +*** ../vim-7.3.773/src/version.c 2013-01-19 14:01:57.000000000 +0100 +--- src/version.c 2013-01-23 13:38:12.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 774, + /**/ + +-- +Overflow on /dev/null, please empty the bit bucket. + + /// 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 /// From 549678a5b6da40ccc612df16e126612479366824 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:40 +0100 Subject: [PATCH 106/291] - patchlevel 775 --- 7.3.775 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.3.775 diff --git a/7.3.775 b/7.3.775 new file mode 100644 index 00000000..a70a7b34 --- /dev/null +++ b/7.3.775 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.775 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.775 +Problem: Cygwin and Mingw builds miss dependency on gui_w48.c. +Solution: Add a build rule. (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak + + +*** ../vim-7.3.774/src/Make_cyg.mak 2012-11-28 16:18:26.000000000 +0100 +--- src/Make_cyg.mak 2013-01-23 13:53:48.000000000 +0100 +*************** +*** 600,605 **** +--- 600,608 ---- + $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h + $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o + ++ $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL) ++ $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o ++ + $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h + $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o + +*** ../vim-7.3.774/src/Make_ming.mak 2012-11-28 16:18:26.000000000 +0100 +--- src/Make_ming.mak 2013-01-23 13:53:48.000000000 +0100 +*************** +*** 731,736 **** +--- 731,739 ---- + $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h + $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o + ++ $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL) ++ $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o ++ + $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h + $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o + +*** ../vim-7.3.774/src/version.c 2013-01-23 13:40:54.000000000 +0100 +--- src/version.c 2013-01-23 13:53:34.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 775, + /**/ + +-- + ** Hello and Welcome to the Psychiatric Hotline ** +If you are obsessive-compulsive, please press 1 repeatedly. +If you are co-dependent, please ask someone to press 2. +If you have multiple personalities, please press 3, 4, 5 and 6. +If you are paranoid-delusional, we know who you are and what you want + - just stay on the line so we can trace the call. +If you are schizophrenic, listen carefully and a little voice will + tell you which number to press next. +If you are manic-depressive, it doesn't matter which number you press + - no one will answer. +If you suffer from panic attacks, push every button you can find. +If you are sane, please hold on - we have the rest of humanity on the + other line and they desparately want to ask you a few questions. + + /// 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 /// From 94a1f8fbe690a57247b2adffb48eab005b5fa43c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:41 +0100 Subject: [PATCH 107/291] - patchlevel 776 --- 7.3.776 | 435 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 435 insertions(+) create mode 100644 7.3.776 diff --git a/7.3.776 b/7.3.776 new file mode 100644 index 00000000..fb052168 --- /dev/null +++ b/7.3.776 @@ -0,0 +1,435 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.776 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.776 +Problem: ml_get error when searching, caused by curwin not matching curbuf. +Solution: Avoid changing curbuf. (Lech Lorens) +Files: src/charset.c, src/eval.c, src/mark.c, src/proto/charset.pro, + src/proto/mark.pro, src/regexp.c, src/syntax.c + + +*** ../vim-7.3.775/src/charset.c 2012-05-25 11:56:06.000000000 +0200 +--- src/charset.c 2013-01-23 15:43:37.000000000 +0100 +*************** +*** 905,910 **** +--- 905,918 ---- + vim_iswordc(c) + int c; + { ++ return vim_iswordc_buf(c, curbuf); ++ } ++ ++ int ++ vim_iswordc_buf(c, buf) ++ int c; ++ buf_T *buf; ++ { + #ifdef FEAT_MBYTE + if (c >= 0x100) + { +*************** +*** 914,920 **** + return utf_class(c) >= 2; + } + #endif +! return (c > 0 && c < 0x100 && GET_CHARTAB(curbuf, c) != 0); + } + + /* +--- 922,928 ---- + return utf_class(c) >= 2; + } + #endif +! return (c > 0 && c < 0x100 && GET_CHARTAB(buf, c) != 0); + } + + /* +*************** +*** 933,939 **** + + #if defined(FEAT_SYN_HL) || defined(PROTO) + int +! vim_iswordc_buf(p, buf) + char_u *p; + buf_T *buf; + { +--- 941,947 ---- + + #if defined(FEAT_SYN_HL) || defined(PROTO) + int +! vim_iswordp_buf(p, buf) + char_u *p; + buf_T *buf; + { +*** ../vim-7.3.775/src/eval.c 2012-12-05 16:10:21.000000000 +0100 +--- src/eval.c 2013-01-23 14:24:08.000000000 +0100 +*************** +*** 18884,18890 **** + #endif + if (name[0] == '\'') /* mark */ + { +! pp = getmark_fnum(name[1], FALSE, fnum); + if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0) + return NULL; + return pp; +--- 18884,18890 ---- + #endif + if (name[0] == '\'') /* mark */ + { +! pp = getmark_buf_fnum(curbuf, name[1], FALSE, fnum); + if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0) + return NULL; + return pp; +*** ../vim-7.3.775/src/mark.c 2012-07-06 17:51:24.000000000 +0200 +--- src/mark.c 2013-01-23 14:24:16.000000000 +0100 +*************** +*** 304,310 **** + #endif + + /* +! * Find mark "c". + * If "changefile" is TRUE it's allowed to edit another file for '0, 'A, etc. + * If "fnum" is not NULL store the fnum there for '0, 'A etc., don't edit + * another file. +--- 304,310 ---- + #endif + + /* +! * Find mark "c" in buffer pointed to by "buf". + * If "changefile" is TRUE it's allowed to edit another file for '0, 'A, etc. + * If "fnum" is not NULL store the fnum there for '0, 'A etc., don't edit + * another file. +*************** +*** 315,329 **** + * - -1 if mark is in other file and jumped there (only if changefile is TRUE) + */ + pos_T * + getmark(c, changefile) + int c; + int changefile; + { +! return getmark_fnum(c, changefile, NULL); + } + + pos_T * +! getmark_fnum(c, changefile, fnum) + int c; + int changefile; + int *fnum; +--- 315,339 ---- + * - -1 if mark is in other file and jumped there (only if changefile is TRUE) + */ + pos_T * ++ getmark_buf(buf, c, changefile) ++ buf_T *buf; ++ int c; ++ int changefile; ++ { ++ return getmark_buf_fnum(buf, c, changefile, NULL); ++ } ++ ++ pos_T * + getmark(c, changefile) + int c; + int changefile; + { +! return getmark_buf_fnum(curbuf, c, changefile, NULL); + } + + pos_T * +! getmark_buf_fnum(buf, c, changefile, fnum) +! buf_T *buf; + int c; + int changefile; + int *fnum; +*************** +*** 351,365 **** + posp = &pos_copy; /* w_pcmark may be changed soon */ + } + else if (c == '"') /* to pos when leaving buffer */ +! posp = &(curbuf->b_last_cursor); + else if (c == '^') /* to where Insert mode stopped */ +! posp = &(curbuf->b_last_insert); + else if (c == '.') /* to where last change was made */ +! posp = &(curbuf->b_last_change); + else if (c == '[') /* to start of previous operator */ +! posp = &(curbuf->b_op_start); + else if (c == ']') /* to end of previous operator */ +! posp = &(curbuf->b_op_end); + else if (c == '{' || c == '}') /* to previous/next paragraph */ + { + pos_T pos; +--- 361,375 ---- + posp = &pos_copy; /* w_pcmark may be changed soon */ + } + else if (c == '"') /* to pos when leaving buffer */ +! posp = &(buf->b_last_cursor); + else if (c == '^') /* to where Insert mode stopped */ +! posp = &(buf->b_last_insert); + else if (c == '.') /* to where last change was made */ +! posp = &(buf->b_last_change); + else if (c == '[') /* to start of previous operator */ +! posp = &(buf->b_op_start); + else if (c == ']') /* to end of previous operator */ +! posp = &(buf->b_op_end); + else if (c == '{' || c == '}') /* to previous/next paragraph */ + { + pos_T pos; +*************** +*** 395,402 **** + #ifdef FEAT_VISUAL + else if (c == '<' || c == '>') /* start/end of visual area */ + { +! startp = &curbuf->b_visual.vi_start; +! endp = &curbuf->b_visual.vi_end; + if ((c == '<') == lt(*startp, *endp)) + posp = startp; + else +--- 405,412 ---- + #ifdef FEAT_VISUAL + else if (c == '<' || c == '>') /* start/end of visual area */ + { +! startp = &buf->b_visual.vi_start; +! endp = &buf->b_visual.vi_end; + if ((c == '<') == lt(*startp, *endp)) + posp = startp; + else +*************** +*** 404,410 **** + /* + * For Visual line mode, set mark at begin or end of line + */ +! if (curbuf->b_visual.vi_mode == 'V') + { + pos_copy = *posp; + posp = &pos_copy; +--- 414,420 ---- + /* + * For Visual line mode, set mark at begin or end of line + */ +! if (buf->b_visual.vi_mode == 'V') + { + pos_copy = *posp; + posp = &pos_copy; +*************** +*** 420,426 **** + #endif + else if (ASCII_ISLOWER(c)) /* normal named mark */ + { +! posp = &(curbuf->b_namedm[c - 'a']); + } + else if (ASCII_ISUPPER(c) || VIM_ISDIGIT(c)) /* named file mark */ + { +--- 430,436 ---- + #endif + else if (ASCII_ISLOWER(c)) /* normal named mark */ + { +! posp = &(buf->b_namedm[c - 'a']); + } + else if (ASCII_ISUPPER(c) || VIM_ISDIGIT(c)) /* named file mark */ + { +*************** +*** 435,441 **** + + if (fnum != NULL) + *fnum = namedfm[c].fmark.fnum; +! else if (namedfm[c].fmark.fnum != curbuf->b_fnum) + { + /* mark is in another file */ + posp = &pos_copy; +--- 445,451 ---- + + if (fnum != NULL) + *fnum = namedfm[c].fmark.fnum; +! else if (namedfm[c].fmark.fnum != buf->b_fnum) + { + /* mark is in another file */ + posp = &pos_copy; +*** ../vim-7.3.775/src/proto/charset.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/charset.pro 2013-01-23 15:43:25.000000000 +0100 +*************** +*** 19,26 **** + int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len)); + int vim_isIDc __ARGS((int c)); + int vim_iswordc __ARGS((int c)); + int vim_iswordp __ARGS((char_u *p)); +! int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf)); + int vim_isfilec __ARGS((int c)); + int vim_isfilec_or_wc __ARGS((int c)); + int vim_isprintc __ARGS((int c)); +--- 19,27 ---- + int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len)); + int vim_isIDc __ARGS((int c)); + int vim_iswordc __ARGS((int c)); ++ int vim_iswordc_buf __ARGS((int c, buf_T *buf)); + int vim_iswordp __ARGS((char_u *p)); +! int vim_iswordp_buf __ARGS((char_u *p, buf_T *buf)); + int vim_isfilec __ARGS((int c)); + int vim_isfilec_or_wc __ARGS((int c)); + int vim_isprintc __ARGS((int c)); +*** ../vim-7.3.775/src/proto/mark.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/mark.pro 2013-01-23 14:24:23.000000000 +0100 +*************** +*** 5,12 **** + void checkpcmark __ARGS((void)); + pos_T *movemark __ARGS((int count)); + pos_T *movechangelist __ARGS((int count)); + pos_T *getmark __ARGS((int c, int changefile)); +! pos_T *getmark_fnum __ARGS((int c, int changefile, int *fnum)); + pos_T *getnextmark __ARGS((pos_T *startpos, int dir, int begin_line)); + void fmarks_check_names __ARGS((buf_T *buf)); + int check_mark __ARGS((pos_T *pos)); +--- 5,13 ---- + void checkpcmark __ARGS((void)); + pos_T *movemark __ARGS((int count)); + pos_T *movechangelist __ARGS((int count)); ++ pos_T *getmark_buf __ARGS((buf_T *buf, int c, int changefile)); + pos_T *getmark __ARGS((int c, int changefile)); +! pos_T *getmark_buf_fnum __ARGS((buf_T *buf, int c, int changefile, int *fnum)); + pos_T *getnextmark __ARGS((pos_T *startpos, int dir, int begin_line)); + void fmarks_check_names __ARGS((buf_T *buf)); + int check_mark __ARGS((pos_T *pos)); +*** ../vim-7.3.775/src/regexp.c 2011-07-20 17:58:14.000000000 +0200 +--- src/regexp.c 2013-01-23 14:19:15.000000000 +0100 +*************** +*** 3623,3629 **** + proftime_T *tm; /* timeout limit or NULL */ + { + long r; +- buf_T *save_curbuf = curbuf; + + reg_match = NULL; + reg_mmatch = rmp; +--- 3623,3628 ---- +*************** +*** 3638,3647 **** + #endif + ireg_maxcol = rmp->rmm_maxcol; + +- /* Need to switch to buffer "buf" to make vim_iswordc() work. */ +- curbuf = buf; + r = vim_regexec_both(NULL, col, tm); +- curbuf = save_curbuf; + + return r; + } +--- 3637,3643 ---- +*************** +*** 4185,4191 **** + int cmp = OPERAND(scan)[1]; + pos_T *pos; + +! pos = getmark(mark, FALSE); + if (pos == NULL /* mark doesn't exist */ + || pos->lnum <= 0 /* mark isn't set (in curbuf) */ + || (pos->lnum == reglnum + reg_firstlnum +--- 4181,4187 ---- + int cmp = OPERAND(scan)[1]; + pos_T *pos; + +! pos = getmark_buf(reg_buf, mark, FALSE); + if (pos == NULL /* mark doesn't exist */ + || pos->lnum <= 0 /* mark isn't set (in curbuf) */ + || (pos->lnum == reglnum + reg_firstlnum +*************** +*** 4315,4322 **** + #endif + else + { +! if (!vim_iswordc(c) +! || (reginput > regline && vim_iswordc(reginput[-1]))) + status = RA_NOMATCH; + } + break; +--- 4311,4318 ---- + #endif + else + { +! if (!vim_iswordc_buf(c, reg_buf) +! || (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf))) + status = RA_NOMATCH; + } + break; +*************** +*** 4339,4346 **** + #endif + else + { +! if (!vim_iswordc(reginput[-1]) +! || (reginput[0] != NUL && vim_iswordc(c))) + status = RA_NOMATCH; + } + break; /* Matched with EOW */ +--- 4335,4342 ---- + #endif + else + { +! if (!vim_iswordc_buf(reginput[-1], reg_buf) +! || (reginput[0] != NUL && vim_iswordc_buf(c, reg_buf))) + status = RA_NOMATCH; + } + break; /* Matched with EOW */ +*** ../vim-7.3.775/src/syntax.c 2012-10-21 21:25:17.000000000 +0200 +--- src/syntax.c 2013-01-23 14:19:15.000000000 +0100 +*************** +*** 1954,1962 **** + if (do_keywords) + { + line = syn_getcurline(); +! if (vim_iswordc_buf(line + current_col, syn_buf) + && (current_col == 0 +! || !vim_iswordc_buf(line + current_col - 1 + #ifdef FEAT_MBYTE + - (has_mbyte + ? (*mb_head_off)(line, line + current_col - 1) +--- 1954,1962 ---- + if (do_keywords) + { + line = syn_getcurline(); +! if (vim_iswordp_buf(line + current_col, syn_buf) + && (current_col == 0 +! || !vim_iswordp_buf(line + current_col - 1 + #ifdef FEAT_MBYTE + - (has_mbyte + ? (*mb_head_off)(line, line + current_col - 1) +*************** +*** 3280,3286 **** + #endif + ++kwlen; + } +! while (vim_iswordc_buf(kwp + kwlen, syn_buf)); + + if (kwlen > MAXKEYWLEN) + return 0; +--- 3280,3286 ---- + #endif + ++kwlen; + } +! while (vim_iswordp_buf(kwp + kwlen, syn_buf)); + + if (kwlen > MAXKEYWLEN) + return 0; +*** ../vim-7.3.775/src/version.c 2013-01-23 13:55:16.000000000 +0100 +--- src/version.c 2013-01-23 14:19:44.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 776, + /**/ + +-- +Q: How does a UNIX Guru do Sex ? +A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep + + /// 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 /// From 73cf9d2373a8406d5de74adf65f0e454d850970f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:42 +0100 Subject: [PATCH 108/291] - patchlevel 777 --- 7.3.777 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.3.777 diff --git a/7.3.777 b/7.3.777 new file mode 100644 index 00000000..53a2acf2 --- /dev/null +++ b/7.3.777 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.777 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.777 +Problem: When building with Gnome locale gets reset. +Solution: Set locale after gnome_program_init(). (Christian Brabandt) +Files: src/gui_gtk_x11.c + + +*** ../vim-7.3.776/src/gui_gtk_x11.c 2012-05-18 17:03:14.000000000 +0200 +--- src/gui_gtk_x11.c 2013-01-23 15:58:14.000000000 +0100 +*************** +*** 3130,3137 **** +--- 3130,3145 ---- + * exits on failure, but that's a non-issue because we already called + * gtk_init_check() in gui_mch_init_check(). */ + if (using_gnome) ++ { + gnome_program_init(VIMPACKAGE, VIM_VERSION_SHORT, + LIBGNOMEUI_MODULE, gui_argc, gui_argv, NULL); ++ # if defined(FEAT_FLOAT) && defined(LC_NUMERIC) ++ /* Make sure strtod() uses a decimal point, not a comma. Gnome init ++ * may change it. */ ++ if (setlocale(LC_NUMERIC, NULL) != (char *) "C") ++ setlocale(LC_NUMERIC, "C"); ++ # endif ++ } + #endif + vim_free(gui_argv); + gui_argv = NULL; +*** ../vim-7.3.776/src/version.c 2013-01-23 15:53:08.000000000 +0100 +--- src/version.c 2013-01-23 15:56:21.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 777, + /**/ + +-- + [clop clop] +GUARD #1: Halt! Who goes there? +ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of + Camelot. King of the Britons, defeator of the Saxons, sovereign of + all England! +GUARD #1: Pull the other one! + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 51f6af431ca65084c91fdd14ee39205519a36d7d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:43 +0100 Subject: [PATCH 109/291] - patchlevel 778 --- 7.3.778 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.3.778 diff --git a/7.3.778 b/7.3.778 new file mode 100644 index 00000000..62a8a91d --- /dev/null +++ b/7.3.778 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.778 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.778 +Problem: Compiler error for adding up two pointers. (Titov Anatoly) +Solution: Add a type cast. (Ken Takata) +Files: src/mbyte.c + + +*** ../vim-7.3.777/src/mbyte.c 2013-01-19 14:01:57.000000000 +0100 +--- src/mbyte.c 2013-01-23 16:18:02.000000000 +0100 +*************** +*** 4325,4331 **** + { + if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal)) + continue; +! pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage + pINT->u1.AddressOfData); + if (strcmp(pImpName->Name, funcname) == 0) + return (void *)pIAT->u1.Function; + } +--- 4325,4332 ---- + { + if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal)) + continue; +! pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage +! + (UINT_PTR)(pINT->u1.AddressOfData)); + if (strcmp(pImpName->Name, funcname) == 0) + return (void *)pIAT->u1.Function; + } +*** ../vim-7.3.777/src/version.c 2013-01-23 16:00:05.000000000 +0100 +--- src/version.c 2013-01-23 16:18:40.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 778, + /**/ + +-- +'I generally avoid temptation unless I can't resist it." + -- Mae West + + /// 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 /// From 0960a43fbbaad6a6dbbdccfa32030ba8ef101e2a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:44 +0100 Subject: [PATCH 110/291] - patchlevel 779 --- 7.3.779 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.3.779 diff --git a/7.3.779 b/7.3.779 new file mode 100644 index 00000000..3bd4e881 --- /dev/null +++ b/7.3.779 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.779 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.779 +Problem: Backwards search lands in wrong place when started on a multibyte + character. +Solution: Do not set extra_col for a backwards search. (Sung Pae) +Files: src/search.c, src/testdir/test44.in, src/testdir/test44.ok + + +*** ../vim-7.3.778/src/search.c 2013-01-17 17:01:57.000000000 +0100 +--- src/search.c 2013-01-23 16:27:35.000000000 +0100 +*************** +*** 572,578 **** + extra_col = 0; + #ifdef FEAT_MBYTE + /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */ +! else if (has_mbyte && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count + && pos->col < MAXCOL - 2) + { + ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col; +--- 572,579 ---- + extra_col = 0; + #ifdef FEAT_MBYTE + /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */ +! else if (dir != BACKWARD && has_mbyte +! && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count + && pos->col < MAXCOL - 2) + { + ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col; +*** ../vim-7.3.778/src/testdir/test44.in 2011-07-20 17:58:14.000000000 +0200 +--- src/testdir/test44.in 2013-01-23 16:22:38.000000000 +0100 +*************** +*** 29,34 **** +--- 29,37 ---- + x/\%d21879b + x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e + x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e ++ x:" Test backwards search from a multi-byte char ++ /x ++ x?. + x:?^1?,$w! test.out + :e! test.out + G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב +*************** +*** 57,59 **** +--- 60,63 ---- + g aå•·bb + h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÃ’Ã“Ã”Ã•Ã–Ã˜ÅŒÅŽÅÆ Ç‘ǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº” + i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅőơǒǫǭỠpṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ ++ j 0123â¤x +*** ../vim-7.3.778/src/testdir/test44.ok 2011-07-20 17:58:14.000000000 +0200 +--- src/testdir/test44.ok 2013-01-23 16:22:38.000000000 +0100 +*************** +*** 16,21 **** +--- 16,22 ---- + g abb + h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÃ’Ã“Ã”Ã•Ã–Ã˜ÅŒÅŽÅÆ Ç‘ǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵẠ+ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅőơǒǫǭỠpṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ ++ j 012⤠+ ב + בג + × +*** ../vim-7.3.778/src/version.c 2013-01-23 16:19:17.000000000 +0100 +--- src/version.c 2013-01-23 16:39:23.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 779, + /**/ + +-- +Veni, Vidi, Video -- I came, I saw, I taped what I saw. + + /// 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 /// From 99be62d747cd8ed1d59a2bd14cc155d83fb01e5f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:45 +0100 Subject: [PATCH 111/291] - patchlevel 780 --- 7.3.780 | 193 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 7.3.780 diff --git a/7.3.780 b/7.3.780 new file mode 100644 index 00000000..40d317b4 --- /dev/null +++ b/7.3.780 @@ -0,0 +1,193 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.780 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.780 +Problem: char2nr() and nr2char() always use 'encoding'. +Solution: Add argument to use utf-8 characters. (Yasuhiro Matsumoto) +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.3.779/runtime/doc/eval.txt 2012-12-05 16:10:21.000000000 +0100 +--- runtime/doc/eval.txt 2013-01-23 17:00:52.000000000 +0100 +*************** +*** 1705,1711 **** + any call {func} with arguments {arglist} + ceil( {expr}) Float round {expr} up + changenr() Number current change number +! char2nr( {expr}) Number ASCII value of first char in {expr} + cindent( {lnum}) Number C indent for line {lnum} + clearmatches() none clear all matches + col( {expr}) Number column nr of cursor or mark +--- 1716,1722 ---- + any call {func} with arguments {arglist} + ceil( {expr}) Float round {expr} up + changenr() Number current change number +! char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} + cindent( {lnum}) Number C indent for line {lnum} + clearmatches() none clear all matches + col( {expr}) Number column nr of cursor or mark +*************** +*** 1862,1868 **** + mode( [expr]) String current editing mode + mzeval( {expr}) any evaluate |MzScheme| expression + nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} +! nr2char( {expr}) String single char with ASCII value {expr} + or( {expr}, {expr}) Number bitwise OR + pathshorten( {expr}) String shorten directory names in a path + pow( {x}, {y}) Float {x} to the power of {y} +--- 1873,1879 ---- + mode( [expr]) String current editing mode + mzeval( {expr}) any evaluate |MzScheme| expression + nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} +! nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} + or( {expr}, {expr}) Number bitwise OR + pathshorten( {expr}) String shorten directory names in a path + pow( {x}, {y}) Float {x} to the power of {y} +*************** +*** 2282,2295 **** + redo it is the number of the redone change. After undo it is + one less than the number of the undone change. + +! char2nr({expr}) *char2nr()* + Return number value of the first char in {expr}. Examples: > + char2nr(" ") returns 32 + char2nr("ABC") returns 65 +! < The current 'encoding' is used. Example for "utf-8": > + char2nr("á") returns 225 + char2nr("á"[0]) returns 195 +! < |nr2char()| does the opposite. + + cindent({lnum}) *cindent()* + Get the amount of indent for line {lnum} according the C +--- 2294,2310 ---- + redo it is the number of the redone change. After undo it is + one less than the number of the undone change. + +! char2nr({expr}[, {utf8}]) *char2nr()* + Return number value of the first char in {expr}. Examples: > + char2nr(" ") returns 32 + char2nr("ABC") returns 65 +! < When {utf8} is omitted or zero, the current 'encoding' is used. +! Example for "utf-8": > + char2nr("á") returns 225 + char2nr("á"[0]) returns 195 +! < With {utf8} set to 1, always treat as utf-8 characters. +! A combining character is a separate character. +! |nr2char()| does the opposite. + + cindent({lnum}) *cindent()* + Get the amount of indent for line {lnum} according the C +*** ../vim-7.3.779/src/eval.c 2013-01-23 15:53:08.000000000 +0100 +--- src/eval.c 2013-01-23 16:57:48.000000000 +0100 +*************** +*** 7854,7860 **** + {"ceil", 1, 1, f_ceil}, + #endif + {"changenr", 0, 0, f_changenr}, +! {"char2nr", 1, 1, f_char2nr}, + {"cindent", 1, 1, f_cindent}, + {"clearmatches", 0, 0, f_clearmatches}, + {"col", 1, 1, f_col}, +--- 7854,7860 ---- + {"ceil", 1, 1, f_ceil}, + #endif + {"changenr", 0, 0, f_changenr}, +! {"char2nr", 1, 2, f_char2nr}, + {"cindent", 1, 1, f_cindent}, + {"clearmatches", 0, 0, f_clearmatches}, + {"col", 1, 1, f_col}, +*************** +*** 8003,8009 **** + {"mzeval", 1, 1, f_mzeval}, + #endif + {"nextnonblank", 1, 1, f_nextnonblank}, +! {"nr2char", 1, 1, f_nr2char}, + {"or", 2, 2, f_or}, + {"pathshorten", 1, 1, f_pathshorten}, + #ifdef FEAT_FLOAT +--- 8003,8009 ---- + {"mzeval", 1, 1, f_mzeval}, + #endif + {"nextnonblank", 1, 1, f_nextnonblank}, +! {"nr2char", 1, 2, f_nr2char}, + {"or", 2, 2, f_or}, + {"pathshorten", 1, 1, f_pathshorten}, + #ifdef FEAT_FLOAT +*************** +*** 9303,9309 **** + { + #ifdef FEAT_MBYTE + if (has_mbyte) +! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); + else + #endif + rettv->vval.v_number = get_tv_string(&argvars[0])[0]; +--- 9303,9319 ---- + { + #ifdef FEAT_MBYTE + if (has_mbyte) +! { +! int utf8 = 0; +! +! if (argvars[1].v_type != VAR_UNKNOWN) +! utf8 = get_tv_number_chk(&argvars[1], NULL); +! +! if (utf8) +! rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0])); +! else +! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); +! } + else + #endif + rettv->vval.v_number = get_tv_string(&argvars[0])[0]; +*************** +*** 14360,14366 **** + + #ifdef FEAT_MBYTE + if (has_mbyte) +! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; + else + #endif + { +--- 14370,14385 ---- + + #ifdef FEAT_MBYTE + if (has_mbyte) +! { +! int utf8 = 0; +! +! if (argvars[1].v_type != VAR_UNKNOWN) +! utf8 = get_tv_number_chk(&argvars[1], NULL); +! if (utf8) +! buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; +! else +! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; +! } + else + #endif + { +*** ../vim-7.3.779/src/version.c 2013-01-23 16:43:07.000000000 +0100 +--- src/version.c 2013-01-23 17:06:36.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 780, + /**/ + +-- +A real patriot is the fellow who gets a parking ticket and rejoices +that the system works. + + + /// 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 /// From c5bd7e029adc8f7872014c7bd512d8a3e82cae78 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:46 +0100 Subject: [PATCH 112/291] - patchlevel 781 --- 7.3.781 | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 7.3.781 diff --git a/7.3.781 b/7.3.781 new file mode 100644 index 00000000..516ee829 --- /dev/null +++ b/7.3.781 @@ -0,0 +1,185 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.781 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.781 +Problem: Drawing with 'guifontwide' can be slow. +Solution: Draw multiple characters at a time. (Taro Muraoka) +Files: src/gui.c + + +*** ../vim-7.3.780/src/gui.c 2012-11-20 12:03:02.000000000 +0100 +--- src/gui.c 2013-01-23 17:28:48.000000000 +0100 +*************** +*** 2380,2386 **** + int cl; /* byte length of current char */ + int comping; /* current char is composing */ + int scol = col; /* screen column */ +! int dowide; /* use 'guifontwide' */ + + /* Break the string at a composing character, it has to be drawn on + * top of the previous character. */ +--- 2380,2388 ---- + int cl; /* byte length of current char */ + int comping; /* current char is composing */ + int scol = col; /* screen column */ +! int curr_wide; /* use 'guifontwide' */ +! int prev_wide = FALSE; +! int wide_changed; + + /* Break the string at a composing character, it has to be drawn on + * top of the previous character. */ +*************** +*** 2395,2403 **** + && fontset == NOFONTSET + # endif + && gui.wide_font != NOFONT) +! dowide = TRUE; + else +! dowide = FALSE; + comping = utf_iscomposing(c); + if (!comping) /* count cells from non-composing chars */ + cells += cn; +--- 2397,2405 ---- + && fontset == NOFONTSET + # endif + && gui.wide_font != NOFONT) +! curr_wide = TRUE; + else +! curr_wide = FALSE; + comping = utf_iscomposing(c); + if (!comping) /* count cells from non-composing chars */ + cells += cn; +*************** +*** 2405,2413 **** + if (cl == 0) /* hit end of string */ + len = i + cl; /* len must be wrong "cannot happen" */ + +! /* print the string so far if it's the last character or there is + * a composing character. */ +! if (i + cl >= len || (comping && i > start) || dowide + # if defined(FEAT_GUI_X11) + || (cn > 1 + # ifdef FEAT_XFONTSET +--- 2407,2417 ---- + if (cl == 0) /* hit end of string */ + len = i + cl; /* len must be wrong "cannot happen" */ + +! wide_changed = curr_wide != prev_wide; +! +! /* Print the string so far if it's the last character or there is + * a composing character. */ +! if (i + cl >= len || (comping && i > start) || wide_changed + # if defined(FEAT_GUI_X11) + || (cn > 1 + # ifdef FEAT_XFONTSET +*************** +*** 2419,2443 **** + # endif + ) + { +! if (comping || dowide) + thislen = i - start; + else + thislen = i - start + cl; + if (thislen > 0) + { + gui_mch_draw_string(gui.row, scol, s + start, thislen, + draw_flags); + start += thislen; + } + scol += cells; + cells = 0; +! if (dowide) + { +! gui_mch_set_font(gui.wide_font); +! gui_mch_draw_string(gui.row, scol - cn, +! s + start, cl, draw_flags); +! gui_mch_set_font(font); +! start += cl; + } + + # if defined(FEAT_GUI_X11) +--- 2423,2450 ---- + # endif + ) + { +! if (comping || wide_changed) + thislen = i - start; + else + thislen = i - start + cl; + if (thislen > 0) + { ++ if (prev_wide) ++ gui_mch_set_font(gui.wide_font); + gui_mch_draw_string(gui.row, scol, s + start, thislen, + draw_flags); ++ if (prev_wide) ++ gui_mch_set_font(font); + start += thislen; + } + scol += cells; + cells = 0; +! /* Adjust to not draw a character which width is changed +! * against with last one. */ +! if (wide_changed && !comping) + { +! scol -= cn; +! cl = 0; + } + + # if defined(FEAT_GUI_X11) +*************** +*** 2447,2453 **** + # ifdef FEAT_XFONTSET + && fontset == NOFONTSET + # endif +! && !dowide) + gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ", + 1, draw_flags); + # endif +--- 2454,2460 ---- + # ifdef FEAT_XFONTSET + && fontset == NOFONTSET + # endif +! && !wide_changed) + gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ", + 1, draw_flags); + # endif +*************** +*** 2465,2470 **** +--- 2472,2478 ---- + # endif + start = i + cl; + } ++ prev_wide = curr_wide; + } + /* The stuff below assumes "len" is the length in screen columns. */ + len = scol - col; +*** ../vim-7.3.780/src/version.c 2013-01-23 17:15:25.000000000 +0100 +--- src/version.c 2013-01-23 17:28:17.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 781, + /**/ + +-- +GUARD #1: Where'd you get the coconut? +ARTHUR: We found them. +GUARD #1: Found them? In Mercea? The coconut's tropical! +ARTHUR: What do you mean? +GUARD #1: Well, this is a temperate zone. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 1c29cedeb1b65dcf7baa1f8b56fa9ec1cbe9456d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:47 +0100 Subject: [PATCH 113/291] - patchlevel 782 --- 7.3.782 | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 7.3.782 diff --git a/7.3.782 b/7.3.782 new file mode 100644 index 00000000..11d26b15 --- /dev/null +++ b/7.3.782 @@ -0,0 +1,171 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.782 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.782 +Problem: Windows: IME composition may use a wrong font. +Solution: Use 'guifontwide' for IME when it is set. (Taro Muraoka) +Files: runtime/doc/options.txt, src/gui.c, src/gui_w48.c, + src/proto/gui_w16.pro, src/proto/gui_w32.pro + + +*** ../vim-7.3.781/runtime/doc/options.txt 2012-08-15 16:20:59.000000000 +0200 +--- runtime/doc/options.txt 2013-01-23 18:24:48.000000000 +0100 +*************** +*** 3518,3523 **** +--- 3560,3569 ---- + to set 'guifontwide' at all unless you want to override the choice + made by Pango/Xft. + ++ Windows +multibyte only: *guifontwide_win_mbyte* ++ ++ If set and vaild, 'guifontwide' is used for IME instead of 'guifont'. ++ + *'guiheadroom'* *'ghr'* + 'guiheadroom' 'ghr' number (default 50) + global +*** ../vim-7.3.781/src/gui.c 2013-01-23 17:43:52.000000000 +0100 +--- src/gui.c 2013-01-23 18:24:48.000000000 +0100 +*************** +*** 1002,1007 **** +--- 1002,1010 ---- + else + #endif + gui.wide_font = font; ++ #ifdef FEAT_GUI_MSWIN ++ gui_mch_wide_font_changed(); ++ #endif + return OK; + } + #endif +*** ../vim-7.3.781/src/gui_w48.c 2012-12-16 12:50:33.000000000 +0100 +--- src/gui_w48.c 2013-01-23 18:32:45.000000000 +0100 +*************** +*** 323,332 **** +--- 323,337 ---- + + /* + * For control IME. ++ * ++ * These LOGFONT used for IME. + */ + #ifdef FEAT_MBYTE + # ifdef USE_IM_CONTROL ++ /* holds LOGFONT for 'guifontwide' if available, otherwise 'guifont' */ + static LOGFONT norm_logfont; ++ /* holds LOGFONT for 'guifont' always. */ ++ static LOGFONT sub_logfont; + # endif + #endif + +*************** +*** 3090,3095 **** +--- 3095,3133 ---- + return res; + } + ++ ++ #ifdef FEAT_MBYTE_IME ++ /* ++ * Set correct LOGFONT to IME. Use 'guifontwide' if available, otherwise use ++ * 'guifont' ++ */ ++ static void ++ update_im_font() ++ { ++ LOGFONT lf_wide; ++ ++ if (p_guifontwide != NULL && *p_guifontwide != NUL ++ && get_logfont(&lf_wide, p_guifontwide, NULL, TRUE) == OK) ++ norm_logfont = lf_wide; ++ else ++ norm_logfont = sub_logfont; ++ im_set_font(&norm_logfont); ++ } ++ #endif ++ ++ #ifdef FEAT_MBYTE ++ /* ++ * Handler of gui.wide_font (p_guifontwide) changed notification. ++ */ ++ void ++ gui_mch_wide_font_changed() ++ { ++ # ifdef FEAT_MBYTE_IME ++ update_im_font(); ++ # endif ++ } ++ #endif ++ + /* + * Initialise vim to use the font with the given name. + * Return FAIL if the font could not be loaded, OK otherwise. +*************** +*** 3112,3120 **** + font_name = lf.lfFaceName; + #if defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME) + norm_logfont = lf; + #endif + #ifdef FEAT_MBYTE_IME +! im_set_font(&lf); + #endif + gui_mch_free_font(gui.norm_font); + gui.norm_font = font; +--- 3150,3159 ---- + font_name = lf.lfFaceName; + #if defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME) + norm_logfont = lf; ++ sub_logfont = lf; + #endif + #ifdef FEAT_MBYTE_IME +! update_im_font(); + #endif + gui_mch_free_font(gui.norm_font); + gui.norm_font = font; +*** ../vim-7.3.781/src/proto/gui_w16.pro 2011-01-17 20:08:03.000000000 +0100 +--- src/proto/gui_w16.pro 2013-01-23 18:24:48.000000000 +0100 +*************** +*** 50,55 **** +--- 50,56 ---- + void gui_mch_insert_lines __ARGS((int row, int num_lines)); + void gui_mch_exit __ARGS((int rc)); + int gui_mch_init_font __ARGS((char_u *font_name, int fontset)); ++ void gui_mch_wide_font_changed __ARGS((void)); + int gui_mch_maximized __ARGS((void)); + void gui_mch_newfont __ARGS((void)); + void gui_mch_settitle __ARGS((char_u *title, char_u *icon)); +*** ../vim-7.3.781/src/proto/gui_w32.pro 2011-01-17 20:08:03.000000000 +0100 +--- src/proto/gui_w32.pro 2013-01-23 18:24:48.000000000 +0100 +*************** +*** 50,55 **** +--- 50,56 ---- + void gui_mch_insert_lines __ARGS((int row, int num_lines)); + void gui_mch_exit __ARGS((int rc)); + int gui_mch_init_font __ARGS((char_u *font_name, int fontset)); ++ void gui_mch_wide_font_changed __ARGS((void)); + int gui_mch_maximized __ARGS((void)); + void gui_mch_newfont __ARGS((void)); + void gui_mch_settitle __ARGS((char_u *title, char_u *icon)); +*** ../vim-7.3.781/src/version.c 2013-01-23 17:43:52.000000000 +0100 +--- src/version.c 2013-01-23 18:25:33.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 782, + /**/ + +-- +"A mouse can be just as dangerous as a bullet or a bomb." + (US Representative Lamar Smith, R-Texas) + + /// 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 /// From 717dfd8462d528e05d515d5cc7b7c96e5d959d83 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:48 +0100 Subject: [PATCH 114/291] - patchlevel 783 --- 7.3.783 | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 7.3.783 diff --git a/7.3.783 b/7.3.783 new file mode 100644 index 00000000..57f97841 --- /dev/null +++ b/7.3.783 @@ -0,0 +1,44 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.783 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.783 +Problem: Crash when mark is not set. (Dominique Pelle) +Solution: Check for NULL. +Files: src/normal.c + + +*** ../vim-7.3.782/src/normal.c 2013-01-17 13:24:00.000000000 +0100 +--- src/normal.c 2013-01-24 20:57:53.000000000 +0100 +*************** +*** 7552,7557 **** +--- 7552,7558 ---- + #endif + #ifdef FEAT_FOLDING + if (cap->oap->op_type == OP_NOP ++ && pos != NULL + && (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos)) + && (fdo_flags & FDO_MARK) + && old_KeyTyped) +*** ../vim-7.3.782/src/version.c 2013-01-23 18:37:31.000000000 +0100 +--- src/version.c 2013-01-24 20:58:36.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 783, + /**/ + +-- +Shit makes the flowers grow and that's beautiful + + /// 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 /// From f33758ecf45aff293696df76df2a9affa2eeeb4f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:49 +0100 Subject: [PATCH 115/291] - patchlevel 784 --- 7.3.784 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.3.784 diff --git a/7.3.784 b/7.3.784 new file mode 100644 index 00000000..eb30c07b --- /dev/null +++ b/7.3.784 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.784 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.784 (after 7.3.781) +Problem: Error when 'guifontwide' has a comma. +Solution: Use gui.wide_font. (Taro Muraoka) +Files: src/gui_w48.c + + +*** ../vim-7.3.783/src/gui_w48.c 2013-01-23 18:37:31.000000000 +0100 +--- src/gui_w48.c 2013-01-25 19:26:23.000000000 +0100 +*************** +*** 3107,3113 **** + LOGFONT lf_wide; + + if (p_guifontwide != NULL && *p_guifontwide != NUL +! && get_logfont(&lf_wide, p_guifontwide, NULL, TRUE) == OK) + norm_logfont = lf_wide; + else + norm_logfont = sub_logfont; +--- 3107,3114 ---- + LOGFONT lf_wide; + + if (p_guifontwide != NULL && *p_guifontwide != NUL +! && gui.wide_font != NOFONT +! && GetObject((HFONT)gui.wide_font, sizeof(lf_wide), &lf_wide)) + norm_logfont = lf_wide; + else + norm_logfont = sub_logfont; +*** ../vim-7.3.783/src/version.c 2013-01-24 21:00:15.000000000 +0100 +--- src/version.c 2013-01-25 19:27:52.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 784, + /**/ + +-- +CUSTOMER: You're not fooling anyone y'know. Look, isn't there something + you can do? +DEAD PERSON: I feel happy... I feel happy. + [whop] +CUSTOMER: Ah, thanks very much. +MORTICIAN: Not at all. See you on Thursday. +CUSTOMER: Right. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From b0193dbecffb8237bfc299adcb592411adb25a5a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:50 +0100 Subject: [PATCH 116/291] - patchlevel 785 --- 7.3.785 | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 7.3.785 diff --git a/7.3.785 b/7.3.785 new file mode 100644 index 00000000..e640b717 --- /dev/null +++ b/7.3.785 @@ -0,0 +1,104 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.785 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.785 (after 7.3.776) +Problem: Crash with specific use of search pattern. +Solution: Initialize reg_buf to curbuf. +Files: src/regexp.c + + +*** ../vim-7.3.784/src/regexp.c 2013-01-23 15:53:08.000000000 +0100 +--- src/regexp.c 2013-01-25 20:04:14.000000000 +0100 +*************** +*** 3413,3419 **** + * reg_startpos reg_mmatch->startpos + * reg_endpos reg_mmatch->endpos + * reg_win NULL window in which to search +! * reg_buf buffer in which to search + * reg_firstlnum first line in which to search + * reg_maxline 0 last line nr + * reg_line_lbr FALSE or TRUE FALSE +--- 3413,3419 ---- + * reg_startpos reg_mmatch->startpos + * reg_endpos reg_mmatch->endpos + * reg_win NULL window in which to search +! * reg_buf curbuf buffer in which to search + * reg_firstlnum first line in which to search + * reg_maxline 0 last line nr + * reg_line_lbr FALSE or TRUE FALSE +*************** +*** 3571,3576 **** +--- 3571,3577 ---- + reg_mmatch = NULL; + reg_maxline = 0; + reg_line_lbr = FALSE; ++ reg_buf = curbuf; + reg_win = NULL; + ireg_ic = rmp->rm_ic; + #ifdef FEAT_MBYTE +*************** +*** 3595,3600 **** +--- 3596,3602 ---- + reg_mmatch = NULL; + reg_maxline = 0; + reg_line_lbr = TRUE; ++ reg_buf = curbuf; + reg_win = NULL; + ireg_ic = rmp->rm_ic; + #ifdef FEAT_MBYTE +*************** +*** 4311,4318 **** + #endif + else + { +! if (!vim_iswordc_buf(c, reg_buf) +! || (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf))) + status = RA_NOMATCH; + } + break; +--- 4313,4320 ---- + #endif + else + { +! if (!vim_iswordc_buf(c, reg_buf) || (reginput > regline +! && vim_iswordc_buf(reginput[-1], reg_buf))) + status = RA_NOMATCH; + } + break; +*************** +*** 7135,7140 **** +--- 7137,7143 ---- + reg_match = rmp; + reg_mmatch = NULL; + reg_maxline = 0; ++ reg_buf = curbuf; + return vim_regsub_both(source, dest, copy, magic, backslash); + } + #endif +*** ../vim-7.3.784/src/version.c 2013-01-25 19:28:34.000000000 +0100 +--- src/version.c 2013-01-25 20:09:30.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 785, + /**/ + +-- +ARTHUR: Well, I can't just call you `Man'. +DENNIS: Well, you could say `Dennis'. +ARTHUR: Well, I didn't know you were called `Dennis.' +DENNIS: Well, you didn't bother to find out, did you? + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 86a5dbbe04de3b6b5345b818f376998b48b4b23a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:11:52 +0100 Subject: [PATCH 117/291] - patchlevel 785 --- README.patches | 70 ++++++++++++++++++++++++ vim.spec | 145 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 214 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 4ba7007c..b186397c 100644 --- a/README.patches +++ b/README.patches @@ -746,3 +746,73 @@ Individual patches for Vim 7.3: 3513 7.3.713 printf() can only align to bytes, not characters 2296 7.3.714 :setlocal and :setglobal do not work in the sandbox 8244 7.3.715 crash when calling setloclist() in BufUnload autocmd + 1857 7.3.716 error on exit when using Python 3 + 1581 7.3.717 when changing font size only MS-Windows limits window size + 1559 7.3.718 when re-using the current buffer the buffer-local options stay + 18500 7.3.719 cannot run new version of cproto + 11303 7.3.720 proto files are outdated + 1624 7.3.721 Ruby interface defines local functions globally + 2244 7.3.722 Perl flags may contain "-g", which breaks "make proto" + 7337 7.3.723 various tiny problem. + 2294 7.3.724 building with Ruby and Tcl on MS-Windows 64 bit does not work + 2064 7.3.725 :aboveleft and :belowright have no effect on :copen + 1900 7.3.726 typos and duplicate info in README + 1405 7.3.727 can't always find Win32.mak when building GvimExt + 7176 7.3.728 cannot compile with MzScheme interface on Ubuntu 12.10 + 1763 7.3.729 building with Ruby fails on some systems + 2575 7.3.730 crash in PHP file when using syntastic + 2188 7.3.731 Py3Init_vim() is exported uneccessarily + 3772 7.3.732 compiler warnings for function arguments + 2735 7.3.733 tests fail when including MzScheme + 3680 7.3.734 cannot put help files in a sub-directory + 3694 7.3.735 cannot build Ruby 1.9 with MingW or Cygwin + 7558 7.3.736 file name completion in input() escapes white space + 1380 7.3.737 when using do_cmdline() recursively did_endif is not reset + 5106 7.3.738 (after 7.3.730) unused function argument + 2326 7.3.739 computing number of lines may have an integer overflow + 4818 7.3.740 IOC tool complains about undefined behavior for int + 1576 7.3.741 (after 7.3.737) tiny build fails + 1302 7.3.742 leaking memory when :vimgrep restores the directory + 1773 7.3.743 (after 7.3.741) tiny build still fails + 1467 7.3.744 64 bit compiler warning + 2697 7.3.745 automatically setting 'ttymouse' doesn't work + 2902 7.3.746 memory leaks when using location lists + 2285 7.3.747 tab alignment does not work when characters are concealed + 14505 7.3.748 no tests for conceal mode + 1675 7.3.749 cannot build Python interface without multi-byte feature + 3050 7.3.750 the justify macro does not always work correctly + 3267 7.3.751 test 61 is flaky, it fails once in a while + 2410 7.3.752 test 49 script file doesn't fold properly + 3777 7.3.753 ":q" twice does not work when there is a QuitPre autocommand + 1488 7.3.754 latest nmake is not recognized + 5332 7.3.755 autoconf doesn't find Python 3 if it's called "python" + 2957 7.3.756 a location list can get a wrong count in :lvimgrep + 1549 7.3.757 issue 96: access freed memory if put command triggers autocmd + 3173 7.3.758 matchit plugin does not handle space in #ifdef + 3080 7.3.759 MS-Windows: Updating tabline is slow when there are many tabs + 3055 7.3.760 dv_ deletes the white space before the line + 2828 7.3.761 in Visual mode a "-p does not work + 1798 7.3.762 (after 7.3.759) on some systems the tabline is not redraw. + 2044 7.3.763 jumping to a mark does not open fold if it is in the same line + 4060 7.3.764 not all message translation files are installed + 3254 7.3.765 segfault when doing "cclose" on BufUnload in a python function + 2865 7.3.766 ":help cpo-*" jumps to the wrong place + 4437 7.3.767 (Win32) The _errno used for iconv may be the wrong one + 1979 7.3.768 settabvar() and setwinvar() may move the cursor + 9748 7.3.769 'matchpairs' does not work with multi-byte characters + 3912 7.3.770 vim.h indentation is inconsistent + 2074 7.3.771 (after 7.3.769) uninitialized variable + 1539 7.3.772 cursor at wrong location after doing %s/x/y/c + 1496 7.3.773 (after 7.3.767) crash when OriginalFirstThunk is zero + 2567 7.3.774 tiny GUI version misses console dialog feature + 2761 7.3.775 Cygwin and Mingw builds miss dependency on gui_w48.c + 12411 7.3.776 ml_get error when searching, caused by curwin/curbuf mismatch + 2035 7.3.777 when building with Gnome locale gets reset + 1664 7.3.778 compiler error for adding up two pointers + 4570 7.3.779 backwards search lands in wrong place when on a multibyte char + 6443 7.3.780 char2nr() and nr2char() always use 'encoding' + 5262 7.3.781 drawing with 'guifontwide' can be slow + 4964 7.3.782 Windows: IME composition may use a wrong font + 1329 7.3.783 crash when mark is not set + 1914 7.3.784 (after 7.3.781) error when 'guifontwide' has a comma + 3145 7.3.785 (after 7.3.776) crash with specific use of search pattern diff --git a/vim.spec b/vim.spec index dc21e213..ae40afc7 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 715 +%define patchlevel 785 Summary: The VIM editor URL: http://www.vim.org/ @@ -771,6 +771,76 @@ Patch712: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.712 Patch713: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.713 Patch714: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.714 Patch715: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.715 +Patch716: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.716 +Patch717: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.717 +Patch718: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.718 +Patch719: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.719 +Patch720: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.720 +Patch721: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.721 +Patch722: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.722 +Patch723: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.723 +Patch724: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.724 +Patch725: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.725 +Patch726: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.726 +Patch727: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.727 +Patch728: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.728 +Patch729: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.729 +Patch730: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.730 +Patch731: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.731 +Patch732: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.732 +Patch733: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.733 +Patch734: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.734 +Patch735: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.735 +Patch736: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.736 +Patch737: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.737 +Patch738: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.738 +Patch739: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.739 +Patch740: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.740 +Patch741: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.741 +Patch742: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.742 +Patch743: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.743 +Patch744: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.744 +Patch745: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.745 +Patch746: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.746 +Patch747: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.747 +Patch748: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.748 +Patch749: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.749 +Patch750: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.750 +Patch751: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.751 +Patch752: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.752 +Patch753: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.753 +Patch754: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.754 +Patch755: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.755 +Patch756: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.756 +Patch757: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.757 +Patch758: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.758 +Patch759: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.759 +Patch760: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.760 +Patch761: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.761 +Patch762: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.762 +Patch763: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.763 +Patch764: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.764 +Patch765: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.765 +Patch766: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.766 +Patch767: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.767 +Patch768: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.768 +Patch769: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.769 +Patch770: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.770 +Patch771: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.771 +Patch772: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.772 +Patch773: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.773 +Patch774: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.774 +Patch775: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.775 +Patch776: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.776 +Patch777: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.777 +Patch778: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.778 +Patch779: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.779 +Patch780: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.780 +Patch781: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.781 +Patch782: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.782 +Patch783: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.783 +Patch784: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.784 +Patch785: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.785 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1632,6 +1702,76 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch713 -p0 %patch714 -p0 %patch715 -p0 +%patch716 -p0 +%patch717 -p0 +%patch718 -p0 +%patch719 -p0 +%patch720 -p0 +%patch721 -p0 +%patch722 -p0 +%patch723 -p0 +%patch724 -p0 +%patch725 -p0 +%patch726 -p0 +%patch727 -p0 +%patch728 -p0 +%patch729 -p0 +%patch730 -p0 +%patch731 -p0 +%patch732 -p0 +%patch733 -p0 +%patch734 -p0 +%patch735 -p0 +%patch736 -p0 +%patch737 -p0 +%patch738 -p0 +%patch739 -p0 +%patch740 -p0 +%patch741 -p0 +%patch742 -p0 +%patch743 -p0 +%patch744 -p0 +%patch745 -p0 +%patch746 -p0 +%patch747 -p0 +%patch748 -p0 +%patch749 -p0 +%patch750 -p0 +%patch751 -p0 +%patch752 -p0 +%patch753 -p0 +%patch754 -p0 +%patch755 -p0 +%patch756 -p0 +%patch757 -p0 +%patch758 -p0 +%patch759 -p0 +%patch760 -p0 +%patch761 -p0 +%patch762 -p0 +%patch763 -p0 +%patch764 -p0 +%patch765 -p0 +%patch766 -p0 +%patch767 -p0 +%patch768 -p0 +%patch769 -p0 +%patch770 -p0 +%patch771 -p0 +%patch772 -p0 +%patch773 -p0 +%patch774 -p0 +%patch775 -p0 +%patch776 -p0 +%patch777 -p0 +%patch778 -p0 +%patch779 -p0 +%patch780 -p0 +%patch781 -p0 +%patch782 -p0 +%patch783 -p0 +%patch784 -p0 +%patch785 -p0 # install spell files @@ -2094,6 +2234,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Jan 28 2013 Karsten Hopp 7.3.785-1 +- patchlevel 785 + * Tue Nov 20 2012 Karsten Hopp 7.3.715-1 - patchlevel 715 From a373b6ca89135b455ec12cd2c9268218ed7c26e5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 12:13:22 +0100 Subject: [PATCH 118/291] upstream pushed a fixed version of that patch --- 7.3.336 | 212 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/7.3.336 b/7.3.336 index f1a92c61..902f578c 100644 --- a/7.3.336 +++ b/7.3.336 @@ -880,7 +880,7 @@ Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, *** 0 **** --- 1,2 ---- + !_TAG_FILE_ENCODING cp932 // -+ ‚`‚a‚b Xtags2.txt /‚`‚a‚b ++ ‚`‚a‚b Xtags2.txt /‚`‚a‚b *** ../vim-7.3.335/src/testdir/test83-tags3 2011-10-12 19:49:38.000000000 +0200 --- src/testdir/test83-tags3 2011-10-12 19:35:42.000000000 +0200 *************** @@ -888,106 +888,106 @@ Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, --- 1,102 ---- + !_TAG_FILE_SORTED 1 // + !_TAG_FILE_ENCODING cp932 // -+ abc1 Xtags3.txt /‚`‚a‚b -+ abc2 Xtags3.txt /‚`‚a‚b -+ abc3 Xtags3.txt /‚`‚a‚b -+ abc4 Xtags3.txt /‚`‚a‚b -+ abc5 Xtags3.txt /‚`‚a‚b -+ abc6 Xtags3.txt /‚`‚a‚b -+ abc7 Xtags3.txt /‚`‚a‚b -+ abc8 Xtags3.txt /‚`‚a‚b -+ abc9 Xtags3.txt /‚`‚a‚b -+ abc10 Xtags3.txt /‚`‚a‚b -+ abc11 Xtags3.txt /‚`‚a‚b -+ abc12 Xtags3.txt /‚`‚a‚b -+ abc13 Xtags3.txt /‚`‚a‚b -+ abc14 Xtags3.txt /‚`‚a‚b -+ abc15 Xtags3.txt /‚`‚a‚b -+ abc16 Xtags3.txt /‚`‚a‚b -+ abc17 Xtags3.txt /‚`‚a‚b -+ abc18 Xtags3.txt /‚`‚a‚b -+ abc19 Xtags3.txt /‚`‚a‚b -+ abc20 Xtags3.txt /‚`‚a‚b -+ abc21 Xtags3.txt /‚`‚a‚b -+ abc22 Xtags3.txt /‚`‚a‚b -+ abc23 Xtags3.txt /‚`‚a‚b -+ abc24 Xtags3.txt /‚`‚a‚b -+ abc25 Xtags3.txt /‚`‚a‚b -+ abc26 Xtags3.txt /‚`‚a‚b -+ abc27 Xtags3.txt /‚`‚a‚b -+ abc28 Xtags3.txt /‚`‚a‚b -+ abc29 Xtags3.txt /‚`‚a‚b -+ abc30 Xtags3.txt /‚`‚a‚b -+ abc31 Xtags3.txt /‚`‚a‚b -+ abc32 Xtags3.txt /‚`‚a‚b -+ abc33 Xtags3.txt /‚`‚a‚b -+ abc34 Xtags3.txt /‚`‚a‚b -+ abc35 Xtags3.txt /‚`‚a‚b -+ abc36 Xtags3.txt /‚`‚a‚b -+ abc37 Xtags3.txt /‚`‚a‚b -+ abc38 Xtags3.txt /‚`‚a‚b -+ abc39 Xtags3.txt /‚`‚a‚b -+ abc40 Xtags3.txt /‚`‚a‚b -+ abc41 Xtags3.txt /‚`‚a‚b -+ abc42 Xtags3.txt /‚`‚a‚b -+ abc43 Xtags3.txt /‚`‚a‚b -+ abc44 Xtags3.txt /‚`‚a‚b -+ abc45 Xtags3.txt /‚`‚a‚b -+ abc46 Xtags3.txt /‚`‚a‚b -+ abc47 Xtags3.txt /‚`‚a‚b -+ abc48 Xtags3.txt /‚`‚a‚b -+ abc49 Xtags3.txt /‚`‚a‚b -+ abc50 Xtags3.txt /‚`‚a‚b -+ abc51 Xtags3.txt /‚`‚a‚b -+ abc52 Xtags3.txt /‚`‚a‚b -+ abc53 Xtags3.txt /‚`‚a‚b -+ abc54 Xtags3.txt /‚`‚a‚b -+ abc55 Xtags3.txt /‚`‚a‚b -+ abc56 Xtags3.txt /‚`‚a‚b -+ abc57 Xtags3.txt /‚`‚a‚b -+ abc58 Xtags3.txt /‚`‚a‚b -+ abc59 Xtags3.txt /‚`‚a‚b -+ abc60 Xtags3.txt /‚`‚a‚b -+ abc61 Xtags3.txt /‚`‚a‚b -+ abc62 Xtags3.txt /‚`‚a‚b -+ abc63 Xtags3.txt /‚`‚a‚b -+ abc64 Xtags3.txt /‚`‚a‚b -+ abc65 Xtags3.txt /‚`‚a‚b -+ abc66 Xtags3.txt /‚`‚a‚b -+ abc67 Xtags3.txt /‚`‚a‚b -+ abc68 Xtags3.txt /‚`‚a‚b -+ abc69 Xtags3.txt /‚`‚a‚b -+ abc70 Xtags3.txt /‚`‚a‚b -+ abc71 Xtags3.txt /‚`‚a‚b -+ abc72 Xtags3.txt /‚`‚a‚b -+ abc73 Xtags3.txt /‚`‚a‚b -+ abc74 Xtags3.txt /‚`‚a‚b -+ abc75 Xtags3.txt /‚`‚a‚b -+ abc76 Xtags3.txt /‚`‚a‚b -+ abc77 Xtags3.txt /‚`‚a‚b -+ abc78 Xtags3.txt /‚`‚a‚b -+ abc79 Xtags3.txt /‚`‚a‚b -+ abc80 Xtags3.txt /‚`‚a‚b -+ abc81 Xtags3.txt /‚`‚a‚b -+ abc82 Xtags3.txt /‚`‚a‚b -+ abc83 Xtags3.txt /‚`‚a‚b -+ abc84 Xtags3.txt /‚`‚a‚b -+ abc85 Xtags3.txt /‚`‚a‚b -+ abc86 Xtags3.txt /‚`‚a‚b -+ abc87 Xtags3.txt /‚`‚a‚b -+ abc88 Xtags3.txt /‚`‚a‚b -+ abc89 Xtags3.txt /‚`‚a‚b -+ abc90 Xtags3.txt /‚`‚a‚b -+ abc91 Xtags3.txt /‚`‚a‚b -+ abc92 Xtags3.txt /‚`‚a‚b -+ abc93 Xtags3.txt /‚`‚a‚b -+ abc94 Xtags3.txt /‚`‚a‚b -+ abc95 Xtags3.txt /‚`‚a‚b -+ abc96 Xtags3.txt /‚`‚a‚b -+ abc97 Xtags3.txt /‚`‚a‚b -+ abc98 Xtags3.txt /‚`‚a‚b -+ abc99 Xtags3.txt /‚`‚a‚b -+ abc100 Xtags3.txt /‚`‚a‚b ++ abc1 Xtags3.txt /‚`‚a‚b ++ abc2 Xtags3.txt /‚`‚a‚b ++ abc3 Xtags3.txt /‚`‚a‚b ++ abc4 Xtags3.txt /‚`‚a‚b ++ abc5 Xtags3.txt /‚`‚a‚b ++ abc6 Xtags3.txt /‚`‚a‚b ++ abc7 Xtags3.txt /‚`‚a‚b ++ abc8 Xtags3.txt /‚`‚a‚b ++ abc9 Xtags3.txt /‚`‚a‚b ++ abc10 Xtags3.txt /‚`‚a‚b ++ abc11 Xtags3.txt /‚`‚a‚b ++ abc12 Xtags3.txt /‚`‚a‚b ++ abc13 Xtags3.txt /‚`‚a‚b ++ abc14 Xtags3.txt /‚`‚a‚b ++ abc15 Xtags3.txt /‚`‚a‚b ++ abc16 Xtags3.txt /‚`‚a‚b ++ abc17 Xtags3.txt /‚`‚a‚b ++ abc18 Xtags3.txt /‚`‚a‚b ++ abc19 Xtags3.txt /‚`‚a‚b ++ abc20 Xtags3.txt /‚`‚a‚b ++ abc21 Xtags3.txt /‚`‚a‚b ++ abc22 Xtags3.txt /‚`‚a‚b ++ abc23 Xtags3.txt /‚`‚a‚b ++ abc24 Xtags3.txt /‚`‚a‚b ++ abc25 Xtags3.txt /‚`‚a‚b ++ abc26 Xtags3.txt /‚`‚a‚b ++ abc27 Xtags3.txt /‚`‚a‚b ++ abc28 Xtags3.txt /‚`‚a‚b ++ abc29 Xtags3.txt /‚`‚a‚b ++ abc30 Xtags3.txt /‚`‚a‚b ++ abc31 Xtags3.txt /‚`‚a‚b ++ abc32 Xtags3.txt /‚`‚a‚b ++ abc33 Xtags3.txt /‚`‚a‚b ++ abc34 Xtags3.txt /‚`‚a‚b ++ abc35 Xtags3.txt /‚`‚a‚b ++ abc36 Xtags3.txt /‚`‚a‚b ++ abc37 Xtags3.txt /‚`‚a‚b ++ abc38 Xtags3.txt /‚`‚a‚b ++ abc39 Xtags3.txt /‚`‚a‚b ++ abc40 Xtags3.txt /‚`‚a‚b ++ abc41 Xtags3.txt /‚`‚a‚b ++ abc42 Xtags3.txt /‚`‚a‚b ++ abc43 Xtags3.txt /‚`‚a‚b ++ abc44 Xtags3.txt /‚`‚a‚b ++ abc45 Xtags3.txt /‚`‚a‚b ++ abc46 Xtags3.txt /‚`‚a‚b ++ abc47 Xtags3.txt /‚`‚a‚b ++ abc48 Xtags3.txt /‚`‚a‚b ++ abc49 Xtags3.txt /‚`‚a‚b ++ abc50 Xtags3.txt /‚`‚a‚b ++ abc51 Xtags3.txt /‚`‚a‚b ++ abc52 Xtags3.txt /‚`‚a‚b ++ abc53 Xtags3.txt /‚`‚a‚b ++ abc54 Xtags3.txt /‚`‚a‚b ++ abc55 Xtags3.txt /‚`‚a‚b ++ abc56 Xtags3.txt /‚`‚a‚b ++ abc57 Xtags3.txt /‚`‚a‚b ++ abc58 Xtags3.txt /‚`‚a‚b ++ abc59 Xtags3.txt /‚`‚a‚b ++ abc60 Xtags3.txt /‚`‚a‚b ++ abc61 Xtags3.txt /‚`‚a‚b ++ abc62 Xtags3.txt /‚`‚a‚b ++ abc63 Xtags3.txt /‚`‚a‚b ++ abc64 Xtags3.txt /‚`‚a‚b ++ abc65 Xtags3.txt /‚`‚a‚b ++ abc66 Xtags3.txt /‚`‚a‚b ++ abc67 Xtags3.txt /‚`‚a‚b ++ abc68 Xtags3.txt /‚`‚a‚b ++ abc69 Xtags3.txt /‚`‚a‚b ++ abc70 Xtags3.txt /‚`‚a‚b ++ abc71 Xtags3.txt /‚`‚a‚b ++ abc72 Xtags3.txt /‚`‚a‚b ++ abc73 Xtags3.txt /‚`‚a‚b ++ abc74 Xtags3.txt /‚`‚a‚b ++ abc75 Xtags3.txt /‚`‚a‚b ++ abc76 Xtags3.txt /‚`‚a‚b ++ abc77 Xtags3.txt /‚`‚a‚b ++ abc78 Xtags3.txt /‚`‚a‚b ++ abc79 Xtags3.txt /‚`‚a‚b ++ abc80 Xtags3.txt /‚`‚a‚b ++ abc81 Xtags3.txt /‚`‚a‚b ++ abc82 Xtags3.txt /‚`‚a‚b ++ abc83 Xtags3.txt /‚`‚a‚b ++ abc84 Xtags3.txt /‚`‚a‚b ++ abc85 Xtags3.txt /‚`‚a‚b ++ abc86 Xtags3.txt /‚`‚a‚b ++ abc87 Xtags3.txt /‚`‚a‚b ++ abc88 Xtags3.txt /‚`‚a‚b ++ abc89 Xtags3.txt /‚`‚a‚b ++ abc90 Xtags3.txt /‚`‚a‚b ++ abc91 Xtags3.txt /‚`‚a‚b ++ abc92 Xtags3.txt /‚`‚a‚b ++ abc93 Xtags3.txt /‚`‚a‚b ++ abc94 Xtags3.txt /‚`‚a‚b ++ abc95 Xtags3.txt /‚`‚a‚b ++ abc96 Xtags3.txt /‚`‚a‚b ++ abc97 Xtags3.txt /‚`‚a‚b ++ abc98 Xtags3.txt /‚`‚a‚b ++ abc99 Xtags3.txt /‚`‚a‚b ++ abc100 Xtags3.txt /‚`‚a‚b *** ../vim-7.3.335/src/testdir/test83.in 2011-10-12 19:49:38.000000000 +0200 --- src/testdir/test83.in 2011-10-12 19:40:47.000000000 +0200 *************** @@ -1030,8 +1030,8 @@ Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + :new + :set tags=test83-tags2 + :let v:errmsg = '' -+ :tag /.BC -+ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC' ++ :tag /.BC ++ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC' + : close + : put ='case2: failed' + :else @@ -1044,7 +1044,7 @@ Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + :set tags=test83-tags3 + :let v:errmsg = '' + :tag abc50 -+ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC' ++ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC' + : close + : put ='case3: failed' + :else @@ -1060,10 +1060,10 @@ Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + abcdefghijklmnopqrs + + text for tags2 -+ ABC ++ ABC + + text for tags3 -+ ABC ++ ABC + + tags1 + !_TAG_FILE_ENCODING utf-8 // From be6f54b13e94321f2288dcba66fa82a4ec842846 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 28 Jan 2013 14:02:43 +0100 Subject: [PATCH 119/291] fix broken upstream patch --- 7.3.780 | 304 +++++++++++++++++++++----------------------------------- 1 file changed, 111 insertions(+), 193 deletions(-) diff --git a/7.3.780 b/7.3.780 index 40d317b4..a4f40e3a 100644 --- a/7.3.780 +++ b/7.3.780 @@ -1,193 +1,111 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.780 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.3.780 -Problem: char2nr() and nr2char() always use 'encoding'. -Solution: Add argument to use utf-8 characters. (Yasuhiro Matsumoto) -Files: runtime/doc/eval.txt, src/eval.c - - -*** ../vim-7.3.779/runtime/doc/eval.txt 2012-12-05 16:10:21.000000000 +0100 ---- runtime/doc/eval.txt 2013-01-23 17:00:52.000000000 +0100 -*************** -*** 1705,1711 **** - any call {func} with arguments {arglist} - ceil( {expr}) Float round {expr} up - changenr() Number current change number -! char2nr( {expr}) Number ASCII value of first char in {expr} - cindent( {lnum}) Number C indent for line {lnum} - clearmatches() none clear all matches - col( {expr}) Number column nr of cursor or mark ---- 1716,1722 ---- - any call {func} with arguments {arglist} - ceil( {expr}) Float round {expr} up - changenr() Number current change number -! char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} - cindent( {lnum}) Number C indent for line {lnum} - clearmatches() none clear all matches - col( {expr}) Number column nr of cursor or mark -*************** -*** 1862,1868 **** - mode( [expr]) String current editing mode - mzeval( {expr}) any evaluate |MzScheme| expression - nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} -! nr2char( {expr}) String single char with ASCII value {expr} - or( {expr}, {expr}) Number bitwise OR - pathshorten( {expr}) String shorten directory names in a path - pow( {x}, {y}) Float {x} to the power of {y} ---- 1873,1879 ---- - mode( [expr]) String current editing mode - mzeval( {expr}) any evaluate |MzScheme| expression - nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} -! nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} - or( {expr}, {expr}) Number bitwise OR - pathshorten( {expr}) String shorten directory names in a path - pow( {x}, {y}) Float {x} to the power of {y} -*************** -*** 2282,2295 **** - redo it is the number of the redone change. After undo it is - one less than the number of the undone change. - -! char2nr({expr}) *char2nr()* - Return number value of the first char in {expr}. Examples: > - char2nr(" ") returns 32 - char2nr("ABC") returns 65 -! < The current 'encoding' is used. Example for "utf-8": > - char2nr("á") returns 225 - char2nr("á"[0]) returns 195 -! < |nr2char()| does the opposite. - - cindent({lnum}) *cindent()* - Get the amount of indent for line {lnum} according the C ---- 2294,2310 ---- - redo it is the number of the redone change. After undo it is - one less than the number of the undone change. - -! char2nr({expr}[, {utf8}]) *char2nr()* - Return number value of the first char in {expr}. Examples: > - char2nr(" ") returns 32 - char2nr("ABC") returns 65 -! < When {utf8} is omitted or zero, the current 'encoding' is used. -! Example for "utf-8": > - char2nr("á") returns 225 - char2nr("á"[0]) returns 195 -! < With {utf8} set to 1, always treat as utf-8 characters. -! A combining character is a separate character. -! |nr2char()| does the opposite. - - cindent({lnum}) *cindent()* - Get the amount of indent for line {lnum} according the C -*** ../vim-7.3.779/src/eval.c 2013-01-23 15:53:08.000000000 +0100 ---- src/eval.c 2013-01-23 16:57:48.000000000 +0100 -*************** -*** 7854,7860 **** - {"ceil", 1, 1, f_ceil}, - #endif - {"changenr", 0, 0, f_changenr}, -! {"char2nr", 1, 1, f_char2nr}, - {"cindent", 1, 1, f_cindent}, - {"clearmatches", 0, 0, f_clearmatches}, - {"col", 1, 1, f_col}, ---- 7854,7860 ---- - {"ceil", 1, 1, f_ceil}, - #endif - {"changenr", 0, 0, f_changenr}, -! {"char2nr", 1, 2, f_char2nr}, - {"cindent", 1, 1, f_cindent}, - {"clearmatches", 0, 0, f_clearmatches}, - {"col", 1, 1, f_col}, -*************** -*** 8003,8009 **** - {"mzeval", 1, 1, f_mzeval}, - #endif - {"nextnonblank", 1, 1, f_nextnonblank}, -! {"nr2char", 1, 1, f_nr2char}, - {"or", 2, 2, f_or}, - {"pathshorten", 1, 1, f_pathshorten}, - #ifdef FEAT_FLOAT ---- 8003,8009 ---- - {"mzeval", 1, 1, f_mzeval}, - #endif - {"nextnonblank", 1, 1, f_nextnonblank}, -! {"nr2char", 1, 2, f_nr2char}, - {"or", 2, 2, f_or}, - {"pathshorten", 1, 1, f_pathshorten}, - #ifdef FEAT_FLOAT -*************** -*** 9303,9309 **** - { - #ifdef FEAT_MBYTE - if (has_mbyte) -! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); - else - #endif - rettv->vval.v_number = get_tv_string(&argvars[0])[0]; ---- 9303,9319 ---- - { - #ifdef FEAT_MBYTE - if (has_mbyte) -! { -! int utf8 = 0; -! -! if (argvars[1].v_type != VAR_UNKNOWN) -! utf8 = get_tv_number_chk(&argvars[1], NULL); -! -! if (utf8) -! rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0])); -! else -! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); -! } - else - #endif - rettv->vval.v_number = get_tv_string(&argvars[0])[0]; -*************** -*** 14360,14366 **** - - #ifdef FEAT_MBYTE - if (has_mbyte) -! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; - else - #endif - { ---- 14370,14385 ---- - - #ifdef FEAT_MBYTE - if (has_mbyte) -! { -! int utf8 = 0; -! -! if (argvars[1].v_type != VAR_UNKNOWN) -! utf8 = get_tv_number_chk(&argvars[1], NULL); -! if (utf8) -! buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; -! else -! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; -! } - else - #endif - { -*** ../vim-7.3.779/src/version.c 2013-01-23 16:43:07.000000000 +0100 ---- src/version.c 2013-01-23 17:06:36.000000000 +0100 -*************** -*** 727,728 **** ---- 727,730 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 780, - /**/ - --- -A real patriot is the fellow who gets a parking ticket and rejoices -that the system works. - - - /// 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 /// +diff -up vim73/runtime/doc/eval.txt.780 vim73/runtime/doc/eval.txt +--- vim73/runtime/doc/eval.txt.780 2013-01-28 13:41:04.000000000 +0100 ++++ runtime/doc/eval.txt 2013-01-28 13:44:58.000000000 +0100 +@@ -1705,7 +1705,7 @@ call( {func}, {arglist} [, {dict}]) + any call {func} with arguments {arglist} + ceil( {expr}) Float round {expr} up + changenr() Number current change number +-char2nr( {expr}) Number ASCII value of first char in {expr} ++char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} + cindent( {lnum}) Number C indent for line {lnum} + clearmatches() none clear all matches + col( {expr}) Number column nr of cursor or mark +@@ -1862,7 +1862,7 @@ mkdir( {name} [, {path} [, {prot}]]) + mode( [expr]) String current editing mode + mzeval( {expr}) any evaluate |MzScheme| expression + nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} +-nr2char( {expr}) String single char with ASCII value {expr} ++nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} + or( {expr}, {expr}) Number bitwise OR + pathshorten( {expr}) String shorten directory names in a path + pow( {x}, {y}) Float {x} to the power of {y} +@@ -2282,13 +2282,17 @@ changenr() *changenr()* + redo it is the number of the redone change. After undo it is + one less than the number of the undone change. + +-char2nr({expr}) *char2nr()* ++char2nr({expr}[, {utf8}]) **char2nr()* + Return number value of the first char in {expr}. Examples: > + char2nr(" ") returns 32 + char2nr("ABC") returns 65 +-< The current 'encoding' is used. Example for "utf-8": > ++< When {utf8} is omitted or zero, the current 'encoding' is ++used. ++ Example for "utf-8": > + char2nr("á") returns 225 + char2nr("á"[0]) returns 195 ++ With {utf8} set to 1, always treat as utf-8 characters. ++ A combining character is a separate character. + < |nr2char()| does the opposite. + + cindent({lnum}) *cindent()* +diff -up vim73/src/eval.c.780 vim73/src/eval.c +--- vim73/src/eval.c.780 2013-01-28 13:41:04.000000000 +0100 ++++ src/eval.c 2013-01-28 13:41:04.000000000 +0100 +@@ -7854,7 +7854,7 @@ static struct fst + {"ceil", 1, 1, f_ceil}, + #endif + {"changenr", 0, 0, f_changenr}, +- {"char2nr", 1, 1, f_char2nr}, ++ {"char2nr", 1, 2, f_char2nr}, + {"cindent", 1, 1, f_cindent}, + {"clearmatches", 0, 0, f_clearmatches}, + {"col", 1, 1, f_col}, +@@ -8003,7 +8003,7 @@ static struct fst + {"mzeval", 1, 1, f_mzeval}, + #endif + {"nextnonblank", 1, 1, f_nextnonblank}, +- {"nr2char", 1, 1, f_nr2char}, ++ {"nr2char", 1, 2, f_nr2char}, + {"or", 2, 2, f_or}, + {"pathshorten", 1, 1, f_pathshorten}, + #ifdef FEAT_FLOAT +@@ -9303,7 +9303,17 @@ f_char2nr(argvars, rettv) + { + #ifdef FEAT_MBYTE + if (has_mbyte) +- rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); ++ { ++ int utf8 = 0; ++ ++ if (argvars[1].v_type != VAR_UNKNOWN) ++ utf8 = get_tv_number_chk(&argvars[1], NULL); ++ ++ if (utf8) ++ rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0])); ++ else ++ rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); ++ } + else + #endif + rettv->vval.v_number = get_tv_string(&argvars[0])[0]; +@@ -14360,7 +14370,16 @@ f_nr2char(argvars, rettv) + + #ifdef FEAT_MBYTE + if (has_mbyte) +- buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; ++ { ++ int utf8 = 0; ++ ++ if (argvars[1].v_type != VAR_UNKNOWN) ++ utf8 = get_tv_number_chk(&argvars[1], NULL); ++ if (utf8) ++ buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; ++ else ++ buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; ++ } + else + #endif + { +diff -up vim73/src/version.c.780 vim73/src/version.c +--- vim73/src/version.c.780 2013-01-28 13:41:04.000000000 +0100 ++++ src/version.c 2013-01-28 13:41:04.000000000 +0100 +@@ -726,6 +726,8 @@ static char *(features[]) = + static int included_patches[] = + { /* Add new patch number below this line */ + /**/ ++ 780, ++/**/ + 779, + /**/ + 778, From bb2da1284dd6b0ba38905f4a9413e13c5c927c56 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 29 Jan 2013 15:48:10 +0100 Subject: [PATCH 120/291] add nl.po add several translations --- nl.po | 8207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ vim.spec | 11 + 2 files changed, 8218 insertions(+) create mode 100644 nl.po diff --git a/nl.po b/nl.po new file mode 100644 index 00000000..23dc99e9 --- /dev/null +++ b/nl.po @@ -0,0 +1,8207 @@ +# Dutch Translation for Vim vim:set foldmethod=marker: +# Do ":help uganda" in Vim to read copying and usage conditions. +# Do ":help credits" in Vim to see a list of people who contributed. +# Previous-Translator(s): +# highlight: oplichten +# Erwin Poeze , 2011, 2012. +msgid "" +msgstr "" +"Project-Id-Version: vim 7.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-05-29 07:43+0200\n" +"PO-Revision-Date: 2012-03-28 08:07+0200\n" +"Last-Translator: YOUR NAME \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blowfish.c:418 +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: bf_key_init() uitgevoerd met leeg wachtwoord" + +#: blowfish.c:513 +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +#: blowfish.c:532 +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: gebruik Blowfish big/little endian is onjuist" + +#: blowfish.c:645 +msgid "E818: sha256 test failed" +msgstr "E818: sha256 test mislukt" + +#: blowfish.c:650 +msgid "E819: Blowfish test failed" +msgstr "E819: Blowfish test mislukt" + +#: buffer.c:103 +msgid "E82: Cannot allocate any buffer, exiting..." +msgstr "E82: kan geen buffer aanmaken, beëindigen..." + +#: buffer.c:106 +msgid "E83: Cannot allocate buffer, using other one..." +msgstr "E83: kan geen buffer aanmaken, een andere wordt gebruikt..." + +#: buffer.c:879 +msgid "E515: No buffers were unloaded" +msgstr "E515: geen van de buffers is gelost" + +#: buffer.c:881 +msgid "E516: No buffers were deleted" +msgstr "E516: geen van de buffers is verwijderd" + +#: buffer.c:883 +msgid "E517: No buffers were wiped out" +msgstr "E517: geen van de buffers is gewist" + +#: buffer.c:891 +msgid "1 buffer unloaded" +msgstr "1 buffer gelost" + +#: buffer.c:893 +#, c-format +msgid "%d buffers unloaded" +msgstr "%d buffers gelost" + +#: buffer.c:898 +msgid "1 buffer deleted" +msgstr "1 buffer verwijderd" + +#: buffer.c:900 +#, c-format +msgid "%d buffers deleted" +msgstr "%d buffers verwijderd" + +#: buffer.c:905 +msgid "1 buffer wiped out" +msgstr "1 buffer gewist" + +#: buffer.c:907 +#, c-format +msgid "%d buffers wiped out" +msgstr "%d buffers gewist" + +#: buffer.c:965 +msgid "E84: No modified buffer found" +msgstr "E84: geen aangepast buffer gevonden" + +#. back where we started, didn't find anything. +#: buffer.c:1004 +msgid "E85: There is no listed buffer" +msgstr "E85: er is geen vermelde buffer" + +#: buffer.c:1016 +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: Buffer %ld bestaat niet" + +#: buffer.c:1019 +msgid "E87: Cannot go beyond last buffer" +msgstr "E87: kan niet voorbij het laatste buffer komen" + +#: buffer.c:1021 +msgid "E88: Cannot go before first buffer" +msgstr "E88: kan niet vóór het eerste buffer komen" + +#: buffer.c:1063 +#, c-format +msgid "E89: No write since last change for buffer %ld (add ! to override)" +msgstr "E89: niets opgeslagen sinds laatste wijziging van buffer %ld (voeg ! toe om te forceren)" + +#: buffer.c:1080 +msgid "E90: Cannot unload last buffer" +msgstr "E90: kan laatste buffer niet legen" + +#: buffer.c:1657 +msgid "W14: Warning: List of file names overflow" +msgstr "W14: waarschuwing: lijst met bestandsnamen is vol" + +#: buffer.c:1856 +#: quickfix.c:3626 +#, c-format +msgid "E92: Buffer %ld not found" +msgstr "E92: buffer %ld niet gevonden" + +#: buffer.c:2131 +#, c-format +msgid "E93: More than one match for %s" +msgstr "E93: %s meermaals gevonden" + +#: buffer.c:2133 +#, c-format +msgid "E94: No matching buffer for %s" +msgstr "E94: geen overeenkomstig buffer voor %s" + +#: buffer.c:2585 +#, c-format +msgid "line %ld" +msgstr "regel %ld" + +#: buffer.c:2672 +msgid "E95: Buffer with this name already exists" +msgstr "E95: buffer met deze naam bestaat al" + +#: buffer.c:2999 +msgid " [Modified]" +msgstr " [Gewijzigd]" + +#: buffer.c:3004 +msgid "[Not edited]" +msgstr "[Niet bewerkt]" + +#: buffer.c:3009 +msgid "[New file]" +msgstr "[Nieuw bestand]" + +#: buffer.c:3010 +msgid "[Read errors]" +msgstr "[Leesfouten]" + +#: buffer.c:3012 +#: fileio.c:2429 +#: netbeans.c:3848 +msgid "[readonly]" +msgstr "[alleen-lezen]" + +#: buffer.c:3035 +#, c-format +msgid "1 line --%d%%--" +msgstr "1 regel --%d%%--" + +#: buffer.c:3038 +#, c-format +msgid "%ld lines --%d%%--" +msgstr "%ld regels --%d%%--" + +#: buffer.c:3045 +#, c-format +msgid "line %ld of %ld --%d%%-- col " +msgstr "regel %ld van %ld --%d%%-- kol " + +#: buffer.c:3166 +#: buffer.c:5132 +#: memline.c:1783 +msgid "[No Name]" +msgstr "[Geen naam]" + +#. must be a help buffer +#: buffer.c:3204 +msgid "help" +msgstr "hulp" + +#: buffer.c:3832 +#: screen.c:6091 +msgid "[Help]" +msgstr "[Hulp]" + +#: buffer.c:3866 +#: screen.c:6097 +msgid "[Preview]" +msgstr "[Voorvertoning]" + +#: buffer.c:4188 +msgid "All" +msgstr "Alles" + +#: buffer.c:4188 +msgid "Bot" +msgstr "Bodem" + +#: buffer.c:4191 +msgid "Top" +msgstr "Top" + +#: buffer.c:5067 +#, c-format +msgid "" +"\n" +"# Buffer list:\n" +msgstr "" +"\n" +"# Bufferlijst:\n" + +#: buffer.c:5116 +msgid "[Location List]" +msgstr "[Locatielijst]" + +#: buffer.c:5118 +msgid "[Quickfix list]" +msgstr "[Quickfix-lijst]" + +#: buffer.c:5128 +msgid "[Scratch]" +msgstr "[Klad]" + +#: buffer.c:5445 +msgid "" +"\n" +"--- Signs ---" +msgstr "" +"\n" +"--- Tekens ---" + +#: buffer.c:5455 +#, c-format +msgid "Signs for %s:" +msgstr "Tekens voor %s:" + +#: buffer.c:5461 +#, c-format +msgid " line=%ld id=%d name=%s" +msgstr " regel=%ld id=%d naam=%s" + +#: diff.c:141 +#, c-format +msgid "E96: Can not diff more than %ld buffers" +msgstr "E96: kan niet meer dan %ld buffers vergelijken" + +#: diff.c:777 +msgid "E810: Cannot read or write temp files" +msgstr "E810: kan tijdelijke bestand niet lezen of opslaan" + +#: diff.c:778 +msgid "E97: Cannot create diffs" +msgstr "E97: kan geen verschillen genereren" + +#: diff.c:901 +msgid "Patch file" +msgstr "Patch-bestand" + +#: diff.c:1005 +msgid "E816: Cannot read patch output" +msgstr "E816: kan patch-uitvoer niet lezen" + +#: diff.c:1236 +msgid "E98: Cannot read diff output" +msgstr "E98: kan diff-uitvoer niet lezen" + +#: diff.c:2095 +msgid "E99: Current buffer is not in diff mode" +msgstr "E99: huidige buffer is niet in diff-modus" + +#: diff.c:2114 +msgid "E793: No other buffer in diff mode is modifiable" +msgstr "E793: geen ander buffer in diff-modus is bewerkbaar" + +#: diff.c:2116 +msgid "E100: No other buffer in diff mode" +msgstr "E100: geen ander buffer in diff-modus" + +#: diff.c:2126 +msgid "E101: More than two buffers in diff mode, don't know which one to use" +msgstr "E101: meer dan twee buffers in diff-modus, weet niet welke gebruikt moet worden" + +#: diff.c:2149 +#, c-format +msgid "E102: Can't find buffer \"%s\"" +msgstr "E102: kan buffer \"%s\" niet vinden" + +#: diff.c:2157 +#, c-format +msgid "E103: Buffer \"%s\" is not in diff mode" +msgstr "E103: buffer \"%s\" is niet in diff-modus" + +#: diff.c:2201 +msgid "E787: Buffer changed unexpectedly" +msgstr "E787: buffer is onverwacht gewijzigd" + +#: digraph.c:2214 +msgid "E104: Escape not allowed in digraph" +msgstr "E104: Escape in digraph niet toegestaan" + +#: digraph.c:2407 +msgid "E544: Keymap file not found" +msgstr "E544: bestand met toetsbindingen niet gevonden" + +#: digraph.c:2434 +msgid "E105: Using :loadkeymap not in a sourced file" +msgstr "E105: Gebruik van :loadkeymap niet in een 'sourced' bestand" + +#: digraph.c:2473 +msgid "E791: Empty keymap entry" +msgstr "E791: toetsbinding leeg" + +#: edit.c:42 +msgid " Keyword completion (^N^P)" +msgstr " trefwoordvoltooiing (^N^P)" + +#. ctrl_x_mode == 0, ^P/^N compl. +#: edit.c:43 +msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" +msgstr " ^X-modus (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" + +#: edit.c:45 +msgid " Whole line completion (^L^N^P)" +msgstr " gehele-regelvoltooiing (^L^N^P)" + +#: edit.c:46 +msgid " File name completion (^F^N^P)" +msgstr " bestandsnaamvoltooiing (^F^N^P)" + +#: edit.c:47 +msgid " Tag completion (^]^N^P)" +msgstr " tag-voltooiing (^]^N^P)" + +#: edit.c:48 +msgid " Path pattern completion (^N^P)" +msgstr " Padpatroonvoltooiing (^N^P)" + +#: edit.c:49 +msgid " Definition completion (^D^N^P)" +msgstr " definitievoltooiiing (^D^N^P)" + +#: edit.c:51 +msgid " Dictionary completion (^K^N^P)" +msgstr " Dictionaryvoltooiing (^K^N^P)" + +#: edit.c:52 +msgid " Thesaurus completion (^T^N^P)" +msgstr " Thesaurusvoltooiing (^T^N^P)" + +#: edit.c:53 +msgid " Command-line completion (^V^N^P)" +msgstr " opdrachtregelvoltooiing (^V^N^P)" + +#: edit.c:54 +msgid " User defined completion (^U^N^P)" +msgstr " gebruikergedefinieerde voltooiing (^U^N^P)" + +#: edit.c:55 +msgid " Omni completion (^O^N^P)" +msgstr " omni-voltooiing (^O^N^P)" + +#: edit.c:56 +msgid " Spelling suggestion (s^N^P)" +msgstr " spellingsuggestie (s^N^P)" + +#: edit.c:57 +msgid " Keyword Local completion (^N^P)" +msgstr " lokaal-trefwoordvoltooiing (^N^P)" + +#: edit.c:60 +msgid "Hit end of paragraph" +msgstr "Einde van paragraaf" + +#: edit.c:2042 +msgid "'dictionary' option is empty" +msgstr "'Dictionary'-optie is leeg" + +#: edit.c:2043 +msgid "'thesaurus' option is empty" +msgstr "'thesaurus'-optie is leeg" + +#: edit.c:3009 +#, c-format +msgid "Scanning dictionary: %s" +msgstr "Doorzoeken Dictionary: %s" + +#: edit.c:3494 +msgid " (insert) Scroll (^E/^Y)" +msgstr " (invoegen) scroll (^E/^Y)" + +#: edit.c:3496 +msgid " (replace) Scroll (^E/^Y)" +msgstr " (vervangen) scroll (^E/^Y)" + +#: edit.c:3973 +#, c-format +msgid "Scanning: %s" +msgstr "doorzoeken: %s" + +#: edit.c:4008 +msgid "Scanning tags." +msgstr "Doorzoeken tags." + +#: edit.c:5021 +msgid " Adding" +msgstr " toevoegen" + +#. showmode might reset the internal line pointers, so it must +#. * be called before line = ml_get(), or when this address is no +#. * longer needed. -- Acevedo. +#. +#: edit.c:5068 +msgid "-- Searching..." +msgstr "-- doorzoeken..." + +#: edit.c:5128 +msgid "Back at original" +msgstr "Terug naar origineel" + +#: edit.c:5133 +msgid "Word from other line" +msgstr "Woord uit andere regel" + +#: edit.c:5138 +msgid "The only match" +msgstr "Het enige resultaat" + +#: edit.c:5203 +#, c-format +msgid "match %d of %d" +msgstr "resultaat %d van %d" + +#: edit.c:5207 +#, c-format +msgid "match %d" +msgstr "resultaat %d" + +#: eval.c:96 +msgid "E18: Unexpected characters in :let" +msgstr "E18: onverwachte tekens in :let" + +#: eval.c:97 +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: lijstindex buiten bereik: %ld" + +#: eval.c:98 +#, c-format +msgid "E121: Undefined variable: %s" +msgstr "E121: ongedefinieerde variabele: %s" + +#: eval.c:99 +msgid "E111: Missing ']'" +msgstr "E111: ontbrekende ']'" + +#: eval.c:100 +#, c-format +msgid "E686: Argument of %s must be a List" +msgstr "E686: argument van %s moet een List zijn" + +#: eval.c:101 +#, c-format +msgid "E712: Argument of %s must be a List or Dictionary" +msgstr "E712: argument van %s moet een List of Dictionary zijn" + +#: eval.c:102 +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: kan geen leeg trefwoord als Dictionary gebruiken" + +#: eval.c:103 +msgid "E714: List required" +msgstr "E714: List is vereist" + +#: eval.c:104 +msgid "E715: Dictionary required" +msgstr "E715: Dictionary is vereist" + +#: eval.c:105 +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: te veel argumenten voor functie: %s" + +#: eval.c:106 +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: trefwoord niet aangetroffen in Dictionary: %s" + +#: eval.c:107 +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: function %s bestaat reeds, voeg ! toe om te vervangen" + +#: eval.c:108 +msgid "E717: Dictionary entry already exists" +msgstr "E717: woord bestaat al in Dictionary" + +#: eval.c:109 +msgid "E718: Funcref required" +msgstr "E718: Funcref is vereist" + +#: eval.c:110 +msgid "E719: Cannot use [:] with a Dictionary" +msgstr "E719: kan [:] niet met een Dictionary gebruiken" + +#: eval.c:111 +#, c-format +msgid "E734: Wrong variable type for %s=" +msgstr "E734: onjuist type variabele voor %s=" + +#: eval.c:112 +#, c-format +msgid "E130: Unknown function: %s" +msgstr "E130: onbekende functie: %s" + +#: eval.c:113 +#, c-format +msgid "E461: Illegal variable name: %s" +msgstr "E461: ongeldige variabelenaam: %s" + +#: eval.c:1931 +msgid "E687: Less targets than List items" +msgstr "E687: minder doelen dan Listitems" + +#: eval.c:1936 +msgid "E688: More targets than List items" +msgstr "E688: meer doelen dan Listitems" + +#: eval.c:2022 +msgid "Double ; in list of variables" +msgstr "Dubbele ; in variabelenlijst" + +#: eval.c:2241 +#, c-format +msgid "E738: Can't list variables for %s" +msgstr "E738: kan variabelen voor %s niet tonen" + +#: eval.c:2587 +msgid "E689: Can only index a List or Dictionary" +msgstr "E689: alleen een List of Dictionary kan geïndexeerd worden" + +#: eval.c:2593 +msgid "E708: [:] must come last" +msgstr "E708: [:] moet als laatste staan" + +#: eval.c:2645 +msgid "E709: [:] requires a List value" +msgstr "E709: [:] vereist een Listwaarde" + +#: eval.c:2881 +msgid "E710: List value has more items than target" +msgstr "E710: Listwaarde heeft meer value has more items than target" + +#: eval.c:2885 +msgid "E711: List value has not enough items" +msgstr "E711: Listwaarde heeft onvoldoende items" + +#: eval.c:3120 +msgid "E690: Missing \"in\" after :for" +msgstr "E690: \"in\" ontbreekt na :for" + +#: eval.c:3353 +#, c-format +msgid "E107: Missing parentheses: %s" +msgstr "E107: ontbrekende haakjes: %s" + +#: eval.c:3592 +#, c-format +msgid "E108: No such variable: \"%s\"" +msgstr "E108: onbekende variabele: \"%s\"" + +#: eval.c:3679 +msgid "E743: variable nested too deep for (un)lock" +msgstr "E743: variabele is te diep genest om te beveiligen" + +#: eval.c:4027 +msgid "E109: Missing ':' after '?'" +msgstr "E109: ':' ontbreekt na '?'" + +#: eval.c:4329 +msgid "E691: Can only compare List with List" +msgstr "E691: List kan alleen met een Lijst worden vergeleken" + +#: eval.c:4331 +msgid "E692: Invalid operation for Lists" +msgstr "E692: ongeldige bewerking voor Listen" + +#: eval.c:4358 +msgid "E735: Can only compare Dictionary with Dictionary" +msgstr "E735: Dictionary kan alleen met Woordenboek worden vergeleken" + +#: eval.c:4360 +msgid "E736: Invalid operation for Dictionary" +msgstr "E736: ongeldige bewerking voor Dictionary" + +#: eval.c:4380 +msgid "E693: Can only compare Funcref with Funcref" +msgstr "E693: Funcref kan alleen met Funcref worden vergeleken" + +#: eval.c:4382 +msgid "E694: Invalid operation for Funcrefs" +msgstr "E694: ongeldige bewerking voor Funcrefs" + +#: eval.c:4802 +msgid "E804: Cannot use '%' with Float" +msgstr "E804: '%' kan niet met Float worden gebruikt" + +#: eval.c:5022 +msgid "E110: Missing ')'" +msgstr "E110: ')' ontbreekt" + +#: eval.c:5174 +msgid "E695: Cannot index a Funcref" +msgstr "E695: een Funcref kan niet geïndexeerd worden" + +#: eval.c:5431 +#, c-format +msgid "E112: Option name missing: %s" +msgstr "E112: optienaam ontbreekt: %s" + +#: eval.c:5449 +#, c-format +msgid "E113: Unknown option: %s" +msgstr "E113: onbekende optie: %s" + +#: eval.c:5515 +#, c-format +msgid "E114: Missing quote: %s" +msgstr "E114: ontbrekend aanhaalteken: %s" + +#: eval.c:5651 +#, c-format +msgid "E115: Missing quote: %s" +msgstr "E115: ontbrekend aanhaalteken: %s" + +#: eval.c:5730 +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: komma ontbreekt in List: %s" + +#: eval.c:5738 +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: einde van List ']' ontbreekt: %s" + +#: eval.c:7230 +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: dubbelepunt in Dictionary ontbreekt: %s" + +#: eval.c:7259 +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: dubbele sleutel in Dictionary: \"%s\"" + +#: eval.c:7279 +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: komma ontbreekt in Dictionary: %s" + +#: eval.c:7287 +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: einde van Dictionary '}' ontbreekt: %s" + +#: eval.c:7325 +msgid "E724: variable nested too deep for displaying" +msgstr "E724: variabele is te diep genest om te tonen" + +#: eval.c:8059 +#, c-format +msgid "E740: Too many arguments for function %s" +msgstr "E740: teveel argumenten voor functie %s" + +#: eval.c:8061 +#, c-format +msgid "E116: Invalid arguments for function %s" +msgstr "E116: ongeldige argumenten voor functie %s" + +#: eval.c:8270 +#, c-format +msgid "E117: Unknown function: %s" +msgstr "E117: onbekende functie: %s" + +#: eval.c:8276 +#, c-format +msgid "E119: Not enough arguments for function: %s" +msgstr "E119: onvoldoende argumenten voor functie: %s" + +#: eval.c:8280 +#, c-format +msgid "E120: Using not in a script context: %s" +msgstr "E120: gebruik van buiten een scriptcontext: %s" + +#: eval.c:8284 +#, c-format +msgid "E725: Calling dict function without Dictionary: %s" +msgstr "E725: dict-functie aanroep zonder Dictionary: %s" + +#: eval.c:8357 +msgid "E808: Number or Float required" +msgstr "E808: Number of Float vereist" + +#: eval.c:8949 +msgid "E699: Too many arguments" +msgstr "E699:teveel argumenten" + +#: eval.c:9118 +msgid "E785: complete() can only be used in Insert mode" +msgstr "E785: complete() kan alleen in Invoegmodus worden gebruikt" + +#. +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#. +#: eval.c:9218 +#: gui.c:4876 +#: gui_gtk.c:2144 +#: os_mswin.c:598 +msgid "&Ok" +msgstr "&Ok" + +#: eval.c:9914 +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: sleutel bestaat al: %s" + +#: eval.c:10506 +#, c-format +msgid "+-%s%3ld lines: " +msgstr "+-%s%3ld regels: " + +#: eval.c:10594 +#, c-format +msgid "E700: Unknown function: %s" +msgstr "E700: onbekende functie: %s" + +#: eval.c:12620 +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"&OK\n" +"&Annuleren" + +#: eval.c:12702 +msgid "called inputrestore() more often than inputsave()" +msgstr "inputrestore() vaker aangeroepen dan inputsave()" + +#: eval.c:12836 +msgid "E786: Range not allowed" +msgstr "E786: bereik niet toegestaan" + +#: eval.c:13036 +msgid "E701: Invalid type for len()" +msgstr "E701: ongeldig type voor len()" + +#: eval.c:14063 +msgid "E726: Stride is zero" +msgstr "E726: stap is nul" + +#: eval.c:14065 +msgid "E727: Start past end" +msgstr "E727: start na einde" + +#: eval.c:14118 +#: eval.c:17978 +msgid "" +msgstr "" + +#: eval.c:14352 +msgid "E240: No connection to Vim server" +msgstr "E240: geen verbinding met Vim-server" + +#: eval.c:14400 +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: verzenden naar %s onmogelijk" + +#: eval.c:14547 +msgid "E277: Unable to read a server reply" +msgstr "E277: lezen van serverantwoord onmogelijk" + +#: eval.c:14797 +msgid "E655: Too many symbolic links (cycle?)" +msgstr "E655: teveel symbolische koppelingen (oneindige lus?)" + +#: eval.c:15527 +msgid "E258: Unable to send to client" +msgstr "E258: verzenden nar client onmogelijk" + +#: eval.c:16294 +msgid "E702: Sort compare function failed" +msgstr "E702: sorteer-vergelijkfunctie mislukt" + +#: eval.c:16619 +msgid "(Invalid)" +msgstr "(ongeldig)" + +#: eval.c:17104 +msgid "E677: Error writing temp file" +msgstr "E677: opslaan van temp-bestand is mislukt" + +#: eval.c:19007 +msgid "E805: Using a Float as a Number" +msgstr "E805: een Float wordt als Number gebruikt" + +#: eval.c:19011 +msgid "E703: Using a Funcref as a Number" +msgstr "E703: een Funcref wordt als Number gebruikt" + +#: eval.c:19019 +msgid "E745: Using a List as a Number" +msgstr "E745: List wordt als een Number gebruikt" + +#: eval.c:19022 +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: Dictionary gebruiken als een Number" + +#: eval.c:19125 +msgid "E729: using Funcref as a String" +msgstr "E729: Funcref gebruiken als een String" + +#: eval.c:19128 +msgid "E730: using List as a String" +msgstr "E730: List gebruiken als een String" + +#: eval.c:19131 +msgid "E731: using Dictionary as a String" +msgstr "E731: Dictionary gebruiken als een String" + +#: eval.c:19135 +msgid "E806: using Float as a String" +msgstr "E806: Float gebruiken als een String" + +#: eval.c:19505 +#, c-format +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: variabelenaam van Funcref moet beginnen met een hoofdletter: %s" + +#: eval.c:19513 +#, c-format +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: variablenaam botst met bestaande functie: %s" + +#: eval.c:19538 +#, c-format +msgid "E706: Variable type mismatch for: %s" +msgstr "E706: variabelesoort past niet bij: %s" + +#: eval.c:19647 +#, c-format +msgid "E795: Cannot delete variable %s" +msgstr "E795: kan variabele %s niet verwijderen" + +#: eval.c:19664 +#, c-format +msgid "E741: Value is locked: %s" +msgstr "E741: waarde is geblokkeerd: %s" + +#: eval.c:19665 +#: eval.c:19671 +#: message.c:2132 +#: os_mswin.c:2258 +msgid "Unknown" +msgstr "Onbekend" + +#: eval.c:19670 +#, c-format +msgid "E742: Cannot change value of %s" +msgstr "E742: kan waarde van %s niet veranderen" + +#: eval.c:19755 +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: variabele te diep genest om een kopie te maken" + +#: eval.c:20228 +#, c-format +msgid "E123: Undefined function: %s" +msgstr "E123: ongedefinieerde functie: %s" + +#: eval.c:20241 +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: ontbrekende '(': %s" + +#: eval.c:20297 +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: ongeldig argument: %s" + +#: eval.c:20407 +msgid "E126: Missing :endfunction" +msgstr "E126: ontbrekende :endfunction" + +#: eval.c:20544 +#, c-format +msgid "E707: Function name conflicts with variable: %s" +msgstr "E707: functienaam botst met variabele: %s" + +#: eval.c:20559 +#, c-format +msgid "E127: Cannot redefine function %s: It is in use" +msgstr "E127: kan functie %s niet opnieuw definiëren, het is in gebruik" + +#: eval.c:20624 +#, c-format +msgid "E746: Function name does not match script file name: %s" +msgstr "E746: functienaam komt niet overeen met bestandsnaam van het script: %s" + +#: eval.c:20742 +msgid "E129: Function name required" +msgstr "E129: functienaam is vereist" + +#: eval.c:20862 +#, c-format +msgid "E128: Function name must start with a capital or contain a colon: %s" +msgstr "E128: functionnaam moet met een hoofdletter beginnen of een dubbelepunt bevatten: %s" + +#: eval.c:21394 +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: functie %s wordt gebruikt en kan niet worden verwijderd" + +#: eval.c:21514 +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "E132: diepte functieaanroep overstijgt 'maxfuncdepth'" + +#: eval.c:21653 +#, c-format +msgid "calling %s" +msgstr "%s aanroepen" + +#: eval.c:21745 +#, c-format +msgid "%s aborted" +msgstr "%s afgebroken" + +#: eval.c:21747 +#, c-format +msgid "%s returning #%ld" +msgstr "%s komt terug met de waarde #%ld" + +#: eval.c:21763 +#, c-format +msgid "%s returning %s" +msgstr "%s komt terug met de waarde %s" + +#: eval.c:21787 +#: ex_cmds2.c:3233 +#, c-format +msgid "continuing in %s" +msgstr "voortzetten in %s" + +#: eval.c:21906 +msgid "E133: :return not inside a function" +msgstr "E133: :return niet binnen een functie" + +#: eval.c:22319 +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# globale variabelen:\n" + +#: eval.c:22436 +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\tLaatst ingesteld door " + +#: eval.c:22456 +msgid "No old files" +msgstr "Geen oudere bestanden" + +#: ex_cmds.c:101 +#, c-format +msgid "<%s>%s%s %d, Hex %02x, Octal %03o" +msgstr "<%s>%s%s %d, Hex %02x, Octal %03o" + +#: ex_cmds.c:128 +#, c-format +msgid "> %d, Hex %04x, Octal %o" +msgstr "> %d, Hex %04x, Octal %o" + +#: ex_cmds.c:129 +#, c-format +msgid "> %d, Hex %08x, Octal %o" +msgstr "> %d, Hex %08x, Octal %o" + +#: ex_cmds.c:739 +msgid "E134: Move lines into themselves" +msgstr "E134: verplaats regels in zichzelf" + +#: ex_cmds.c:808 +msgid "1 line moved" +msgstr "1 regel verplaatst" + +#: ex_cmds.c:810 +#, c-format +msgid "%ld lines moved" +msgstr "%ld regels verplaatst" + +#: ex_cmds.c:1305 +#, c-format +msgid "%ld lines filtered" +msgstr "%ld regels gefilterd" + +#: ex_cmds.c:1329 +msgid "E135: *Filter* Autocommands must not change current buffer" +msgstr "E135: *Filter* Autocommands mogen huidige buffer niet wijzigen" + +#: ex_cmds.c:1414 +msgid "[No write since last change]\n" +msgstr "[Niets opgeslagen sinds laatste wijziging]\n" + +#: ex_cmds.c:1672 +#, c-format +msgid "%sviminfo: %s in line: " +msgstr "%sviminfo: %s in regel: " + +#: ex_cmds.c:1680 +msgid "E136: viminfo: Too many errors, skipping rest of file" +msgstr "E136: viminfo: teveel fouten, restand van bestand overgeslagen" + +#: ex_cmds.c:1709 +#, c-format +msgid "Reading viminfo file \"%s\"%s%s%s" +msgstr "Inlezen viminfo-bestand \"%s\"%s%s%s" + +#: ex_cmds.c:1711 +msgid " info" +msgstr " info" + +#: ex_cmds.c:1712 +msgid " marks" +msgstr " markering" + +#: ex_cmds.c:1713 +msgid " oldfiles" +msgstr " oud-bestanden" + +#: ex_cmds.c:1714 +msgid " FAILED" +msgstr " MISLUKT" + +#. avoid a wait_return for this message, it's annoying +#: ex_cmds.c:1810 +#, c-format +msgid "E137: Viminfo file is not writable: %s" +msgstr "E137: viminfo-bestand is niet schrijfbaar: %s" + +#: ex_cmds.c:1963 +#, c-format +msgid "E138: Can't write viminfo file %s!" +msgstr "E138: kan niet naar viminfo-bestand %s schrijven!" + +#: ex_cmds.c:1973 +#, c-format +msgid "Writing viminfo file \"%s\"" +msgstr "viminfo-bestand \"%s\" opslaan" + +#. Write the info: +#: ex_cmds.c:2081 +#, c-format +msgid "# This viminfo file was generated by Vim %s.\n" +msgstr "# Dit viminfo-bestand is aangemaakt door Vim %s.\n" + +#: ex_cmds.c:2083 +#, c-format +msgid "" +"# You may edit it if you're careful!\n" +"\n" +msgstr "" +"# Bewerken is toegestaan, maar doe het met aandacht!\n" +"\n" + +#: ex_cmds.c:2085 +#, c-format +msgid "# Value of 'encoding' when this file was written\n" +msgstr "# Waarde van 'encoding' bij het opslaan van dit bestand\n" + +#: ex_cmds.c:2185 +msgid "Illegal starting char" +msgstr "Ongeldig startteken" + +#: ex_cmds.c:2551 +#: ex_cmds2.c:1478 +msgid "Save As" +msgstr "Opslaan als" + +#: ex_cmds.c:2628 +msgid "Write partial file?" +msgstr "Gedeeltelijk bestand opslaan?" + +#: ex_cmds.c:2635 +msgid "E140: Use ! to write partial buffer" +msgstr "E140: gebruik ! om gedeeltelijk buffer op te slaan" + +#: ex_cmds.c:2777 +#, c-format +msgid "Overwrite existing file \"%s\"?" +msgstr "Bestaand bestand \"%s\" overschrijven?" + +#: ex_cmds.c:2820 +#, c-format +msgid "Swap file \"%s\" exists, overwrite anyway?" +msgstr "Wisselbestand \"%s\" bestaat, toch overschrijven?" + +#: ex_cmds.c:2833 +#, c-format +msgid "E768: Swap file exists: %s (:silent! overrides)" +msgstr "E768: wisselbestand bestaat: %s (:silent! overschrijft)" + +#: ex_cmds.c:2901 +#, c-format +msgid "E141: No file name for buffer %ld" +msgstr "E141: buffer %ld heeft geen bestandsnaam" + +#: ex_cmds.c:2940 +msgid "E142: File not written: Writing is disabled by 'write' option" +msgstr "E142: bestand is niet opgeslagen: opslaan is uitgeschakeld door 'write'-optie" + +#: ex_cmds.c:2970 +#, c-format +msgid "" +"'readonly' option is set for \"%s\".\n" +"Do you wish to write anyway?" +msgstr "" +"'alleen-lezen'-optie is inschakeld voor \"%s\".\n" +"Toch opslaan?" + +#: ex_cmds.c:2973 +#, c-format +msgid "" +"File permissions of \"%s\" are read-only.\n" +"It may still be possible to write it.\n" +"Do you wish to try?" +msgstr "" +"Bestandsrechten van \"%s\" zijn alleen-lezen.\n" +"Mogelijk kan er toch naar weggeschreven worden.\n" +"Proberen op te slaan?" + +#: ex_cmds.c:2990 +#, c-format +msgid "E505: \"%s\" is read-only (add ! to override)" +msgstr "E505: \"%s\" is alleen-lezen (voeg ! toe om te overschrijven)" + +#: ex_cmds.c:3177 +msgid "Edit File" +msgstr "Bestand bewerken" + +#: ex_cmds.c:3860 +#, c-format +msgid "E143: Autocommands unexpectedly deleted new buffer %s" +msgstr "E143: 'Autocommands' hebben het nieuwe buffer %s onverwacht verwijderd" + +#: ex_cmds.c:4076 +msgid "E144: non-numeric argument to :z" +msgstr "E144: niet-numeriek argument voor :z" + +#: ex_cmds.c:4175 +msgid "E145: Shell commands not allowed in rvim" +msgstr "E145: in rvim zijn shell-opdrachten zijn niet toegestaan" + +#: ex_cmds.c:4276 +msgid "E146: Regular expressions can't be delimited by letters" +msgstr "E146: reguliere expressies kunnen niet begrensd worden door letters" + +#: ex_cmds.c:4736 +#, c-format +msgid "replace with %s (y/n/a/q/l/^E/^Y)?" +msgstr "vervang door %s (y/n/a/q/l/^E/^Y)?" + +#: ex_cmds.c:5181 +msgid "(Interrupted) " +msgstr "(Onderbroken) " + +#: ex_cmds.c:5186 +msgid "1 match" +msgstr "1 overeenkomst" + +#: ex_cmds.c:5186 +msgid "1 substitution" +msgstr "1 vervanging" + +#: ex_cmds.c:5189 +#, c-format +msgid "%ld matches" +msgstr "%ld overeenkomsten" + +#: ex_cmds.c:5189 +#, c-format +msgid "%ld substitutions" +msgstr "%ld vervangingen" + +#: ex_cmds.c:5194 +msgid " on 1 line" +msgstr " op 1 regel" + +#: ex_cmds.c:5197 +#, c-format +msgid " on %ld lines" +msgstr " op %ld regels" + +#: ex_cmds.c:5244 +msgid "E147: Cannot do :global recursive" +msgstr "E147: kan :global niet recursief uitvoeren" + +#: ex_cmds.c:5277 +msgid "E148: Regular expression missing from global" +msgstr "E148: reguliere expressies ontbreken bij global" + +#: ex_cmds.c:5326 +#, c-format +msgid "Pattern found in every line: %s" +msgstr "Patroon aangetroffen in iedere regel: %s" + +#: ex_cmds.c:5413 +#, c-format +msgid "" +"\n" +"# Last Substitute String:\n" +"$" +msgstr "" +"\n" +"# Laatst vervangingsstring:\n" +"$" + +#: ex_cmds.c:5526 +msgid "E478: Don't panic!" +msgstr "E478: geen paniek!" + +#: ex_cmds.c:5572 +#, c-format +msgid "E661: Sorry, no '%s' help for %s" +msgstr "E661: helaas, geen '%s'-hulp voor %s" + +#: ex_cmds.c:5575 +#, c-format +msgid "E149: Sorry, no help for %s" +msgstr "E149: helaas, geen hulp voor %s" + +#: ex_cmds.c:5617 +#, c-format +msgid "Sorry, help file \"%s\" not found" +msgstr "helaas, hulpbestand \"%s\" is niet gevonden" + +#: ex_cmds.c:6195 +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: geen map: %s" + +#: ex_cmds.c:6338 +#, c-format +msgid "E152: Cannot open %s for writing" +msgstr "E152: kan %s niet openen om naar te schrijven" + +#: ex_cmds.c:6375 +#, c-format +msgid "E153: Unable to open %s for reading" +msgstr "E153: kan %s niet openen om uit te lezen" + +#: ex_cmds.c:6411 +#, c-format +msgid "E670: Mix of help file encodings within a language: %s" +msgstr "E670: mengelmoes van hulpbestandcoderingen binnen een taal: %s" + +#: ex_cmds.c:6489 +#, c-format +msgid "E154: Duplicate tag \"%s\" in file %s/%s" +msgstr "E154: dubbele tag \"%s\" in bestand %s/%s" + +#: ex_cmds.c:6625 +#, c-format +msgid "E160: Unknown sign command: %s" +msgstr "E160: onbekende opdracht voor margetekens: %s" + +#: ex_cmds.c:6642 +msgid "E156: Missing sign name" +msgstr "E156: ontbrekende naam margeteken" + +#: ex_cmds.c:6688 +msgid "E612: Too many signs defined" +msgstr "E612: teveel margetekens gedefinieerd" + +#: ex_cmds.c:6756 +#, c-format +msgid "E239: Invalid sign text: %s" +msgstr "E239: ongeldige tekst margeteken: %s" + +#: ex_cmds.c:6787 +#: ex_cmds.c:6962 +#, c-format +msgid "E155: Unknown sign: %s" +msgstr "E155: onbekend margeteken: %s" + +#: ex_cmds.c:6820 +msgid "E159: Missing sign number" +msgstr "E159: ontbrekend nummer margeteken" + +#: ex_cmds.c:6902 +#, c-format +msgid "E158: Invalid buffer name: %s" +msgstr "E158: ongeldige buffernaam: %s" + +#: ex_cmds.c:6941 +#, c-format +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: ongeldige id margeteken: %ld" + +#: ex_cmds.c:7011 +msgid " (NOT FOUND)" +msgstr " (NIET GEVONDEN)" + +#: ex_cmds.c:7013 +msgid " (not supported)" +msgstr "(niet ondersteund)" + +#: ex_cmds.c:7137 +msgid "[Deleted]" +msgstr "[Verwijderd]" + +#: ex_cmds2.c:138 +msgid "Entering Debug mode. Type \"cont\" to continue." +msgstr "Debug-modus gestart. Typ \"cont\" om verder te gaan." + +#: ex_cmds2.c:142 +#: ex_docmd.c:1094 +#, c-format +msgid "line %ld: %s" +msgstr "regel %ld: %s" + +#: ex_cmds2.c:144 +#, c-format +msgid "cmd: %s" +msgstr "cmd: %s" + +#: ex_cmds2.c:344 +#, c-format +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "'Breakpoint' in \"%s%s\" regel %ld" + +#: ex_cmds2.c:656 +#, c-format +msgid "E161: Breakpoint not found: %s" +msgstr "E161: 'Breakpoint' niet gevonden: %s" + +#: ex_cmds2.c:692 +msgid "No breakpoints defined" +msgstr "Geen 'breakpoints' opgegeven" + +#: ex_cmds2.c:697 +#, c-format +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s regel %ld" + +#: ex_cmds2.c:1095 +msgid "E750: First use \":profile start {fname}\"" +msgstr "E750: gebruik eerst \":profile start {fname}\"" + +#: ex_cmds2.c:1503 +#, c-format +msgid "Save changes to \"%s\"?" +msgstr "veranderingen opslaan in \"%s\"?" + +#: ex_cmds2.c:1505 +#: ex_docmd.c:10880 +msgid "Untitled" +msgstr "naamloos" + +#: ex_cmds2.c:1634 +#, c-format +msgid "E162: No write since last change for buffer \"%s\"" +msgstr "E162: niets opgeslagen sinds laatste wijziging van buffer \"%s\"" + +#: ex_cmds2.c:1705 +msgid "Warning: Entered other buffer unexpectedly (check autocommands)" +msgstr "Waarschuwing: onverwacht ander buffer binnengegaan (controleer 'autocommands')" + +#: ex_cmds2.c:2149 +msgid "E163: There is only one file to edit" +msgstr "E163: slechts een bestand beschikbaar voor bewerking" + +#: ex_cmds2.c:2151 +msgid "E164: Cannot go before first file" +msgstr "E164: kan niet verder terug dan eerste bestand" + +#: ex_cmds2.c:2153 +msgid "E165: Cannot go beyond last file" +msgstr "E165: kan niet verder dan laatste bestand" + +#: ex_cmds2.c:2583 +#, c-format +msgid "E666: compiler not supported: %s" +msgstr "E666: compiler niet ondersteund: %s" + +#: ex_cmds2.c:2684 +#, c-format +msgid "Searching for \"%s\" in \"%s\"" +msgstr "Naar \"%s\" in \"%s\" zoeken" + +#: ex_cmds2.c:2711 +#, c-format +msgid "Searching for \"%s\"" +msgstr "Naar \"%s\" zoeken" + +#: ex_cmds2.c:2737 +#, c-format +msgid "not found in 'runtimepath': \"%s\"" +msgstr "niet gevonden in 'runtimepath': \"%s\"" + +#: ex_cmds2.c:2772 +msgid "Source Vim script" +msgstr "Vim-script laden" + +#: ex_cmds2.c:2962 +#, c-format +msgid "Cannot source a directory: \"%s\"" +msgstr "kan geen map laden: \"%s\"" + +#: ex_cmds2.c:3019 +#, c-format +msgid "could not source \"%s\"" +msgstr "kan \"%s\" niet laden" + +#: ex_cmds2.c:3021 +#, c-format +msgid "line %ld: could not source \"%s\"" +msgstr "regel %ld: kan \"%s\" niet laden" + +#: ex_cmds2.c:3037 +#, c-format +msgid "sourcing \"%s\"" +msgstr "\"%s\" laden" + +#: ex_cmds2.c:3039 +#, c-format +msgid "line %ld: sourcing \"%s\"" +msgstr "regel %ld: \"%s\" laden" + +#: ex_cmds2.c:3231 +#, c-format +msgid "finished sourcing %s" +msgstr "laden van %s afgerond" + +#: ex_cmds2.c:3315 +msgid "modeline" +msgstr "modusregel" + +#: ex_cmds2.c:3317 +msgid "--cmd argument" +msgstr "argument van --cmd" + +#: ex_cmds2.c:3319 +msgid "-c argument" +msgstr "argument van -c" + +#: ex_cmds2.c:3321 +msgid "environment variable" +msgstr "omgevingsvariabele" + +#: ex_cmds2.c:3323 +msgid "error handler" +msgstr "foutafhandeling" + +#: ex_cmds2.c:3615 +msgid "W15: Warning: Wrong line separator, ^M may be missing" +msgstr "W15: waarschuwing: ongeldige regelscheiding, ^M kan ontbreken" + +#: ex_cmds2.c:3748 +msgid "E167: :scriptencoding used outside of a sourced file" +msgstr "E167: :scriptencoding buiten een geladen bestand gebruikt" + +#: ex_cmds2.c:3781 +msgid "E168: :finish used outside of a sourced file" +msgstr "E168: :finish buiten een geladen bestand gebruikt" + +#: ex_cmds2.c:4103 +#, c-format +msgid "Current %slanguage: \"%s\"" +msgstr "Huidige %s-taal: \"%s\"" + +#: ex_cmds2.c:4120 +#, c-format +msgid "E197: Cannot set language to \"%s\"" +msgstr "E197: taal kan niet ingesteld worden op \"%s\"" + +#: ex_docmd.c:639 +msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." +msgstr "Ex-modus betreden. Typ \"visual\" om naar de Normaal-modus te gaan." + +#: ex_docmd.c:694 +msgid "E501: At end-of-file" +msgstr "E501: bij bestandseinde" + +#: ex_docmd.c:793 +msgid "E169: Command too recursive" +msgstr "E169: opdracht te recursief" + +#: ex_docmd.c:1372 +#, c-format +msgid "E605: Exception not caught: %s" +msgstr "E605: uitzondering niet afgevangen: %s" + +#: ex_docmd.c:1460 +msgid "End of sourced file" +msgstr "Einde van geladen bestand" + +#: ex_docmd.c:1461 +msgid "End of function" +msgstr "Einde van functie" + +#: ex_docmd.c:2109 +msgid "E464: Ambiguous use of user-defined command" +msgstr "E464: dubbelzinnig gebruik van gebruikergedefinieerde opdracht" + +#: ex_docmd.c:2123 +msgid "E492: Not an editor command" +msgstr "E492: geen editor-opdracht" + +#: ex_docmd.c:2255 +msgid "E493: Backwards range given" +msgstr "E493: Teruggaand bereik opgegeven" + +#: ex_docmd.c:2259 +msgid "Backwards range given, OK to swap" +msgstr "Teruggaand bereik opgegeven, wisselen is toegestaan" + +#: ex_docmd.c:2322 +msgid "E494: Use w or w>>" +msgstr "E494: w of w>> gebruiken" + +#: ex_docmd.c:4095 +msgid "E319: Sorry, the command is not available in this version" +msgstr "E319: Helaas, in deze versie is de opdracht niet beschikbaar" + +#: ex_docmd.c:4444 +msgid "E172: Only one file name allowed" +msgstr "E172: slechts een bestandsnaam toegestaan" + +#: ex_docmd.c:5056 +msgid "1 more file to edit. Quit anyway?" +msgstr "1 bestand wacht nog op bewerking. Toch stoppen?" + +#: ex_docmd.c:5059 +#, c-format +msgid "%d more files to edit. Quit anyway?" +msgstr "%d bestanden wachten nog op bewerking. Toch stoppen?" + +#: ex_docmd.c:5066 +msgid "E173: 1 more file to edit" +msgstr "E173: 1 bestand wacht op bewerking" + +#: ex_docmd.c:5068 +#, c-format +msgid "E173: %ld more files to edit" +msgstr "E173: %ld bestanden wachten op bewerking" + +#: ex_docmd.c:5162 +msgid "E174: Command already exists: add ! to replace it" +msgstr "E174: opdracht bestaat al: voeg ! toe om het te vervangen" + +#: ex_docmd.c:5284 +msgid "" +"\n" +" Name Args Range Complete Definition" +msgstr "" +"\n" +" Naam Args Berk. Compleet Definitie" + +#: ex_docmd.c:5377 +msgid "No user-defined commands found" +msgstr "Geen gebruikergedefinieerde opdrachten gevonden" + +#: ex_docmd.c:5409 +msgid "E175: No attribute specified" +msgstr "E175: geen attribute opgegeven" + +#: ex_docmd.c:5461 +msgid "E176: Invalid number of arguments" +msgstr "E176: ongeldig aantal argumenten" + +#: ex_docmd.c:5476 +msgid "E177: Count cannot be specified twice" +msgstr "E177: aantal kan niet tweemaal worden opgegeven" + +#: ex_docmd.c:5486 +msgid "E178: Invalid default value for count" +msgstr "E178: ongeldige standaardwaarde voor aantal" + +#: ex_docmd.c:5514 +msgid "E179: argument required for -complete" +msgstr "E179: argument vereist voor -complete" + +#: ex_docmd.c:5526 +#, c-format +msgid "E181: Invalid attribute: %s" +msgstr "E181: ongeldig attribute: %s" + +#: ex_docmd.c:5572 +msgid "E182: Invalid command name" +msgstr "E182: ongeldige opdrachtnaam" + +#: ex_docmd.c:5587 +msgid "E183: User defined commands must start with an uppercase letter" +msgstr "E183: door gebruiker gedefinieerde opdrachten moet een een hoofdletter beginnen" + +#: ex_docmd.c:5655 +#, c-format +msgid "E184: No such user-defined command: %s" +msgstr "E184: deze door gebruiker gedefinieerde opdracht bestaat niet: %s" + +#: ex_docmd.c:6207 +#, c-format +msgid "E180: Invalid complete value: %s" +msgstr "E180: ongeldige voltooiingswaarde: %s" + +#: ex_docmd.c:6218 +msgid "E468: Completion argument only allowed for custom completion" +msgstr "E468: argument voor voltooiing alleen toegestaan bij aangepaste voltooiing" + +#: ex_docmd.c:6226 +msgid "E467: Custom completion requires a function argument" +msgstr "E467: aangepaste voltooiing vereist een functieargument" + +#: ex_docmd.c:6262 +msgid "unknown" +msgstr "onbekend" + +#: ex_docmd.c:6266 +#, c-format +msgid "E185: Cannot find color scheme %s" +msgstr "E185: kan kleurenschema %s niet vinden" + +#: ex_docmd.c:6274 +msgid "Greetings, Vim user!" +msgstr "Gegroet, Vim-gebruiker!" + +#: ex_docmd.c:6492 +msgid "E784: Cannot close last tab page" +msgstr "E784: laatste tabpagina kan niet afgesloten worden" + +#: ex_docmd.c:6534 +msgid "Already only one tab page" +msgstr "Reeds beperkt tot één tabpagina" + +#: ex_docmd.c:7221 +msgid "Edit File in new window" +msgstr "Bestand in nieuw venster bewerken" + +#: ex_docmd.c:7347 +#, c-format +msgid "Tab page %d" +msgstr "Tabpagina %d" + +#: ex_docmd.c:7739 +msgid "No swap file" +msgstr "Geen wisselbestand" + +#: ex_docmd.c:7844 +msgid "Append File" +msgstr "Bestand toevoegen" + +#: ex_docmd.c:7943 +msgid "E747: Cannot change directory, buffer is modified (add ! to override)" +msgstr "E747: kan niet van map veranderen, buffer is gewijzigd (voeg ! toe om te forceren)" + +#: ex_docmd.c:7952 +msgid "E186: No previous directory" +msgstr "E186: geen voorgaande map" + +#: ex_docmd.c:8033 +msgid "E187: Unknown" +msgstr "E187: onbekend" + +#: ex_docmd.c:8128 +msgid "E465: :winsize requires two number arguments" +msgstr "E465: :winsize vereist twee getallen als argument" + +#: ex_docmd.c:8190 +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "Vensterpositie: X %d, Y %d" + +#: ex_docmd.c:8195 +msgid "E188: Obtaining window position not implemented for this platform" +msgstr "E188: verkrijgen van vensterpositie is voor dit platform niet geïmplementeerd" + +#: ex_docmd.c:8205 +msgid "E466: :winpos requires two number arguments" +msgstr "E466: :winpos vereist twee getallen als argument" + +#: ex_docmd.c:8565 +msgid "Save Redirection" +msgstr "'Redirection' opslaan" + +#: ex_docmd.c:8796 +msgid "Save View" +msgstr "Beeld opslaan" + +#: ex_docmd.c:8797 +msgid "Save Session" +msgstr "Sessie opslaan" + +#: ex_docmd.c:8799 +msgid "Save Setup" +msgstr "Instellingen opslaan" + +#: ex_docmd.c:8955 +#, c-format +msgid "E739: Cannot create directory: %s" +msgstr "E739: kan map %s niet aanmaken" + +#: ex_docmd.c:8984 +#, c-format +msgid "E189: \"%s\" exists (add ! to override)" +msgstr "E189: \"%s\" bestaat al (voeg ! toe om te forceren)" + +#: ex_docmd.c:8989 +#, c-format +msgid "E190: Cannot open \"%s\" for writing" +msgstr "E190: \"%s\" kan niet worden beschreven" + +#. set mark +#: ex_docmd.c:9013 +msgid "E191: Argument must be a letter or forward/backward quote" +msgstr "E191: argument moet een letter zijn of een aanhaalteken, voor of achterwaarts" + +#: ex_docmd.c:9060 +msgid "E192: Recursive use of :normal too deep" +msgstr "E192: recursief gebruik van :normal gaat te diep" + +#: ex_docmd.c:9659 +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: #< is zonder de +eval-functionaliteit niet beschikbaar" + +#: ex_docmd.c:9668 +msgid "E194: No alternate file name to substitute for '#'" +msgstr "E194: er is geen wisselende bestandsnaam beschikbaar om '#' te vervangen" + +#: ex_docmd.c:9709 +msgid "E495: no autocommand file name to substitute for \"\"" +msgstr "E495: er is geen 'autocommand'-bestandsnaam om \"\" te vervangen" + +#: ex_docmd.c:9718 +msgid "E496: no autocommand buffer number to substitute for \"\"" +msgstr "E496: er is geen 'autocommand'-buffernummer om \"\" te vervangen" + +#: ex_docmd.c:9729 +msgid "E497: no autocommand match name to substitute for \"\"" +msgstr "E497: er is geen 'autocommand'-naamovereenkomst om \"\" te vervangen" + +#: ex_docmd.c:9739 +msgid "E498: no :source file name to substitute for \"\"" +msgstr "E498: er is geen :source-bestandsnaam om \"\" te vervangen" + +#: ex_docmd.c:9781 +#, no-c-format +msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" +msgstr "E499: lege bestandsnaam voor '%' of '#', werkt alleen samen met \":p:h\"" + +#: ex_docmd.c:9783 +msgid "E500: Evaluates to an empty string" +msgstr "E500: resulteert in een lege string" + +#: ex_docmd.c:10860 +msgid "E195: Cannot open viminfo file for reading" +msgstr "E195: het 'viminfo'-bestand kan niet worden gelezen" + +#: ex_docmd.c:11048 +msgid "E196: No digraphs in this version" +msgstr "E196: deze versie bevat geen 'digraphs'" + +#: ex_eval.c:441 +msgid "E608: Cannot :throw exceptions with 'Vim' prefix" +msgstr "E608: :throw exceptions met 'Vim' als voorvoegsel zijn niet mogelijk" + +#. always scroll up, don't overwrite +#: ex_eval.c:534 +#, c-format +msgid "Exception thrown: %s" +msgstr "Geworpen uitzondering: %s" + +#: ex_eval.c:588 +#, c-format +msgid "Exception finished: %s" +msgstr "Afgeronde uitzondering: %s" + +#: ex_eval.c:589 +#, c-format +msgid "Exception discarded: %s" +msgstr "Afgedankte uitzondering: %s" + +#: ex_eval.c:635 +#: ex_eval.c:687 +#, c-format +msgid "%s, line %ld" +msgstr "%s, regel %ld" + +#. always scroll up, don't overwrite +#: ex_eval.c:657 +#, c-format +msgid "Exception caught: %s" +msgstr "Gevangen uitzondering: %s" + +#: ex_eval.c:737 +#, c-format +msgid "%s made pending" +msgstr "%s aanhanging gemaakt" + +#: ex_eval.c:740 +#, c-format +msgid "%s resumed" +msgstr "%s voortgezet" + +#: ex_eval.c:744 +#, c-format +msgid "%s discarded" +msgstr "%s afgedankt" + +#: ex_eval.c:771 +msgid "Exception" +msgstr "Uitzondering" + +#: ex_eval.c:777 +msgid "Error and interrupt" +msgstr "Fout en onderbreken" + +#: ex_eval.c:779 +#: gui.c:4875 +#: gui_xmdlg.c:689 +#: gui_xmdlg.c:808 +#: os_mswin.c:597 +msgid "Error" +msgstr "Fout" + +#. if (pending & CSTP_INTERRUPT) +#: ex_eval.c:781 +msgid "Interrupt" +msgstr "Onderbreken" + +#: ex_eval.c:873 +msgid "E579: :if nesting too deep" +msgstr "E579: te diepe :if-nesting" + +#: ex_eval.c:910 +msgid "E580: :endif without :if" +msgstr "E580: :endif zonder :if" + +#: ex_eval.c:955 +msgid "E581: :else without :if" +msgstr "E581: :else zonder :if" + +#: ex_eval.c:958 +msgid "E582: :elseif without :if" +msgstr "E582: :elseif zonder :if" + +#: ex_eval.c:965 +msgid "E583: multiple :else" +msgstr "E583: meerdere :else" + +#: ex_eval.c:968 +msgid "E584: :elseif after :else" +msgstr "E584: :elseif na :else" + +#: ex_eval.c:1035 +msgid "E585: :while/:for nesting too deep" +msgstr "E585: te diepe :while/:for-nesting" + +#: ex_eval.c:1133 +msgid "E586: :continue without :while or :for" +msgstr "E586: :continue zonder :while of :for" + +#: ex_eval.c:1172 +msgid "E587: :break without :while or :for" +msgstr "E587: :break zonder :while of :for" + +#: ex_eval.c:1222 +msgid "E732: Using :endfor with :while" +msgstr "E732: gebruik van :endfor met :while" + +#: ex_eval.c:1224 +msgid "E733: Using :endwhile with :for" +msgstr "E733: gebruik van :endwhile met :for" + +#: ex_eval.c:1399 +msgid "E601: :try nesting too deep" +msgstr "E601: te diepe :try-nesting" + +#: ex_eval.c:1479 +msgid "E603: :catch without :try" +msgstr "E603: :catch zonder :try" + +#. Give up for a ":catch" after ":finally" and ignore it. +#. * Just parse. +#: ex_eval.c:1498 +msgid "E604: :catch after :finally" +msgstr "E604: :catch na :finally" + +#: ex_eval.c:1632 +msgid "E606: :finally without :try" +msgstr "E606: :finally zonder :try" + +#. Give up for a multiple ":finally" and ignore it. +#: ex_eval.c:1652 +msgid "E607: multiple :finally" +msgstr "E607: meerdere :finally" + +#: ex_eval.c:1762 +msgid "E602: :endtry without :try" +msgstr "E602: :endtry zonder :try" + +#: ex_eval.c:2267 +msgid "E193: :endfunction not inside a function" +msgstr "E193: :endfunction niet binnen een functie" + +#: ex_getln.c:2010 +msgid "E788: Not allowed to edit another buffer now" +msgstr "E788: nu een andere buffer bewerken is niet toegestaan" + +#: ex_getln.c:2025 +msgid "E811: Not allowed to change buffer information now" +msgstr "E811: nu bufferinformatie wijzigen is niet toegestaan" + +#: ex_getln.c:3923 +msgid "tagname" +msgstr "tagnaam" + +#: ex_getln.c:3926 +msgid " kind file\n" +msgstr "soor bestand\n" + +#: ex_getln.c:5708 +msgid "'history' option is zero" +msgstr "'history'-optie is nul" + +#: ex_getln.c:5979 +#, c-format +msgid "" +"\n" +"# %s History (newest to oldest):\n" +msgstr "" +"\n" +"# %s Historie (jongste naar oudste):\n" + +#: ex_getln.c:5980 +msgid "Command Line" +msgstr "Opdrachtregel" + +#: ex_getln.c:5981 +msgid "Search String" +msgstr "Zoekstring" + +#: ex_getln.c:5982 +msgid "Expression" +msgstr "Expressie" + +#: ex_getln.c:5983 +msgid "Input Line" +msgstr "Invoerregel" + +#: ex_getln.c:6021 +msgid "E198: cmd_pchar beyond the command length" +msgstr "E198: cmd_pchar is langer dan toegestaan voor een opdracht" + +#: ex_getln.c:6222 +msgid "E199: Active window or buffer deleted" +msgstr "E199: actieve venster of buffer verwijderd" + +#: fileio.c:158 +msgid "E812: Autocommands changed buffer or buffer name" +msgstr "E812: buffer of buffernaam gewijzigd door autocommands" + +#: fileio.c:418 +msgid "Illegal file name" +msgstr "Ongeldige bestandsnaam" + +#: fileio.c:447 +#: fileio.c:601 +#: fileio.c:3542 +#: fileio.c:3593 +msgid "is a directory" +msgstr "is een map" + +#: fileio.c:449 +msgid "is not a file" +msgstr "is geen bestand" + +#: fileio.c:462 +msgid "is a device (disabled with 'opendevice' option)" +msgstr "is een apparaat (uitgeschakeld door optie 'opendevice'" + +#: fileio.c:642 +#: fileio.c:4848 +msgid "[New File]" +msgstr "[Nieuw bestand]" + +#: fileio.c:645 +msgid "[New DIRECTORY]" +msgstr "[Nieuwe MAP]" + +#: fileio.c:679 +#: fileio.c:682 +msgid "[File too big]" +msgstr "Bestand te groot" + +#: fileio.c:684 +msgid "[Permission Denied]" +msgstr "[Geen rechten]" + +#: fileio.c:817 +msgid "E200: *ReadPre autocommands made the file unreadable" +msgstr "E200: *ReadPre autocommands hebben het bestand niet-leesbaar gemaakt" + +#: fileio.c:819 +msgid "E201: *ReadPre autocommands must not change current buffer" +msgstr "E201: *ReadPre autocommands mogen huidige buffer niet wijzigen" + +#: fileio.c:840 +msgid "Vim: Reading from stdin...\n" +msgstr "Vim: lezen van standaardinvoer...\n" + +#: fileio.c:846 +msgid "Reading from stdin..." +msgstr "Lezen van standaardinvoer..." + +#. Re-opening the original file failed! +#: fileio.c:1145 +msgid "E202: Conversion made file unreadable!" +msgstr "E202: bestand niet-leesbaar gemaakt door conversatie" + +#: fileio.c:2400 +msgid "[fifo/socket]" +msgstr "[fifo/socket]" + +#: fileio.c:2407 +msgid "[fifo]" +msgstr "[fifo]" + +#: fileio.c:2414 +msgid "[socket]" +msgstr "[socket]" + +#: fileio.c:2422 +msgid "[character special]" +msgstr "[karakter speciaal]" + +#: fileio.c:2429 +#: netbeans.c:3848 +msgid "[RO]" +msgstr "[RO]" + +#: fileio.c:2439 +msgid "[CR missing]" +msgstr "[CR ontbreekt]" + +#: fileio.c:2444 +msgid "[long lines split]" +msgstr "[lange regels gesplitst]" + +#: fileio.c:2450 +#: fileio.c:4832 +msgid "[NOT converted]" +msgstr "[NIET omgezet]" + +#: fileio.c:2455 +#: fileio.c:4837 +msgid "[converted]" +msgstr "[omgezet]" + +#: fileio.c:2462 +#: fileio.c:4862 +msgid "[crypted]" +msgstr "[versleuteld]" + +#: fileio.c:2470 +#, c-format +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[OMZETFOUT in regel %ld]" + +#: fileio.c:2476 +#, c-format +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[ONGELDIGE BYTE in regel %ld]" + +#: fileio.c:2483 +msgid "[READ ERRORS]" +msgstr "[LEESFOUTEN]" + +#: fileio.c:2775 +msgid "Can't find temp file for conversion" +msgstr "Tijdelijk bestand voor conversie ontbreekt" + +#: fileio.c:2782 +msgid "Conversion with 'charconvert' failed" +msgstr "Conversatie met 'charconvert' is mislukt" + +#: fileio.c:2785 +msgid "can't read output of 'charconvert'" +msgstr "uitvoer van 'charconvert' kan niet worden gelezen" + +#: fileio.c:2852 +msgid "E821: File is encrypted with unknown method" +msgstr "E821: bestand is met onbekende methode versleuteld" + +#: fileio.c:3387 +msgid "E676: No matching autocommands for acwrite buffer" +msgstr "E676: geen overeenkomende autocommands voor 'acwrite'-buffer" + +#: fileio.c:3422 +msgid "E203: Autocommands deleted or unloaded buffer to be written" +msgstr "E203: autocommands hebben buffer verwijderd of gelost die moest worden opgeslagen" + +#: fileio.c:3445 +msgid "E204: Autocommand changed number of lines in unexpected way" +msgstr "E204: autocommand heeft op onverwachte wijze het aantal regels gewijzigd" + +#: fileio.c:3485 +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "Netbeans staat het opslaan van onveranderde buffers niet toe" + +#: fileio.c:3493 +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "Deelopslag voor buffers van Netbeans niet toegestaan" + +#: fileio.c:3548 +#: fileio.c:3566 +msgid "is not a file or writable device" +msgstr "is geen bestand of schrijfbaar apparaat" + +#: fileio.c:3577 +msgid "writing to device disabled with 'opendevice' option" +msgstr "het schrijven naar apparaat is uitgeschakeld met optie 'opendevice'" + +#: fileio.c:3619 +#: netbeans.c:3913 +msgid "is read-only (add ! to override)" +msgstr "is alleen-lezen (voeg ! toe om te schrijven)" + +#: fileio.c:3983 +msgid "E506: Can't write to backup file (add ! to override)" +msgstr "E506: kan niet naar back-upbestand schrijven (voeg hiervoor ! toe)" + +#: fileio.c:3995 +msgid "E507: Close error for backup file (add ! to override)" +msgstr "E507: fout tijdens afsluiten van back-upbestand (voeg ! om toch af te sluiten)" + +#: fileio.c:3997 +msgid "E508: Can't read file for backup (add ! to override)" +msgstr "E508: kan bestand voor back-up niet lezen (voeg ! toe om toch te lezen)" + +#: fileio.c:4016 +msgid "E509: Cannot create backup file (add ! to override)" +msgstr "E509: kan back-upbestand niet aanmaken (voeg ! toe om dit toch aan te maken)" + +#: fileio.c:4118 +msgid "E510: Can't make backup file (add ! to override)" +msgstr "E510: kan back-upbestand niet maken (voeg ! toe om dit toch te maken)" + +#: fileio.c:4180 +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "E460: de afsplitsing van middelen zou verloren gaan (voeg ! toe om dit toch te doen)" + +#: fileio.c:4289 +msgid "E214: Can't find temp file for writing" +msgstr "E214: kan tijdelijk bestand voor wegschrijven niet vinden" + +#: fileio.c:4307 +msgid "E213: Cannot convert (add ! to write without conversion)" +msgstr "E213: kan niet omzetten (voeg ! toe om zonder omzetting op te slaan)" + +#: fileio.c:4342 +msgid "E166: Can't open linked file for writing" +msgstr "E166: kan niet schrijven naar gekoppeld bestand" + +#: fileio.c:4346 +msgid "E212: Can't open file for writing" +msgstr "E212: kan niet schrijven naar bestand" + +#: fileio.c:4648 +msgid "E667: Fsync failed" +msgstr "E667: fsync is mislukt" + +#: fileio.c:4687 +msgid "E512: Close failed" +msgstr "E512: Afsluiten is mislukt" + +#: fileio.c:4739 +msgid "E513: write error, conversion failed (make 'fenc' empty to override)" +msgstr "E513: schrijffout waarbij omzetting is mislukt (leeg 'fenc' om te overschrijven)" + +#: fileio.c:4744 +#, c-format +msgid "E513: write error, conversion failed in line %ld (make 'fenc' empty to override)" +msgstr "E513: schrijffout waarbij omzetting in regel %ld is mislukt (leeg 'fenc' om te overschrijven)" + +#: fileio.c:4753 +msgid "E514: write error (file system full?)" +msgstr "E514: schrijffout (is bestandssysteem vol?)" + +#: fileio.c:4821 +msgid " CONVERSION ERROR" +msgstr " OMZETTINGFOUT" + +#: fileio.c:4826 +#, c-format +msgid " in line %ld;" +msgstr " in regel %ld;" + +#: fileio.c:4843 +msgid "[Device]" +msgstr "[Apparaat]" + +#: fileio.c:4848 +msgid "[New]" +msgstr "[Nieuw]" + +#: fileio.c:4870 +msgid " [a]" +msgstr " [a]" + +#: fileio.c:4870 +msgid " appended" +msgstr " toegevoegd" + +#: fileio.c:4872 +msgid " [w]" +msgstr " [w]" + +#: fileio.c:4872 +msgid " written" +msgstr " opgeslagen" + +#: fileio.c:4927 +msgid "E205: Patchmode: can't save original file" +msgstr "E205: patch-modus: kan oorspronkelijke bestand niet opslaan" + +#: fileio.c:4950 +msgid "E206: patchmode: can't touch empty original file" +msgstr "E206: patch-modus: kan oorspronkelijk leeg bestand niet aanraken" + +#: fileio.c:4965 +msgid "E207: Can't delete backup file" +msgstr "E207: back-upbestand kan niet worden verwijderd" + +#: fileio.c:5031 +msgid "" +"\n" +"WARNING: Original file may be lost or damaged\n" +msgstr "" +"\n" +"WAARSCHUWING: oorspronkelijk bestand kan verloren gaan of beschadigen\n" + +#: fileio.c:5033 +msgid "don't quit the editor until the file is successfully written!" +msgstr "verlaat vim niet voordat het bestand volledig opgeslagen is!" + +#: fileio.c:5189 +msgid "[dos]" +msgstr "[dos]" + +#: fileio.c:5189 +msgid "[dos format]" +msgstr "[dos-format]" + +#: fileio.c:5196 +msgid "[mac]" +msgstr "[mac]" + +#: fileio.c:5196 +msgid "[mac format]" +msgstr "[mac-format]" + +#: fileio.c:5203 +msgid "[unix]" +msgstr "[unix]" + +#: fileio.c:5203 +msgid "[unix format]" +msgstr "[unix-format]" + +#: fileio.c:5236 +msgid "1 line, " +msgstr "1 regel, " + +#: fileio.c:5238 +#, c-format +msgid "%ld lines, " +msgstr "%ld regels, " + +#: fileio.c:5241 +msgid "1 character" +msgstr "1 teken" + +#: fileio.c:5245 +#, c-format +msgid "%lld characters" +msgstr "%lld tekens" + +#: fileio.c:5247 +#, c-format +msgid "%ld characters" +msgstr "%ld tekens" + +#: fileio.c:5259 +#: netbeans.c:3853 +msgid "[noeol]" +msgstr "[noeol]" + +#: fileio.c:5259 +#: netbeans.c:3854 +msgid "[Incomplete last line]" +msgstr "[Laatste regel onvolledig]" + +#. don't overwrite messages here +#. must give this prompt +#. don't use emsg() here, don't want to flush the buffers +#: fileio.c:5278 +msgid "WARNING: The file has been changed since reading it!!!" +msgstr "WAARSCHUWING: het bestand is na het laden gewijzigd!!!" + +#: fileio.c:5280 +msgid "Do you really want to write to it" +msgstr "Wilt u er zeker naar schrijven" + +#: fileio.c:6639 +#, c-format +msgid "E208: Error writing to \"%s\"" +msgstr "E208: schrijven naar \"%s\" is mislukt" + +#: fileio.c:6646 +#, c-format +msgid "E209: Error closing \"%s\"" +msgstr "E209: afsluiten van \"%s\" is mislukt" + +#: fileio.c:6649 +#, c-format +msgid "E210: Error reading \"%s\"" +msgstr "E210: lezen van \"%s\" is mislukt" + +#: fileio.c:6911 +msgid "E246: FileChangedShell autocommand deleted buffer" +msgstr "E246: buffer verwijderd door 'autocommand' FileChangedShell" + +#: fileio.c:6926 +#, c-format +msgid "E211: File \"%s\" no longer available" +msgstr "E211: bestand \"%s\" is niet meer beschikbaar" + +#: fileio.c:6941 +#, c-format +msgid "W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as well" +msgstr "W12: waarschuwing: bestand \"%s\" en de buffer zijn gewijzigd in Vim " + +#: fileio.c:6942 +msgid "See \":help W12\" for more info." +msgstr "Lees \":help W12\" voor meer informatie." + +#: fileio.c:6946 +#, c-format +msgid "W11: Warning: File \"%s\" has changed since editing started" +msgstr "W11: waarschuwing: bestand \"%s\" is gewijzigd sinds het begin van het bewerken" + +#: fileio.c:6947 +msgid "See \":help W11\" for more info." +msgstr "Lees \":help W11\" voor meer informatie." + +#: fileio.c:6951 +#, c-format +msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" +msgstr "W16: waarschuwing: rechten van bestand \"%s\" zijn gewijzigd sinds het begin van het bewerken" + +#: fileio.c:6952 +msgid "See \":help W16\" for more info." +msgstr "Lees \":help W16\" voor meer informatie" + +#: fileio.c:6967 +#, c-format +msgid "W13: Warning: File \"%s\" has been created after editing started" +msgstr "W13: waarschuwing: na het begin van het bewerken van bestand \"%s\" is deze ook elders aangemaakt" + +#: fileio.c:6997 +msgid "Warning" +msgstr "Waarschuwing" + +#: fileio.c:6998 +msgid "" +"&OK\n" +"&Load File" +msgstr "" +"&OK\n" +"Bestand &Laden" + +#: fileio.c:7121 +#, c-format +msgid "E462: Could not prepare for reloading \"%s\"" +msgstr "E462: het voorbereiden van \"%s\" voor het opnieuw laden is mislukt" + +#: fileio.c:7140 +#, c-format +msgid "E321: Could not reload \"%s\"" +msgstr "E321: kan \"%s\" niet opnieuw laden" + +#: fileio.c:7754 +msgid "--Deleted--" +msgstr "--Verwijderd--" + +#: fileio.c:7907 +#, c-format +msgid "auto-removing autocommand: %s " +msgstr "automatisch verwijderen 'autocommand': %s " + +#. the group doesn't exist +#: fileio.c:7953 +#, c-format +msgid "E367: No such group: \"%s\"" +msgstr "E367: groep \"%s\" bestaat niet" + +#: fileio.c:8100 +#, c-format +msgid "E215: Illegal character after *: %s" +msgstr "E215: ongeldig teken na *: %s" + +#: fileio.c:8112 +#, c-format +msgid "E216: No such event: %s" +msgstr "E216: onbekend 'event': %s" + +#: fileio.c:8114 +#, c-format +msgid "E216: No such group or event: %s" +msgstr "E216: onbekende groep of 'event': %s" + +#. Highlight title +#: fileio.c:8325 +msgid "" +"\n" +"--- Auto-Commands ---" +msgstr "" +"\n" +"--- Auto-Commands ---" + +#: fileio.c:8561 +#, c-format +msgid "E680: : invalid buffer number " +msgstr "E680: : ongeldig buffernummer " + +#: fileio.c:8658 +msgid "E217: Can't execute autocommands for ALL events" +msgstr "E217: autocommands kunnen niet voor alle 'events' worden uitgevoerd" + +#: fileio.c:8681 +msgid "No matching autocommands" +msgstr "Geen overeenkomstige autocommands" + +#: fileio.c:9130 +msgid "E218: autocommand nesting too deep" +msgstr "E218: hierarchie van aanroepen autocommands te diep" + +#: fileio.c:9483 +#, c-format +msgid "%s Auto commands for \"%s\"" +msgstr "%s 'Auto commands' voor \"%s\"" + +#: fileio.c:9493 +#, c-format +msgid "Executing %s" +msgstr "%s uitvoeren" + +#: fileio.c:9562 +#, c-format +msgid "autocommand %s" +msgstr "autocommand %s" + +#: fileio.c:10252 +msgid "E219: Missing {." +msgstr "E219: ontbrekende {." + +#: fileio.c:10254 +msgid "E220: Missing }." +msgstr "E220: ontbrekende }." + +#: fold.c:68 +msgid "E490: No fold found" +msgstr "E490: geen vouw gevonden" + +#: fold.c:593 +msgid "E350: Cannot create fold with current 'foldmethod'" +msgstr "E350: kan geen vouw aanmaken met huidige 'vouwmethode'" + +#: fold.c:595 +msgid "E351: Cannot delete fold with current 'foldmethod'" +msgstr "E351: kan geen vouw verwijderen met huidige 'vouwmethode'" + +#: fold.c:1998 +#, c-format +msgid "+--%3ld lines folded " +msgstr "+--%3ld regels gevouwen " + +#: getchar.c:252 +msgid "E222: Add to read buffer" +msgstr "E222: aan leesbuffer toevoegen" + +#: getchar.c:2418 +msgid "E223: recursive mapping" +msgstr "E223: recursieve toewijzing" + +#: getchar.c:3404 +#, c-format +msgid "E224: global abbreviation already exists for %s" +msgstr "E224: algemene afkorting bestaat al voor %s" + +#: getchar.c:3407 +#, c-format +msgid "E225: global mapping already exists for %s" +msgstr "E225: er bestaat al een algemene toewijzing voor %s" + +#: getchar.c:3539 +#, c-format +msgid "E226: abbreviation already exists for %s" +msgstr "E226: er bestaat al een afkorting voor %s" + +#: getchar.c:3542 +#, c-format +msgid "E227: mapping already exists for %s" +msgstr "E227: toewijzing bestaat al voor %s" + +#: getchar.c:3610 +msgid "No abbreviation found" +msgstr "Geen afkorting gevonden" + +#: getchar.c:3612 +msgid "No mapping found" +msgstr "Geen toewijzing gevonden" + +#: getchar.c:4725 +msgid "E228: makemap: Illegal mode" +msgstr "E228: makemap: ongeldige modus" + +#: gui.c:226 +msgid "E229: Cannot start the GUI" +msgstr "E229: de GUI kan niet worden gestart" + +#: gui.c:361 +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: kan niet gelezen worden uit \"%s\"" + +#: gui.c:487 +msgid "E665: Cannot start GUI, no valid font found" +msgstr "E665: de GUI kan niet gestart worden, er is geen geldig lettertype gevonden" + +#: gui.c:492 +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' ongeldig" + +#: gui.c:598 +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: waarde van 'imactivatekey' is ongeldig" + +#: gui.c:4528 +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: kan de kleur %s niet reserveren" + +#: gui.c:5112 +msgid "No match at cursor, finding next" +msgstr "Op cursorpositie is geen overeenkomst: de volgende zoeken" + +#: gui_at_fs.c:300 +msgid " " +msgstr " " + +#: gui_at_fs.c:1133 +#, c-format +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: lettertype %s niet gevonden" + +#: gui_at_fs.c:2767 +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: teruggaan naar huidige map is niet mogelijk" + +#: gui_at_fs.c:2787 +msgid "Pathname:" +msgstr "Padnaam:" + +#: gui_at_fs.c:2793 +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: vaststellen huidige map is niet mogelijk" + +#: gui_at_fs.c:2801 +#: gui_xmdlg.c:931 +msgid "OK" +msgstr "Ok" + +#: gui_at_fs.c:2801 +#: gui_gtk.c:2818 +#: gui_xmdlg.c:940 +msgid "Cancel" +msgstr "Annuleren" + +#: gui_at_sb.c:490 +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "Scrollbar-widget: vaststellen afmetingen van miniaturenkaart niet mogelijk." + +#: gui_athena.c:2160 +#: gui_motif.c:2588 +msgid "Vim dialog" +msgstr "Vim-dialoog" + +#: gui_beval.c:202 +#: gui_w32.c:4740 +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "E232: aanmaken 'BalloonEval' met zowel een bericht als een 'callback' is niet mogelijk" + +#: gui_gtk.c:1694 +msgid "Vim dialog..." +msgstr "Vim-dialoog..." + +#: gui_gtk.c:2145 +#: message.c:3654 +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" +msgstr "" +"&Ja\n" +"&Nee\n" +"&Annuleren" + +#: gui_gtk.c:2343 +msgid "Input _Methods" +msgstr "Invoer_wijzen" + +#: gui_gtk.c:2621 +#: gui_motif.c:3761 +msgid "VIM - Search and Replace..." +msgstr "VIM - zoeken en vervangen..." + +#: gui_gtk.c:2629 +#: gui_motif.c:3763 +msgid "VIM - Search..." +msgstr "VIM - zoeken..." + +#: gui_gtk.c:2661 +#: gui_motif.c:3872 +msgid "Find what:" +msgstr "Zoek naar:" + +#: gui_gtk.c:2679 +#: gui_motif.c:3905 +msgid "Replace with:" +msgstr "Vervang door:" + +#. whole word only button +#: gui_gtk.c:2711 +#: gui_motif.c:4026 +msgid "Match whole word only" +msgstr "Alleen volledig woord" + +#. match case button +#: gui_gtk.c:2722 +#: gui_motif.c:4038 +msgid "Match case" +msgstr "Hoofdlettergevoelig" + +#: gui_gtk.c:2732 +#: gui_motif.c:3977 +msgid "Direction" +msgstr "Richting" + +#. 'Up' and 'Down' buttons +#: gui_gtk.c:2744 +#: gui_motif.c:3990 +msgid "Up" +msgstr "Opwaarts" + +#: gui_gtk.c:2748 +#: gui_motif.c:3999 +msgid "Down" +msgstr "Neerwaarts" + +#: gui_gtk.c:2770 +#: gui_gtk.c:2772 +msgid "Find Next" +msgstr "Volgende zoeken" + +#: gui_gtk.c:2789 +#: gui_gtk.c:2791 +msgid "Replace" +msgstr "Vervangen" + +#: gui_gtk.c:2802 +#: gui_gtk.c:2804 +msgid "Replace All" +msgstr "Alles vervangen" + +#: gui_gtk_x11.c:2432 +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: \"die\"-verzoek van sessiebeheerder ontvangen\n" + +#: gui_gtk_x11.c:3259 +msgid "Close" +msgstr "Sluiten" + +#: gui_gtk_x11.c:3260 +#: gui_w48.c:2374 +msgid "New tab" +msgstr "Nieuw tabblad" + +#: gui_gtk_x11.c:3261 +msgid "Open Tab..." +msgstr "Tabblad openen..." + +#: gui_gtk_x11.c:4092 +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: hoofdvenster onverwacht gesloten\n" + +#: gui_gtk_x11.c:4807 +msgid "Font Selection" +msgstr "Lettertypeselectie" + +#: gui_motif.c:2355 +msgid "&Filter" +msgstr "&Filter" + +#: gui_motif.c:2356 +#: gui_motif.c:3840 +msgid "&Cancel" +msgstr "&Annuleren" + +#: gui_motif.c:2357 +msgid "Directories" +msgstr "Mappen" + +#: gui_motif.c:2358 +msgid "Filter" +msgstr "Filter" + +#: gui_motif.c:2359 +msgid "&Help" +msgstr "&Hulp" + +#: gui_motif.c:2360 +msgid "Files" +msgstr "Bestanden" + +#: gui_motif.c:2361 +msgid "&OK" +msgstr "&Ok" + +#: gui_motif.c:2362 +msgid "Selection" +msgstr "Selectie" + +#: gui_motif.c:3792 +msgid "Find &Next" +msgstr "&Volgende zoeken" + +#: gui_motif.c:3807 +msgid "&Replace" +msgstr "Ve&rvangen" + +#: gui_motif.c:3818 +msgid "Replace &All" +msgstr "&Alles vervangen" + +#: gui_motif.c:3829 +msgid "&Undo" +msgstr "&Herstellen" + +#: gui_riscos.c:953 +#, c-format +msgid "E610: Can't load Zap font '%s'" +msgstr "E610: Zap-lettertype '%s' kan niet worden geladen" + +#: gui_riscos.c:1052 +#, c-format +msgid "E611: Can't use font %s" +msgstr "E611: lettertype %s kan niet worden gebruikt" + +#: gui_riscos.c:3282 +msgid "" +"\n" +"Sending message to terminate child process.\n" +msgstr "" +"\n" +"Bericht versturen om kindproces te beëindigen.\n" + +#: gui_w32.c:1178 +#, c-format +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: kan venstertitel \"%s\" niet vinden" + +#: gui_w32.c:1191 +#, c-format +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: argument niet ondersteund: \"-%s\"; gebruik de OLE-versie." + +#: gui_w32.c:1432 +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: kan geen venster binnen MDI-applicatie openen" + +#: gui_w48.c:2373 +msgid "Close tab" +msgstr "Tabblad sluiten" + +#: gui_w48.c:2376 +msgid "Open tab..." +msgstr "Tabblad openen..." + +#: gui_w48.c:2632 +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "Tekenreeks zoeken (gebruik '\\\\' om een '\\' te vinden)" + +#: gui_w48.c:2668 +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "Zoeken & vervangen (gebruik '\\\\' om een '\\' te vinden')" + +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +#: gui_w48.c:3462 +msgid "Not Used" +msgstr "Niet gebruikt" + +#: gui_w48.c:3463 +msgid "Directory\t*.nothing\n" +msgstr "Map\t*.niets\n" + +#: gui_x11.c:1545 +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "E458: kan geen kleur toewijzen, sommige kleuren kunnen onjuist zijn" + +#: gui_x11.c:2137 +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "E250: lettertypen voor de volgende tekenverzamelingen ontbreken in verzameling %s:" + +#: gui_x11.c:2180 +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: naam lettertypeverzameling: %s" + +#: gui_x11.c:2181 +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "Lettertype '%s' heeft geen vaste breedte" + +#: gui_x11.c:2200 +#, c-format +msgid "E253: Fontset name: %s\n" +msgstr "E253: naam lettertypeverzameling: %s\n" + +#: gui_x11.c:2201 +#, c-format +msgid "Font0: %s\n" +msgstr "Font0: %s\n" + +#: gui_x11.c:2202 +#, c-format +msgid "Font1: %s\n" +msgstr "Font1: %s\n" + +#: gui_x11.c:2203 +#, c-format +msgid "Font%ld width is not twice that of font0\n" +msgstr "Breedte font%ld is niet het dubbele van font0\n" + +#: gui_x11.c:2204 +#, c-format +msgid "Font0 width: %ld\n" +msgstr "Font0-breedte: %ld\n" + +#: gui_x11.c:2205 +#, c-format +msgid "" +"Font1 width: %ld\n" +"\n" +msgstr "" +"Font1-breedte: %ld\n" +"\n" + +#: gui_xmdlg.c:690 +#: gui_xmdlg.c:809 +msgid "Invalid font specification" +msgstr "Onjuiste specificatie van lettertype" + +#: gui_xmdlg.c:691 +#: gui_xmdlg.c:810 +msgid "&Dismiss" +msgstr "&Afwijzen" + +#: gui_xmdlg.c:700 +msgid "no specific match" +msgstr "geen specifieke overeenkomst" + +#: gui_xmdlg.c:909 +msgid "Vim - Font Selector" +msgstr "Vim - Lettertypekiezer" + +#: gui_xmdlg.c:978 +msgid "Name:" +msgstr "Naam:" + +#. create toggle button +#: gui_xmdlg.c:1018 +msgid "Show size in Points" +msgstr "Grootte in punten tonen" + +#: gui_xmdlg.c:1037 +msgid "Encoding:" +msgstr "Codering:" + +#: gui_xmdlg.c:1083 +msgid "Font:" +msgstr "Lettertype:" + +#: gui_xmdlg.c:1116 +msgid "Style:" +msgstr "Stijl:" + +#: gui_xmdlg.c:1148 +msgid "Size:" +msgstr "Grootte:" + +#: hangulin.c:610 +msgid "E256: Hangul automata ERROR" +msgstr "E256: 'Hangul automata'-fout" + +#: hardcopy.c:210 +msgid "E550: Missing colon" +msgstr "E550: dubbelepunt ontbreekt" + +#: hardcopy.c:222 +msgid "E551: Illegal component" +msgstr "E551: ongeldige component" + +#: hardcopy.c:230 +msgid "E552: digit expected" +msgstr "E552: cijfer verwacht" + +#: hardcopy.c:501 +#, c-format +msgid "Page %d" +msgstr "Pagina %d" + +#: hardcopy.c:658 +msgid "No text to be printed" +msgstr "Geen tekst om af te drukken" + +#: hardcopy.c:736 +#, c-format +msgid "Printing page %d (%d%%)" +msgstr "Afdrukken van pagina %d (%d%%)" + +#: hardcopy.c:748 +#, c-format +msgid " Copy %d of %d" +msgstr "Kopie %d van %d" + +#: hardcopy.c:806 +#, c-format +msgid "Printed: %s" +msgstr "Afgedrukt: %s" + +#: hardcopy.c:814 +msgid "Printing aborted" +msgstr "Afdrukken afgebroken" + +#: hardcopy.c:1469 +msgid "E455: Error writing to PostScript output file" +msgstr "E455: wegschrijven Postscript-uitvoerbestand is mislukt" + +#: hardcopy.c:1931 +#, c-format +msgid "E624: Can't open file \"%s\"" +msgstr "E624: openen bestand \"%s\" is mislukt" + +#: hardcopy.c:1941 +#: hardcopy.c:2822 +#, c-format +msgid "E457: Can't read PostScript resource file \"%s\"" +msgstr "E457: kan 'Postscript resource'-bestand \"%s\" niet lezen" + +#: hardcopy.c:1957 +#, c-format +msgid "E618: file \"%s\" is not a PostScript resource file" +msgstr "E618L bestand \"%s\" is geen 'Postscript resource'-bestand" + +#: hardcopy.c:1975 +#: hardcopy.c:1994 +#: hardcopy.c:2037 +#, c-format +msgid "E619: file \"%s\" is not a supported PostScript resource file" +msgstr "E619: bestand \"%s\" is geen ondersteund 'Postscript resource'-bestand" + +#: hardcopy.c:2056 +#, c-format +msgid "E621: \"%s\" resource file has wrong version" +msgstr "E621: 'resource'-bestand \"%s\" heeft verkeerde versie" + +#: hardcopy.c:2543 +msgid "E673: Incompatible multi-byte encoding and character set." +msgstr "E673: Multi-byte-codering en de tekenverzameling zijn onverenigbaar." + +#: hardcopy.c:2560 +msgid "E674: printmbcharset cannot be empty with multi-byte encoding." +msgstr "E674: printmbcharset mag bij multi-byte-codering niet leeg zijn." + +#: hardcopy.c:2578 +msgid "E675: No default font specified for multi-byte printing." +msgstr "E675: geen standaard lettertype opgegeven voor multi-byte-afdrukken." + +#: hardcopy.c:2771 +msgid "E324: Can't open PostScript output file" +msgstr "E324: openen van PostScript-uitoverbestand is mislukt" + +#: hardcopy.c:2808 +#, c-format +msgid "E456: Can't open file \"%s\"" +msgstr "E456: Bestand \"%s\" kan niet worden geopend" + +#: hardcopy.c:2942 +msgid "E456: Can't find PostScript resource file \"prolog.ps\"" +msgstr "E456: 'PostScript resource'-bestand \"prolog.ps\" is niet gevonden" + +#: hardcopy.c:2955 +msgid "E456: Can't find PostScript resource file \"cidfont.ps\"" +msgstr "E456: 'PostScript resource'-bestand \"cidfont.ps\" is niet gevonden" + +#: hardcopy.c:2993 +#: hardcopy.c:3015 +#: hardcopy.c:3044 +#, c-format +msgid "E456: Can't find PostScript resource file \"%s.ps\"" +msgstr "E456: 'PostScript resource'-bestand \"%s.ps\" is niet gevonden" + +#: hardcopy.c:3031 +#, c-format +msgid "E620: Unable to convert to print encoding \"%s\"" +msgstr "E620: omzetten naar afdrukcodering \"%s\" is mislukt" + +#: hardcopy.c:3285 +msgid "Sending to printer..." +msgstr "Naar printer versturen..." + +#: hardcopy.c:3289 +msgid "E365: Failed to print PostScript file" +msgstr "E365: Afdrukken van PostScript-bestand is mislukt" + +#: hardcopy.c:3291 +msgid "Print job sent." +msgstr "Afdrukopdracht verzonden" + +#: if_cscope.c:77 +msgid "Add a new database" +msgstr "Nieuwe databank toevoegen" + +#: if_cscope.c:79 +msgid "Query for a pattern" +msgstr "Naar een patroon zoeken" + +#: if_cscope.c:81 +msgid "Show this message" +msgstr "Dit bericht tonen" + +#: if_cscope.c:83 +msgid "Kill a connection" +msgstr "Een verbinding verbreken" + +#: if_cscope.c:85 +msgid "Reinit all connections" +msgstr "Alle verbindingen opnieuw initialiseren" + +#: if_cscope.c:87 +msgid "Show connections" +msgstr "Verbindingen tonen" + +#: if_cscope.c:95 +#, c-format +msgid "E560: Usage: cs[cope] %s" +msgstr "E560: Gebruik: cs[cope] %s" + +#: if_cscope.c:236 +msgid "This cscope command does not support splitting the window.\n" +msgstr "Deze cscope-opdracht ondersteunt niet het splitsen van het venster.\n" + +#: if_cscope.c:287 +msgid "E562: Usage: cstag " +msgstr "E562: Gebruik: cstag " + +#: if_cscope.c:345 +msgid "E257: cstag: tag not found" +msgstr "E257: cstag: tag is gevonden" + +#: if_cscope.c:515 +#, c-format +msgid "E563: stat(%s) error: %d" +msgstr "E563: bevraag((%s) fout: %d" + +#: if_cscope.c:525 +msgid "E563: stat error" +msgstr "E563: bevragingsfout" + +#: if_cscope.c:622 +#, c-format +msgid "E564: %s is not a directory or a valid cscope database" +msgstr "E564: %s is geen map of een geldige cscope-databank" + +#: if_cscope.c:640 +#, c-format +msgid "Added cscope database %s" +msgstr "cscope-databank %s toegevoegd" + +#: if_cscope.c:695 +#, c-format +msgid "E262: error reading cscope connection %ld" +msgstr "E262: lezen van cscope-verbinding %ld is mislukt" + +#: if_cscope.c:802 +msgid "E561: unknown cscope search type" +msgstr "E561: soort cscope-zoekopdracht is onbekend" + +#: if_cscope.c:866 +#: if_cscope.c:905 +msgid "E566: Could not create cscope pipes" +msgstr "E566: aanmaken cscopei-pijp is mislukt" + +#: if_cscope.c:882 +msgid "E622: Could not fork for cscope" +msgstr "E622: nieuw cscope-proces beginnen is mislukt" + +#: if_cscope.c:992 +#: if_cscope.c:1029 +msgid "cs_create_connection exec failed" +msgstr "uitvoering cs_create_connection is mislukt" + +#: if_cscope.c:1002 +#: if_cscope.c:1042 +msgid "cs_create_connection: fdopen for to_fp failed" +msgstr "cs_create_connection: fdopen voor to_fp is mislukt" + +#: if_cscope.c:1004 +#: if_cscope.c:1046 +msgid "cs_create_connection: fdopen for fr_fp failed" +msgstr "cs_create_connection: fdopen voor fr_fp is mislukt" + +#: if_cscope.c:1030 +msgid "E623: Could not spawn cscope process" +msgstr "E623: voortbrengen cscope-proces is mislukt" + +#: if_cscope.c:1074 +msgid "E567: no cscope connections" +msgstr "E567: geen cscope-verbindingen" + +#: if_cscope.c:1155 +#, c-format +msgid "E469: invalid cscopequickfix flag %c for %c" +msgstr "E469: cscopequickfix-vlag %c voor %c is ongeldig" + +#: if_cscope.c:1218 +#, c-format +msgid "E259: no matches found for cscope query %s of %s" +msgstr "E259: cscope-zoekopdracht %s van %s leverde geen resultaten" + +#: if_cscope.c:1324 +msgid "cscope commands:\n" +msgstr "cscope-opdrachten:\n" + +#: if_cscope.c:1333 +#, c-format +msgid "%-5s: %s%*s (Usage: %s)" +msgstr "%-5s: %s%*s (Gebruik: %s)" + +#: if_cscope.c:1338 +msgid "" +"\n" +" c: Find functions calling this function\n" +" d: Find functions called by this function\n" +" e: Find this egrep pattern\n" +" f: Find this file\n" +" g: Find this definition\n" +" i: Find files #including this file\n" +" s: Find this C symbol\n" +" t: Find assignments to\n" +msgstr "" +"\n" +" c: zoek functies die deze functie aanroepen\n" +" d: zoek functies die door deze functie worden aangeroepen\n" +" e: zoek op dit egrep-patroon\n" +" f: zoek dit bestand\n" +" g: zoek deze definitie\n" +" i: zoek bestanden #inclusief dit bestand\n" +" s: zoek dit C-symbool\n" +" t: zoek toekenningen aan\n" + +#: if_cscope.c:1426 +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: openen is mislukt van cscope-databank: %s" + +#: if_cscope.c:1444 +msgid "E626: cannot get cscope database information" +msgstr "E626: opvragen cscope-databankinformatie is mislukt" + +#: if_cscope.c:1469 +msgid "E568: duplicate cscope database not added" +msgstr "E568: dubbele cscope-databank is niet toegevoegd" + +#: if_cscope.c:1614 +#, c-format +msgid "E261: cscope connection %s not found" +msgstr "E261: cscope-verbinding %s is niet gevonden" + +#: if_cscope.c:1648 +#, c-format +msgid "cscope connection %s closed" +msgstr "cscope-verbinding %s is verbroken" + +#. should not reach here +#: if_cscope.c:1788 +msgid "E570: fatal error in cs_manage_matches" +msgstr "E570: fatale fout in cs_manage_matches" + +#: if_cscope.c:2050 +#, c-format +msgid "Cscope tag: %s" +msgstr "Cscope-tag: %s" + +#: if_cscope.c:2072 +msgid "" +"\n" +" # line" +msgstr "" +"\n" +" # regel" + +#: if_cscope.c:2074 +msgid "filename / context / line\n" +msgstr "bestandsnaam / context / regel\n" + +#: if_cscope.c:2186 +#, c-format +msgid "E609: Cscope error: %s" +msgstr "E609: Cscope-fout: %s" + +#: if_cscope.c:2459 +msgid "All cscope databases reset" +msgstr "Alle cscope-databanken opnieuw ingesteld" + +#: if_cscope.c:2526 +msgid "no cscope connections\n" +msgstr "geen cscope-verbindingen\n" + +#: if_cscope.c:2530 +msgid " # pid database name prepend path\n" +msgstr " # pid databanknaam padvoorvoegsel\n" + +#: if_mzsch.c:1038 +msgid "E815: Sorry, this command is disabled, the MzScheme libraries could not be loaded." +msgstr "E815: helaas, deze opdracht is uitgeschakeld. De MzScheme-bibliotheken kunnen niet geladen worden." + +#: if_mzsch.c:1425 +#: if_python.c:1271 +#: if_tcl.c:1404 +msgid "invalid expression" +msgstr "ongeldige uitdrukking" + +#: if_mzsch.c:1433 +#: if_python.c:1290 +#: if_tcl.c:1409 +msgid "expressions disabled at compile time" +msgstr "tijdens compileren zijn de expressies uitgeschakeld" + +#: if_mzsch.c:1522 +msgid "hidden option" +msgstr "verborgen optie" + +#: if_mzsch.c:1524 +#: if_tcl.c:501 +msgid "unknown option" +msgstr "onbekende optie" + +#: if_mzsch.c:1683 +msgid "window index is out of range" +msgstr "vensterindex valt buiten het bereik" + +#: if_mzsch.c:1843 +msgid "couldn't open buffer" +msgstr "buffer openen is mislukt" + +#: if_mzsch.c:2123 +#: if_mzsch.c:2153 +#: if_mzsch.c:2250 +#: if_mzsch.c:2314 +#: if_mzsch.c:2435 +#: if_mzsch.c:2492 +#: if_python.c:2508 +#: if_python.c:2542 +#: if_python.c:2601 +#: if_python.c:2668 +#: if_python.c:2790 +#: if_python.c:2842 +#: if_tcl.c:684 +#: if_tcl.c:729 +#: if_tcl.c:803 +#: if_tcl.c:875 +#: if_tcl.c:2017 +msgid "cannot save undo information" +msgstr "herstelinformatie kan niet worden opgeslagen" + +#: if_mzsch.c:2128 +#: if_mzsch.c:2258 +#: if_mzsch.c:2328 +#: if_python.c:2510 +#: if_python.c:2608 +#: if_python.c:2679 +msgid "cannot delete line" +msgstr "regel kan niet worden verwijderd" + +#: if_mzsch.c:2159 +#: if_mzsch.c:2343 +#: if_python.c:2547 +#: if_python.c:2695 +#: if_tcl.c:690 +#: if_tcl.c:2039 +msgid "cannot replace line" +msgstr "regel kan niet worden vervangen" + +#: if_mzsch.c:2358 +#: if_mzsch.c:2441 +#: if_mzsch.c:2502 +#: if_python.c:2713 +#: if_python.c:2792 +#: if_python.c:2850 +msgid "cannot insert line" +msgstr "regel kan niet worden ingevoegd" + +#: if_mzsch.c:2593 +#: if_python.c:2962 +msgid "string cannot contain newlines" +msgstr "tekenreeks kan geen regeleinden bevatten" + +#: if_mzsch.c:3034 +msgid "Vim error: ~a" +msgstr "Vim-fout: ~a" + +#: if_mzsch.c:3067 +msgid "Vim error" +msgstr "Vim-fout" + +#: if_mzsch.c:3133 +msgid "buffer is invalid" +msgstr "buffer is ongeldig" + +#: if_mzsch.c:3142 +msgid "window is invalid" +msgstr "venster is ongeldig" + +#: if_mzsch.c:3162 +msgid "linenr out of range" +msgstr "regelnummer buiten het bereik" + +#: if_mzsch.c:3313 +#: if_mzsch.c:3355 +msgid "not allowed in the Vim sandbox" +msgstr "niet toegestaan in de Vim-zandbak" + +#: if_python.c:517 +msgid "E263: Sorry, this command is disabled, the Python library could not be loaded." +msgstr "E263: helaas, deze opdracht is uitgeschakeld. De Python-bibliotheek kan niet worden geladen." + +#: if_python.c:583 +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Python kan niet recursief worden aangeroepen" + +#: if_python.c:776 +msgid "can't delete OutputObject attributes" +msgstr "attributen van OutputObject kunnen niet worden verwijderd" + +#: if_python.c:783 +msgid "softspace must be an integer" +msgstr "zachte spatie moet een geheel getal zijn" + +#: if_python.c:791 +msgid "invalid attribute" +msgstr "ongeldig attribuut" + +#: if_python.c:830 +#: if_python.c:844 +msgid "writelines() requires list of strings" +msgstr "writelines() vereist een lijst met tekenreeksen" + +#: if_python.c:970 +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Python: initialiseren I/O-objecten is mislukt" + +#: if_python.c:1303 +msgid "attempt to refer to deleted buffer" +msgstr "poging om naar een verwijderd buffer te verwijzen" + +#: if_python.c:1318 +#: if_python.c:1359 +#: if_python.c:1423 +#: if_tcl.c:1216 +msgid "line number out of range" +msgstr "regelnummer valt buiten het bereik" + +#: if_python.c:1558 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:1649 +#: if_tcl.c:836 +msgid "invalid mark name" +msgstr "naam markering ongeldig" + +#: if_python.c:1927 +msgid "no such buffer" +msgstr "onbekende buffer" + +#: if_python.c:2015 +msgid "attempt to refer to deleted window" +msgstr "poging om naar een verwijderd venster te verwijzen" + +#: if_python.c:2060 +msgid "readonly attribute" +msgstr "alleen-lezen attribuut" + +#: if_python.c:2074 +msgid "cursor position outside buffer" +msgstr "cursorpositie valt buiten buffer" + +#: if_python.c:2157 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:2169 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:2172 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:2246 +msgid "no such window" +msgstr "onbekend venster" + +#: if_ruby.c:554 +msgid "E265: $_ must be an instance of String" +msgstr "E265: $_ moet een instantie van String zijn" + +#: if_ruby.c:630 +msgid "E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "E266: helaas, deze opdracht is uitgeschakeld. De Ruby-bibliotheek kan niet worden geladen." + +#: if_ruby.c:662 +msgid "E267: unexpected return" +msgstr "E267: onverwacht resultaat" + +#: if_ruby.c:665 +msgid "E268: unexpected next" +msgstr "E268: onverwachte volgende" + +#: if_ruby.c:668 +msgid "E269: unexpected break" +msgstr "E269: onverwachte onderbreking" + +#: if_ruby.c:671 +msgid "E270: unexpected redo" +msgstr "E270: onverwachte herstelopdracht" + +#: if_ruby.c:674 +msgid "E271: retry outside of rescue clause" +msgstr "E271: hernieuwde poging buiten de reddingsclausule" + +#: if_ruby.c:686 +msgid "E272: unhandled exception" +msgstr "E272: niet-afgehandelde uitzondering" + +#: if_ruby.c:701 +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: onbekende longjmp-status %d" + +#: if_sniff.c:64 +msgid "Toggle implementation/definition" +msgstr "Implementatie/definitie wisselen" + +#: if_sniff.c:65 +msgid "Show base class of" +msgstr "Toon basisklasse van" + +#: if_sniff.c:66 +msgid "Show overridden member function" +msgstr "Toon overschreven member-functie" + +#: if_sniff.c:67 +msgid "Retrieve from file" +msgstr "Uit bestand halen" + +#: if_sniff.c:68 +msgid "Retrieve from project" +msgstr "Uit project halen" + +#: if_sniff.c:70 +msgid "Retrieve from all projects" +msgstr "Uit alle projecten halen" + +#: if_sniff.c:71 +msgid "Retrieve" +msgstr "Ophalen" + +#: if_sniff.c:72 +msgid "Show source of" +msgstr "Toon broncode van" + +#: if_sniff.c:73 +msgid "Find symbol" +msgstr "Zoek symbool" + +#: if_sniff.c:74 +msgid "Browse class" +msgstr "Bekijk klasse" + +#: if_sniff.c:75 +msgid "Show class in hierarchy" +msgstr "Toon klasse in hierarchie" + +#: if_sniff.c:76 +msgid "Show class in restricted hierarchy" +msgstr "Toon klasse in beperkte hierarchie" + +#: if_sniff.c:77 +msgid "Xref refers to" +msgstr "Xref verwijst naar" + +#: if_sniff.c:78 +msgid "Xref referred by" +msgstr "Xref wordt naar verwezen door" + +#: if_sniff.c:79 +msgid "Xref has a" +msgstr "Xref heeft een" + +#: if_sniff.c:80 +msgid "Xref used by" +msgstr "Xref gebruikt door" + +#: if_sniff.c:81 +msgid "Show docu of" +msgstr "Toon documentatie van" + +#: if_sniff.c:82 +msgid "Generate docu for" +msgstr "Genereer documentatie voor" + +#: if_sniff.c:94 +msgid "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).\n" +msgstr "Verbinden met SNiFF+ is mislukt. Controleer omgevingsvariabelen (sniffemacs moet in $PATH staan).\n" + +#: if_sniff.c:422 +msgid "E274: Sniff: Error during read. Disconnected" +msgstr "E274: Sniff: leesfout. Verbroken" + +#: if_sniff.c:550 +msgid "SNiFF+ is currently " +msgstr "SNiFF+ is momenteel " + +#: if_sniff.c:552 +msgid "not " +msgstr "niet " + +#: if_sniff.c:553 +msgid "connected" +msgstr "verbonden" + +#: if_sniff.c:589 +#, c-format +msgid "E275: Unknown SNiFF+ request: %s" +msgstr "E275: onbekend SNiFF+-verzoek: %s" + +#: if_sniff.c:602 +msgid "E276: Error connecting to SNiFF+" +msgstr "E276: verbinden met SNiFF+ is mislukt" + +#: if_sniff.c:1013 +msgid "E278: SNiFF+ not connected" +msgstr "E278: SNiFF+ niet verbonden" + +#: if_sniff.c:1022 +msgid "E279: Not a SNiFF+ buffer" +msgstr "E279: geen SNiFF+-buffer" + +#: if_sniff.c:1089 +msgid "Sniff: Error during write. Disconnected" +msgstr "Sniff: schrijven is mislukt. Verbroken" + +#: if_tcl.c:419 +msgid "invalid buffer number" +msgstr "buffernummer is ongeldig" + +#: if_tcl.c:465 +#: if_tcl.c:935 +#: if_tcl.c:1115 +msgid "not implemented yet" +msgstr "nog niet geïmplementeerd" + +#. ??? +#: if_tcl.c:774 +msgid "cannot set line(s)" +msgstr "kan regel(s) niet instellen" + +#: if_tcl.c:845 +msgid "mark not set" +msgstr "markering niet ingesteld" + +#: if_tcl.c:852 +#: if_tcl.c:1071 +#, c-format +msgid "row %d column %d" +msgstr "rij %d kolom %d" + +#: if_tcl.c:884 +msgid "cannot insert/append line" +msgstr "invoegen/toevoegen regel is mislukt" + +#: if_tcl.c:1270 +msgid "unknown flag: " +msgstr "unbekende instelling: " + +#: if_tcl.c:1340 +msgid "unknown vimOption" +msgstr "onbekende vim-optie" + +#: if_tcl.c:1425 +msgid "keyboard interrupt" +msgstr "toetsenbord-interrupt" + +#: if_tcl.c:1430 +msgid "vim error" +msgstr "vim-fout" + +#: if_tcl.c:1474 +msgid "cannot create buffer/window command: object is being deleted" +msgstr "aanmaken buffer-/vensteropdracht is mislukt: object wordt verwijderd" + +#: if_tcl.c:1550 +msgid "cannot register callback command: buffer/window is already being deleted" +msgstr " kan 'callback'-opdracht niet registreren: buffer/venster is reeds verwijderd" + +#. This should never happen. Famous last word? +#: if_tcl.c:1569 +msgid "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.org" +msgstr "E280: TCL FATALE FOUT: reflist misschien corrupt!? Meld dit a.u.b. aan vim-dev@vim.org" + +#: if_tcl.c:1570 +msgid "cannot register callback command: buffer/window reference not found" +msgstr "'callback'-opdracht kan niet worden geregistreerd: buffer-/vensterreferentie ontbreekt" + +#: if_tcl.c:1742 +msgid "E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "E571: Helaas, deze opdracht is uitgeschakeld: het laden van de Tcl-bibliotheek is mislukt." + +#: if_tcl.c:1904 +msgid "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org" +msgstr "E281: Tcl-fout: afsluitcode is geen geheel getal!? Meld dit a.u.b. aan vim-dev@vim.org" + +#: if_tcl.c:1909 +#, c-format +msgid "E572: exit code %d" +msgstr "E572: afsluitcode %d" + +#: if_tcl.c:2025 +msgid "cannot get line" +msgstr "kan regel niet verkrijgen" + +#: if_xcmdsrv.c:218 +msgid "Unable to register a command server name" +msgstr "Het registreren van een opdrachtservernaam is mislukt" + +#: if_xcmdsrv.c:477 +msgid "E248: Failed to send command to the destination program" +msgstr "E248: versturen van opdracht naar het doelprogramma is mislukt" + +#: if_xcmdsrv.c:750 +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: ongeldige server-id gebruikt: %s" + +#: if_xcmdsrv.c:1131 +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: registereigenschap van VIM-instantie is misvormd. Verwijderd!" + +#: main.c:138 +msgid "Unknown option argument" +msgstr "Onbekend optieargument" + +#: main.c:140 +msgid "Too many edit arguments" +msgstr "Teveel bewerkargumenten" + +#: main.c:142 +msgid "Argument missing after" +msgstr "Argument ontbreekt na" + +#: main.c:144 +msgid "Garbage after option argument" +msgstr "Rommel na optieargument" + +#: main.c:146 +msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgstr "Teveel \"+opdracht\", \"-c opdracht\" of \"--cmd opdracht\"-argumenten" + +#: main.c:148 +msgid "Invalid argument for" +msgstr "Ongeldig argument voor" + +#: main.c:517 +#, c-format +msgid "%d files to edit\n" +msgstr "%d bestanden om te bewerken\n" + +#: main.c:942 +msgid "netbeans is not supported with this GUI\n" +msgstr "Netbeans wordt door deze GUI niet ondersteund\n" + +#: main.c:1531 +msgid "This Vim was not compiled with the diff feature." +msgstr "Deze Vim is niet met de diff-functionaliteit gecompileerd" + +#: main.c:1633 +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "'-nb' kan niet worden gebruikt: was tijdens compilatie niet ingeschakeld\n" + +#: main.c:2165 +msgid "Attempt to open script file again: \"" +msgstr "Poging scriptbestand wederom te openen: \"" + +#: main.c:2174 +msgid "Cannot open for reading: \"" +msgstr "Openen om te lezen is mislukt: \"" + +#: main.c:2228 +msgid "Cannot open for script output: \"" +msgstr "Openen voor script-uitvoer is mislukt: \"" + +#: main.c:2394 +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: Fout: gvim starten vanuit Netbeans is mislukt\n" + +#: main.c:2399 +msgid "Vim: Warning: Output is not to a terminal\n" +msgstr "Vim: Waarschuwing: Uitvoer gaan niet naar een terminal\n" + +#: main.c:2401 +msgid "Vim: Warning: Input is not from a terminal\n" +msgstr "Vim: Waarschuwing: Invoer komt niet van een terminal\n" + +#. just in case.. +#: main.c:2718 +msgid "pre-vimrc command line" +msgstr "pre-vimrc-opdracjtregel" + +#: main.c:2815 +#, c-format +msgid "E282: Cannot read from \"%s\"" +msgstr "E282: Kan niet lezen vanuit \"%s\"" + +#: main.c:3032 +msgid "" +"\n" +"More info with: \"vim -h\"\n" +msgstr "" +"\n" +"Meer informatie via: \"vim -h\"\n" + +#: main.c:3065 +msgid "[file ..] edit specified file(s)" +msgstr "[bestand ..] bewerk opgegeven bestand(en)" + +#: main.c:3066 +msgid "- read text from stdin" +msgstr "- lees tekst vanuit stdin" + +#: main.c:3067 +msgid "-t tag edit file where tag is defined" +msgstr "-t tag bewerk bestand waar tag is gedefinieerd" + +#: main.c:3069 +msgid "-q [errorfile] edit file with first error" +msgstr "-q [foutbestand] bewerk bestand dat eerste fout bevat" + +#: main.c:3078 +msgid "" +"\n" +"\n" +"usage:" +msgstr "" +"\n" +"\n" +"Gebruik:" + +#: main.c:3081 +msgid " vim [arguments] " +msgstr " vim [argumenten] " + +#: main.c:3085 +msgid "" +"\n" +" or:" +msgstr "" +"\n" +" of:" + +#: main.c:3088 +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"Daar waar hoofdletters genegeerd worden kan met / vlag in hoofdletters gezet worden" + +#: main.c:3091 +msgid "" +"\n" +"\n" +"Arguments:\n" +msgstr "" +"\n" +"\n" +"Argumenten:\n" + +#: main.c:3092 +msgid "--\t\t\tOnly file names after this" +msgstr "--\t\t\tHierna alleen bestandsnamen" + +#: main.c:3094 +msgid "--literal\t\tDon't expand wildcards" +msgstr "--literal\t\tJokertekens niet vervangen" + +#: main.c:3097 +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tDeze gvim voor OLE registreren" + +#: main.c:3098 +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tgvim afmelden voor OLE" + +#: main.c:3101 +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tMet GUI opstarten (zoals \"gvim\")" + +#: main.c:3102 +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f of --nofork\tVoorgrond: niet afsplitsen tijdens opstarten GUI" + +#: main.c:3104 +msgid "-v\t\t\tVi mode (like \"vi\")" +msgstr "-v\t\t\tVi-modus (zoals \"vi\")" + +#: main.c:3105 +msgid "-e\t\t\tEx mode (like \"ex\")" +msgstr "-e\t\t\tEx-modus (zoals \"ex\")" + +#: main.c:3106 +msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" +msgstr "-s\t\t\tStille (bulk)modus (alleen bij \"ex\")" + +#: main.c:3108 +msgid "-d\t\t\tDiff mode (like \"vimdiff\")" +msgstr "-d\t\t\tDiff-modus (zoals \"vimdiff\")" + +#: main.c:3110 +msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" +msgstr "-y\t\t\tEenvoudige modus (zoals \"evim\", zonder modus)" + +#: main.c:3111 +msgid "-R\t\t\tReadonly mode (like \"view\")" +msgstr "-R\t\t\tAlleen-lezen modus (zoals \"view\")" + +#: main.c:3112 +msgid "-Z\t\t\tRestricted mode (like \"rvim\")" +msgstr "-Z\t\t\tBeperkte modus (zoals \"rvim\")" + +#: main.c:3113 +msgid "-m\t\t\tModifications (writing files) not allowed" +msgstr "-m\t\t\tAanpassingen (bestanden opslaan) niet toegestaan" + +#: main.c:3114 +msgid "-M\t\t\tModifications in text not allowed" +msgstr "-M\t\t\tTekstuele aanpassingen niet toegestaan" + +#: main.c:3115 +msgid "-b\t\t\tBinary mode" +msgstr "-b\t\t\tBinaire modus" + +#: main.c:3117 +msgid "-l\t\t\tLisp mode" +msgstr "-l\t\t\tLisp-modus" + +#: main.c:3119 +msgid "-C\t\t\tCompatible with Vi: 'compatible'" +msgstr "-C\t\t\tUitwisselbaar met Vi: 'compatible'" + +#: main.c:3120 +msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" +msgstr "-N\t\t\tNiet volledig met Vi uitwisselbaar: 'nocompatible'" + +#: main.c:3121 +msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" +msgstr "-V[N][fname]\t\tWees uitbundig [niveau N] [schrijf berichten naar fname]" + +#: main.c:3123 +msgid "-D\t\t\tDebugging mode" +msgstr "-D\t\t\tFoutopspoormodus" + +#: main.c:3125 +msgid "-n\t\t\tNo swap file, use memory only" +msgstr "-n\t\t\tGeen wisselbestand, alleen geheugen gebruiken" + +#: main.c:3126 +msgid "-r\t\t\tList swap files and exit" +msgstr "-r\t\t\tWisselbestanden tonen en stoppen" + +#: main.c:3127 +msgid "-r (with file name)\tRecover crashed session" +msgstr "-r (bestandsnaam)\tHerstel ontspoorde sessie" + +#: main.c:3128 +msgid "-L\t\t\tSame as -r" +msgstr "-L\t\t\tGelijk aan -r" + +#: main.c:3130 +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tGebruik geen newcli om venster te openen" + +#: main.c:3131 +msgid "-dev \t\tUse for I/O" +msgstr "-dev \t\tGebruik voor in- en uitvoer" + +#: main.c:3134 +msgid "-A\t\t\tstart in Arabic mode" +msgstr "-A\t\t\tIn Arabische modus starten" + +#: main.c:3137 +msgid "-H\t\t\tStart in Hebrew mode" +msgstr "-H\t\t\tIn Hebrewsche modus starten" + +#: main.c:3140 +msgid "-F\t\t\tStart in Farsi mode" +msgstr "-F\t\t\tIn Perzische modus starten" + +#: main.c:3142 +msgid "-T \tSet terminal type to " +msgstr "-T \tTerminalsoort op instellen" + +#: main.c:3143 +msgid "-u \t\tUse instead of any .vimrc" +msgstr "-u \t\tGebruik in plaats van enige .vimrc" + +#: main.c:3145 +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \t\tGebruik in plaats van enige .gvimrc" + +#: main.c:3147 +msgid "--noplugin\t\tDon't load plugin scripts" +msgstr "--noplugin\t\tGeen plugin-scripts laden" + +#: main.c:3149 +msgid "-p[N]\t\tOpen N tab pages (default: one for each file)" +msgstr "-p[N]\t\tN tabpagina's openen (standaard: 1 per bestand)" + +#: main.c:3150 +msgid "-o[N]\t\tOpen N windows (default: one for each file)" +msgstr "-o[N]\t\tN vensters openen (standaard: 1 per bestand)" + +#: main.c:3151 +msgid "-O[N]\t\tLike -o but split vertically" +msgstr "-O[N]\t\tGelijk aan -o maar vertikaal gesplitst" + +#: main.c:3153 +msgid "+\t\t\tStart at end of file" +msgstr "+\t\t\tAan einde van bestand beginnen" + +#: main.c:3154 +msgid "+\t\tStart at line " +msgstr "+\t\tOp regel beginnen" + +#: main.c:3155 +msgid "--cmd \tExecute before loading any vimrc file" +msgstr "--cmd \tOpdracht uitvoeren voor enige vimrc-bestand" + +#: main.c:3156 +msgid "-c \t\tExecute after loading the first file" +msgstr "-c \t\tOpdracht uitvoeren na eerste bestand" + +#: main.c:3157 +msgid "-S \t\tSource file after loading the first file" +msgstr "" + +#: main.c:3158 +msgid "-s \tRead Normal mode commands from file " +msgstr "" + +#: main.c:3159 +msgid "-w \tAppend all typed commands to file " +msgstr "" + +#: main.c:3160 +msgid "-W \tWrite all typed commands to file " +msgstr "" + +#: main.c:3162 +msgid "-x\t\t\tEdit encrypted files" +msgstr "" + +#: main.c:3166 +msgid "-display \tConnect vim to this particular X-server" +msgstr "" + +#: main.c:3168 +msgid "-X\t\t\tDo not connect to X server" +msgstr "" + +#: main.c:3171 +msgid "--remote \tEdit in a Vim server if possible" +msgstr "" + +#: main.c:3172 +msgid "--remote-silent Same, don't complain if there is no server" +msgstr "" + +#: main.c:3173 +msgid "--remote-wait As --remote but wait for files to have been edited" +msgstr "" + +#: main.c:3174 +msgid "--remote-wait-silent Same, don't complain if there is no server" +msgstr "" + +#: main.c:3176 +msgid "--remote-tab[-wait][-silent] As --remote but use tab page per file" +msgstr "" + +#: main.c:3178 +msgid "--remote-send \tSend to a Vim server and exit" +msgstr "" + +#: main.c:3179 +msgid "--remote-expr \tEvaluate in a Vim server and print result" +msgstr "" + +#: main.c:3180 +msgid "--serverlist\t\tList available Vim server names and exit" +msgstr "" + +#: main.c:3181 +msgid "--servername \tSend to/become the Vim server " +msgstr "" + +#: main.c:3184 +msgid "--startuptime \tWrite startup timing messages to " +msgstr "" + +#: main.c:3187 +msgid "-i \t\tUse instead of .viminfo" +msgstr "" + +#: main.c:3189 +msgid "-h or --help\tPrint Help (this message) and exit" +msgstr "-h of --help\tDit bericht tonen en stoppen" + +#: main.c:3190 +msgid "--version\t\tPrint version information and exit" +msgstr "--version\t\tVersieinformatie tonen en stoppen" + +#: main.c:3194 +msgid "" +"\n" +"Arguments recognised by gvim (Motif version):\n" +msgstr "" + +#: main.c:3198 +msgid "" +"\n" +"Arguments recognised by gvim (neXtaw version):\n" +msgstr "" + +#: main.c:3200 +msgid "" +"\n" +"Arguments recognised by gvim (Athena version):\n" +msgstr "" + +#: main.c:3204 +msgid "-display \tRun vim on " +msgstr "" + +#: main.c:3205 +msgid "-iconic\t\tStart vim iconified" +msgstr "" + +#: main.c:3207 +msgid "-name \t\tUse resource as if vim was " +msgstr "" + +#: main.c:3208 +msgid "\t\t\t (Unimplemented)\n" +msgstr "" + +#: main.c:3210 +msgid "-background \tUse for the background (also: -bg)" +msgstr "" + +#: main.c:3211 +msgid "-foreground \tUse for normal text (also: -fg)" +msgstr "" + +#: main.c:3212 +#: main.c:3232 +msgid "-font \t\tUse for normal text (also: -fn)" +msgstr "" + +#: main.c:3213 +msgid "-boldfont \tUse for bold text" +msgstr "" + +#: main.c:3214 +msgid "-italicfont \tUse for italic text" +msgstr "" + +#: main.c:3215 +#: main.c:3233 +msgid "-geometry \tUse for initial geometry (also: -geom)" +msgstr "" + +#: main.c:3216 +msgid "-borderwidth \tUse a border width of (also: -bw)" +msgstr "" + +#: main.c:3217 +msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" +msgstr "" + +#: main.c:3219 +msgid "-menuheight \tUse a menu bar height of (also: -mh)" +msgstr "" + +#: main.c:3221 +#: main.c:3234 +msgid "-reverse\t\tUse reverse video (also: -rv)" +msgstr "" + +#: main.c:3222 +msgid "+reverse\t\tDon't use reverse video (also: +rv)" +msgstr "" + +#: main.c:3223 +msgid "-xrm \tSet the specified resource" +msgstr "" + +#: main.c:3226 +msgid "" +"\n" +"Arguments recognised by gvim (RISC OS version):\n" +msgstr "" + +#: main.c:3227 +msgid "--columns \tInitial width of window in columns" +msgstr "" + +#: main.c:3228 +msgid "--rows \tInitial height of window in rows" +msgstr "" + +#: main.c:3231 +msgid "" +"\n" +"Arguments recognised by gvim (GTK+ version):\n" +msgstr "" + +#: main.c:3235 +msgid "-display \tRun vim on (also: --display)" +msgstr "" + +#: main.c:3237 +msgid "--role \tSet a unique role to identify the main window" +msgstr "" + +#: main.c:3239 +msgid "--socketid \tOpen Vim inside another GTK widget" +msgstr "" + +#: main.c:3242 +msgid "-P \tOpen Vim inside parent application" +msgstr "" + +#: main.c:3243 +msgid "--windowid \tOpen Vim inside another win32 widget" +msgstr "" + +#: main.c:3587 +msgid "No display" +msgstr "" + +#. Failed to send, abort. +#: main.c:3602 +msgid ": Send failed.\n" +msgstr "" + +#. Let vim start normally. +#: main.c:3608 +msgid ": Send failed. Trying to execute locally\n" +msgstr "" + +#: main.c:3646 +#: main.c:3667 +#, c-format +msgid "%d of %d edited" +msgstr "" + +#: main.c:3689 +msgid "No display: Send expression failed.\n" +msgstr "" + +#: main.c:3701 +msgid ": Send expression failed.\n" +msgstr "" + +#: mark.c:761 +msgid "No marks set" +msgstr "" + +#: mark.c:763 +#, c-format +msgid "E283: No marks matching \"%s\"" +msgstr "" + +#. Highlight title +#: mark.c:774 +msgid "" +"\n" +"mark line col file/text" +msgstr "" + +#. Highlight title +#: mark.c:896 +msgid "" +"\n" +" jump line col file/text" +msgstr "" + +#. Highlight title +#: mark.c:943 +msgid "" +"\n" +"change line col text" +msgstr "" + +#: mark.c:1437 +#, c-format +msgid "" +"\n" +"# File marks:\n" +msgstr "" + +#. Write the jumplist with -' +#: mark.c:1472 +#, c-format +msgid "" +"\n" +"# Jumplist (newest first):\n" +msgstr "" + +#: mark.c:1573 +#, c-format +msgid "" +"\n" +"# History of marks within files (newest to oldest):\n" +msgstr "" + +#: mark.c:1677 +msgid "Missing '>'" +msgstr "" + +#: mbyte.c:550 +msgid "E543: Not a valid codepage" +msgstr "" + +#: mbyte.c:5540 +msgid "E284: Cannot set IC values" +msgstr "" + +#: mbyte.c:5692 +msgid "E285: Failed to create input context" +msgstr "" + +#: mbyte.c:5850 +msgid "E286: Failed to open input method" +msgstr "" + +#: mbyte.c:5863 +msgid "E287: Warning: Could not set destroy callback to IM" +msgstr "" + +#: mbyte.c:5869 +msgid "E288: input method doesn't support any style" +msgstr "" + +#: mbyte.c:5928 +msgid "E289: input method doesn't support my preedit type" +msgstr "" + +#: mbyte.c:6004 +msgid "E290: over-the-spot style requires fontset" +msgstr "" + +#: mbyte.c:6040 +msgid "E291: Your GTK+ is older than 1.2.3. Status area disabled" +msgstr "" + +#: mbyte.c:6351 +msgid "E292: Input Method Server is not running" +msgstr "" + +#: memfile.c:502 +msgid "E293: block was not locked" +msgstr "" + +#: memfile.c:1045 +msgid "E294: Seek error in swap file read" +msgstr "" + +#: memfile.c:1050 +msgid "E295: Read error in swap file" +msgstr "" + +#: memfile.c:1102 +msgid "E296: Seek error in swap file write" +msgstr "" + +#: memfile.c:1120 +msgid "E297: Write error in swap file" +msgstr "" + +#: memfile.c:1317 +msgid "E300: Swap file already exists (symlink attack?)" +msgstr "" + +#: memline.c:312 +msgid "E298: Didn't get block nr 0?" +msgstr "E298: Ophalen blok nummer 0 mislukt?" + +#: memline.c:359 +msgid "E298: Didn't get block nr 1?" +msgstr "E298: Ophalen blok nummer 1 mislukt?" + +#: memline.c:377 +msgid "E298: Didn't get block nr 2?" +msgstr "E298: Ophalen blok nummer 2 mislukt?" + +#. could not (re)open the swap file, what can we do???? +#: memline.c:490 +msgid "E301: Oops, lost the swap file!!!" +msgstr "E301: Helaas, wisselbestand is verdwenen!!!" + +#: memline.c:502 +msgid "E302: Could not rename swap file" +msgstr "" + +#: memline.c:592 +#, c-format +msgid "E303: Unable to open swap file for \"%s\", recovery impossible" +msgstr "" + +#: memline.c:703 +msgid "E304: ml_upd_block0(): Didn't get block 0??" +msgstr "" + +#: memline.c:905 +#, c-format +msgid "E305: No swap file found for %s" +msgstr "" + +#: memline.c:915 +msgid "Enter number of swap file to use (0 to quit): " +msgstr "Typ het nummer van het wisselbestand om te gebruiken (0 om te stoppen): " + +#: memline.c:960 +#, c-format +msgid "E306: Cannot open %s" +msgstr "" + +#: memline.c:982 +msgid "Unable to read block 0 from " +msgstr "" + +#: memline.c:985 +msgid "" +"\n" +"Maybe no changes were made or Vim did not update the swap file." +msgstr "" + +#: memline.c:995 +#: memline.c:1012 +msgid " cannot be used with this version of Vim.\n" +msgstr "" + +#: memline.c:997 +msgid "Use Vim version 3.0.\n" +msgstr "" + +#: memline.c:1003 +#, c-format +msgid "E307: %s does not look like a Vim swap file" +msgstr "" + +#: memline.c:1016 +msgid " cannot be used on this computer.\n" +msgstr "" + +#: memline.c:1018 +msgid "The file was created on " +msgstr "" + +#: memline.c:1022 +msgid "" +",\n" +"or the file has been damaged." +msgstr "" + +#: memline.c:1040 +msgid " has been damaged (page size is smaller than minimum value).\n" +msgstr "" + +#: memline.c:1072 +#, c-format +msgid "Using swap file \"%s\"" +msgstr "Toepassen van wisselbestand \"%s\"" + +#: memline.c:1078 +#, c-format +msgid "Original file \"%s\"" +msgstr "Oorspronkelijke bestand \"%s\"" + +#: memline.c:1091 +msgid "E308: Warning: Original file may have been changed" +msgstr "" + +#: memline.c:1161 +#, c-format +msgid "E309: Unable to read block 1 from %s" +msgstr "" + +#: memline.c:1165 +msgid "???MANY LINES MISSING" +msgstr "" + +#: memline.c:1181 +msgid "???LINE COUNT WRONG" +msgstr "" + +#: memline.c:1188 +msgid "???EMPTY BLOCK" +msgstr "" + +#: memline.c:1214 +msgid "???LINES MISSING" +msgstr "" + +#: memline.c:1246 +#, c-format +msgid "E310: Block 1 ID wrong (%s not a .swp file?)" +msgstr "" + +#: memline.c:1251 +msgid "???BLOCK MISSING" +msgstr "" + +#: memline.c:1267 +msgid "??? from here until ???END lines may be messed up" +msgstr "" + +#: memline.c:1283 +msgid "??? from here until ???END lines may have been inserted/deleted" +msgstr "" + +#: memline.c:1303 +msgid "???END" +msgstr "" + +#: memline.c:1366 +msgid "E311: Recovery Interrupted" +msgstr "" + +#: memline.c:1371 +msgid "E312: Errors detected while recovering; look for lines starting with ???" +msgstr "" + +#: memline.c:1373 +msgid "See \":help E312\" for more information." +msgstr "" + +#: memline.c:1380 +msgid "Recovery completed. You should check if everything is OK." +msgstr "Herstel is afgerond. Controleer of het resultaat juist is." + +#: memline.c:1381 +msgid "" +"\n" +"(You might want to write out this file under another name\n" +msgstr "" +"\n" +"(Een advies is dit bestand onder een andere naam op te slaan\n" + +#: memline.c:1382 +msgid "and run diff with the original file to check for changes)" +msgstr "en met 'diff' te controleren op wijzigingen)" + +#: memline.c:1385 +msgid "Recovery completed. Buffer contents equals file contents." +msgstr "Herstel is afgerond. Inhoud van het buffer komt overeen met de bestandsinhoud." + +#: memline.c:1386 +msgid "" +"\n" +"You may want to delete the .swp file now.\n" +"\n" +msgstr "" +"\n" +"Het .swp-bestand kan nu verwijderd worden.\n" +"\n" + +#. use msg() to start the scrolling properly +#: memline.c:1462 +msgid "Swap files found:" +msgstr "Gevonden wisselbestanden:" + +#: memline.c:1649 +msgid " In current directory:\n" +msgstr " In huidige map:\n" + +#: memline.c:1651 +msgid " Using specified name:\n" +msgstr " Gebruikt opgegeven naam:\n" + +#: memline.c:1655 +msgid " In directory " +msgstr " In map " + +#: memline.c:1673 +msgid " -- none --\n" +msgstr " -- geen --\n" + +#: memline.c:1748 +msgid " owned by: " +msgstr " eigenaar: " + +#: memline.c:1750 +msgid " dated: " +msgstr " datum: " + +#: memline.c:1754 +#: memline.c:3794 +msgid " dated: " +msgstr " datum: " + +#: memline.c:1773 +msgid " [from Vim version 3.0]" +msgstr " [van Vim-versie 3.0]" + +#: memline.c:1777 +msgid " [does not look like a Vim swap file]" +msgstr " [lijkt geen Vvim-wisselbestand te zijn]" + +#: memline.c:1781 +msgid " file name: " +msgstr " bestandsnaam: " + +#: memline.c:1787 +msgid "" +"\n" +" modified: " +msgstr "" +"\n" +" bewerkt: " + +#: memline.c:1788 +msgid "YES" +msgstr "JA" + +#: memline.c:1788 +msgid "no" +msgstr "nee" + +#: memline.c:1792 +msgid "" +"\n" +" user name: " +msgstr "" +"\n" +" gebruikersnaam: " + +#: memline.c:1799 +msgid " host name: " +msgstr " host-naam:" + +#: memline.c:1801 +msgid "" +"\n" +" host name: " +msgstr "" +"\n" +" host-naam: " + +#: memline.c:1807 +msgid "" +"\n" +" process ID: " +msgstr "" +"\n" +" proces-id: " + +#: memline.c:1813 +msgid " (still running)" +msgstr " (nog actief)" + +#: memline.c:1825 +msgid "" +"\n" +" [not usable with this version of Vim]" +msgstr "" +"\n" +" [onbruikbaar met deze versie van Vim]" + +#: memline.c:1828 +msgid "" +"\n" +" [not usable on this computer]" +msgstr "" +"\n" +" [onbruikbaar op deze computer]" + +#: memline.c:1833 +msgid " [cannot be read]" +msgstr " [lezen is onmogelijk]" + +#: memline.c:1837 +msgid " [cannot be opened]" +msgstr " [openen is onmogelijk]" + +#: memline.c:2027 +msgid "E313: Cannot preserve, there is no swap file" +msgstr "E313: kan niet worden behouden, want er is geen wisselbestand" + +#: memline.c:2080 +msgid "File preserved" +msgstr "Bestand behouden" + +#: memline.c:2082 +msgid "E314: Preserve failed" +msgstr "E314: behouden is mislukt" + +#: memline.c:2159 +#, c-format +msgid "E315: ml_get: invalid lnum: %ld" +msgstr "" + +#: memline.c:2194 +#, c-format +msgid "E316: ml_get: cannot find line %ld" +msgstr "" + +#: memline.c:2608 +msgid "E317: pointer block id wrong 3" +msgstr "" + +#: memline.c:2688 +msgid "stack_idx should be 0" +msgstr "" + +#: memline.c:2750 +msgid "E318: Updated too many blocks?" +msgstr "" + +#: memline.c:2930 +msgid "E317: pointer block id wrong 4" +msgstr "" + +#: memline.c:2957 +msgid "deleted block 1?" +msgstr "" + +#: memline.c:3164 +#, c-format +msgid "E320: Cannot find line %ld" +msgstr "" + +#: memline.c:3413 +msgid "E317: pointer block id wrong" +msgstr "" + +#: memline.c:3429 +msgid "pe_line_count is zero" +msgstr "" + +#: memline.c:3458 +#, c-format +msgid "E322: line number out of range: %ld past the end" +msgstr "" + +#: memline.c:3462 +#, c-format +msgid "E323: line count wrong in block %ld" +msgstr "" + +#: memline.c:3511 +msgid "Stack size increases" +msgstr "" + +#: memline.c:3558 +msgid "E317: pointer block id wrong 2" +msgstr "" + +#: memline.c:3595 +#, c-format +msgid "E773: Symlink loop for \"%s\"" +msgstr "E773: Symbolische koppelingslus voor \"%s\"" + +#: memline.c:3784 +msgid "E325: ATTENTION" +msgstr "E325: OPGELET" + +#: memline.c:3785 +msgid "" +"\n" +"Found a swap file by the name \"" +msgstr "" +"\n" +"Er is een wisselbestand aangetroffen met de naam \"" + +#: memline.c:3789 +msgid "While opening file \"" +msgstr "bij het openen van bestand \"" + +#: memline.c:3802 +msgid " NEWER than swap file!\n" +msgstr " NIEUWER dan het wisselbestand!\n" + +#. Some of these messages are long to allow translation to +#. * other languages. +#: memline.c:3806 +msgid "" +"\n" +"(1) Another program may be editing the same file.\n" +" If this is the case, be careful not to end up with two\n" +" different instances of the same file when making changes.\n" +msgstr "" +"\n" +"(1) Mogelijk wordt dit bestand met een ander programma bewerkt.\n" +" Als dit het geval is, pas dan op niet met twee verschillende\n" +" versies van hetzelfde bestand te eindigen bij het bewerken.\n" + +#: memline.c:3807 +msgid " Quit, or continue with caution.\n" +msgstr " Stop of ga aandachtig verder.\n" + +#: memline.c:3808 +msgid "" +"\n" +"(2) An edit session for this file crashed.\n" +msgstr "" +"\n" +"(2) Een sessie waarin dit bestand werd bewerkt is onverhoeds gestopt.\n" + +#: memline.c:3809 +msgid " If this is the case, use \":recover\" or \"vim -r " +msgstr " Als dit het geval is, gebruikt dan \":recover\" of \"vim -r " + +#: memline.c:3811 +msgid "" +"\"\n" +" to recover the changes (see \":help recovery\").\n" +msgstr "" +"\"\n" +" om de aanpassingen te herstellen (zie \":help recovery\").\n" + +#: memline.c:3812 +msgid " If you did this already, delete the swap file \"" +msgstr " Als dit al gedaan is, verwijder dan het wisselbestand \"" + +#: memline.c:3814 +msgid "" +"\"\n" +" to avoid this message.\n" +msgstr "" +"\"\n" +" om dit bericht te voorkomen.\n" + +#: memline.c:4233 +#: memline.c:4237 +msgid "Swap file \"" +msgstr "Wisselbestand \"" + +#: memline.c:4234 +#: memline.c:4240 +msgid "\" already exists!" +msgstr "\" bestaat al!" + +#: memline.c:4243 +msgid "VIM - ATTENTION" +msgstr "VIM - OPGELET" + +#: memline.c:4245 +msgid "Swap file already exists!" +msgstr "Wisselbestand bestaat reeds." + +#: memline.c:4249 +msgid "" +"&Open Read-Only\n" +"&Edit anyway\n" +"&Recover\n" +"&Quit\n" +"&Abort" +msgstr "" +"Alleen-lezen &openen\n" +"Toch b&ewerken\n" +"He&rstellen\n" +"&Stoppen\n" +"&Afbreken" + +#: memline.c:4251 +msgid "" +"&Open Read-Only\n" +"&Edit anyway\n" +"&Recover\n" +"&Delete it\n" +"&Quit\n" +"&Abort" +msgstr "" +"Alleen-lezen &openen\n" +"Toch b&ewerken\n" +"He&rstellen\n" +"Verwij&deren\n" +"&Stoppen\n" +"&Afbreken" + +#: memline.c:4322 +msgid "E326: Too many swap files found" +msgstr "E326: teveel wisselbestanden aangetroffen" + +#: menu.c:67 +msgid "E327: Part of menu-item path is not sub-menu" +msgstr "E327: deel van menu-itempad is geen submenu" + +#: menu.c:68 +msgid "E328: Menu only exists in another mode" +msgstr "E328: menu bestaat alleen in andere modus" + +#: menu.c:69 +#, c-format +msgid "E329: No menu \"%s\"" +msgstr "E329: geen menu \"%s\"" + +#. Only a mnemonic or accelerator is not valid. +#: menu.c:480 +msgid "E792: Empty menu name" +msgstr "E792: menunaam is leeg" + +#: menu.c:498 +msgid "E330: Menu path must not lead to a sub-menu" +msgstr "" + +#: menu.c:537 +msgid "E331: Must not add menu items directly to menu bar" +msgstr "" + +#: menu.c:543 +msgid "E332: Separator cannot be part of a menu path" +msgstr "" + +#. Now we have found the matching menu, and we list the mappings +#. Highlight title +#: menu.c:1112 +msgid "" +"\n" +"--- Menus ---" +msgstr "" + +#: menu.c:2146 +msgid "Tear off this menu" +msgstr "" + +#: menu.c:2211 +msgid "E333: Menu path must lead to a menu item" +msgstr "" + +#: menu.c:2231 +#, c-format +msgid "E334: Menu not found: %s" +msgstr "" + +#: menu.c:2313 +#, c-format +msgid "E335: Menu not defined for %s mode" +msgstr "" + +#: menu.c:2351 +msgid "E336: Menu path must lead to a sub-menu" +msgstr "" + +#: menu.c:2372 +msgid "E337: Menu not found - check menu names" +msgstr "" + +#: message.c:462 +#, c-format +msgid "Error detected while processing %s:" +msgstr "Fout opgetreden tijdens verwerken van %s:" + +#: message.c:487 +#, c-format +msgid "line %4ld:" +msgstr "regel %4ld:" + +#: message.c:685 +#, c-format +msgid "E354: Invalid register name: '%s'" +msgstr "" + +#: message.c:833 +msgid "Messages maintainer: Bram Moolenaar " +msgstr "Vertaald door: Erwin Poeze " + +#: message.c:1090 +msgid "Interrupt: " +msgstr "" + +#: message.c:1092 +msgid "Press ENTER or type command to continue" +msgstr "Toets ENTER of typ een opdracht om verder te gaan" + +#: message.c:2139 +#, c-format +msgid "%s line %ld" +msgstr "%s regel %ld" + +#: message.c:2839 +msgid "-- More --" +msgstr "-- meer --" + +#: message.c:2845 +msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit " +msgstr "" + +#: message.c:3637 +#: message.c:3652 +msgid "Question" +msgstr "Vraag" + +#: message.c:3639 +msgid "" +"&Yes\n" +"&No" +msgstr "" + +#: message.c:3672 +msgid "" +"&Yes\n" +"&No\n" +"Save &All\n" +"&Discard All\n" +"&Cancel" +msgstr "" + +#: message.c:3713 +msgid "Select Directory dialog" +msgstr "" + +#: message.c:3715 +msgid "Save File dialog" +msgstr "" + +#: message.c:3717 +msgid "Open File dialog" +msgstr "" + +#. TODO: non-GUI file selector here +#: message.c:3817 +msgid "E338: Sorry, no file browser in console mode" +msgstr "" + +#: message.c:3848 +msgid "E766: Insufficient arguments for printf()" +msgstr "" + +#: message.c:3924 +msgid "E807: Expected Float argument for printf()" +msgstr "" + +#: message.c:4812 +msgid "E767: Too many arguments to printf()" +msgstr "" + +#: misc1.c:2984 +msgid "W10: Warning: Changing a readonly file" +msgstr "" + +#: misc1.c:3278 +msgid "Type number and or click with mouse (empty cancels): " +msgstr "" + +#: misc1.c:3280 +msgid "Type number and (empty cancels): " +msgstr "" + +#: misc1.c:3332 +msgid "1 more line" +msgstr "1 regel meer" + +#: misc1.c:3334 +msgid "1 line less" +msgstr "1 regel minder" + +#: misc1.c:3339 +#, c-format +msgid "%ld more lines" +msgstr "%ld regels meer" + +#: misc1.c:3341 +#, c-format +msgid "%ld fewer lines" +msgstr "%ld regels minder" + +#: misc1.c:3344 +msgid " (Interrupted)" +msgstr " (onderbroken)" + +#: misc1.c:3409 +msgid "Beep!" +msgstr "biep!" + +#: misc1.c:8394 +msgid "Vim: preserving files...\n" +msgstr "" + +#. close all memfiles, without deleting +#: misc1.c:8404 +msgid "Vim: Finished.\n" +msgstr "" + +#: misc2.c:771 +#: misc2.c:787 +#, c-format +msgid "ERROR: " +msgstr "" + +#: misc2.c:791 +#, c-format +msgid "" +"\n" +"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" +msgstr "" + +#: misc2.c:793 +#, c-format +msgid "" +"[calls] total re/malloc()'s %lu, total free()'s %lu\n" +"\n" +msgstr "" + +#: misc2.c:848 +msgid "E340: Line is becoming too long" +msgstr "" + +#: misc2.c:892 +#, c-format +msgid "E341: Internal error: lalloc(%ld, )" +msgstr "" + +#: misc2.c:1006 +#, c-format +msgid "E342: Out of memory! (allocating %lu bytes)" +msgstr "" + +#: misc2.c:3087 +#, c-format +msgid "Calling shell to execute: \"%s\"" +msgstr "" + +#: misc2.c:3356 +msgid "E545: Missing colon" +msgstr "" + +#: misc2.c:3358 +#: misc2.c:3385 +msgid "E546: Illegal mode" +msgstr "" + +#: misc2.c:3424 +msgid "E547: Illegal mouseshape" +msgstr "" + +#: misc2.c:3464 +msgid "E548: digit expected" +msgstr "" + +#: misc2.c:3469 +msgid "E549: Illegal percentage" +msgstr "" + +#: misc2.c:3864 +msgid "Enter encryption key: " +msgstr "" + +#: misc2.c:3865 +msgid "Enter same key again: " +msgstr "" + +#: misc2.c:3876 +msgid "Keys don't match!" +msgstr "" + +#: misc2.c:4418 +#, c-format +msgid "E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'." +msgstr "" + +#: misc2.c:5713 +#, c-format +msgid "E344: Can't find directory \"%s\" in cdpath" +msgstr "" + +#: misc2.c:5716 +#, c-format +msgid "E345: Can't find file \"%s\" in path" +msgstr "" + +#: misc2.c:5722 +#, c-format +msgid "E346: No more directory \"%s\" found in cdpath" +msgstr "" + +#: misc2.c:5725 +#, c-format +msgid "E347: No more file \"%s\" found in path" +msgstr "" + +#: netbeans.c:390 +msgid "Cannot connect to Netbeans #2" +msgstr "" + +#: netbeans.c:400 +msgid "Cannot connect to Netbeans" +msgstr "" + +#: netbeans.c:445 +#, c-format +msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" +msgstr "" + +#: netbeans.c:798 +msgid "read from Netbeans socket" +msgstr "" + +#: netbeans.c:1950 +#, c-format +msgid "E658: NetBeans connection lost for buffer %ld" +msgstr "" + +#: netbeans.c:2976 +msgid "E511: netbeans already connected" +msgstr "" + +#: netbeans.c:3911 +msgid "E505: " +msgstr "" + +#: normal.c:186 +msgid "E349: No identifier under cursor" +msgstr "" + +#: normal.c:2206 +msgid "E774: 'operatorfunc' is empty" +msgstr "" + +#: normal.c:2225 +msgid "E775: Eval feature not available" +msgstr "" + +#: normal.c:3240 +msgid "Warning: terminal cannot highlight" +msgstr "waarschuwing: terminal kan niet oplichten" + +#: normal.c:3535 +msgid "E348: No string under cursor" +msgstr "" + +#: normal.c:4887 +msgid "E352: Cannot erase folds with current 'foldmethod'" +msgstr "" + +#: normal.c:7449 +msgid "E664: changelist is empty" +msgstr "E664: wijzigingslijst is leeg" + +#: normal.c:7451 +msgid "E662: At start of changelist" +msgstr "E662: begin van wijzigingslijst" + +#: normal.c:7453 +msgid "E663: At end of changelist" +msgstr "E663: einde van wijzigingslijst" + +#: normal.c:8854 +msgid "Type :quit to exit Vim" +msgstr "Typ :quit om Vim te verlaten" + +#: ops.c:293 +#, c-format +msgid "1 line %sed 1 time" +msgstr "1 regel %sed 1 maal" + +#: ops.c:295 +#, c-format +msgid "1 line %sed %d times" +msgstr "1 regel %sed %d maal" + +#: ops.c:300 +#, c-format +msgid "%ld lines %sed 1 time" +msgstr "%ld regels %sed 1 maal" + +#: ops.c:303 +#, c-format +msgid "%ld lines %sed %d times" +msgstr "%ld regels %sed %d maal" + +#: ops.c:691 +#, c-format +msgid "%ld lines to indent... " +msgstr "%ld in te springen regels... " + +#: ops.c:742 +msgid "1 line indented " +msgstr "1 regel ingesprongen " + +#: ops.c:744 +#, c-format +msgid "%ld lines indented " +msgstr "%ld regels ingesprongen " + +#: ops.c:1170 +msgid "E748: No previously used register" +msgstr "" + +#. must display the prompt +#: ops.c:1741 +msgid "cannot yank; delete anyway" +msgstr "kopiëren niet mogelijk; toch verwijderd" + +#: ops.c:2338 +msgid "1 line changed" +msgstr "1 regel gewijzigd" + +#: ops.c:2340 +#, c-format +msgid "%ld lines changed" +msgstr "%ld regels gewijzigd" + +#: ops.c:2795 +#, c-format +msgid "freeing %ld lines" +msgstr "" + +#: ops.c:3080 +msgid "block of 1 line yanked" +msgstr "blok van 1 regel gekopieerd" + +#: ops.c:3083 +msgid "1 line yanked" +msgstr "1 regel gekopieerd" + +#: ops.c:3087 +#, c-format +msgid "block of %ld lines yanked" +msgstr "blok van %ld regels gekopieerd" + +#: ops.c:3090 +#, c-format +msgid "%ld lines yanked" +msgstr "%ld regels gekopieerd" + +#: ops.c:3385 +#, c-format +msgid "E353: Nothing in register %s" +msgstr "E353: niets in register %s" + +#. Highlight title +#: ops.c:3977 +msgid "" +"\n" +"--- Registers ---" +msgstr "" +"\n" +"--- Registers ---" + +#: ops.c:5351 +msgid "Illegal register name" +msgstr "ongeldige registernaam" + +#: ops.c:5447 +#, c-format +msgid "" +"\n" +"# Registers:\n" +msgstr "" +"\n" +"# Registers:\n" + +#: ops.c:5504 +#, c-format +msgid "E574: Unknown register type %d" +msgstr "" + +#: ops.c:6445 +#, c-format +msgid "%ld Cols; " +msgstr "%ld koln; " + +#: ops.c:6454 +#, c-format +msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes" +msgstr "geselecteerd %s%ld van %ld regels; %ld van %ld woorden; %ld van %ld bytes" + +#: ops.c:6461 +#, c-format +msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes" +msgstr "geselecteerd %s%ld van %ld regels; %ld van %ld woorden; %ld van %ld rekens; %ld van %ld bytes" + +#: ops.c:6480 +#, c-format +msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld" +msgstr "kol %s van %s; regel %ld van %ld; woord %ld van %ld; byte %ld van %ld" + +#: ops.c:6488 +#, c-format +msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld" +msgstr "kol %s van %s; regel %ld van %ld; woord %ld van %ld; teken %ld van %ld; byte %ld van %ld" + +#: ops.c:6500 +#, c-format +msgid "(+%ld for BOM)" +msgstr "(+%ld voor BOD)" + +#: option.c:1991 +msgid "%<%f%h%m%=Page %N" +msgstr "%<%f%h%m%=pagina %N" + +#: option.c:2565 +msgid "Thanks for flying Vim" +msgstr "Dank voor het gebruik van Vim" + +#: option.c:4179 +#: option.c:4322 +msgid "E518: Unknown option" +msgstr "E518: onbekende optie" + +#: option.c:4192 +msgid "E519: Option not supported" +msgstr "E519: optie niet ondersteund" + +#: option.c:4230 +msgid "E520: Not allowed in a modeline" +msgstr "" + +#: option.c:4448 +msgid "E521: Number required after =" +msgstr "" + +#: option.c:4773 +#: option.c:5579 +msgid "E522: Not found in termcap" +msgstr "" + +#: option.c:4890 +#, c-format +msgid "E539: Illegal character <%s>" +msgstr "" + +#: option.c:5571 +msgid "E529: Cannot set 'term' to empty string" +msgstr "" + +#: option.c:5574 +msgid "E530: Cannot change term in GUI" +msgstr "" + +#: option.c:5576 +msgid "E531: Use \":gui\" to start the GUI" +msgstr "" + +#: option.c:5605 +msgid "E589: 'backupext' and 'patchmode' are equal" +msgstr "" + +#: option.c:5833 +msgid "E617: Cannot be changed in the GTK+ 2 GUI" +msgstr "" + +#: option.c:6015 +msgid "E524: Missing colon" +msgstr "" + +#: option.c:6017 +msgid "E525: Zero length string" +msgstr "" + +#: option.c:6100 +#, c-format +msgid "E526: Missing number after <%s>" +msgstr "" + +#: option.c:6114 +msgid "E527: Missing comma" +msgstr "" + +#: option.c:6121 +msgid "E528: Must specify a ' value" +msgstr "" + +#: option.c:6170 +msgid "E595: contains unprintable or wide character" +msgstr "" + +#: option.c:6214 +msgid "E596: Invalid font(s)" +msgstr "" + +#: option.c:6223 +msgid "E597: can't select fontset" +msgstr "" + +#: option.c:6225 +msgid "E598: Invalid fontset" +msgstr "" + +#: option.c:6233 +msgid "E533: can't select wide font" +msgstr "" + +#: option.c:6235 +msgid "E534: Invalid wide font" +msgstr "" + +#: option.c:6564 +#, c-format +msgid "E535: Illegal character after <%c>" +msgstr "E535: ongeldig teken na <%c>" + +#: option.c:6688 +msgid "E536: comma required" +msgstr "E536: komma is vereist" + +#: option.c:6698 +#, c-format +msgid "E537: 'commentstring' must be empty or contain %s" +msgstr "E537: 'commentstring' moet leeg zijn of het volgende bevatten: %s" + +#: option.c:6779 +msgid "E538: No mouse support" +msgstr "E538: geen muisondersteuning" + +#: option.c:7104 +msgid "E540: Unclosed expression sequence" +msgstr "E540: ongepaarde expressie-volgorde" + +#: option.c:7108 +msgid "E541: too many items" +msgstr "E541: teveel items" + +#: option.c:7110 +msgid "E542: unbalanced groups" +msgstr "E542: ongepaarde groepen" + +#: option.c:7461 +msgid "E590: A preview window already exists" +msgstr "E590: een voorvertoningsvenster bestaat al" + +#: option.c:7716 +msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'" +msgstr "W17: Arabisch vereist UTF-8, typ ':set encoding=utf-8'" + +#: option.c:8172 +#, c-format +msgid "E593: Need at least %d lines" +msgstr "E593: vereist minstens %d regels" + +#: option.c:8182 +#, c-format +msgid "E594: Need at least %d columns" +msgstr "E594: vereist minstens %d kolommen" + +#: option.c:8501 +#, c-format +msgid "E355: Unknown option: %s" +msgstr "E355: onbekende optie: %s" + +#. There's another character after zeros or the string +#. * is empty. In both cases, we are trying to set a +#. * num option using a string. +#: option.c:8533 +#, c-format +msgid "E521: Number required: &%s = '%s'" +msgstr "E521: 'Number' vereist: &%s = '%s'" + +#: option.c:8657 +msgid "" +"\n" +"--- Terminal codes ---" +msgstr "" +"\n" +"--- Terminal-codes ---" + +#: option.c:8659 +msgid "" +"\n" +"--- Global option values ---" +msgstr "" +"\n" +"--- Globale optiewaarden ---" + +#: option.c:8661 +msgid "" +"\n" +"--- Local option values ---" +msgstr "" +"\n" +"--- Lokale optiewaarden ---" + +#: option.c:8663 +msgid "" +"\n" +"--- Options ---" +msgstr "" +"\n" +"--- Opties ---" + +#: option.c:9489 +msgid "E356: get_varp ERROR" +msgstr "" + +#: option.c:10604 +#, c-format +msgid "E357: 'langmap': Matching character missing for %s" +msgstr "" + +#: option.c:10628 +#, c-format +msgid "E358: 'langmap': Extra characters after semicolon: %s" +msgstr "" + +#: os_amiga.c:278 +msgid "cannot open " +msgstr "gefaald tijden openen van " + +#: os_amiga.c:313 +msgid "VIM: Can't open window!\n" +msgstr "VIM: kan venster niet openen!\n" + +#: os_amiga.c:340 +msgid "Need Amigados version 2.04 or later\n" +msgstr "Vereist Amigados versie 2.04 of nieuwer\n" + +#: os_amiga.c:346 +#, c-format +msgid "Need %s version %ld\n" +msgstr "Vereist %s versie %ld\n" + +#: os_amiga.c:419 +msgid "Cannot open NIL:\n" +msgstr "" + +#: os_amiga.c:437 +msgid "Cannot create " +msgstr "Gefaald tijdens aanmaken van " + +#: os_amiga.c:943 +#, c-format +msgid "Vim exiting with %d\n" +msgstr "Vim stoppen met %d\n" + +#: os_amiga.c:979 +msgid "cannot change console mode ?!\n" +msgstr "" + +#: os_amiga.c:1057 +msgid "mch_get_shellsize: not a console??\n" +msgstr "" + +#. if Vim opened a window: Executing a shell may cause crashes +#: os_amiga.c:1212 +msgid "E360: Cannot execute shell with -f option" +msgstr "" + +#: os_amiga.c:1253 +#: os_amiga.c:1343 +msgid "Cannot execute " +msgstr "" + +#: os_amiga.c:1256 +#: os_amiga.c:1353 +msgid "shell " +msgstr "" + +#: os_amiga.c:1276 +#: os_amiga.c:1378 +msgid " returned\n" +msgstr "" + +#: os_amiga.c:1540 +msgid "ANCHOR_BUF_SIZE too small." +msgstr "" + +#: os_amiga.c:1544 +msgid "I/O ERROR" +msgstr "" + +#: os_mswin.c:595 +msgid "Message" +msgstr "" + +#: os_mswin.c:710 +msgid "'columns' is not 80, cannot execute external commands" +msgstr "" + +#: os_mswin.c:2143 +msgid "E237: Printer selection failed" +msgstr "" + +#: os_mswin.c:2183 +#, c-format +msgid "to %s on %s" +msgstr "" + +#: os_mswin.c:2198 +#, c-format +msgid "E613: Unknown printer font: %s" +msgstr "" + +#: os_mswin.c:2247 +#: os_mswin.c:2257 +#, c-format +msgid "E238: Print error: %s" +msgstr "" + +#: os_mswin.c:2285 +#, c-format +msgid "Printing '%s'" +msgstr "" + +#: os_mswin.c:3461 +#, c-format +msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" +msgstr "" + +#: os_mswin.c:3471 +#, c-format +msgid "E245: Illegal char '%c' in font name \"%s\"" +msgstr "" + +#: os_riscos.c:1263 +msgid "E366: Invalid 'osfiletype' option - using Text" +msgstr "" + +#: os_unix.c:1083 +msgid "Vim: Double signal, exiting\n" +msgstr "Vim: dubbel signaal, stoppen\n" + +#: os_unix.c:1089 +#, c-format +msgid "Vim: Caught deadly signal %s\n" +msgstr "Vim: fataal signaal gevangen %s\n" + +#: os_unix.c:1092 +#, c-format +msgid "Vim: Caught deadly signal\n" +msgstr "Vim: fataal signaal gevangen\n" + +#: os_unix.c:1430 +#, c-format +msgid "Opening the X display took %ld msec" +msgstr "Openen van X-display vereiste %ld ms" + +#: os_unix.c:1457 +msgid "" +"\n" +"Vim: Got X error\n" +msgstr "" + +#: os_unix.c:1568 +msgid "Testing the X display failed" +msgstr "" + +#: os_unix.c:1708 +msgid "Opening the X display timed out" +msgstr "" + +#: os_unix.c:2682 +#: os_unix.c:2689 +msgid "" +"\n" +"Could not get security context for " +msgstr "" + +#: os_unix.c:2699 +msgid "" +"\n" +"Could not set security context for " +msgstr "" + +#: os_unix.c:3718 +#: os_unix.c:4643 +msgid "" +"\n" +"Cannot execute shell " +msgstr "" + +#: os_unix.c:3766 +msgid "" +"\n" +"Cannot execute shell sh\n" +msgstr "" + +#: os_unix.c:3770 +#: os_unix.c:4649 +msgid "" +"\n" +"shell returned " +msgstr "" + +#: os_unix.c:3914 +msgid "" +"\n" +"Cannot create pipes\n" +msgstr "" + +#: os_unix.c:3928 +#: os_unix.c:4192 +msgid "" +"\n" +"Cannot fork\n" +msgstr "" + +#: os_unix.c:4656 +msgid "" +"\n" +"Command terminated\n" +msgstr "" + +#: os_unix.c:4957 +#: os_unix.c:5122 +#: os_unix.c:6852 +msgid "XSMP lost ICE connection" +msgstr "" + +#: os_unix.c:6252 +#: os_unix.c:6355 +#, c-format +msgid "dlerror = \"%s\"" +msgstr "" + +#: os_unix.c:6437 +msgid "Opening the X display failed" +msgstr "" + +#: os_unix.c:6761 +msgid "XSMP handling save-yourself request" +msgstr "" + +#: os_unix.c:6875 +msgid "XSMP opening connection" +msgstr "" + +#: os_unix.c:6894 +msgid "XSMP ICE connection watch failed" +msgstr "" + +#: os_unix.c:6918 +#, c-format +msgid "XSMP SmcOpenConnection failed: %s" +msgstr "" + +#: os_vms_mms.c:60 +msgid "At line" +msgstr "Bij regel" + +#: os_w32exe.c:89 +msgid "Could not load vim32.dll!" +msgstr "" + +#: os_w32exe.c:89 +#: os_w32exe.c:100 +msgid "VIM Error" +msgstr "Vim-fout" + +#: os_w32exe.c:99 +msgid "Could not fix up function pointers to the DLL!" +msgstr "" + +#: os_win16.c:342 +#: os_win32.c:3399 +#, c-format +msgid "shell returned %d" +msgstr "" + +#: os_win32.c:2856 +#, c-format +msgid "Vim: Caught %s event\n" +msgstr "" + +#: os_win32.c:2858 +msgid "close" +msgstr "sluiten" + +#: os_win32.c:2860 +msgid "logoff" +msgstr "uitloggen" + +#: os_win32.c:2861 +msgid "shutdown" +msgstr "afsluiten" + +#: os_win32.c:3351 +msgid "E371: Command not found" +msgstr "E371: opdracht niet gevonden" + +#: os_win32.c:3364 +msgid "" +"VIMRUN.EXE not found in your $PATH.\n" +"External commands will not pause after completion.\n" +"See :help win32-vimrun for more information." +msgstr "" + +#: os_win32.c:3367 +msgid "Vim Warning" +msgstr "Vim-waarschuwing" + +#: quickfix.c:330 +#, c-format +msgid "E372: Too many %%%c in format string" +msgstr "" + +#: quickfix.c:343 +#, c-format +msgid "E373: Unexpected %%%c in format string" +msgstr "" + +#: quickfix.c:405 +msgid "E374: Missing ] in format string" +msgstr "" + +#: quickfix.c:419 +#, c-format +msgid "E375: Unsupported %%%c in format string" +msgstr "" + +#: quickfix.c:439 +#, c-format +msgid "E376: Invalid %%%c in format string prefix" +msgstr "" + +#: quickfix.c:447 +#, c-format +msgid "E377: Invalid %%%c in format string" +msgstr "" + +#: quickfix.c:473 +msgid "E378: 'errorformat' contains no pattern" +msgstr "" + +#: quickfix.c:706 +msgid "E379: Missing or empty directory name" +msgstr "" + +#: quickfix.c:1408 +msgid "E553: No more items" +msgstr "" + +#: quickfix.c:1830 +#, c-format +msgid "(%d of %d)%s%s: " +msgstr "" + +#: quickfix.c:1832 +msgid " (line deleted)" +msgstr "" + +#: quickfix.c:2055 +msgid "E380: At bottom of quickfix stack" +msgstr "" + +#: quickfix.c:2064 +msgid "E381: At top of quickfix stack" +msgstr "" + +#: quickfix.c:2078 +#, c-format +msgid "error list %d of %d; %d errors" +msgstr "" + +#: quickfix.c:2664 +msgid "E382: Cannot write, 'buftype' option is set" +msgstr "" + +#: quickfix.c:3068 +msgid "E683: File name missing or invalid pattern" +msgstr "" + +#: quickfix.c:3166 +#, c-format +msgid "Cannot open file \"%s\"" +msgstr "" + +#: quickfix.c:3703 +msgid "E681: Buffer is not loaded" +msgstr "E681: buffer is niet geladen" + +#: quickfix.c:3764 +msgid "E777: String or List expected" +msgstr "" + +#: regexp.c:331 +#, c-format +msgid "E369: invalid item in %s%%[]" +msgstr "" + +#: regexp.c:1059 +#: regexp.c:1077 +msgid "E339: Pattern too long" +msgstr "" + +#: regexp.c:1234 +msgid "E50: Too many \\z(" +msgstr "" + +#: regexp.c:1245 +#, c-format +msgid "E51: Too many %s(" +msgstr "" + +#: regexp.c:1302 +msgid "E52: Unmatched \\z(" +msgstr "E52: \\z( is niet gepaard" + +#: regexp.c:1306 +#, c-format +msgid "E53: Unmatched %s%%(" +msgstr "E53: %s%%( is niet gepaard" + +#: regexp.c:1308 +#, c-format +msgid "E54: Unmatched %s(" +msgstr "E54: %s( is niet gepaard" + +#: regexp.c:1313 +#, c-format +msgid "E55: Unmatched %s)" +msgstr "E55: %s) is ongepaard" + +#: regexp.c:1531 +#, c-format +msgid "E59: invalid character after %s@" +msgstr "" + +#: regexp.c:1565 +#, c-format +msgid "E60: Too many complex %s{...}s" +msgstr "" + +#: regexp.c:1581 +#, c-format +msgid "E61: Nested %s*" +msgstr "E61: geneste %s*" + +#: regexp.c:1584 +#, c-format +msgid "E62: Nested %s%c" +msgstr "E62: geneste %s%c" + +#: regexp.c:1704 +msgid "E63: invalid use of \\_" +msgstr "E63: onjuist gebruikt van \\_" + +#: regexp.c:1760 +#, c-format +msgid "E64: %s%c follows nothing" +msgstr "E64: %s%c volgt op niets" + +#: regexp.c:1816 +msgid "E65: Illegal back reference" +msgstr "E65: ongeldige terugverwijzing" + +#: regexp.c:1829 +msgid "E66: \\z( not allowed here" +msgstr "E66: \\z( hier niet toegestaan" + +#: regexp.c:1848 +msgid "E67: \\z1 et al. not allowed here" +msgstr "E67: \\z1 en andere hier niet toegestaan" + +#: regexp.c:1860 +msgid "E68: Invalid character after \\z" +msgstr "E68: ongeldig teken na \\z" + +#: regexp.c:1912 +#, c-format +msgid "E69: Missing ] after %s%%[" +msgstr "E69: ontbrekende ] na %s%%[" + +#: regexp.c:1928 +#, c-format +msgid "E70: Empty %s%%[]" +msgstr "E70: leeg %s%%[]" + +#: regexp.c:1973 +#, c-format +msgid "E678: Invalid character after %s%%[dxouU]" +msgstr "E678: onjuist teken na %s%%[dxouU]" + +#: regexp.c:2044 +#, c-format +msgid "E71: Invalid character after %s%%" +msgstr "E71: onjuist teken na %s%%" + +#: regexp.c:2337 +#, c-format +msgid "E769: Missing ] after %s[" +msgstr "E769: ontbrekende ] na %s[" + +#: regexp.c:3033 +#, c-format +msgid "E554: Syntax error in %s{...}" +msgstr "E554: Syntaxfout in %s{...}" + +#: regexp.c:3876 +msgid "External submatches:\n" +msgstr "" + +#: screen.c:9356 +msgid " VREPLACE" +msgstr "" + +#: screen.c:9360 +msgid " REPLACE" +msgstr " VERVANGEN" + +#: screen.c:9365 +msgid " REVERSE" +msgstr "" + +#: screen.c:9367 +msgid " INSERT" +msgstr " INVOEGEN" + +#: screen.c:9370 +msgid " (insert)" +msgstr " (invoegen)" + +#: screen.c:9372 +msgid " (replace)" +msgstr " (vervangen)" + +#: screen.c:9374 +msgid " (vreplace)" +msgstr "" + +#: screen.c:9377 +msgid " Hebrew" +msgstr "" + +#: screen.c:9388 +msgid " Arabic" +msgstr "" + +#: screen.c:9391 +msgid " (lang)" +msgstr "" + +#: screen.c:9395 +msgid " (paste)" +msgstr "" + +#: screen.c:9408 +msgid " VISUAL" +msgstr " VISUEEL" + +#: screen.c:9409 +msgid " VISUAL LINE" +msgstr " VISUELE REGEL" + +#: screen.c:9410 +msgid " VISUAL BLOCK" +msgstr " VISUEEL BLOK" + +#: screen.c:9411 +msgid " SELECT" +msgstr " SELECTEREN" + +#: screen.c:9412 +msgid " SELECT LINE" +msgstr " REGELSELECTIE" + +#: screen.c:9413 +msgid " SELECT BLOCK" +msgstr " BLOKSELECTIE" + +#: screen.c:9429 +#: screen.c:9495 +msgid "recording" +msgstr "opnemen" + +#: search.c:562 +#, c-format +msgid "E383: Invalid search string: %s" +msgstr "E383: ongeldige zoekstring: %s" + +#: search.c:983 +#, c-format +msgid "E384: search hit TOP without match for: %s" +msgstr "E384: TOP bereikt zonder overeenkomst voor: %s" + +#: search.c:986 +#, c-format +msgid "E385: search hit BOTTOM without match for: %s" +msgstr "E385: BODEM bereikt zonder overeenkomst voor: %s" + +#: search.c:1418 +msgid "E386: Expected '?' or '/' after ';'" +msgstr "E386: verwachte '?' of '/' na ';'" + +#: search.c:4691 +msgid " (includes previously listed match)" +msgstr " (bevat eerder getoonde overeenkomst)" + +#. cursor at status line +#: search.c:4711 +msgid "--- Included files " +msgstr "--- bevatte bestanden " + +#: search.c:4713 +msgid "not found " +msgstr "niet gevonden " + +#: search.c:4714 +msgid "in path ---\n" +msgstr "in pad ---\n" + +#: search.c:4771 +msgid " (Already listed)" +msgstr " (Reeds getoond)" + +#: search.c:4773 +msgid " NOT FOUND" +msgstr " NIET GEVONDEN" + +#: search.c:4827 +#, c-format +msgid "Scanning included file: %s" +msgstr "" + +#: search.c:4836 +#, c-format +msgid "Searching included file %s" +msgstr "" + +#: search.c:5059 +msgid "E387: Match is on current line" +msgstr "" + +#: search.c:5203 +msgid "All included files were found" +msgstr "" + +#: search.c:5205 +msgid "No included files" +msgstr "" + +#: search.c:5221 +msgid "E388: Couldn't find definition" +msgstr "" + +#: search.c:5223 +msgid "E389: Couldn't find pattern" +msgstr "E389: kan zoekpatroon niet vinden" + +#: search.c:5401 +msgid "Substitute " +msgstr "Vervangen " + +#: search.c:5414 +#, c-format +msgid "" +"\n" +"# Last %sSearch Pattern:\n" +"~" +msgstr "" +"\n" +"# Laatste %szoekpatroon:\n" +"~" + +#: spell.c:984 +msgid "E759: Format error in spell file" +msgstr "" + +#: spell.c:985 +msgid "E758: Truncated spell file" +msgstr "" + +#: spell.c:986 +#, c-format +msgid "Trailing text in %s line %d: %s" +msgstr "" + +#: spell.c:987 +#, c-format +msgid "Affix name too long in %s line %d: %s" +msgstr "" + +#: spell.c:988 +msgid "E761: Format error in affix file FOL, LOW or UPP" +msgstr "" + +#: spell.c:989 +msgid "E762: Character in FOL, LOW or UPP is out of range" +msgstr "" + +#: spell.c:990 +msgid "Compressing word tree..." +msgstr "" + +#: spell.c:2146 +msgid "E756: Spell checking is not enabled" +msgstr "" + +#: spell.c:2499 +#, c-format +msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" +msgstr "" + +#: spell.c:2773 +#, c-format +msgid "Reading spell file \"%s\"" +msgstr "" + +#: spell.c:2805 +msgid "E757: This does not look like a spell file" +msgstr "" + +#: spell.c:2811 +msgid "E771: Old spell file, needs to be updated" +msgstr "" + +#: spell.c:2816 +msgid "E772: Spell file is for newer version of Vim" +msgstr "" + +#: spell.c:2919 +msgid "E770: Unsupported section in spell file" +msgstr "" + +#: spell.c:4320 +#, c-format +msgid "Warning: region %s not supported" +msgstr "" + +#: spell.c:5207 +#, c-format +msgid "Reading affix file %s ..." +msgstr "" + +#: spell.c:5255 +#: spell.c:6599 +#: spell.c:7178 +#, c-format +msgid "Conversion failure for word in %s line %d: %s" +msgstr "" + +#: spell.c:5303 +#: spell.c:7213 +#, c-format +msgid "Conversion in %s not supported: from %s to %s" +msgstr "" + +#: spell.c:5307 +#: spell.c:7218 +#, c-format +msgid "Conversion in %s not supported" +msgstr "" + +#: spell.c:5320 +#, c-format +msgid "Invalid value for FLAG in %s line %d: %s" +msgstr "" + +#: spell.c:5333 +#, c-format +msgid "FLAG after using flags in %s line %d: %s" +msgstr "" + +#: spell.c:5424 +#, c-format +msgid "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d" +msgstr "" + +#: spell.c:5433 +#, c-format +msgid "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d" +msgstr "" + +#: spell.c:5454 +#, c-format +msgid "Wrong COMPOUNDRULES value in %s line %d: %s" +msgstr "" + +#: spell.c:5481 +#, c-format +msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s" +msgstr "" + +#: spell.c:5489 +#, c-format +msgid "Wrong COMPOUNDMIN value in %s line %d: %s" +msgstr "" + +#: spell.c:5497 +#, c-format +msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s" +msgstr "" + +#: spell.c:5519 +#, c-format +msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s" +msgstr "" + +#: spell.c:5585 +#, c-format +msgid "Different combining flag in continued affix block in %s line %d: %s" +msgstr "" + +#: spell.c:5588 +#, c-format +msgid "Duplicate affix in %s line %d: %s" +msgstr "" + +#: spell.c:5610 +#, c-format +msgid "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %s" +msgstr "" + +#: spell.c:5634 +#, c-format +msgid "Expected Y or N in %s line %d: %s" +msgstr "" + +#: spell.c:5718 +#, c-format +msgid "Broken condition in %s line %d: %s" +msgstr "" + +#: spell.c:5866 +#, c-format +msgid "Expected REP(SAL) count in %s line %d" +msgstr "" + +#: spell.c:5901 +#, c-format +msgid "Expected MAP count in %s line %d" +msgstr "" + +#: spell.c:5920 +#, c-format +msgid "Duplicate character in MAP in %s line %d" +msgstr "" + +#: spell.c:5977 +#, c-format +msgid "Unrecognized or duplicate item in %s line %d: %s" +msgstr "" + +#: spell.c:6005 +#, c-format +msgid "Missing FOL/LOW/UPP line in %s" +msgstr "" + +#: spell.c:6031 +msgid "COMPOUNDSYLMAX used without SYLLABLE" +msgstr "" + +#: spell.c:6049 +msgid "Too many postponed prefixes" +msgstr "" + +#: spell.c:6051 +msgid "Too many compound flags" +msgstr "" + +#: spell.c:6053 +msgid "Too many postponed prefixes and/or compound flags" +msgstr "" + +#: spell.c:6065 +#, c-format +msgid "Missing SOFO%s line in %s" +msgstr "" + +#: spell.c:6068 +#, c-format +msgid "Both SAL and SOFO lines in %s" +msgstr "" + +#: spell.c:6175 +#, c-format +msgid "Flag is not a number in %s line %d: %s" +msgstr "" + +#: spell.c:6178 +#, c-format +msgid "Illegal flag in %s line %d: %s" +msgstr "" + +#: spell.c:6395 +#: spell.c:6408 +#, c-format +msgid "%s value differs from what is used in another .aff file" +msgstr "" + +#: spell.c:6560 +#, c-format +msgid "Reading dictionary file %s ..." +msgstr "" + +#: spell.c:6569 +#, c-format +msgid "E760: No word count in %s" +msgstr "" + +#: spell.c:6640 +#, c-format +msgid "line %6d, word %6d - %s" +msgstr "" + +#: spell.c:6664 +#, c-format +msgid "Duplicate word in %s line %d: %s" +msgstr "" + +#: spell.c:6667 +#, c-format +msgid "First duplicate word in %s line %d: %s" +msgstr "" + +#: spell.c:6722 +#, c-format +msgid "%d duplicate word(s) in %s" +msgstr "" + +#: spell.c:6724 +#, c-format +msgid "Ignored %d word(s) with non-ASCII characters in %s" +msgstr "" + +#: spell.c:7147 +#, c-format +msgid "Reading word file %s ..." +msgstr "" + +#: spell.c:7197 +#, c-format +msgid "Duplicate /encoding= line ignored in %s line %d: %s" +msgstr "" + +#: spell.c:7200 +#, c-format +msgid "/encoding= line after word ignored in %s line %d: %s" +msgstr "" + +#: spell.c:7227 +#, c-format +msgid "Duplicate /regions= line ignored in %s line %d: %s" +msgstr "" + +#: spell.c:7233 +#, c-format +msgid "Too many regions in %s line %d: %s" +msgstr "" + +#: spell.c:7247 +#, c-format +msgid "/ line ignored in %s line %d: %s" +msgstr "" + +#: spell.c:7277 +#, c-format +msgid "Invalid region nr in %s line %d: %s" +msgstr "" + +#: spell.c:7285 +#, c-format +msgid "Unrecognized flags in %s line %d: %s" +msgstr "" + +#: spell.c:7315 +#, c-format +msgid "Ignored %d words with non-ASCII characters" +msgstr "" + +#: spell.c:7776 +#, c-format +msgid "Compressed %d of %d nodes; %d (%d%%) remaining" +msgstr "" + +#: spell.c:8567 +msgid "Reading back spell file..." +msgstr "" + +#. +#. * Go through the trie of good words, soundfold each word and add it to +#. * the soundfold trie. +#. +#: spell.c:8588 +msgid "Performing soundfolding..." +msgstr "" + +#: spell.c:8601 +#, c-format +msgid "Number of words after soundfolding: %ld" +msgstr "" + +#: spell.c:8726 +#, c-format +msgid "Total number of words: %d" +msgstr "" + +#: spell.c:8943 +#, c-format +msgid "Writing suggestion file %s ..." +msgstr "" + +#: spell.c:9004 +#: spell.c:9265 +#, c-format +msgid "Estimated runtime memory use: %d bytes" +msgstr "" + +#: spell.c:9136 +msgid "E751: Output file name must not have region name" +msgstr "" + +#: spell.c:9138 +msgid "E754: Only up to 8 regions supported" +msgstr "" + +#: spell.c:9168 +#, c-format +msgid "E755: Invalid region in %s" +msgstr "" + +#: spell.c:9239 +msgid "Warning: both compounding and NOBREAK specified" +msgstr "" + +#: spell.c:9258 +#, c-format +msgid "Writing spell file %s ..." +msgstr "" + +#: spell.c:9263 +msgid "Done!" +msgstr "" + +#: spell.c:9390 +#, c-format +msgid "E765: 'spellfile' does not have %ld entries" +msgstr "" + +#: spell.c:9435 +#, c-format +msgid "Word removed from %s" +msgstr "" + +#: spell.c:9480 +#, c-format +msgid "Word added to %s" +msgstr "" + +#: spell.c:9799 +msgid "E763: Word characters differ between spell files" +msgstr "" + +#: spell.c:10177 +msgid "Sorry, no suggestions" +msgstr "" + +#: spell.c:10181 +#, c-format +msgid "Sorry, only %ld suggestions" +msgstr "" + +#. for when 'cmdheight' > 1 +#. avoid more prompt +#: spell.c:10202 +#, c-format +msgid "Change \"%.*s\" to:" +msgstr "" + +#: spell.c:10242 +#, c-format +msgid " < \"%.*s\"" +msgstr "" + +#: spell.c:10420 +msgid "E752: No previous spell replacement" +msgstr "" + +#: spell.c:10470 +#, c-format +msgid "E753: Not found: %s" +msgstr "" + +#: spell.c:10890 +#, c-format +msgid "E778: This does not look like a .sug file: %s" +msgstr "" + +#: spell.c:10897 +#, c-format +msgid "E779: Old .sug file, needs to be updated: %s" +msgstr "" + +#: spell.c:10903 +#, c-format +msgid "E780: .sug file is for newer version of Vim: %s" +msgstr "" + +#: spell.c:10913 +#, c-format +msgid "E781: .sug file doesn't match .spl file: %s" +msgstr "" + +#: spell.c:10926 +#, c-format +msgid "E782: error while reading .sug file: %s" +msgstr "" + +#. This should have been checked when generating the .spl +#. * file. +#: spell.c:13623 +msgid "E783: duplicate char in MAP entry" +msgstr "" + +#: syntax.c:3321 +#: syntax.c:3346 +#: syntax.c:3372 +#, c-format +msgid "E390: Illegal argument: %s" +msgstr "" + +#: syntax.c:3571 +#, c-format +msgid "E391: No such syntax cluster: %s" +msgstr "" + +#: syntax.c:3730 +msgid "No Syntax items defined for this buffer" +msgstr "" + +#: syntax.c:3738 +msgid "syncing on C-style comments" +msgstr "" + +#: syntax.c:3746 +msgid "no syncing" +msgstr "" + +#: syntax.c:3749 +msgid "syncing starts " +msgstr "" + +#: syntax.c:3751 +#: syntax.c:3827 +msgid " lines before top line" +msgstr "" + +#: syntax.c:3756 +msgid "" +"\n" +"--- Syntax sync items ---" +msgstr "" + +#: syntax.c:3761 +msgid "" +"\n" +"syncing on items" +msgstr "" + +#: syntax.c:3767 +msgid "" +"\n" +"--- Syntax items ---" +msgstr "" + +#: syntax.c:3790 +#, c-format +msgid "E392: No such syntax cluster: %s" +msgstr "" + +#: syntax.c:3817 +msgid "minimal " +msgstr "" + +#: syntax.c:3824 +msgid "maximal " +msgstr "" + +#: syntax.c:3836 +msgid "; match " +msgstr "" + +#: syntax.c:3838 +msgid " line breaks" +msgstr "" + +#: syntax.c:4480 +msgid "E395: contains argument not accepted here" +msgstr "" + +#: syntax.c:4491 +msgid "E396: containedin argument not accepted here" +msgstr "" + +#: syntax.c:4535 +msgid "E393: group[t]here not accepted here" +msgstr "" + +#: syntax.c:4559 +#, c-format +msgid "E394: Didn't find region item for %s" +msgstr "" + +#: syntax.c:4636 +msgid "E397: Filename required" +msgstr "" + +#: syntax.c:4759 +#, c-format +msgid "E789: Missing ']': %s" +msgstr "" + +#: syntax.c:5004 +#, c-format +msgid "E398: Missing '=': %s" +msgstr "" + +#: syntax.c:5166 +#, c-format +msgid "E399: Not enough arguments: syntax region %s" +msgstr "" + +#: syntax.c:5500 +msgid "E400: No cluster specified" +msgstr "" + +#: syntax.c:5537 +#, c-format +msgid "E401: Pattern delimiter not found: %s" +msgstr "" + +#: syntax.c:5612 +#, c-format +msgid "E402: Garbage after pattern: %s" +msgstr "" + +#: syntax.c:5701 +msgid "E403: syntax sync: line continuations pattern specified twice" +msgstr "" + +#: syntax.c:5758 +#, c-format +msgid "E404: Illegal arguments: %s" +msgstr "" + +#: syntax.c:5808 +#, c-format +msgid "E405: Missing equal sign: %s" +msgstr "" + +#: syntax.c:5814 +#, c-format +msgid "E406: Empty argument: %s" +msgstr "" + +#: syntax.c:5840 +#, c-format +msgid "E407: %s not allowed here" +msgstr "" + +#: syntax.c:5847 +#, c-format +msgid "E408: %s must be first in contains list" +msgstr "" + +#: syntax.c:5917 +#, c-format +msgid "E409: Unknown group name: %s" +msgstr "" + +#: syntax.c:6153 +#, c-format +msgid "E410: Invalid :syntax subcommand: %s" +msgstr "" + +#: syntax.c:6702 +msgid "E679: recursive loop loading syncolor.vim" +msgstr "" + +#: syntax.c:6829 +#, c-format +msgid "E411: highlight group not found: %s" +msgstr "" + +#: syntax.c:6853 +#, c-format +msgid "E412: Not enough arguments: \":highlight link %s\"" +msgstr "" + +#: syntax.c:6860 +#, c-format +msgid "E413: Too many arguments: \":highlight link %s\"" +msgstr "" + +#: syntax.c:6880 +msgid "E414: group has settings, highlight link ignored" +msgstr "" + +#: syntax.c:7012 +#, c-format +msgid "E415: unexpected equal sign: %s" +msgstr "" + +#: syntax.c:7048 +#, c-format +msgid "E416: missing equal sign: %s" +msgstr "" + +#: syntax.c:7076 +#, c-format +msgid "E417: missing argument: %s" +msgstr "" + +#: syntax.c:7113 +#, c-format +msgid "E418: Illegal value: %s" +msgstr "" + +#: syntax.c:7232 +msgid "E419: FG color unknown" +msgstr "" + +#: syntax.c:7243 +msgid "E420: BG color unknown" +msgstr "" + +#: syntax.c:7304 +#, c-format +msgid "E421: Color name or number not recognized: %s" +msgstr "" + +#: syntax.c:7537 +#, c-format +msgid "E422: terminal code too long: %s" +msgstr "" + +#: syntax.c:7584 +#, c-format +msgid "E423: Illegal argument: %s" +msgstr "" + +#: syntax.c:8145 +msgid "E424: Too many different highlighting attributes in use" +msgstr "" + +#: syntax.c:8894 +msgid "E669: Unprintable character in group name" +msgstr "" + +#: syntax.c:8903 +msgid "W18: Invalid character in group name" +msgstr "" + +#: tag.c:85 +msgid "E555: at bottom of tag stack" +msgstr "" + +#: tag.c:86 +msgid "E556: at top of tag stack" +msgstr "" + +#: tag.c:435 +msgid "E425: Cannot go before first matching tag" +msgstr "" + +#: tag.c:584 +#, c-format +msgid "E426: tag not found: %s" +msgstr "E426: tag niet gevonden: %s" + +#: tag.c:617 +msgid " # pri kind tag" +msgstr "" + +#: tag.c:620 +msgid "file\n" +msgstr "" + +#: tag.c:954 +msgid "E427: There is only one matching tag" +msgstr "" + +#: tag.c:956 +msgid "E428: Cannot go beyond last matching tag" +msgstr "" + +#: tag.c:980 +#, c-format +msgid "File \"%s\" does not exist" +msgstr "" + +#. Give an indication of the number of matching tags +#: tag.c:992 +#, c-format +msgid "tag %d of %d%s" +msgstr "" + +#: tag.c:995 +msgid " or more" +msgstr "" + +#: tag.c:997 +msgid " Using tag with different case!" +msgstr "" + +#: tag.c:1052 +#, c-format +msgid "E429: File \"%s\" does not exist" +msgstr "" + +#. Highlight title +#: tag.c:1120 +msgid "" +"\n" +" # TO tag FROM line in file/text" +msgstr "" + +#: tag.c:1547 +#, c-format +msgid "Searching tags file %s" +msgstr "" + +#: tag.c:1738 +#, c-format +msgid "E430: Tag file path truncated for %s\n" +msgstr "" + +#: tag.c:2389 +#, c-format +msgid "E431: Format error in tags file \"%s\"" +msgstr "" + +#: tag.c:2393 +#, c-format +msgid "Before byte %ld" +msgstr "" + +#: tag.c:2426 +#, c-format +msgid "E432: Tags file not sorted: %s" +msgstr "" + +#. never opened any tags file +#: tag.c:2470 +msgid "E433: No tags file" +msgstr "E433: geen tags-bestand" + +#: tag.c:2749 +msgid "Ignoring long line in tags file" +msgstr "" + +#: tag.c:3258 +msgid "E434: Can't find tag pattern" +msgstr "" + +#: tag.c:3269 +msgid "E435: Couldn't find tag, just guessing!" +msgstr "" + +#: term.c:1793 +msgid "' not known. Available builtin terminals are:" +msgstr "" + +#: term.c:1817 +msgid "defaulting to '" +msgstr "" + +#: term.c:2172 +msgid "E557: Cannot open termcap file" +msgstr "" + +#: term.c:2176 +msgid "E558: Terminal entry not found in terminfo" +msgstr "" + +#: term.c:2178 +msgid "E559: Terminal entry not found in termcap" +msgstr "" + +#: term.c:2337 +#, c-format +msgid "E436: No \"%s\" entry in termcap" +msgstr "" + +#: term.c:2814 +msgid "E437: terminal capability \"cm\" required" +msgstr "" + +#. Highlight title +#: term.c:5283 +msgid "" +"\n" +"--- Terminal keys ---" +msgstr "" + +#: ui.c:284 +msgid "new shell started\n" +msgstr "" + +#: ui.c:1886 +msgid "Vim: Error reading input, exiting...\n" +msgstr "Vim: lezen van de invoer is mislukt. Stoppen...\n" + +#: ui.c:2409 +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "" + +#. must display the prompt +#: undo.c:654 +msgid "No undo possible; continue anyway" +msgstr "" + +#. magic at start of header +#. magic after last header +#. magic at start of entry +#. magic after last entry +#. 2-byte undofile version number +#. idem, encrypted +#: undo.c:675 +#, c-format +msgid "E828: Cannot open undo file for writing: %s" +msgstr "" + +#: undo.c:784 +#, c-format +msgid "E825: Corrupted undo file (%s): %s" +msgstr "" + +#: undo.c:1195 +msgid "Cannot write undo file in any directory in 'undodir'" +msgstr "" + +#: undo.c:1243 +#, c-format +msgid "Will not overwrite with undo file, cannot read: %s" +msgstr "" + +#: undo.c:1265 +#, c-format +msgid "Will not overwrite, this is not an undo file: %s" +msgstr "" + +#: undo.c:1282 +msgid "Skipping undo file write, noting to undo" +msgstr "" + +#: undo.c:1297 +#, c-format +msgid "Writing undo file: %s" +msgstr "" + +#: undo.c:1387 +#, c-format +msgid "E829: write error in undo file: %s" +msgstr "" + +#: undo.c:1467 +#, c-format +msgid "Not reading undo file, owner differs: %s" +msgstr "" + +#: undo.c:1481 +#, c-format +msgid "Reading undo file: %s" +msgstr "" + +#: undo.c:1489 +#, c-format +msgid "E822: Cannot open undo file for reading: %s" +msgstr "" + +#: undo.c:1499 +#, c-format +msgid "E823: Not an undo file: %s" +msgstr "" + +#: undo.c:1508 +#, c-format +msgid "E832: Non-encrypted file has encrypted undo file: %s" +msgstr "" + +#: undo.c:1514 +#, c-format +msgid "E826: Undo file decryption failed: %s" +msgstr "" + +#: undo.c:1518 +#, c-format +msgid "E827: Undo file is encrypted: %s" +msgstr "" + +#: undo.c:1524 +#, c-format +msgid "E824: Incompatible undo file: %s" +msgstr "" + +#: undo.c:1542 +msgid "File contents changed, cannot use undo info" +msgstr "" + +#: undo.c:1707 +#, c-format +msgid "Finished reading undo file %s" +msgstr "" + +#: undo.c:1803 +#: undo.c:2011 +msgid "Already at oldest change" +msgstr "Reeds de laatste wijziging" + +#: undo.c:1818 +#: undo.c:2013 +msgid "Already at newest change" +msgstr "Reeds de nieuwste wijziging" + +#: undo.c:2004 +#, c-format +msgid "E830: Undo number %ld not found" +msgstr "E830: Ongedaan-nummer %ld niet gevonden" + +#: undo.c:2177 +msgid "E438: u_undo: line numbers wrong" +msgstr "E438: u_undo: regelnummers onjuist" + +#: undo.c:2415 +msgid "more line" +msgstr "extra regel" + +#: undo.c:2417 +msgid "more lines" +msgstr "extra regel" + +#: undo.c:2419 +msgid "line less" +msgstr "regel minder" + +#: undo.c:2421 +msgid "fewer lines" +msgstr "regels minder" + +#: undo.c:2426 +msgid "change" +msgstr "wijziging" + +#: undo.c:2428 +msgid "changes" +msgstr "wijzigingen" + +#: undo.c:2452 +#, c-format +msgid "%ld %s; %s #%ld %s" +msgstr "%ld %s; %s #%ld %s" + +#: undo.c:2455 +msgid "before" +msgstr "voor" + +#: undo.c:2455 +msgid "after" +msgstr "na" + +#: undo.c:2562 +msgid "Nothing to undo" +msgstr "Niets om ongedaan te maken" + +#: undo.c:2568 +msgid "number changes time" +msgstr "aantal wijzign tijd" + +#: undo.c:2601 +#, c-format +msgid "%ld seconds ago" +msgstr "%ld seconden geleden" + +#: undo.c:2616 +msgid "E790: undojoin is not allowed after undo" +msgstr "" + +#: undo.c:2666 +msgid "E439: undo list corrupt" +msgstr "" + +#: undo.c:2698 +msgid "E440: undo line missing" +msgstr "" + +#. Only MS VC 4.1 and earlier can do Win32s +#: version.c:775 +msgid "" +"\n" +"MS-Windows 16/32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 16/32-bit GUI-versie" + +#: version.c:778 +msgid "" +"\n" +"MS-Windows 64-bit GUI version" +msgstr "" +"\n" +"MS-Windows 64-bit GUI-versie" + +#: version.c:780 +msgid "" +"\n" +"MS-Windows 32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 32-bit GUIversie" + +#: version.c:784 +msgid " in Win32s mode" +msgstr " in Win32s-modus" + +#: version.c:786 +msgid " with OLE support" +msgstr "met OLE-ondersteuning" + +#: version.c:790 +msgid "" +"\n" +"MS-Windows 64-bit console version" +msgstr "" +"\n" +"MS-Windows 64-bit console-versie" + +#: version.c:792 +msgid "" +"\n" +"MS-Windows 32-bit console version" +msgstr "" +"\n" +"MS-Windows 32-bit console-versie" + +#: version.c:797 +msgid "" +"\n" +"MS-Windows 16-bit version" +msgstr "" +"\n" +"MS-Windows 16-bit-versie" + +#: version.c:801 +msgid "" +"\n" +"32-bit MS-DOS version" +msgstr "" +"\n" +"32-bit MS-DOS-versie" + +#: version.c:803 +msgid "" +"\n" +"16-bit MS-DOS version" +msgstr "" +"\n" +"16-bit MS-DOS-versie" + +#: version.c:809 +msgid "" +"\n" +"MacOS X (unix) version" +msgstr "" +"\n" +"MacOS X (unix)-versie" + +#: version.c:811 +msgid "" +"\n" +"MacOS X-versie" +msgstr "" +"\n" +"MacOS X version" + +#: version.c:814 +msgid "" +"\n" +"MacOS version" +msgstr "" +"\n" +"MacOS-versie" + +#: version.c:819 +msgid "" +"\n" +"RISC OS version" +msgstr "" +"\n" +"RISC OS-versie" + +#: version.c:822 +msgid "" +"\n" +"OpenVMS version" +msgstr "" +"\n" +"OpenVMS-versie" + +#: version.c:837 +msgid "" +"\n" +"Included patches: " +msgstr "" +"\n" +"Inclusief 'patches': " + +#: version.c:864 +msgid "" +"\n" +"Extra patches: " +msgstr "" +"\n" +"Extra 'patches': " + +#: version.c:876 +#: version.c:1240 +msgid "Modified by " +msgstr "Aangepast door " + +#: version.c:883 +msgid "" +"\n" +"Compiled " +msgstr "" +"\n" +"Gecompileerd " + +#: version.c:886 +msgid "by " +msgstr "door " + +#: version.c:898 +msgid "" +"\n" +"Huge version " +msgstr "" +"\n" +"Enorme versie " + +#: version.c:901 +msgid "" +"\n" +"Big version " +msgstr "" +"\n" +"Grote versie " + +#: version.c:904 +msgid "" +"\n" +"Normal version " +msgstr "" +"\n" +"Normale versie " + +#: version.c:907 +msgid "" +"\n" +"Small version " +msgstr "" +"\n" +"Kleine versie " + +#: version.c:909 +msgid "" +"\n" +"Tiny version " +msgstr "" +"\n" +"Mini versie " + +#: version.c:915 +msgid "without GUI." +msgstr "" + +#: version.c:920 +msgid "with GTK2-GNOME GUI." +msgstr "" + +#: version.c:922 +msgid "with GTK-GNOME GUI." +msgstr "" + +#: version.c:926 +msgid "with GTK2 GUI." +msgstr "" + +#: version.c:928 +msgid "with GTK GUI." +msgstr "" + +#: version.c:933 +msgid "with X11-Motif GUI." +msgstr "" + +#: version.c:937 +msgid "with X11-neXtaw GUI." +msgstr "" + +#: version.c:939 +msgid "with X11-Athena GUI." +msgstr "" + +#: version.c:943 +msgid "with Photon GUI." +msgstr "" + +#: version.c:946 +msgid "with GUI." +msgstr "" + +#: version.c:949 +msgid "with Carbon GUI." +msgstr "" + +#: version.c:952 +msgid "with Cocoa GUI." +msgstr "" + +#: version.c:955 +msgid "with (classic) GUI." +msgstr "" + +#: version.c:965 +msgid " Features included (+) or not (-):\n" +msgstr "" + +#: version.c:977 +msgid " system vimrc file: \"" +msgstr "" + +#: version.c:982 +msgid " user vimrc file: \"" +msgstr "" + +#: version.c:987 +msgid " 2nd user vimrc file: \"" +msgstr "" + +#: version.c:992 +msgid " 3rd user vimrc file: \"" +msgstr "" + +#: version.c:997 +msgid " user exrc file: \"" +msgstr "" + +#: version.c:1002 +msgid " 2nd user exrc file: \"" +msgstr "" + +#: version.c:1008 +msgid " system gvimrc file: \"" +msgstr "" + +#: version.c:1012 +msgid " user gvimrc file: \"" +msgstr "" + +#: version.c:1016 +msgid "2nd user gvimrc file: \"" +msgstr "" + +#: version.c:1021 +msgid "3rd user gvimrc file: \"" +msgstr "" + +#: version.c:1028 +msgid " system menu file: \"" +msgstr "" + +#: version.c:1036 +msgid " fall-back for $VIM: \"" +msgstr "" + +#: version.c:1042 +msgid " f-b for $VIMRUNTIME: \"" +msgstr "" + +#: version.c:1046 +msgid "Compilation: " +msgstr "Compilatie: " + +#: version.c:1052 +msgid "Compiler: " +msgstr "Compiler: " + +#: version.c:1057 +msgid "Linking: " +msgstr "Linking: " + +#: version.c:1062 +msgid " DEBUG BUILD" +msgstr " DEBUG BUILD" + +#: version.c:1101 +msgid "VIM - Vi IMproved" +msgstr "VIM - Vi IMproved" + +#: version.c:1103 +msgid "version " +msgstr "versie " + +#: version.c:1104 +msgid "by Bram Moolenaar et al." +msgstr "door Bram Moolenaar en anderen" + +#: version.c:1108 +msgid "Vim is open source and freely distributable" +msgstr "Vim is open-source en vrij verspreidbaar" + +#: version.c:1110 +msgid "Help poor children in Uganda!" +msgstr "Help arme kinderen in Uganda!" + +#: version.c:1111 +msgid "type :help iccf for information " +msgstr "typ :help iccf voor informatie" + +#: version.c:1113 +msgid "type :q to exit" +msgstr "typ :q om te stoppen" + +#: version.c:1114 +msgid "type :help or for on-line help" +msgstr "typ :help of voor on-line hulp" + +#: version.c:1115 +msgid "type :help version7 for version info" +msgstr "typ :help version7 voor versieinformatie" + +#: version.c:1118 +msgid "Running in Vi compatible mode" +msgstr "wordt uitgevoerd in Vi compatible-modus" + +#: version.c:1119 +msgid "type :set nocp for Vim defaults" +msgstr "typ :set nocp voor standaardinstellingen van Vim" + +#: version.c:1120 +msgid "type :help cp-default for info on this" +msgstr "typ :help cp-default voor informatie hierover" + +#: version.c:1135 +msgid "menu Help->Orphans for information " +msgstr "menu Help->Orphans voor informatie" + +#: version.c:1137 +msgid "Running modeless, typed text is inserted" +msgstr "" + +#: version.c:1138 +msgid "menu Edit->Global Settings->Toggle Insert Mode " +msgstr "" + +#: version.c:1139 +msgid " for two modes " +msgstr "" + +#: version.c:1143 +msgid "menu Edit->Global Settings->Toggle Vi Compatible" +msgstr "" + +#: version.c:1144 +msgid " for Vim defaults " +msgstr "" + +#: version.c:1191 +msgid "Sponsor Vim development!" +msgstr "Ondersteun de ontwikkeling van Vim!" + +#: version.c:1192 +msgid "Become a registered Vim user!" +msgstr "Word een geregistreerde Vim-gebruiker!" + +#: version.c:1195 +msgid "type :help sponsor for information " +msgstr "typ :help sponsor voor informatie " + +#: version.c:1196 +msgid "type :help register for information " +msgstr "typ :help register voor informatie " + +#: version.c:1198 +msgid "menu Help->Sponsor/Register for information " +msgstr "menu Help->Sponsor/Register voor informatie " + +#: version.c:1208 +msgid "WARNING: Windows 95/98/ME detected" +msgstr "Waarschuwing: Windows 95/98/ME gedetecteerd" + +#: version.c:1211 +msgid "type :help windows95 for info on this" +msgstr "typ :help windows95 voor informatie hierover" + +#: window.c:88 +msgid "Already only one window" +msgstr "Reeds beperkt tot een venster" + +#: window.c:237 +msgid "E441: There is no preview window" +msgstr "E441: er is geen voorvertoningsvenster" + +#: window.c:672 +msgid "E442: Can't split topleft and botright at the same time" +msgstr "E442: kan linkerbovenzijde en rechteronderzijde niet gelijktijdig splitsen" + +#: window.c:1491 +msgid "E443: Cannot rotate when another window is split" +msgstr "" + +#: window.c:2120 +msgid "E444: Cannot close last window" +msgstr "E444: sluiten laatste venster is mislukt" + +#: window.c:2127 +msgid "E813: Cannot close autocmd window" +msgstr "E813: sluiten autocmd-venster is mislukt" + +#: window.c:2132 +msgid "E814: Cannot close window, only autocmd window would remain" +msgstr "E814: venster kan niet sluiten want autocmd-venster blijft als enige achter" + +#: window.c:3195 +msgid "E445: Other window contains changes" +msgstr "E445: ander venster blijft achter" + +#: window.c:5885 +msgid "E446: No file name under cursor" +msgstr "E446: cursor staat niet op een bestandsnaam" + +#: window.c:6022 +#, c-format +msgid "E447: Can't find file \"%s\" in path" +msgstr "E447: bestand \"%s\" niet in pad gevonden" + +#: if_perl.xs:434 +#: globals.h:1427 +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: laden van bibliotheek %s is mislukt" + +#: if_perl.xs:685 +msgid "Sorry, this command is disabled: the Perl library could not be loaded." +msgstr "" + +#: if_perl.xs:742 +msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" +msgstr "" + +#: GvimExt/gvimext.cpp:587 +msgid "Edit with &multiple Vims" +msgstr "" + +#: GvimExt/gvimext.cpp:593 +msgid "Edit with single &Vim" +msgstr "" + +#: GvimExt/gvimext.cpp:602 +msgid "Diff with Vim" +msgstr "" + +#: GvimExt/gvimext.cpp:615 +msgid "Edit with &Vim" +msgstr "" + +#. Now concatenate +#: GvimExt/gvimext.cpp:637 +msgid "Edit with existing Vim - " +msgstr "" + +#: GvimExt/gvimext.cpp:752 +msgid "Edits the selected file(s) with Vim" +msgstr "" + +#: GvimExt/gvimext.cpp:891 +#: GvimExt/gvimext.cpp:972 +msgid "Error creating process: Check if gvim is in your path!" +msgstr "" + +#: GvimExt/gvimext.cpp:892 +#: GvimExt/gvimext.cpp:906 +#: GvimExt/gvimext.cpp:973 +msgid "gvimext.dll error" +msgstr "" + +#: GvimExt/gvimext.cpp:905 +msgid "Path length too long!" +msgstr "" + +#: globals.h:1182 +msgid "--No lines in buffer--" +msgstr "-- geen regels in buffer --" + +#. +#. * The error messages that can be shared are included here. +#. * Excluded are errors that are only used once and debugging messages. +#. +#: globals.h:1381 +msgid "E470: Command aborted" +msgstr "E470: opdracht afgebroken" + +#: globals.h:1382 +msgid "E471: Argument required" +msgstr "E471: Argument vereist" + +#: globals.h:1383 +msgid "E10: \\ should be followed by /, ? or &" +msgstr "E10: \\ moet worden gevolgd door /, ? of &" + +#: globals.h:1385 +msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgstr "E11: ongeldig in opdrachtregelvenster; voert uit, CTRL-C stopt" + +#: globals.h:1387 +msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgstr "" + +#: globals.h:1389 +msgid "E171: Missing :endif" +msgstr "" + +#: globals.h:1390 +msgid "E600: Missing :endtry" +msgstr "" + +#: globals.h:1391 +msgid "E170: Missing :endwhile" +msgstr "" + +#: globals.h:1392 +msgid "E170: Missing :endfor" +msgstr "" + +#: globals.h:1393 +msgid "E588: :endwhile without :while" +msgstr "" + +#: globals.h:1394 +msgid "E588: :endfor without :for" +msgstr "" + +#: globals.h:1396 +msgid "E13: File exists (add ! to override)" +msgstr "" + +#: globals.h:1397 +msgid "E472: Command failed" +msgstr "" + +#: globals.h:1399 +#, c-format +msgid "E234: Unknown fontset: %s" +msgstr "" + +#: globals.h:1403 +#, c-format +msgid "E235: Unknown font: %s" +msgstr "" + +#: globals.h:1406 +#, c-format +msgid "E236: Font \"%s\" is not fixed-width" +msgstr "" + +#: globals.h:1408 +msgid "E473: Internal error" +msgstr "E473: interne fout" + +#: globals.h:1409 +msgid "Interrupted" +msgstr "onderbroken" + +#: globals.h:1410 +msgid "E14: Invalid address" +msgstr "E14: ongeldig adres" + +#: globals.h:1411 +msgid "E474: Invalid argument" +msgstr "E474: ongeldig argument" + +#: globals.h:1412 +#, c-format +msgid "E475: Invalid argument: %s" +msgstr "E475: ongeldig argument: %s" + +#: globals.h:1414 +#, c-format +msgid "E15: Invalid expression: %s" +msgstr "E15: ongeldige expressie: %s" + +#: globals.h:1416 +msgid "E16: Invalid range" +msgstr "E16: ongeldig bereik" + +#: globals.h:1417 +msgid "E476: Invalid command" +msgstr "E476: ongeldige opdracht" + +#: globals.h:1419 +#, c-format +msgid "E17: \"%s\" is a directory" +msgstr "" + +#: globals.h:1422 +#, c-format +msgid "E364: Library call failed for \"%s()\"" +msgstr "" + +#: globals.h:1428 +#, c-format +msgid "E448: Could not load library function %s" +msgstr "" + +#: globals.h:1430 +msgid "E19: Mark has invalid line number" +msgstr "E19: markering heeft een ongeldig regelnummer" + +#: globals.h:1431 +msgid "E20: Mark not set" +msgstr "E20: Markering is niet ingesteld" + +#: globals.h:1432 +msgid "E21: Cannot make changes, 'modifiable' is off" +msgstr "E21: kan geen veranderingen maken, 'modifiable' is uitgeschakeld" + +#: globals.h:1433 +msgid "E22: Scripts nested too deep" +msgstr "E22: scripts " + +#: globals.h:1434 +msgid "E23: No alternate file" +msgstr "" + +#: globals.h:1435 +msgid "E24: No such abbreviation" +msgstr "" + +#: globals.h:1436 +msgid "E477: No ! allowed" +msgstr "" + +#: globals.h:1438 +msgid "E25: GUI cannot be used: Not enabled at compile time" +msgstr "" + +#: globals.h:1441 +msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" +msgstr "" + +#: globals.h:1444 +msgid "E27: Farsi cannot be used: Not enabled at compile time\n" +msgstr "" + +#: globals.h:1447 +msgid "E800: Arabic cannot be used: Not enabled at compile time\n" +msgstr "" + +#: globals.h:1450 +#, c-format +msgid "E28: No such highlight group name: %s" +msgstr "E28: naam van deze oplichtgroep is onbekend: %s" + +#: globals.h:1452 +msgid "E29: No inserted text yet" +msgstr "" + +#: globals.h:1453 +msgid "E30: No previous command line" +msgstr "" + +#: globals.h:1454 +msgid "E31: No such mapping" +msgstr "" + +#: globals.h:1455 +msgid "E479: No match" +msgstr "E479: geen overeenkomst" + +#: globals.h:1456 +#, c-format +msgid "E480: No match: %s" +msgstr "E480: geen overeenkomst: %s" + +#: globals.h:1457 +msgid "E32: No file name" +msgstr "E32: geen bestandsnaam" + +#: globals.h:1458 +msgid "E33: No previous substitute regular expression" +msgstr "E33: geen eerdere reguliere expressie substitutie" + +#: globals.h:1459 +msgid "E34: No previous command" +msgstr "E34: geen eerdere opdracht" + +#: globals.h:1460 +msgid "E35: No previous regular expression" +msgstr "E35: geen eerdere reguliere expressie" + +#: globals.h:1461 +msgid "E481: No range allowed" +msgstr "E481: een bereik is niet toegestaan" + +#: globals.h:1463 +msgid "E36: Not enough room" +msgstr "E36: onvoldoende ruimte" + +#: globals.h:1466 +#, c-format +msgid "E247: no registered server named \"%s\"" +msgstr "E247: \"%s\" niet gevonden als geregistreerde server" + +#: globals.h:1468 +#, c-format +msgid "E482: Can't create file %s" +msgstr "E482: aanmaken bestand %s is mislukt" + +#: globals.h:1469 +msgid "E483: Can't get temp file name" +msgstr "E483: bepalen naam tijdelijk bestand is mislukt" + +#: globals.h:1470 +#, c-format +msgid "E484: Can't open file %s" +msgstr "E484: openen bestand %s is mislukt" + +#: globals.h:1471 +#, c-format +msgid "E485: Can't read file %s" +msgstr "E485: lezen bestand %s is mislukt" + +#: globals.h:1472 +msgid "E37: No write since last change (add ! to override)" +msgstr "E37: niets opgeslagen sinds laatste wijziging (voeg ! toe om te forceren)" + +#: globals.h:1473 +msgid "E38: Null argument" +msgstr "E38: leeg argument (null)" + +#: globals.h:1475 +msgid "E39: Number expected" +msgstr "E39: getal verwacht" + +#: globals.h:1478 +#, c-format +msgid "E40: Can't open errorfile %s" +msgstr "E40: openen foutenbestand %s is mislukt" + +#: globals.h:1481 +msgid "E233: cannot open display" +msgstr "E233: openen scherm is mislukt" + +#: globals.h:1483 +msgid "E41: Out of memory!" +msgstr "E41: te weinig geheugen!" + +#: globals.h:1485 +msgid "Pattern not found" +msgstr "patroon niet gevonden" + +#: globals.h:1487 +#, c-format +msgid "E486: Pattern not found: %s" +msgstr "E486: patroon niet gevonden: %s" + +#: globals.h:1488 +msgid "E487: Argument must be positive" +msgstr "E487: argument moet positief zijn" + +#: globals.h:1490 +msgid "E459: Cannot go back to previous directory" +msgstr "E459: kan niet terug naar vorig Dictionary" + +#: globals.h:1494 +msgid "E42: No Errors" +msgstr "E42: geen fouten" + +#: globals.h:1495 +msgid "E776: No location list" +msgstr "" + +#: globals.h:1497 +msgid "E43: Damaged match string" +msgstr "E43: beschadigde zoekstring" + +#: globals.h:1498 +msgid "E44: Corrupted regexp program" +msgstr "E44: regexp-programma is misvormd" + +#: globals.h:1499 +msgid "E45: 'readonly' option is set (add ! to override)" +msgstr "E45: 'alleen-lezen'-optie is ingeschakeld (voeg ! toe om te overschrijven)" + +#: globals.h:1501 +#, c-format +msgid "E46: Cannot change read-only variable \"%s\"" +msgstr "E46: kan alleen-lezenvariabele \"%s\" niet veranderen" + +#: globals.h:1502 +#, c-format +msgid "E794: Cannot set variable in the sandbox: \"%s\"" +msgstr "E794: kan variabele niet instellen in de zandbak: \"%s\"" + +#: globals.h:1505 +msgid "E47: Error while reading errorfile" +msgstr "E47: fout tijdens lezen foutenbestand" + +#: globals.h:1508 +msgid "E48: Not allowed in sandbox" +msgstr "E48: niet toegestaan in zandbak" + +#: globals.h:1510 +msgid "E523: Not allowed here" +msgstr "E523: hier niet toegestaan" + +#: globals.h:1513 +msgid "E359: Screen mode setting not supported" +msgstr "E359: instelling schermmodus niet ondersteund" + +#: globals.h:1515 +msgid "E49: Invalid scroll size" +msgstr "E49: ongeldige scroll-grootte" + +#: globals.h:1516 +msgid "E91: 'shell' option is empty" +msgstr "E91: 'shell'-optie is leeg" + +#: globals.h:1518 +msgid "E255: Couldn't read in sign data!" +msgstr "" + +#: globals.h:1520 +msgid "E72: Close error on swap file" +msgstr "" + +#: globals.h:1521 +msgid "E73: tag stack empty" +msgstr "" + +#: globals.h:1522 +msgid "E74: Command too complex" +msgstr "E74: opdracht te ingewikkeld" + +#: globals.h:1523 +msgid "E75: Name too long" +msgstr "E75: te lange naam" + +#: globals.h:1524 +msgid "E76: Too many [" +msgstr "E76: teveel [" + +#: globals.h:1525 +msgid "E77: Too many file names" +msgstr "E77: teveel bestandsnamen" + +#: globals.h:1526 +msgid "E488: Trailing characters" +msgstr "E488: nakomende tekens" + +#: globals.h:1527 +msgid "E78: Unknown mark" +msgstr "E78: onbekende markering" + +#: globals.h:1528 +msgid "E79: Cannot expand wildcards" +msgstr "E79: vervangen jokertekens is mislukt" + +#: globals.h:1530 +msgid "E591: 'winheight' cannot be smaller than 'winminheight'" +msgstr "E591: 'winheight' kan niet kleiner zijn dan 'winminheight'" + +#: globals.h:1532 +msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" +msgstr "E592: 'winwidth' kan niet kleiner zijn dan 'winminwidth'" + +#: globals.h:1535 +msgid "E80: Error while writing" +msgstr "E80: opslaan is mislukt" + +#: globals.h:1536 +msgid "Zero count" +msgstr "Aantal is nul" + +#: globals.h:1538 +msgid "E81: Using not in a script context" +msgstr "E81: wordt buiten de scriptcontext gebruikt" + +#: globals.h:1541 +msgid "E449: Invalid expression received" +msgstr "E449: ontvangen expressie is ongeldig" + +#: globals.h:1544 +msgid "E463: Region is guarded, cannot modify" +msgstr "E463: Regio is bescherm en kan niet worden veranderd" + +#: globals.h:1545 +msgid "E744: NetBeans does not allow changes in read-only files" +msgstr "E744: NetBeans staat geen veranderingen in alleen-lezenbestanden toe" + +#: globals.h:1547 +#, c-format +msgid "E685: Internal error: %s" +msgstr "E685: interne fout: %s" + +#: globals.h:1548 +msgid "E363: pattern uses more memory than 'maxmempattern'" +msgstr "E363: patroon gebruikt meer geheugen dan 'maxmempattern'" + +#: globals.h:1549 +msgid "E749: empty buffer" +msgstr "E749: leeg buffer" + +#: globals.h:1552 +msgid "E682: Invalid search pattern or delimiter" +msgstr "E682: zoekpatroon of scheidingsteken is ongeldig" + +#: globals.h:1554 +msgid "E139: File is loaded in another buffer" +msgstr "E139: bestand is in een ander buffer geladen" + +#: globals.h:1557 +#, c-format +msgid "E764: Option '%s' is not set" +msgstr "E764: Optie '%s' is niet ingesteld" + +#: globals.h:1564 +msgid "search hit TOP, continuing at BOTTOM" +msgstr "zoeken bereikte TOP, verder vanaf BODEM" + +#: globals.h:1565 +msgid "search hit BOTTOM, continuing at TOP" +msgstr "zoeken bereikte BODEM, verder vanaf TOP" + diff --git a/vim.spec b/vim.spec index ae40afc7..af2a1c29 100644 --- a/vim.spec +++ b/vim.spec @@ -42,6 +42,7 @@ Source13: vim-spell-files.tar.bz2 %endif Source14: spec-template Source15: spec-template.new +Source16: nl.po Patch2002: vim-7.0-fixkeys.patch Patch2003: vim-6.2-specsyntax.patch @@ -1793,6 +1794,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %build cp -f %{SOURCE5} . +cp -f %{SOURCE16} src/po/ cd src autoconf @@ -2080,6 +2082,7 @@ rm -rf $RPM_BUILD_ROOT %lang(af) %{_datadir}/%{name}/%{vimdir}/lang/af %lang(ca) %{_datadir}/%{name}/%{vimdir}/lang/ca %lang(cs) %{_datadir}/%{name}/%{vimdir}/lang/cs +%lang(cs.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/cs.cp1250 %lang(de) %{_datadir}/%{name}/%{vimdir}/lang/de %lang(en_GB) %{_datadir}/%{name}/%{vimdir}/lang/en_GB %lang(eo) %{_datadir}/%{name}/%{vimdir}/lang/eo @@ -2089,18 +2092,26 @@ rm -rf $RPM_BUILD_ROOT %lang(ga) %{_datadir}/%{name}/%{vimdir}/lang/ga %lang(it) %{_datadir}/%{name}/%{vimdir}/lang/it %lang(ja) %{_datadir}/%{name}/%{vimdir}/lang/ja +%lang(ja.sjis) %{_datadir}/%{name}/%{vimdir}/lang/ja.sjis %lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko %lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko.UTF-8 %lang(nb) %{_datadir}/%{name}/%{vimdir}/lang/nb +%lang(nl) %{_datadir}/%{name}/%{vimdir}/lang/nl %lang(no) %{_datadir}/%{name}/%{vimdir}/lang/no %lang(pl) %{_datadir}/%{name}/%{vimdir}/lang/pl +%lang(pl.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/pl.UTF-8 +%lang(pl.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/pl.cp1250 %lang(pt_BR) %{_datadir}/%{name}/%{vimdir}/lang/pt_BR %lang(ru) %{_datadir}/%{name}/%{vimdir}/lang/ru +%lang(ru.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/ru.cp1251 %lang(sk) %{_datadir}/%{name}/%{vimdir}/lang/sk +%lang(sk.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/sk.cp1250 %lang(sv) %{_datadir}/%{name}/%{vimdir}/lang/sv %lang(uk) %{_datadir}/%{name}/%{vimdir}/lang/uk +%lang(uk.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/uk.cp1251 %lang(vi) %{_datadir}/%{name}/%{vimdir}/lang/vi %lang(zh_CN) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN +%lang(zh_CN.cp936) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN.cp936 %lang(zh_TW) %{_datadir}/%{name}/%{vimdir}/lang/zh_TW %lang(zh_CN.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN.UTF-8 %lang(zh_TW.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/zh_TW.UTF-8 From 402e05d61c48fcacaa4f5451dbce62f42f3407fe Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:55 +0100 Subject: [PATCH 121/291] - patchlevel 786 --- 7.3.786 | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 7.3.786 diff --git a/7.3.786 b/7.3.786 new file mode 100644 index 00000000..a6988219 --- /dev/null +++ b/7.3.786 @@ -0,0 +1,93 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.786 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.786 +Problem: Python threads don't run in the background (issue 103). +Solution: Move the statements to manipulate thread state. +Files: src/if_python.c + + +*** ../vim-7.3.785/src/if_python.c 2012-10-21 01:46:56.000000000 +0200 +--- src/if_python.c 2013-01-30 11:38:06.000000000 +0100 +*************** +*** 740,751 **** + #else + PyMac_Initialize(); + #endif +! /* Initialise threads, and save the state using PyGILState_Ensure. +! * Without the call to PyGILState_Ensure, thread specific state (such +! * as the system trace hook), will be lost between invocations of +! * Python code. */ + PyEval_InitThreads(); +- pygilstate = PyGILState_Ensure(); + #ifdef DYNAMIC_PYTHON + get_exceptions(); + #endif +--- 740,750 ---- + #else + PyMac_Initialize(); + #endif +! /* Initialise threads, and below save the state using +! * PyGILState_Ensure. Without the call to PyGILState_Ensure, thread +! * specific state (such as the system trace hook), will be lost +! * between invocations of Python code. */ + PyEval_InitThreads(); + #ifdef DYNAMIC_PYTHON + get_exceptions(); + #endif +*************** +*** 756,761 **** +--- 755,764 ---- + if (PythonMod_Init()) + goto fail; + ++ /* The first python thread is vim's, release the lock. */ ++ Python_SaveThread(); ++ pygilstate = PyGILState_Ensure(); ++ + globals = PyModule_GetDict(PyImport_AddModule("__main__")); + + /* Remove the element from sys.path that was added because of our +*************** +*** 764,771 **** + * the current directory in sys.path. */ + PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); + +! /* the first python thread is vim's, release the lock */ +! Python_SaveThread(); + + initialised = 1; + } +--- 767,773 ---- + * the current directory in sys.path. */ + PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); + +! PyGILState_Release(pygilstate); + + initialised = 1; + } +*** ../vim-7.3.785/src/version.c 2013-01-25 20:10:58.000000000 +0100 +--- src/version.c 2013-01-30 11:44:04.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 786, + /**/ + +-- +ARTHUR: I command you as King of the Britons to stand aside! +BLACK KNIGHT: I move for no man. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From e26d45efd4d30e04dbc00f4a417bbcf76985542f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:56 +0100 Subject: [PATCH 122/291] - patchlevel 787 --- 7.3.787 | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 7.3.787 diff --git a/7.3.787 b/7.3.787 new file mode 100644 index 00000000..0d705c73 --- /dev/null +++ b/7.3.787 @@ -0,0 +1,161 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.787 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.787 +Problem: With 'relativenumber' set it is not possible to see the absolute + line number. +Solution: For the cursor line show the absolute line number instead of a + zero. (Nazri Ramliy) +Files: src/screen.c + + +*** ../vim-7.3.786/src/screen.c 2012-12-05 16:10:21.000000000 +0100 +--- src/screen.c 2013-01-30 12:29:33.000000000 +0100 +*************** +*** 2319,2324 **** +--- 2319,2325 ---- + { + int w = number_width(wp); + long num; ++ char *fmt = "%*ld "; + + if (len > w + 1) + len = w + 1; +*************** +*** 2327,2336 **** + /* 'number' */ + num = (long)lnum; + else + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); + +! sprintf((char *)buf, "%*ld ", w, num); + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) + /* the line number isn't reversed */ +--- 2328,2344 ---- + /* 'number' */ + num = (long)lnum; + else ++ { + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); ++ if (num == 0) ++ { ++ num = lnum; ++ fmt = "%-*ld "; ++ } ++ } + +! sprintf((char *)buf, fmt, w, num); + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) + /* the line number isn't reversed */ +*************** +*** 3484,3498 **** + ) + { + long num; + + if (wp->w_p_nu) + /* 'number' */ + num = (long)lnum; + else + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); + +! sprintf((char *)extra, "%*ld ", + number_width(wp), num); + if (wp->w_skipcol > 0) + for (p_extra = extra; *p_extra == ' '; ++p_extra) +--- 3492,3514 ---- + ) + { + long num; ++ char *fmt = "%*ld "; + + if (wp->w_p_nu) + /* 'number' */ + num = (long)lnum; + else ++ { + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); ++ if (num == 0) ++ { ++ num = lnum; ++ fmt = "%-*ld "; ++ } ++ } + +! sprintf((char *)extra, fmt, + number_width(wp), num); + if (wp->w_skipcol > 0) + for (p_extra = extra; *p_extra == ' '; ++p_extra) +*************** +*** 3513,3519 **** + * the current line differently. + * TODO: Can we use CursorLine instead of CursorLineNr + * when CursorLineNr isn't set? */ +! if (wp->w_p_cul && lnum == wp->w_cursor.lnum) + char_attr = hl_attr(HLF_CLN); + #endif + } +--- 3529,3536 ---- + * the current line differently. + * TODO: Can we use CursorLine instead of CursorLineNr + * when CursorLineNr isn't set? */ +! if ((wp->w_p_cul || wp->w_p_rnu) +! && lnum == wp->w_cursor.lnum) + char_attr = hl_attr(HLF_CLN); + #endif + } +*************** +*** 10238,10249 **** + int n; + linenr_T lnum; + +! if (wp->w_p_nu) +! /* 'number' */ +! lnum = wp->w_buffer->b_ml.ml_line_count; +! else +! /* 'relativenumber' */ +! lnum = wp->w_height; + + if (lnum == wp->w_nrwidth_line_count) + return wp->w_nrwidth_width; +--- 10255,10261 ---- + int n; + linenr_T lnum; + +! lnum = wp->w_buffer->b_ml.ml_line_count; + + if (lnum == wp->w_nrwidth_line_count) + return wp->w_nrwidth_width; +*** ../vim-7.3.786/src/version.c 2013-01-30 11:44:33.000000000 +0100 +--- src/version.c 2013-01-30 12:25:10.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 787, + /**/ + +-- +ARTHUR: A scratch? Your arm's off! +BLACK KNIGHT: No, it isn't. +ARTHUR: Well, what's that then? +BLACK KNIGHT: I've had worse. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 9109f2c58a052d28942cd4b730bba5fecc368c20 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:56 +0100 Subject: [PATCH 123/291] - patchlevel 788 --- 7.3.788 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.3.788 diff --git a/7.3.788 b/7.3.788 new file mode 100644 index 00000000..99c08ce0 --- /dev/null +++ b/7.3.788 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.788 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.788 +Problem: When only using patches build fails on missing nl.po. +Solution: Create an empty nl.po file. +Files: src/po/Makefile + + +*** ../vim-7.3.787/src/po/Makefile 2013-01-17 13:35:13.000000000 +0100 +--- src/po/Makefile 2013-01-30 12:50:41.000000000 +0100 +*************** +*** 176,181 **** +--- 176,185 ---- + + converted: $(MOCONVERTED) + ++ # nl.po was added later, if it does not exist use an empty file. ++ nl.po: ++ touch nl.po ++ + # Norwegian/Bokmal: "nb" is an alias for "no". + # Copying the file is not efficient, but I don't know of another way to make + # this work. +*** ../vim-7.3.787/src/version.c 2013-01-30 12:31:32.000000000 +0100 +--- src/version.c 2013-01-30 12:45:32.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 788, + /**/ + +-- +"It's so simple to be wise. Just think of something stupid to say +and then don't say it." -- Sam Levenson + + /// 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 /// From 6eaecdf60a7a93dc90fd9e89d632b3ea339bf330 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:57 +0100 Subject: [PATCH 124/291] - patchlevel 789 --- 7.3.789 | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 7.3.789 diff --git a/7.3.789 b/7.3.789 new file mode 100644 index 00000000..d935b785 --- /dev/null +++ b/7.3.789 @@ -0,0 +1,185 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.789 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.789 (after 7.3.776) +Problem: "\k" in regexp does not work in other window. +Solution: Use the right buffer. (Yukihiro Nakadaira) +Files: src/mbyte.c, src/proto/mbyte.pro, src/regexp.c + + +*** ../vim-7.3.788/src/mbyte.c 2013-01-23 16:19:17.000000000 +0100 +--- src/mbyte.c 2013-01-30 13:53:07.000000000 +0100 +*************** +*** 869,879 **** + mb_get_class(p) + char_u *p; + { + if (MB_BYTE2LEN(p[0]) == 1) + { + if (p[0] == NUL || vim_iswhite(p[0])) + return 0; +! if (vim_iswordc(p[0])) + return 2; + return 1; + } +--- 869,887 ---- + mb_get_class(p) + char_u *p; + { ++ return mb_get_class_buf(p, curbuf); ++ } ++ ++ int ++ mb_get_class_buf(p, buf) ++ char_u *p; ++ buf_T *buf; ++ { + if (MB_BYTE2LEN(p[0]) == 1) + { + if (p[0] == NUL || vim_iswhite(p[0])) + return 0; +! if (vim_iswordc_buf(p[0], buf)) + return 2; + return 1; + } +*** ../vim-7.3.788/src/proto/mbyte.pro 2011-08-10 13:21:30.000000000 +0200 +--- src/proto/mbyte.pro 2013-01-30 13:53:27.000000000 +0100 +*************** +*** 4,9 **** +--- 4,10 ---- + int bomb_size __ARGS((void)); + void remove_bom __ARGS((char_u *s)); + int mb_get_class __ARGS((char_u *p)); ++ int mb_get_class_buf __ARGS((char_u *p, buf_T *buf)); + int dbcs_class __ARGS((unsigned lead, unsigned trail)); + int latin_char2len __ARGS((int c)); + int latin_char2bytes __ARGS((int c, char_u *buf)); +*** ../vim-7.3.788/src/regexp.c 2013-01-25 20:10:58.000000000 +0100 +--- src/regexp.c 2013-01-30 13:55:39.000000000 +0100 +*************** +*** 4013,4020 **** + reg_prev_class() + { + if (reginput > regline) +! return mb_get_class(reginput - 1 +! - (*mb_head_off)(regline, reginput - 1)); + return -1; + } + +--- 4013,4020 ---- + reg_prev_class() + { + if (reginput > regline) +! return mb_get_class_buf(reginput - 1 +! - (*mb_head_off)(regline, reginput - 1), reg_buf); + return -1; + } + +*************** +*** 4304,4310 **** + int this_class; + + /* Get class of current and previous char (if it exists). */ +! this_class = mb_get_class(reginput); + if (this_class <= 1) + status = RA_NOMATCH; /* not on a word at all */ + else if (reg_prev_class() == this_class) +--- 4304,4310 ---- + int this_class; + + /* Get class of current and previous char (if it exists). */ +! this_class = mb_get_class_buf(reginput, reg_buf); + if (this_class <= 1) + status = RA_NOMATCH; /* not on a word at all */ + else if (reg_prev_class() == this_class) +*************** +*** 4328,4334 **** + int this_class, prev_class; + + /* Get class of current and previous char (if it exists). */ +! this_class = mb_get_class(reginput); + prev_class = reg_prev_class(); + if (this_class == prev_class + || prev_class == 0 || prev_class == 1) +--- 4328,4334 ---- + int this_class, prev_class; + + /* Get class of current and previous char (if it exists). */ +! this_class = mb_get_class_buf(reginput, reg_buf); + prev_class = reg_prev_class(); + if (this_class == prev_class + || prev_class == 0 || prev_class == 1) +*************** +*** 4365,4378 **** + break; + + case KWORD: +! if (!vim_iswordp(reginput)) + status = RA_NOMATCH; + else + ADVANCE_REGINPUT(); + break; + + case SKWORD: +! if (VIM_ISDIGIT(*reginput) || !vim_iswordp(reginput)) + status = RA_NOMATCH; + else + ADVANCE_REGINPUT(); +--- 4365,4378 ---- + break; + + case KWORD: +! if (!vim_iswordp_buf(reginput, reg_buf)) + status = RA_NOMATCH; + else + ADVANCE_REGINPUT(); + break; + + case SKWORD: +! if (VIM_ISDIGIT(*reginput) || !vim_iswordp_buf(reginput, reg_buf)) + status = RA_NOMATCH; + else + ADVANCE_REGINPUT(); +*************** +*** 5734,5740 **** + case SKWORD + ADD_NL: + while (count < maxcount) + { +! if (vim_iswordp(scan) && (testval || !VIM_ISDIGIT(*scan))) + { + mb_ptr_adv(scan); + } +--- 5734,5741 ---- + case SKWORD + ADD_NL: + while (count < maxcount) + { +! if (vim_iswordp_buf(scan, reg_buf) +! && (testval || !VIM_ISDIGIT(*scan))) + { + mb_ptr_adv(scan); + } +*** ../vim-7.3.788/src/version.c 2013-01-30 12:50:50.000000000 +0100 +--- src/version.c 2013-01-30 13:58:07.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 789, + /**/ + +-- +MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes + for future use in casseroles and sauces. +MY WAY: What leftover wine? + + /// 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 /// From 69fe8f3e3a7c31a2e304747e14806b54a93e6ded Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:58 +0100 Subject: [PATCH 125/291] - patchlevel 790 --- 7.3.790 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.3.790 diff --git a/7.3.790 b/7.3.790 new file mode 100644 index 00000000..a2bf0c6c --- /dev/null +++ b/7.3.790 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.790 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.790 +Problem: After reloading a buffer the modelines are not processed. +Solution: call do_modelines(). (Ken Takata) +Files: src/fileio.c + + +*** ../vim-7.3.789/src/fileio.c 2012-12-05 19:13:11.000000000 +0100 +--- src/fileio.c 2013-01-30 14:08:21.000000000 +0100 +*************** +*** 7243,7248 **** +--- 7243,7251 ---- + * reset it, might have had a read error. */ + if (orig_mode == curbuf->b_orig_mode) + curbuf->b_p_ro |= old_ro; ++ ++ /* Modelines must override settings done by autocommands. */ ++ do_modelines(0); + } + + /* restore curwin/curbuf and a few other things */ +*** ../vim-7.3.789/src/version.c 2013-01-30 13:59:31.000000000 +0100 +--- src/version.c 2013-01-30 14:02:30.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 790, + /**/ + +-- +BLACK KNIGHT: Come on you pansy! + [hah] [parry thrust] + [ARTHUR chops the BLACK KNIGHT's right arm off] +ARTHUR: Victory is mine! [kneeling] + We thank thee Lord, that in thy merc- + [Black Knight kicks Arthur in the head while he is praying] + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 4b8a0ca237023bcddeef06e70b9c347c214373fc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:59 +0100 Subject: [PATCH 126/291] - patchlevel 791 --- 7.3.791 | 2124 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2124 insertions(+) create mode 100644 7.3.791 diff --git a/7.3.791 b/7.3.791 new file mode 100644 index 00000000..0b984b73 --- /dev/null +++ b/7.3.791 @@ -0,0 +1,2124 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.791 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.791 +Problem: MzScheme interface doesn't work propely. +Solution: Make it work better. (Sergey Khorev) +Files: runtime/doc/if_mzsch.txt, src/configure.in, src/auto/configure, + src/eval.c, src/if_mzsch.c, src/if_mzsch.h, src/Make_ming.mak, + src/Make_mvc.mak, src/os_unix.c, src/proto/eval.pro, + src/testdir/test70.in, src/testdir/test70.ok + + +*** ../vim-7.3.790/runtime/doc/if_mzsch.txt 2010-08-15 21:57:14.000000000 +0200 +--- runtime/doc/if_mzsch.txt 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 11,17 **** + 3. Threads |mzscheme-threads| + 4. Vim access from MzScheme |mzscheme-vim| + 5. mzeval() Vim function |mzscheme-mzeval| +! 6. Dynamic loading |mzscheme-dynamic| + + {Vi does not have any of these commands} + +--- 11,18 ---- + 3. Threads |mzscheme-threads| + 4. Vim access from MzScheme |mzscheme-vim| + 5. mzeval() Vim function |mzscheme-mzeval| +! 6. Using Function references |mzscheme-funcref| +! 7. Dynamic loading |mzscheme-dynamic| + + {Vi does not have any of these commands} + +*************** +*** 21,30 **** + Based on the work of Brent Fulgham. + Dynamic loading added by Sergey Khorev + +! For downloading MzScheme and other info: +! http://www.plt-scheme.org/software/mzscheme/ + +! Note: On FreeBSD you should use the "drscheme" port. + + ============================================================================== + 1. Commands *mzscheme-commands* +--- 22,38 ---- + Based on the work of Brent Fulgham. + Dynamic loading added by Sergey Khorev + +! MzScheme and PLT Scheme names have been rebranded as Racket. For more +! information please check http://racket-lang.org + +! Futures and places of Racket version 5.x up to and including 5.3.1 do not +! work correctly with processes created by Vim. +! The simplest solution is to build Racket on your own with these features +! disabled: > +! ./configure --disable-futures --disable-places --prefix=your-install-prefix +! +! To speed up the process, you might also want to use --disable-gracket and +! --disable-docs + + ============================================================================== + 1. Commands *mzscheme-commands* +*************** +*** 155,162 **** + (eval {expr-string}) Evaluate the vim expression into + respective MzScheme object: |Lists| are + represented as Scheme lists, +! |Dictionaries| as hash tables. +! NOTE the name clashes with MzScheme eval + (range-start) Start/End of the range passed with + (range-end) the Scheme command. + (beep) beep +--- 163,173 ---- + (eval {expr-string}) Evaluate the vim expression into + respective MzScheme object: |Lists| are + represented as Scheme lists, +! |Dictionaries| as hash tables, +! |Funcref|s as functions (see also +! |mzscheme-funcref|) +! NOTE the name clashes with MzScheme eval, +! use module qualifiers to overcome this. + (range-start) Start/End of the range passed with + (range-end) the Scheme command. + (beep) beep +*************** +*** 237,243 **** + evaluate MzScheme expressions and pass their values to VimL. + + ============================================================================== +! 6. Dynamic loading *mzscheme-dynamic* *E815* + + On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| + output then includes |+mzscheme/dyn|. +--- 248,270 ---- + evaluate MzScheme expressions and pass their values to VimL. + + ============================================================================== +! 6. Using Function references *mzscheme-funcref* +! +! MzScheme interface allows use of |Funcref|s so you can call Vim functions +! directly from Scheme. For instance: > +! function! MyAdd2(arg) +! return a:arg + 2 +! endfunction +! mz (define f2 (vim-eval "function(\"MyAdd2\")")) +! mz (f2 7) +! < or : > +! :mz (define indent (vim-eval "function('indent')")) +! " return Vim indent for line 12 +! :mz (indent 12) +! < +! +! ============================================================================== +! 7. Dynamic loading *mzscheme-dynamic* *E815* + + On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| + output then includes |+mzscheme/dyn|. +*** ../vim-7.3.790/src/configure.in 2012-12-12 14:25:01.000000000 +0100 +--- src/configure.in 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 617,623 **** + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then +! MZSCHEME_LIBS="-framework PLT_MzScheme" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" + MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" +--- 617,624 ---- + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then +! MZSCHEME_LIBS="-framework Racket" +! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" + MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" +*************** +*** 660,665 **** +--- 661,670 ---- + else + if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then + SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/ ++ else ++ if test -d $vi_cv_path_mzscheme_pfx/collects; then ++ SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/ ++ fi + fi + fi + fi +*** ../vim-7.3.790/src/auto/configure 2012-12-12 14:25:01.000000000 +0100 +--- src/auto/configure 2013-01-30 14:27:31.000000000 +0100 +*************** +*** 4927,4933 **** + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then +! MZSCHEME_LIBS="-framework PLT_MzScheme" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" + MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" +--- 4927,4934 ---- + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then +! MZSCHEME_LIBS="-framework Racket" +! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" + MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" +*************** +*** 4968,4973 **** +--- 4969,4978 ---- + else + if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then + SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/ ++ else ++ if test -d $vi_cv_path_mzscheme_pfx/collects; then ++ SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/ ++ fi + fi + fi + fi +*** ../vim-7.3.790/src/eval.c 2013-01-23 17:15:25.000000000 +0100 +--- src/eval.c 2013-01-30 14:33:00.000000000 +0100 +*************** +*** 14333,14338 **** +--- 14333,14354 ---- + str = get_tv_string_buf(&argvars[0], buf); + do_mzeval(str, rettv); + } ++ ++ void ++ mzscheme_call_vim(name, args, rettv) ++ char_u *name; ++ typval_T *args; ++ typval_T *rettv; ++ { ++ typval_T argvars[3]; ++ ++ argvars[0].v_type = VAR_STRING; ++ argvars[0].vval.v_string = name; ++ copy_tv(args, &argvars[1]); ++ argvars[2].v_type = VAR_UNKNOWN; ++ f_call(argvars, rettv); ++ clear_tv(&argvars[1]); ++ } + #endif + + /* +*** ../vim-7.3.790/src/if_mzsch.c 2012-11-28 15:37:46.000000000 +0100 +--- src/if_mzsch.c 2013-01-30 14:34:37.000000000 +0100 +*************** +*** 1,11 **** + /* vi:set ts=8 sts=4 sw=4: + * + * MzScheme interface by Sergey Khorev +! * Original work by Brent Fulgham + * (Based on lots of help from Matthew Flatt) + * +- * TODO Convert byte-strings to char strings? +- * + * This consists of six parts: + * 1. MzScheme interpreter main program + * 2. Routines that handle the external interface between MzScheme and +--- 1,9 ---- + /* vi:set ts=8 sts=4 sw=4: + * + * MzScheme interface by Sergey Khorev +! * Based on work by Brent Fulgham + * (Based on lots of help from Matthew Flatt) + * + * This consists of six parts: + * 1. MzScheme interpreter main program + * 2. Routines that handle the external interface between MzScheme and +*************** +*** 142,148 **** + static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what); + static void startup_mzscheme(void); + static char *string_to_line(Scheme_Object *obj); +! static void do_output(char *mesg, intptr_t len); + static void do_printf(char *format, ...); + static void do_flush(void); + static Scheme_Object *_apply_thunk_catch_exceptions( +--- 140,151 ---- + static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what); + static void startup_mzscheme(void); + static char *string_to_line(Scheme_Object *obj); +! #if MZSCHEME_VERSION_MAJOR >= 500 +! # define OUTPUT_LEN_TYPE intptr_t +! #else +! # define OUTPUT_LEN_TYPE long +! #endif +! static void do_output(char *mesg, OUTPUT_LEN_TYPE len); + static void do_printf(char *format, ...); + static void do_flush(void); + static Scheme_Object *_apply_thunk_catch_exceptions( +*************** +*** 166,175 **** + static int mzscheme_env_main(Scheme_Env *env, int argc, char **argv); + static int mzscheme_init(void); + #ifdef FEAT_EVAL +! static Scheme_Object *vim_to_mzscheme(typval_T *vim_value, int depth, + Scheme_Hash_Table *visited); +! static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth, + Scheme_Hash_Table *visited); + #endif + + #ifdef MZ_PRECISE_GC +--- 169,181 ---- + static int mzscheme_env_main(Scheme_Env *env, int argc, char **argv); + static int mzscheme_init(void); + #ifdef FEAT_EVAL +! static Scheme_Object *vim_to_mzscheme(typval_T *vim_value); +! static Scheme_Object *vim_to_mzscheme_impl(typval_T *vim_value, int depth, + Scheme_Hash_Table *visited); +! static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv); +! static int mzscheme_to_vim_impl(Scheme_Object *obj, typval_T *tv, int depth, + Scheme_Hash_Table *visited); ++ static Scheme_Object *vim_funcref(void *data, int argc, Scheme_Object **argv); + #endif + + #ifdef MZ_PRECISE_GC +*************** +*** 183,188 **** +--- 189,201 ---- + } + static int buffer_fixup_proc(void *obj) + { ++ /* apparently not needed as the object will be uncollectable while ++ * the buffer is alive ++ */ ++ /* ++ vim_mz_buffer* buf = (vim_mz_buffer*) obj; ++ buf->buf->b_mzscheme_ref = GC_fixup_self(obj); ++ */ + return buffer_size_proc(obj); + } + static int window_size_proc(void *obj UNUSED) +*************** +*** 195,206 **** + } + static int window_fixup_proc(void *obj) + { + return window_size_proc(obj); + } + #endif + + #ifdef DYNAMIC_MZSCHEME +- + static Scheme_Object *dll_scheme_eof; + static Scheme_Object *dll_scheme_false; + static Scheme_Object *dll_scheme_void; +--- 208,233 ---- + } + static int window_fixup_proc(void *obj) + { ++ /* apparently not needed as the object will be uncollectable while ++ * the window is alive ++ */ ++ /* ++ vim_mz_window* win = (vim_mz_window*) obj; ++ win->win->w_mzscheme_ref = GC_fixup_self(obj); ++ */ + return window_size_proc(obj); + } ++ /* with precise GC, w_mzscheme_ref and b_mzscheme_ref are immobile boxes ++ * containing pointers to a window/buffer ++ * with conservative GC these are simply pointers*/ ++ # define WINDOW_REF(win) *(vim_mz_window **)((win)->w_mzscheme_ref) ++ # define BUFFER_REF(buf) *(vim_mz_buffer **)((buf)->b_mzscheme_ref) ++ #else ++ # define WINDOW_REF(win) (vim_mz_window *)((win)->w_mzscheme_ref) ++ # define BUFFER_REF(buf) (vim_mz_buffer *)((buf)->b_mzscheme_ref) + #endif + + #ifdef DYNAMIC_MZSCHEME + static Scheme_Object *dll_scheme_eof; + static Scheme_Object *dll_scheme_false; + static Scheme_Object *dll_scheme_void; +*************** +*** 319,324 **** +--- 346,352 ---- + (Scheme_Object *s); + static Scheme_Object *(*dll_scheme_char_string_to_path) + (Scheme_Object *s); ++ static void *(*dll_scheme_set_collects_path)(Scheme_Object *p); + # endif + static Scheme_Hash_Table *(*dll_scheme_make_hash_table)(int type); + static void (*dll_scheme_hash_set)(Scheme_Hash_Table *table, +*************** +*** 378,388 **** + # endif + # define scheme_gc_ptr_ok dll_scheme_gc_ptr_ok + # if MZSCHEME_VERSION_MAJOR < 299 +! # define scheme_get_sized_string_output dll_scheme_get_sized_string_output + # else + # define scheme_get_sized_byte_string_output \ + dll_scheme_get_sized_byte_string_output +! # define scheme_get_param dll_scheme_get_param + # endif + # define scheme_intern_symbol dll_scheme_intern_symbol + # define scheme_lookup_global dll_scheme_lookup_global +--- 406,416 ---- + # endif + # define scheme_gc_ptr_ok dll_scheme_gc_ptr_ok + # if MZSCHEME_VERSION_MAJOR < 299 +! # define scheme_get_sized_byte_string_output dll_scheme_get_sized_string_output + # else + # define scheme_get_sized_byte_string_output \ + dll_scheme_get_sized_byte_string_output +! # define scheme_get_param dll_scheme_get_param + # endif + # define scheme_intern_symbol dll_scheme_intern_symbol + # define scheme_lookup_global dll_scheme_lookup_global +*************** +*** 391,398 **** + # define scheme_make_pair dll_scheme_make_pair + # define scheme_make_prim_w_arity dll_scheme_make_prim_w_arity + # if MZSCHEME_VERSION_MAJOR < 299 +! # define scheme_make_string dll_scheme_make_string +! # define scheme_make_string_output_port dll_scheme_make_string_output_port + # else + # define scheme_make_byte_string dll_scheme_make_byte_string + # define scheme_make_byte_string_output_port \ +--- 419,426 ---- + # define scheme_make_pair dll_scheme_make_pair + # define scheme_make_prim_w_arity dll_scheme_make_prim_w_arity + # if MZSCHEME_VERSION_MAJOR < 299 +! # define scheme_make_byte_string dll_scheme_make_string +! # define scheme_make_byte_string_output_port dll_scheme_make_string_output_port + # else + # define scheme_make_byte_string dll_scheme_make_byte_string + # define scheme_make_byte_string_output_port \ +*************** +*** 421,426 **** +--- 449,455 ---- + dll_scheme_char_string_to_byte_string + # define scheme_char_string_to_path \ + dll_scheme_char_string_to_path ++ # define scheme_set_collects_path dll_scheme_set_collects_path + # endif + # define scheme_make_hash_table dll_scheme_make_hash_table + # define scheme_hash_set dll_scheme_hash_set +*************** +*** 529,534 **** +--- 558,564 ---- + {"scheme_char_string_to_byte_string", + (void **)&dll_scheme_char_string_to_byte_string}, + {"scheme_char_string_to_path", (void **)&dll_scheme_char_string_to_path}, ++ {"scheme_set_collects_path", (void **)&dll_scheme_set_collects_path}, + # endif + {"scheme_make_hash_table", (void **)&dll_scheme_make_hash_table}, + {"scheme_hash_set", (void **)&dll_scheme_hash_set}, +*************** +*** 625,635 **** + } + #endif /* DYNAMIC_MZSCHEME */ + + /* need to put it here for dynamic stuff to work */ + #if defined(INCLUDE_MZSCHEME_BASE) + # include "mzscheme_base.c" + #elif MZSCHEME_VERSION_MAJOR >= 400 +! # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes + #endif + + /* +--- 655,694 ---- + } + #endif /* DYNAMIC_MZSCHEME */ + ++ #if MZSCHEME_VERSION_MAJOR < 299 ++ # define GUARANTEED_STRING_ARG(proc, num) GUARANTEE_STRING(proc, num) ++ #else ++ static Scheme_Object * ++ guaranteed_byte_string_arg(char *proc, int num, int argc, Scheme_Object **argv) ++ { ++ if (SCHEME_BYTE_STRINGP(argv[num])) ++ { ++ return argv[num]; ++ } ++ else if (SCHEME_CHAR_STRINGP(argv[num])) ++ { ++ Scheme_Object *tmp = NULL; ++ MZ_GC_DECL_REG(2); ++ MZ_GC_VAR_IN_REG(0, argv[num]); ++ MZ_GC_VAR_IN_REG(1, tmp); ++ MZ_GC_REG(); ++ tmp = scheme_char_string_to_byte_string(argv[num]); ++ MZ_GC_UNREG(); ++ return tmp; ++ } ++ else ++ scheme_wrong_type(proc, "string", num, argc, argv); ++ /* unreachable */ ++ return scheme_void; ++ } ++ # define GUARANTEED_STRING_ARG(proc, num) guaranteed_byte_string_arg(proc, num, argc, argv) ++ #endif ++ + /* need to put it here for dynamic stuff to work */ + #if defined(INCLUDE_MZSCHEME_BASE) + # include "mzscheme_base.c" + #elif MZSCHEME_VERSION_MAJOR >= 400 +! # error MzScheme >=4 must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes + #endif + + /* +*************** +*** 861,866 **** +--- 920,930 ---- + scheme_set_stack_base(stack_base, 1); + #endif + ++ #ifndef TRAMPOLINED_MZVIM_STARTUP ++ /* in newer versions of precise GC the initial env has been created */ ++ environment = scheme_basic_env(); ++ #endif ++ + MZ_REGISTER_STATIC(environment); + MZ_REGISTER_STATIC(curout); + MZ_REGISTER_STATIC(curerr); +*************** +*** 869,878 **** + MZ_REGISTER_STATIC(exn_message); + MZ_REGISTER_STATIC(vim_exn); + +- #ifndef TRAMPOLINED_MZVIM_STARTUP +- /* in newer versions of precise GC the initial env has been created */ +- environment = scheme_basic_env(); +- #endif + MZ_GC_CHECK(); + + #ifdef INCLUDE_MZSCHEME_BASE +--- 933,938 ---- +*************** +*** 909,923 **** + Scheme_Object *coll_byte_string = NULL; + Scheme_Object *coll_char_string = NULL; + Scheme_Object *coll_path = NULL; +- Scheme_Object *coll_pair = NULL; +- Scheme_Config *config = NULL; + +! MZ_GC_DECL_REG(5); + MZ_GC_VAR_IN_REG(0, coll_byte_string); + MZ_GC_VAR_IN_REG(1, coll_char_string); + MZ_GC_VAR_IN_REG(2, coll_path); +- MZ_GC_VAR_IN_REG(3, coll_pair); +- MZ_GC_VAR_IN_REG(4, config); + MZ_GC_REG(); + coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS); + MZ_GC_CHECK(); +--- 969,979 ---- + Scheme_Object *coll_byte_string = NULL; + Scheme_Object *coll_char_string = NULL; + Scheme_Object *coll_path = NULL; + +! MZ_GC_DECL_REG(3); + MZ_GC_VAR_IN_REG(0, coll_byte_string); + MZ_GC_VAR_IN_REG(1, coll_char_string); + MZ_GC_VAR_IN_REG(2, coll_path); + MZ_GC_REG(); + coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS); + MZ_GC_CHECK(); +*************** +*** 925,935 **** + MZ_GC_CHECK(); + coll_path = scheme_char_string_to_path(coll_char_string); + MZ_GC_CHECK(); +! coll_pair = scheme_make_pair(coll_path, scheme_null); +! MZ_GC_CHECK(); +! config = scheme_config; +! MZ_GC_CHECK(); +! scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair); + MZ_GC_CHECK(); + MZ_GC_UNREG(); + } +--- 981,987 ---- + MZ_GC_CHECK(); + coll_path = scheme_char_string_to_path(coll_char_string); + MZ_GC_CHECK(); +! scheme_set_collects_path(coll_path); + MZ_GC_CHECK(); + MZ_GC_UNREG(); + } +*************** +*** 944,954 **** + MZ_GC_VAR_IN_REG(1, coll_pair); + MZ_GC_VAR_IN_REG(2, config); + MZ_GC_REG(); +! coll_string = scheme_make_string(MZSCHEME_COLLECTS); + MZ_GC_CHECK(); + coll_pair = scheme_make_pair(coll_string, scheme_null); + MZ_GC_CHECK(); +! config = scheme_config; + MZ_GC_CHECK(); + scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair); + MZ_GC_CHECK(); +--- 996,1006 ---- + MZ_GC_VAR_IN_REG(1, coll_pair); + MZ_GC_VAR_IN_REG(2, config); + MZ_GC_REG(); +! coll_string = scheme_make_byte_string(MZSCHEME_COLLECTS); + MZ_GC_CHECK(); + coll_pair = scheme_make_pair(coll_string, scheme_null); + MZ_GC_CHECK(); +! config = scheme_current_config(); + MZ_GC_CHECK(); + scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair); + MZ_GC_CHECK(); +*************** +*** 991,997 **** + MZ_GC_VAR_IN_REG(3, guard); + MZ_GC_VAR_IN_REG(4, config); + MZ_GC_REG(); +! config = scheme_config; + MZ_GC_CHECK(); + args[0] = scheme_get_param(config, MZCONFIG_SECURITY_GUARD); + MZ_GC_CHECK(); +--- 1043,1049 ---- + MZ_GC_VAR_IN_REG(3, guard); + MZ_GC_VAR_IN_REG(4, config); + MZ_GC_REG(); +! config = scheme_current_config(); + MZ_GC_CHECK(); + args[0] = scheme_get_param(config, MZCONFIG_SECURITY_GUARD); + MZ_GC_CHECK(); +*************** +*** 1055,1066 **** + MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, config); + MZ_GC_REG(); +! config = scheme_config; + MZ_GC_CHECK(); + /* recreate ports each call effectively clearing these ones */ +! curout = scheme_make_string_output_port(); + MZ_GC_CHECK(); +! curerr = scheme_make_string_output_port(); + MZ_GC_CHECK(); + scheme_set_param(config, MZCONFIG_OUTPUT_PORT, curout); + MZ_GC_CHECK(); +--- 1107,1118 ---- + MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, config); + MZ_GC_REG(); +! config = scheme_current_config(); + MZ_GC_CHECK(); + /* recreate ports each call effectively clearing these ones */ +! curout = scheme_make_byte_string_output_port(); + MZ_GC_CHECK(); +! curerr = scheme_make_byte_string_output_port(); + MZ_GC_CHECK(); + scheme_set_param(config, MZCONFIG_OUTPUT_PORT, curout); + MZ_GC_CHECK(); +*************** +*** 1149,1161 **** + { + if (buf->b_mzscheme_ref) + { +! vim_mz_buffer *bp; + +! bp = buf->b_mzscheme_ref; + bp->buf = INVALID_BUFFER_VALUE; +! buf->b_mzscheme_ref = NULL; + scheme_gc_ptr_ok(bp); + MZ_GC_CHECK(); + } + } + +--- 1201,1221 ---- + { + if (buf->b_mzscheme_ref) + { +! vim_mz_buffer *bp = NULL; +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, bp); +! MZ_GC_REG(); + +! bp = BUFFER_REF(buf); + bp->buf = INVALID_BUFFER_VALUE; +! #ifndef MZ_PRECISE_GC + scheme_gc_ptr_ok(bp); ++ #else ++ scheme_free_immobile_box(buf->b_mzscheme_ref); ++ #endif ++ buf->b_mzscheme_ref = NULL; + MZ_GC_CHECK(); ++ MZ_GC_UNREG(); + } + } + +*************** +*** 1167,1178 **** + { + if (win->w_mzscheme_ref) + { +! vim_mz_window *wp; +! wp = win->w_mzscheme_ref; + wp->win = INVALID_WINDOW_VALUE; +! win->w_mzscheme_ref = NULL; + scheme_gc_ptr_ok(wp); + MZ_GC_CHECK(); + } + } + +--- 1227,1246 ---- + { + if (win->w_mzscheme_ref) + { +! vim_mz_window *wp = NULL; +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, wp); +! MZ_GC_REG(); +! wp = WINDOW_REF(win); + wp->win = INVALID_WINDOW_VALUE; +! #ifndef MZ_PRECISE_GC + scheme_gc_ptr_ok(wp); ++ #else ++ scheme_free_immobile_box(win->w_mzscheme_ref); ++ #endif ++ win->w_mzscheme_ref = NULL; + MZ_GC_CHECK(); ++ MZ_GC_UNREG(); + } + } + +*************** +*** 1349,1355 **** + } + + static void +! do_output(char *mesg, intptr_t len UNUSED) + { + /* TODO: use len, the string may not be NUL terminated */ + do_intrnl_output(mesg, 0); +--- 1417,1423 ---- + } + + static void +! do_output(char *mesg, OUTPUT_LEN_TYPE len UNUSED) + { + /* TODO: use len, the string may not be NUL terminated */ + do_intrnl_output(mesg, 0); +*************** +*** 1371,1379 **** + do_flush(void) + { + char *buff; +! intptr_t length; + +! buff = scheme_get_sized_string_output(curerr, &length); + MZ_GC_CHECK(); + if (length) + { +--- 1439,1447 ---- + do_flush(void) + { + char *buff; +! OUTPUT_LEN_TYPE length; + +! buff = scheme_get_sized_byte_string_output(curerr, &length); + MZ_GC_CHECK(); + if (length) + { +*************** +*** 1381,1387 **** + return; + } + +! buff = scheme_get_sized_string_output(curout, &length); + MZ_GC_CHECK(); + if (length) + do_output(buff, length); +--- 1449,1455 ---- + return; + } + +! buff = scheme_get_sized_byte_string_output(curout, &length); + MZ_GC_CHECK(); + if (length) + do_output(buff, length); +*************** +*** 1398,1409 **** + vim_command(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! char *cmd = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + /* may be use do_cmdline_cmd? */ +! do_cmdline((char_u *)cmd, NULL, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE); + update_screen(VALID); + + raise_if_error(); + return scheme_void; + } +--- 1466,1482 ---- + vim_command(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! Scheme_Object *cmd = NULL; +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, cmd); +! MZ_GC_REG(); +! cmd = GUARANTEED_STRING_ARG(prim->name, 0); + + /* may be use do_cmdline_cmd? */ +! do_cmdline(BYTE_STRING_VALUE(cmd), NULL, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE); + update_screen(VALID); + ++ MZ_GC_UNREG(); + raise_if_error(); + return scheme_void; + } +*************** +*** 1414,1439 **** + { + #ifdef FEAT_EVAL + Vim_Prim *prim = (Vim_Prim *)data; +! char *expr; +! Scheme_Object *result; +! /* hash table to store visited values to avoid infinite loops */ +! Scheme_Hash_Table *visited = NULL; + typval_T *vim_result; +! +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, visited); + MZ_GC_REG(); + +! visited = scheme_make_hash_table(SCHEME_hash_ptr); +! MZ_GC_CHECK(); +! +! expr = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); +! vim_result = eval_expr((char_u *)expr, NULL); + + if (vim_result == NULL) + raise_vim_exn(_("invalid expression")); + +! result = vim_to_mzscheme(vim_result, 1, visited); + free_tv(vim_result); + + MZ_GC_UNREG(); +--- 1487,1508 ---- + { + #ifdef FEAT_EVAL + Vim_Prim *prim = (Vim_Prim *)data; +! Scheme_Object *result = NULL; + typval_T *vim_result; +! Scheme_Object *expr = NULL; +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, result); +! MZ_GC_VAR_IN_REG(1, expr); + MZ_GC_REG(); ++ expr = GUARANTEED_STRING_ARG(prim->name, 0); + +! vim_result = eval_expr(BYTE_STRING_VALUE(expr), NULL); + + if (vim_result == NULL) + raise_vim_exn(_("invalid expression")); + +! result = vim_to_mzscheme(vim_result); +! MZ_GC_CHECK(); + free_tv(vim_result); + + MZ_GC_UNREG(); +*************** +*** 1474,1489 **** + get_option(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +- char_u *name; + long value; + char *strval; + int rc; +! Scheme_Object *rval; + int opt_flags = 0; + buf_T *save_curb = curbuf; + win_T *save_curw = curwin; + +! name = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + if (argc > 1) + { +--- 1543,1563 ---- + get_option(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; + long value; + char *strval; + int rc; +! Scheme_Object *rval = NULL; +! Scheme_Object *name = NULL; + int opt_flags = 0; + buf_T *save_curb = curbuf; + win_T *save_curw = curwin; + +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, rval); +! MZ_GC_VAR_IN_REG(1, name); +! MZ_GC_REG(); +! +! name = GUARANTEED_STRING_ARG(prim->name, 0); + + if (argc > 1) + { +*************** +*** 1513,1535 **** + scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); + } + +! rc = get_option_value(name, &value, (char_u **)&strval, opt_flags); + curbuf = save_curb; + curwin = save_curw; + + switch (rc) + { + case 1: + return scheme_make_integer_value(value); + case 0: +! rval = scheme_make_string(strval); + MZ_GC_CHECK(); + vim_free(strval); + return rval; + case -1: + case -2: + raise_vim_exn(_("hidden option")); + case -3: + raise_vim_exn(_("unknown option")); + } + /* unreachable */ +--- 1587,1613 ---- + scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); + } + +! rc = get_option_value(BYTE_STRING_VALUE(name), &value, (char_u **)&strval, opt_flags); + curbuf = save_curb; + curwin = save_curw; + + switch (rc) + { + case 1: ++ MZ_GC_UNREG(); + return scheme_make_integer_value(value); + case 0: +! rval = scheme_make_byte_string(strval); + MZ_GC_CHECK(); + vim_free(strval); ++ MZ_GC_UNREG(); + return rval; + case -1: + case -2: ++ MZ_GC_UNREG(); + raise_vim_exn(_("hidden option")); + case -3: ++ MZ_GC_UNREG(); + raise_vim_exn(_("unknown option")); + } + /* unreachable */ +*************** +*** 1540,1552 **** + static Scheme_Object * + set_option(void *data, int argc, Scheme_Object **argv) + { +! char_u *cmd; + int opt_flags = 0; + buf_T *save_curb = curbuf; + win_T *save_curw = curwin; + Vim_Prim *prim = (Vim_Prim *)data; + +- GUARANTEE_STRING(prim->name, 0); + if (argc > 1) + { + if (M_global == NULL) +--- 1618,1635 ---- + static Scheme_Object * + set_option(void *data, int argc, Scheme_Object **argv) + { +! char_u *command = NULL; + int opt_flags = 0; + buf_T *save_curb = curbuf; + win_T *save_curw = curwin; + Vim_Prim *prim = (Vim_Prim *)data; ++ Scheme_Object *cmd = NULL; ++ ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, cmd); ++ MZ_GC_REG(); ++ cmd = GUARANTEED_STRING_ARG(prim->name, 0); + + if (argc > 1) + { + if (M_global == NULL) +*************** +*** 1575,1583 **** + } + + /* do_set can modify cmd, make copy */ +! cmd = vim_strsave((char_u *)SCHEME_STR_VAL(argv[0])); +! do_set(cmd, opt_flags); +! vim_free(cmd); + update_screen(NOT_VALID); + curbuf = save_curb; + curwin = save_curw; +--- 1658,1667 ---- + } + + /* do_set can modify cmd, make copy */ +! command = vim_strsave(BYTE_STRING_VALUE(cmd)); +! MZ_GC_UNREG(); +! do_set(command, opt_flags); +! vim_free(command); + update_screen(NOT_VALID); + curbuf = save_curb; + curwin = save_curw; +*************** +*** 1639,1645 **** + + MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, self); +- MZ_GC_REG(); + + /* We need to handle deletion of windows underneath us. + * If we add a "w_mzscheme_ref" field to the win_T structure, +--- 1723,1728 ---- +*************** +*** 1650,1667 **** + * object, and reject them if the win_T *field is invalid. + */ + if (win->w_mzscheme_ref != NULL) +! return win->w_mzscheme_ref; + +! self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_window)); + vim_memset(self, 0, sizeof(vim_mz_window)); + scheme_dont_gc_ptr(self); /* because win isn't visible to GC */ + MZ_GC_CHECK(); +- win->w_mzscheme_ref = self; + self->win = win; + self->so.type = mz_window_type; + + MZ_GC_UNREG(); +! return (Scheme_Object *)(self); + } + + /* (get-win-num [window]) */ +--- 1733,1756 ---- + * object, and reject them if the win_T *field is invalid. + */ + if (win->w_mzscheme_ref != NULL) +! return (Scheme_Object *)WINDOW_REF(win); + +! MZ_GC_REG(); +! self = scheme_malloc_fail_ok(scheme_malloc_tagged, sizeof(vim_mz_window)); + vim_memset(self, 0, sizeof(vim_mz_window)); ++ #ifndef MZ_PRECISE_GC + scheme_dont_gc_ptr(self); /* because win isn't visible to GC */ ++ #else ++ win->w_mzscheme_ref = scheme_malloc_immobile_box(NULL); ++ #endif ++ MZ_GC_CHECK(); ++ WINDOW_REF(win) = self; + MZ_GC_CHECK(); + self->win = win; + self->so.type = mz_window_type; + + MZ_GC_UNREG(); +! return (Scheme_Object *)self; + } + + /* (get-win-num [window]) */ +*************** +*** 1837,1858 **** + mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +- char_u *fname; + int num = 0; +! Scheme_Object *onum; + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +- fname = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + /* TODO make open existing file */ +! num = buflist_add(fname, BLN_LISTED | BLN_CURBUF); + + if (num == 0) + raise_vim_exn(_("couldn't open buffer")); + + onum = scheme_make_integer(num); +! return get_buffer_by_num(data, 1, &onum); + } + + /* (get-buff-by-num {buffernum}) */ +--- 1926,1956 ---- + mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; + int num = 0; +! Scheme_Object *onum = NULL; +! Scheme_Object *buf = NULL; +! Scheme_Object *fname; +! +! MZ_GC_DECL_REG(3); +! MZ_GC_VAR_IN_REG(0, onum); +! MZ_GC_VAR_IN_REG(1, buf); +! MZ_GC_VAR_IN_REG(2, fname); +! MZ_GC_REG(); +! fname = GUARANTEED_STRING_ARG(prim->name, 0); + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif + /* TODO make open existing file */ +! num = buflist_add(BYTE_STRING_VALUE(fname), BLN_LISTED | BLN_CURBUF); + + if (num == 0) + raise_vim_exn(_("couldn't open buffer")); + + onum = scheme_make_integer(num); +! buf = get_buffer_by_num(data, 1, &onum); +! MZ_GC_UNREG(); +! return buf; + } + + /* (get-buff-by-num {buffernum}) */ +*************** +*** 1878,1900 **** + { + Vim_Prim *prim = (Vim_Prim *)data; + buf_T *buf; +! char_u *fname; + +! fname = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + for (buf = firstbuf; buf; buf = buf->b_next) + if (buf->b_ffname == NULL || buf->b_sfname == NULL) + /* empty string */ + { +! if (fname[0] == NUL) +! return buffer_new(buf); + } +! else if (!fnamecmp(buf->b_ffname, fname) +! || !fnamecmp(buf->b_sfname, fname)) + /* either short or long filename matches */ +! return buffer_new(buf); + +! return scheme_false; + } + + /* (get-next-buff [buffer]) */ +--- 1976,2009 ---- + { + Vim_Prim *prim = (Vim_Prim *)data; + buf_T *buf; +! Scheme_Object *buffer = NULL; +! Scheme_Object *fname = NULL; + +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, buffer); +! MZ_GC_VAR_IN_REG(1, fname); +! MZ_GC_REG(); +! fname = GUARANTEED_STRING_ARG(prim->name, 0); +! buffer = scheme_false; + + for (buf = firstbuf; buf; buf = buf->b_next) ++ { + if (buf->b_ffname == NULL || buf->b_sfname == NULL) + /* empty string */ + { +! if (BYTE_STRING_VALUE(fname)[0] == NUL) +! buffer = buffer_new(buf); + } +! else if (!fnamecmp(buf->b_ffname, BYTE_STRING_VALUE(fname)) +! || !fnamecmp(buf->b_sfname, BYTE_STRING_VALUE(fname))) +! { + /* either short or long filename matches */ +! buffer = buffer_new(buf); +! } +! } + +! MZ_GC_UNREG(); +! return buffer; + } + + /* (get-next-buff [buffer]) */ +*************** +*** 1951,1957 **** + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + +! return scheme_make_string((char *)buf->buf->b_ffname); + } + + /* (curr-buff) */ +--- 2060,2066 ---- + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + +! return scheme_make_byte_string((char *)buf->buf->b_ffname); + } + + /* (curr-buff) */ +*************** +*** 1968,1992 **** + + MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, self); +- MZ_GC_REG(); + + /* We need to handle deletion of buffers underneath us. + * If we add a "b_mzscheme_ref" field to the buf_T structure, + * then we can get at it in buf_freeall() in vim. + */ + if (buf->b_mzscheme_ref) +! return buf->b_mzscheme_ref; + +! self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_buffer)); + vim_memset(self, 0, sizeof(vim_mz_buffer)); +! scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */ + MZ_GC_CHECK(); +- buf->b_mzscheme_ref = self; + self->buf = buf; + self->so.type = mz_buffer_type; + + MZ_GC_UNREG(); +! return (Scheme_Object *)(self); + } + + /* +--- 2077,2106 ---- + + MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, self); + + /* We need to handle deletion of buffers underneath us. + * If we add a "b_mzscheme_ref" field to the buf_T structure, + * then we can get at it in buf_freeall() in vim. + */ + if (buf->b_mzscheme_ref) +! return (Scheme_Object *)BUFFER_REF(buf); + +! MZ_GC_REG(); +! self = scheme_malloc_fail_ok(scheme_malloc_tagged, sizeof(vim_mz_buffer)); + vim_memset(self, 0, sizeof(vim_mz_buffer)); +! #ifndef MZ_PRECISE_GC +! scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */ +! #else +! buf->b_mzscheme_ref = scheme_malloc_immobile_box(NULL); +! #endif +! MZ_GC_CHECK(); +! BUFFER_REF(buf) = self; + MZ_GC_CHECK(); + self->buf = buf; + self->so.type = mz_buffer_type; + + MZ_GC_UNREG(); +! return (Scheme_Object *)self; + } + + /* +*************** +*** 2023,2029 **** + line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE); + + raise_if_error(); +! return scheme_make_string((char *)line); + } + + +--- 2137,2143 ---- + line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE); + + raise_if_error(); +! return scheme_make_byte_string((char *)line); + } + + +*************** +*** 2066,2072 **** + + for (i = n; i >= 0; --i) + { +! Scheme_Object *str = scheme_make_string( + (char *)ml_get_buf(buf->buf, (linenr_T)(lo+i), FALSE)); + raise_if_error(); + +--- 2180,2186 ---- + + for (i = n; i >= 0; --i) + { +! Scheme_Object *str = scheme_make_byte_string( + (char *)ml_get_buf(buf->buf, (linenr_T)(lo+i), FALSE)); + raise_if_error(); + +*************** +*** 2298,2305 **** + MZ_GC_VAR_IN_REG(1, rest); + MZ_GC_REG(); + +! array = (char **)alloc(new_len * sizeof(char *)); +! vim_memset(array, 0, new_len * sizeof(char *)); + + rest = line_list; + for (i = 0; i < new_len; ++i) +--- 2412,2419 ---- + MZ_GC_VAR_IN_REG(1, rest); + MZ_GC_REG(); + +! array = (char **)alloc((new_len+1)* sizeof(char *)); +! vim_memset(array, 0, (new_len+1) * sizeof(char *)); + + rest = line_list; + for (i = 0; i < new_len; ++i) +*************** +*** 2481,2488 **** + MZ_GC_VAR_IN_REG(1, rest); + MZ_GC_REG(); + +! array = (char **)alloc(size * sizeof(char *)); +! vim_memset(array, 0, size * sizeof(char *)); + + rest = list; + for (i = 0; i < size; ++i) +--- 2595,2602 ---- + MZ_GC_VAR_IN_REG(1, rest); + MZ_GC_REG(); + +! array = (char **)alloc((size+1) * sizeof(char *)); +! vim_memset(array, 0, (size+1) * sizeof(char *)); + + rest = list; + for (i = 0; i < size; ++i) +*************** +*** 2589,2595 **** + { + char *scheme_str = NULL; + char *vim_str = NULL; +! intptr_t len; + int i; + + scheme_str = scheme_display_to_string(obj, &len); +--- 2703,2709 ---- + { + char *scheme_str = NULL; + char *vim_str = NULL; +! OUTPUT_LEN_TYPE len; + int i; + + scheme_str = scheme_display_to_string(obj, &len); +*************** +*** 2598,2607 **** + * are replacing a single line, and we must replace it with + * a single line. + */ +! if (memchr(scheme_str, '\n', (size_t)len)) + scheme_signal_error(_("string cannot contain newlines")); + +! vim_str = (char *)alloc((int)(len + 1)); + + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. +--- 2712,2721 ---- + * are replacing a single line, and we must replace it with + * a single line. + */ +! if (memchr(scheme_str, '\n', len)) + scheme_signal_error(_("string cannot contain newlines")); + +! vim_str = (char *)alloc(len + 1); + + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. +*************** +*** 2625,2637 **** + * Convert Vim value into MzScheme, adopted from if_python.c + */ + static Scheme_Object * +! vim_to_mzscheme(typval_T *vim_value, int depth, Scheme_Hash_Table *visited) + { + Scheme_Object *result = NULL; + int new_value = TRUE; + +! MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, result); + MZ_GC_REG(); + + /* Avoid infinite recursion */ +--- 2739,2773 ---- + * Convert Vim value into MzScheme, adopted from if_python.c + */ + static Scheme_Object * +! vim_to_mzscheme(typval_T *vim_value) +! { +! Scheme_Object *result = NULL; +! /* hash table to store visited values to avoid infinite loops */ +! Scheme_Hash_Table *visited = NULL; +! +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, result); +! MZ_GC_VAR_IN_REG(1, visited); +! MZ_GC_REG(); +! +! visited = scheme_make_hash_table(SCHEME_hash_ptr); +! MZ_GC_CHECK(); +! +! result = vim_to_mzscheme_impl(vim_value, 1, visited); +! +! MZ_GC_UNREG(); +! return result; +! } +! +! static Scheme_Object * +! vim_to_mzscheme_impl(typval_T *vim_value, int depth, Scheme_Hash_Table *visited) + { + Scheme_Object *result = NULL; + int new_value = TRUE; + +! MZ_GC_DECL_REG(2); + MZ_GC_VAR_IN_REG(0, result); ++ MZ_GC_VAR_IN_REG(1, visited); + MZ_GC_REG(); + + /* Avoid infinite recursion */ +*************** +*** 2650,2657 **** + new_value = FALSE; + else if (vim_value->v_type == VAR_STRING) + { +! result = scheme_make_string(vim_value->vval.v_string == NULL +! ? "" : (char *)vim_value->vval.v_string); + MZ_GC_CHECK(); + } + else if (vim_value->v_type == VAR_NUMBER) +--- 2786,2792 ---- + new_value = FALSE; + else if (vim_value->v_type == VAR_STRING) + { +! result = scheme_make_byte_string((char *)vim_value->vval.v_string); + MZ_GC_CHECK(); + } + else if (vim_value->v_type == VAR_NUMBER) +*************** +*** 2682,2695 **** + MZ_GC_REG(); + + curr = list->lv_last; +! obj = vim_to_mzscheme(&curr->li_tv, depth + 1, visited); + result = scheme_make_pair(obj, scheme_null); + MZ_GC_CHECK(); + + while (curr != list->lv_first) + { + curr = curr->li_prev; +! obj = vim_to_mzscheme(&curr->li_tv, depth + 1, visited); + result = scheme_make_pair(obj, result); + MZ_GC_CHECK(); + } +--- 2817,2830 ---- + MZ_GC_REG(); + + curr = list->lv_last; +! obj = vim_to_mzscheme_impl(&curr->li_tv, depth + 1, visited); + result = scheme_make_pair(obj, scheme_null); + MZ_GC_CHECK(); + + while (curr != list->lv_first) + { + curr = curr->li_prev; +! obj = vim_to_mzscheme_impl(&curr->li_tv, depth + 1, visited); + result = scheme_make_pair(obj, result); + MZ_GC_CHECK(); + } +*************** +*** 2722,2729 **** + --todo; + + di = dict_lookup(hi); +! obj = vim_to_mzscheme(&di->di_tv, depth + 1, visited); +! key = scheme_make_string((char *)hi->hi_key); + MZ_GC_CHECK(); + scheme_hash_set((Scheme_Hash_Table *)result, key, obj); + MZ_GC_CHECK(); +--- 2857,2864 ---- + --todo; + + di = dict_lookup(hi); +! obj = vim_to_mzscheme_impl(&di->di_tv, depth + 1, visited); +! key = scheme_make_byte_string((char *)hi->hi_key); + MZ_GC_CHECK(); + scheme_hash_set((Scheme_Hash_Table *)result, key, obj); + MZ_GC_CHECK(); +*************** +*** 2732,2737 **** +--- 2867,2888 ---- + } + MZ_GC_UNREG(); + } ++ else if (vim_value->v_type == VAR_FUNC) ++ { ++ Scheme_Object *funcname = NULL; ++ ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, funcname); ++ MZ_GC_REG(); ++ ++ funcname = scheme_make_byte_string((char *)vim_value->vval.v_string); ++ MZ_GC_CHECK(); ++ result = scheme_make_closed_prim_w_arity(vim_funcref, funcname, ++ (const char *)BYTE_STRING_VALUE(funcname), 0, -1); ++ MZ_GC_CHECK(); ++ ++ MZ_GC_UNREG(); ++ } + else + { + result = scheme_void; +*************** +*** 2747,2757 **** + } + + static int +! mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth, + Scheme_Hash_Table *visited) + { + int status = OK; + typval_T *found; + MZ_GC_CHECK(); + if (depth > 100) /* limit the deepest recursion level */ + { +--- 2898,2939 ---- + } + + static int +! mzscheme_to_vim(Scheme_Object *obj, typval_T *tv) +! { +! int i, status; +! Scheme_Hash_Table *visited = NULL; +! +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, obj); +! MZ_GC_VAR_IN_REG(1, visited); +! MZ_GC_REG(); +! +! visited = scheme_make_hash_table(SCHEME_hash_ptr); +! MZ_GC_CHECK(); +! +! status = mzscheme_to_vim_impl(obj, tv, 1, visited); +! for (i = 0; i < visited->size; ++i) +! { +! /* free up remembered objects */ +! if (visited->vals[i] != NULL) +! free_tv((typval_T *)visited->vals[i]); +! } +! +! MZ_GC_UNREG(); +! return status; +! } +! static int +! mzscheme_to_vim_impl(Scheme_Object *obj, typval_T *tv, int depth, + Scheme_Hash_Table *visited) + { + int status = OK; + typval_T *found; ++ ++ MZ_GC_DECL_REG(2); ++ MZ_GC_VAR_IN_REG(0, obj); ++ MZ_GC_VAR_IN_REG(1, visited); ++ MZ_GC_REG(); ++ + MZ_GC_CHECK(); + if (depth > 100) /* limit the deepest recursion level */ + { +*************** +*** 2785,2795 **** + tv->vval.v_float = SCHEME_DBL_VAL(obj); + } + # endif +! else if (SCHEME_STRINGP(obj)) + { + tv->v_type = VAR_STRING; +! tv->vval.v_string = vim_strsave((char_u *)SCHEME_STR_VAL(obj)); + } + else if (SCHEME_VECTORP(obj) || SCHEME_NULLP(obj) + || SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj)) + { +--- 2967,2991 ---- + tv->vval.v_float = SCHEME_DBL_VAL(obj); + } + # endif +! else if (SCHEME_BYTE_STRINGP(obj)) + { + tv->v_type = VAR_STRING; +! tv->vval.v_string = vim_strsave(BYTE_STRING_VALUE(obj)); + } ++ # if MZSCHEME_VERSION_MAJOR >= 299 ++ else if (SCHEME_CHAR_STRINGP(obj)) ++ { ++ Scheme_Object *tmp = NULL; ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, tmp); ++ MZ_GC_REG(); ++ ++ tmp = scheme_char_string_to_byte_string(obj); ++ tv->v_type = VAR_STRING; ++ tv->vval.v_string = vim_strsave(BYTE_STRING_VALUE(tmp)); ++ MZ_GC_UNREG(); ++ } ++ #endif + else if (SCHEME_VECTORP(obj) || SCHEME_NULLP(obj) + || SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj)) + { +*************** +*** 2829,2835 **** + for (i = 0; i < SCHEME_VEC_SIZE(obj); ++i) + { + cval = SCHEME_VEC_ELS(obj)[i]; +! status = mzscheme_to_vim(cval, v, depth + 1, visited); + if (status == FAIL) + break; + status = list_append_tv(list, v); +--- 3025,3031 ---- + for (i = 0; i < SCHEME_VEC_SIZE(obj); ++i) + { + cval = SCHEME_VEC_ELS(obj)[i]; +! status = mzscheme_to_vim_impl(cval, v, depth + 1, visited); + if (status == FAIL) + break; + status = list_append_tv(list, v); +*************** +*** 2845,2851 **** + curr = SCHEME_CDR(curr)) + { + cval = SCHEME_CAR(curr); +! status = mzscheme_to_vim(cval, v, depth + 1, visited); + if (status == FAIL) + break; + status = list_append_tv(list, v); +--- 3041,3047 ---- + curr = SCHEME_CDR(curr)) + { + cval = SCHEME_CAR(curr); +! status = mzscheme_to_vim_impl(cval, v, depth + 1, visited); + if (status == FAIL) + break; + status = list_append_tv(list, v); +*************** +*** 2857,2863 **** + * need to handle the last element */ + if (status == OK && !SCHEME_NULLP(curr)) + { +! status = mzscheme_to_vim(cval, v, depth + 1, visited); + if (status == OK) + { + status = list_append_tv(list, v); +--- 3053,3059 ---- + * need to handle the last element */ + if (status == OK && !SCHEME_NULLP(curr)) + { +! status = mzscheme_to_vim_impl(cval, v, depth + 1, visited); + if (status == OK) + { + status = list_append_tv(list, v); +*************** +*** 2905,2911 **** + dictitem_T *item = dictitem_alloc((char_u *)string_to_line( + ((Scheme_Hash_Table *) obj)->keys[i])); + /* convert Scheme val to Vim and add it to the dict */ +! if (mzscheme_to_vim(((Scheme_Hash_Table *) obj)->vals[i], + &item->di_tv, depth + 1, visited) == FAIL + || dict_add(dict, item) == FAIL) + { +--- 3101,3107 ---- + dictitem_T *item = dictitem_alloc((char_u *)string_to_line( + ((Scheme_Hash_Table *) obj)->keys[i])); + /* convert Scheme val to Vim and add it to the dict */ +! if (mzscheme_to_vim_impl(((Scheme_Hash_Table *) obj)->vals[i], + &item->di_tv, depth + 1, visited) == FAIL + || dict_add(dict, item) == FAIL) + { +*************** +*** 2925,2943 **** + tv->v_type = VAR_STRING; + tv->vval.v_string = (char_u *)string_to_line(obj); + } + return status; + } + + void + do_mzeval(char_u *str, typval_T *rettv) + { +- int i; + Scheme_Object *ret = NULL; +- Scheme_Hash_Table *visited = NULL; + +! MZ_GC_DECL_REG(2); + MZ_GC_VAR_IN_REG(0, ret); +- MZ_GC_VAR_IN_REG(0, visited); + MZ_GC_REG(); + + if (mzscheme_init()) +--- 3121,3196 ---- + tv->v_type = VAR_STRING; + tv->vval.v_string = (char_u *)string_to_line(obj); + } ++ MZ_GC_UNREG(); + return status; + } + ++ /* Scheme prim procedure wrapping Vim funcref */ ++ static Scheme_Object * ++ vim_funcref(void *name, int argc, Scheme_Object **argv) ++ { ++ int i; ++ typval_T args; ++ int status = OK; ++ Scheme_Object *result = NULL; ++ list_T *list = list_alloc(); ++ ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, result); ++ MZ_GC_REG(); ++ ++ result = scheme_void; ++ if (list == NULL) ++ status = FAIL; ++ else ++ { ++ args.v_type = VAR_LIST; ++ args.vval.v_list = list; ++ ++list->lv_refcount; ++ for (i = 0; status == OK && i < argc; ++i) ++ { ++ typval_T *v = (typval_T *)alloc(sizeof(typval_T)); ++ if (v == NULL) ++ status = FAIL; ++ else ++ { ++ status = mzscheme_to_vim(argv[i], v); ++ if (status == OK) ++ { ++ status = list_append_tv(list, v); ++ clear_tv(v); ++ } ++ vim_free(v); ++ } ++ } ++ if (status == OK) ++ { ++ typval_T ret; ++ ret.v_type = VAR_UNKNOWN; ++ ++ mzscheme_call_vim(BYTE_STRING_VALUE((Scheme_Object *)name), &args, &ret); ++ MZ_GC_CHECK(); ++ result = vim_to_mzscheme(&ret); ++ clear_tv(&ret); ++ MZ_GC_CHECK(); ++ } ++ } ++ clear_tv(&args); ++ MZ_GC_UNREG(); ++ if (status != OK) ++ raise_vim_exn(_("error converting Scheme values to Vim")); ++ else ++ raise_if_error(); ++ return result; ++ } ++ + void + do_mzeval(char_u *str, typval_T *rettv) + { + Scheme_Object *ret = NULL; + +! MZ_GC_DECL_REG(1); + MZ_GC_VAR_IN_REG(0, ret); + MZ_GC_REG(); + + if (mzscheme_init()) +*************** +*** 2947,2966 **** + } + + MZ_GC_CHECK(); +- visited = scheme_make_hash_table(SCHEME_hash_ptr); +- MZ_GC_CHECK(); +- + if (eval_with_exn_handling(str, do_eval, &ret) == OK) +! mzscheme_to_vim(ret, rettv, 1, visited); +! +! for (i = 0; i < visited->size; ++i) +! { +! /* free up remembered objects */ +! if (visited->vals[i] != NULL) +! { +! free_tv((typval_T *)visited->vals[i]); +! } +! } + + MZ_GC_UNREG(); + } +--- 3200,3207 ---- + } + + MZ_GC_CHECK(); + if (eval_with_exn_handling(str, do_eval, &ret) == OK) +! mzscheme_to_vim(ret, rettv); + + MZ_GC_UNREG(); + } +*************** +*** 3043,3079 **** + char *fmt = _("Vim error: ~a"); + Scheme_Object *argv[2] = {NULL, NULL}; + Scheme_Object *exn = NULL; + +! MZ_GC_DECL_REG(4); + MZ_GC_ARRAY_VAR_IN_REG(0, argv, 2); + MZ_GC_VAR_IN_REG(3, exn); + MZ_GC_REG(); + + if (add_info != NULL) + { + char *c_string = NULL; +- Scheme_Object *byte_string = NULL; + Scheme_Object *info = NULL; + + MZ_GC_DECL_REG(3); + MZ_GC_VAR_IN_REG(0, c_string); +- MZ_GC_VAR_IN_REG(1, byte_string); + MZ_GC_VAR_IN_REG(2, info); + MZ_GC_REG(); + +! info = scheme_make_string(add_info); + MZ_GC_CHECK(); +! c_string = scheme_format(fmt, STRLEN(fmt), 1, &info, NULL); + MZ_GC_CHECK(); +! byte_string = scheme_make_string(c_string); + MZ_GC_CHECK(); + argv[0] = scheme_byte_string_to_char_string(byte_string); +- MZ_GC_CHECK(); + SCHEME_SET_IMMUTABLE(argv[0]); + MZ_GC_UNREG(); + } + else +! argv[0] = scheme_make_string(_("Vim error")); + MZ_GC_CHECK(); + + #if MZSCHEME_VERSION_MAJOR < 360 +--- 3284,3324 ---- + char *fmt = _("Vim error: ~a"); + Scheme_Object *argv[2] = {NULL, NULL}; + Scheme_Object *exn = NULL; ++ Scheme_Object *byte_string = NULL; + +! MZ_GC_DECL_REG(5); + MZ_GC_ARRAY_VAR_IN_REG(0, argv, 2); + MZ_GC_VAR_IN_REG(3, exn); ++ MZ_GC_VAR_IN_REG(4, byte_string); + MZ_GC_REG(); + + if (add_info != NULL) + { + char *c_string = NULL; + Scheme_Object *info = NULL; + + MZ_GC_DECL_REG(3); + MZ_GC_VAR_IN_REG(0, c_string); + MZ_GC_VAR_IN_REG(2, info); + MZ_GC_REG(); + +! info = scheme_make_byte_string(add_info); + MZ_GC_CHECK(); +! c_string = scheme_format_utf8(fmt, STRLEN(fmt), 1, &info, NULL); + MZ_GC_CHECK(); +! byte_string = scheme_make_byte_string(c_string); + MZ_GC_CHECK(); + argv[0] = scheme_byte_string_to_char_string(byte_string); + SCHEME_SET_IMMUTABLE(argv[0]); + MZ_GC_UNREG(); + } + else +! { +! byte_string = scheme_make_byte_string(_("Vim error")); +! MZ_GC_CHECK(); +! argv[0] = scheme_byte_string_to_char_string(byte_string); +! MZ_GC_CHECK(); +! } + MZ_GC_CHECK(); + + #if MZSCHEME_VERSION_MAJOR < 360 +*************** +*** 3264,3270 **** + if (curbuf->b_mzscheme_ref == NULL) + return (vim_mz_buffer *)buffer_new(curbuf); + else +! return (vim_mz_buffer *)curbuf->b_mzscheme_ref; + } + + /* return MzScheme wrapper for curwin */ +--- 3509,3515 ---- + if (curbuf->b_mzscheme_ref == NULL) + return (vim_mz_buffer *)buffer_new(curbuf); + else +! return BUFFER_REF(curbuf); + } + + /* return MzScheme wrapper for curwin */ +*************** +*** 3274,3280 **** + if (curwin->w_mzscheme_ref == NULL) + return (vim_mz_window *)window_new(curwin); + else +! return (vim_mz_window *)curwin->w_mzscheme_ref; + } + + static void +--- 3519,3525 ---- + if (curwin->w_mzscheme_ref == NULL) + return (vim_mz_window *)window_new(curwin); + else +! return WINDOW_REF(curwin); + } + + static void +*** ../vim-7.3.790/src/if_mzsch.h 2010-08-15 21:57:29.000000000 +0200 +--- src/if_mzsch.h 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 7,12 **** +--- 7,13 ---- + #ifdef __MINGW32__ + /* Hack to engage Cygwin-specific settings */ + # define __CYGWIN32__ ++ # include + #endif + + /* #ifdef needed for "make depend" */ +*************** +*** 20,50 **** + #endif + + #if MZSCHEME_VERSION_MAJOR >= 299 +- /* macros to be compatible with 20x versions */ +- # define scheme_config scheme_current_config() +- # define scheme_make_string scheme_make_byte_string +- # define scheme_make_string_output_port scheme_make_byte_string_output_port +- # define scheme_get_sized_string_output scheme_get_sized_byte_string_output +- # define scheme_write_string scheme_write_byte_string +- # define scheme_make_sized_string scheme_make_sized_byte_string +- + # define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj)) +! # define SCHEME_STR_VAL(obj) SCHEME_BYTE_STR_VAL( \ +! (SCHEME_BYTE_STRINGP(obj) ? obj : scheme_char_string_to_byte_string(obj))) +! # define GUARANTEE_STRING(fname, argnum) GUARANTEE_TYPE(fname, argnum, SCHEME_STRINGP, "string") +! +! # ifdef scheme_format +! # undef scheme_format + # endif +- # define scheme_format scheme_format_utf8 + +- # define SCHEME_GET_BYTE_STRING(obj) (SCHEME_BYTE_STRINGP(obj) ? obj : \ +- scheme_char_string_to_byte_string(obj)) +- #else +- # define SCHEME_GET_BYTE_STRING(obj) (obj) + # define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL +! # define SCHEME_BYTE_STR_VAL SCHEME_STR_VAL + # define scheme_byte_string_to_char_string(obj) (obj) + #endif + + /* Precise GC macros */ +--- 21,44 ---- + #endif + + #if MZSCHEME_VERSION_MAJOR >= 299 + # define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj)) +! # define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_BYTE_STR_VAL(obj)) +! #else +! /* macros for compatibility with older versions */ +! # define scheme_current_config() scheme_config +! # define scheme_make_sized_byte_string scheme_make_sized_string +! # define scheme_format_utf8 scheme_format +! # ifndef DYNAMIC_MZSCHEME +! /* for dynamic MzScheme there will be separate definitions in if_mzsch.c */ +! # define scheme_get_sized_byte_string_output scheme_get_sized_string_output +! # define scheme_make_byte_string scheme_make_string +! # define scheme_make_byte_string_output_port scheme_make_string_output_port + # endif + + # define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL +! # define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_STR_VAL(obj)) + # define scheme_byte_string_to_char_string(obj) (obj) ++ # define SCHEME_BYTE_STRINGP SCHEME_STRINGP + #endif + + /* Precise GC macros */ +*** ../vim-7.3.790/src/Make_ming.mak 2013-01-23 13:55:16.000000000 +0100 +--- src/Make_ming.mak 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 384,389 **** +--- 384,392 ---- + ifeq (yes, $(DYNAMIC_MZSCHEME)) + CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\" + endif ++ ifeq (yes, "$(MZSCHEME_DEBUG)") ++ CFLAGS += -DMZSCHEME_FORCE_GC ++ endif + endif + + ifdef RUBY +*** ../vim-7.3.790/src/Make_mvc.mak 2012-12-06 21:30:24.000000000 +0100 +--- src/Make_mvc.mak 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 1096,1102 **** + $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL) + $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c + +! $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) $(MZSCHEME_EXTRA_DEP) + $(CC) $(CFLAGS) if_mzsch.c \ + -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\" + mzscheme_base.c: +--- 1096,1102 ---- + $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL) + $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c + +! $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c if_mzsch.h $(INCL) $(MZSCHEME_EXTRA_DEP) + $(CC) $(CFLAGS) if_mzsch.c \ + -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\" + mzscheme_base.c: +*** ../vim-7.3.790/src/os_unix.c 2012-10-14 04:35:16.000000000 +0200 +--- src/os_unix.c 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 278,284 **** + #ifdef SIGBUS + {SIGBUS, "BUS", TRUE}, + #endif +! #ifdef SIGSEGV + {SIGSEGV, "SEGV", TRUE}, + #endif + #ifdef SIGSYS +--- 278,285 ---- + #ifdef SIGBUS + {SIGBUS, "BUS", TRUE}, + #endif +! #if defined(SIGSEGV) && !defined(FEAT_MZSCHEME) +! /* MzScheme uses SEGV in its garbage collector */ + {SIGSEGV, "SEGV", TRUE}, + #endif + #ifdef SIGSYS +*************** +*** 3778,3784 **** + # endif + if (wait_pid == 0) + { +! /* Wait for 1/100 sec before trying again. */ + mch_delay(10L, TRUE); + continue; + } +--- 3779,3785 ---- + # endif + if (wait_pid == 0) + { +! /* Wait for 10 msec before trying again. */ + mch_delay(10L, TRUE); + continue; + } +*************** +*** 4797,4803 **** + { + /* LINTED avoid "bitwise operation on signed value" */ + retval = WEXITSTATUS(status); +! if (retval && !emsg_silent) + { + if (retval == EXEC_FAILED) + { +--- 4798,4804 ---- + { + /* LINTED avoid "bitwise operation on signed value" */ + retval = WEXITSTATUS(status); +! if (retval != 0 && !emsg_silent) + { + if (retval == EXEC_FAILED) + { +*** ../vim-7.3.790/src/proto/eval.pro 2012-07-25 16:46:59.000000000 +0200 +--- src/proto/eval.pro 2013-01-30 14:32:04.000000000 +0100 +*************** +*** 74,79 **** +--- 74,80 ---- + char_u *get_function_name __ARGS((expand_T *xp, int idx)); + char_u *get_expr_name __ARGS((expand_T *xp, int idx)); + int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv)); ++ void mzscheme_call_vim __ARGS((char_u *name, typval_T *args, typval_T *rettv)); + long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit)); + void set_vim_var_nr __ARGS((int idx, long val)); + long get_vim_var_nr __ARGS((int idx)); +*** ../vim-7.3.790/src/testdir/test70.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test70.in 2013-01-30 14:50:02.000000000 +0100 +*************** +*** 38,49 **** + :" circular list (at the same time test lists containing lists) + :mz (set-car! (cddr l) l) + :let l2 = mzeval("h")["list"] +! :if l2[2] == l2 + :let res = "OK" + :else +! :let res = "FAILED" + :endif + :call setline(search("^3"), "circular test " . res) + :?^1?,$w! test.out + :qa! + ENDTEST +--- 38,60 ---- + :" circular list (at the same time test lists containing lists) + :mz (set-car! (cddr l) l) + :let l2 = mzeval("h")["list"] +! :" bug: this returns item2, but it should be l2 +! :if l2[2] == "item2" + :let res = "OK" + :else +! :let res = "FAILED: " . l2[2] + :endif + :call setline(search("^3"), "circular test " . res) ++ :" funcrefs ++ :mz (define vim:max (vim-eval "function('max')")) ++ :mz (define m (vim:max '(1 100 8))) ++ :let m = mzeval('m') ++ :if m == 100 ++ :let fref_res = "OK" ++ :else ++ :let fref_res = "FAILED: " . m ++ :end ++ :call append(line('$'), 'funcrefs '. fref_res) + :?^1?,$w! test.out + :qa! + ENDTEST +*** ../vim-7.3.790/src/testdir/test70.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test70.ok 2013-01-30 14:26:44.000000000 +0100 +*************** +*** 3,5 **** +--- 3,6 ---- + 2 line 2 + dictionary with list OK + circular test OK ++ funcrefs OK +*** ../vim-7.3.790/src/version.c 2013-01-30 14:13:52.000000000 +0100 +--- src/version.c 2013-01-30 14:52:31.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 791, + /**/ + + +-- +5 out of 4 people have trouble with fractions. + + /// 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 /// From 41c58d657d3103bcf64323875518a9c6d2a92bd2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:11:59 +0100 Subject: [PATCH 127/291] - patchlevel 792 --- 7.3.792 | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 7.3.792 diff --git a/7.3.792 b/7.3.792 new file mode 100644 index 00000000..cddcc62e --- /dev/null +++ b/7.3.792 @@ -0,0 +1,131 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.792 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.792 +Problem: ":substitute" works differently without confirmation. +Solution: Do not change the text when asking for confirmation, only display + it. +Files: src/ex_cmds.c + + +*** ../vim-7.3.791/src/ex_cmds.c 2013-01-17 18:33:58.000000000 +0100 +--- src/ex_cmds.c 2013-01-30 16:01:58.000000000 +0100 +*************** +*** 4727,4732 **** +--- 4727,4734 ---- + } + else + { ++ char_u *orig_line = NULL; ++ int len_change = 0; + #ifdef FEAT_FOLDING + int save_p_fen = curwin->w_p_fen; + +*************** +*** 4737,4745 **** + temp = RedrawingDisabled; + RedrawingDisabled = 0; + + search_match_lines = regmatch.endpos[0].lnum + - regmatch.startpos[0].lnum; +! search_match_endcol = regmatch.endpos[0].col; + highlight_match = TRUE; + + update_topline(); +--- 4739,4781 ---- + temp = RedrawingDisabled; + RedrawingDisabled = 0; + ++ if (new_start != NULL) ++ { ++ /* There already was a substitution, we would ++ * like to show this to the user. We cannot ++ * really update the line, it would change ++ * what matches. Temporarily replace the line ++ * and change it back afterwards. */ ++ orig_line = vim_strsave(ml_get(lnum)); ++ if (orig_line != NULL) ++ { ++ char_u *new_line = concat_str(new_start, ++ sub_firstline + copycol); ++ ++ if (new_line == NULL) ++ { ++ vim_free(orig_line); ++ orig_line = NULL; ++ } ++ else ++ { ++ /* Position the cursor relative to the ++ * end of the line, the previous ++ * substitute may have inserted or ++ * deleted characters before the ++ * cursor. */ ++ len_change = STRLEN(new_line) ++ - STRLEN(orig_line); ++ curwin->w_cursor.col += len_change; ++ ml_replace(lnum, new_line, FALSE); ++ } ++ } ++ } ++ + search_match_lines = regmatch.endpos[0].lnum + - regmatch.startpos[0].lnum; +! search_match_endcol = regmatch.endpos[0].col +! + len_change; + highlight_match = TRUE; + + update_topline(); +*************** +*** 4781,4786 **** +--- 4817,4826 ---- + msg_didout = FALSE; /* don't scroll up */ + msg_col = 0; + gotocmdline(TRUE); ++ ++ /* restore the line */ ++ if (orig_line != NULL) ++ ml_replace(lnum, orig_line, FALSE); + } + + need_wait_return = FALSE; /* no hit-return prompt */ +*************** +*** 5045,5058 **** + * The check for nmatch_tl is needed for when multi-line + * matching must replace the lines before trying to do another + * match, otherwise "\@<=" won't work. +- * When asking the user we like to show the already replaced +- * text, but don't do it when "\<@=" or "\<@!" is used, it +- * changes what matches. + * When the match starts below where we start searching also + * need to replace the line first (using \zs after \n). + */ + if (lastone +- || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, + curbuf, sub_firstlnum, +--- 5085,5094 ---- +*** ../vim-7.3.791/src/version.c 2013-01-30 14:55:35.000000000 +0100 +--- src/version.c 2013-01-30 16:25:36.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 792, + /**/ + +-- +Trees moving back and forth is what makes the wind blow. + + /// 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 /// From 917cd9ef4ca9cb08bbf7eb3afeb40293f879dcbb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:12:00 +0100 Subject: [PATCH 128/291] - patchlevel 793 --- 7.3.793 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.3.793 diff --git a/7.3.793 b/7.3.793 new file mode 100644 index 00000000..b188d9d1 --- /dev/null +++ b/7.3.793 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.793 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.793 (after 7.3.792) +Problem: New interactive :substutite behavior is not tested. +Solution: Add tests. (Christian Brabandt) +Files: src/testdir/test80.in, src/testdir/test80.ok + + +*** ../vim-7.3.792/src/testdir/test80.in 2011-06-19 04:31:54.000000000 +0200 +--- src/testdir/test80.in 2013-01-30 17:00:54.000000000 +0100 +*************** +*** 144,149 **** +--- 144,164 ---- + TEST_8: + + STARTTEST ++ :set magic& ++ :set cpo& ++ :$put =\"\n\nTEST_8:\" ++ :$put =',,X' ++ :s/\(^\|,\)\ze\(,\|X\)/\1N/g ++ :$put =',,Y' ++ :s/\(^\|,\)\ze\(,\|Y\)/\1N/gc ++ a:$put =',,Z' ++ :s/\(^\|,\)\ze\(,\|Z\)/\1N/gc ++ yy/^TEST_9 ++ ENDTEST ++ ++ TEST_9: ++ ++ STARTTEST + :/^Results/,$wq! test.out + ENDTEST + +*** ../vim-7.3.792/src/testdir/test80.ok 2011-06-19 04:31:54.000000000 +0200 +--- src/testdir/test80.ok 2013-01-30 16:46:39.000000000 +0100 +*************** +*** 99,101 **** +--- 99,107 ---- + A A + B + B ++ ++ ++ TEST_8: ++ N,,NX ++ N,,NY ++ N,,NZ +*** ../vim-7.3.792/src/version.c 2013-01-30 16:30:19.000000000 +0100 +--- src/version.c 2013-01-30 17:01:33.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 793, + /**/ + +-- +The early bird gets the worm. The second mouse gets the cheese. + + /// 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 /// From 4e4882d20d0469d9618605c6453a0c348df05478 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:12:01 +0100 Subject: [PATCH 129/291] - patchlevel 794 --- 7.3.794 | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 7.3.794 diff --git a/7.3.794 b/7.3.794 new file mode 100644 index 00000000..62263f63 --- /dev/null +++ b/7.3.794 @@ -0,0 +1,75 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.794 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.794 +Problem: Tiny build fails. (Tony Mechelynck) +Solution: Adjust #ifdefs. +Files: src/charset.c + + +*** ../vim-7.3.793/src/charset.c 2013-01-23 15:53:08.000000000 +0100 +--- src/charset.c 2013-01-30 17:08:05.000000000 +0100 +*************** +*** 939,957 **** + return GET_CHARTAB(curbuf, *p) != 0; + } + +- #if defined(FEAT_SYN_HL) || defined(PROTO) + int + vim_iswordp_buf(p, buf) + char_u *p; + buf_T *buf; + { +! # ifdef FEAT_MBYTE + if (has_mbyte && MB_BYTE2LEN(*p) > 1) + return mb_get_class(p) >= 2; +! # endif + return (GET_CHARTAB(buf, *p) != 0); + } +- #endif + + /* + * return TRUE if 'c' is a valid file-name character +--- 939,955 ---- + return GET_CHARTAB(curbuf, *p) != 0; + } + + int + vim_iswordp_buf(p, buf) + char_u *p; + buf_T *buf; + { +! #ifdef FEAT_MBYTE + if (has_mbyte && MB_BYTE2LEN(*p) > 1) + return mb_get_class(p) >= 2; +! #endif + return (GET_CHARTAB(buf, *p) != 0); + } + + /* + * return TRUE if 'c' is a valid file-name character +*** ../vim-7.3.793/src/version.c 2013-01-30 17:03:25.000000000 +0100 +--- src/version.c 2013-01-30 17:28:04.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 794, + /**/ + +-- +LAUNCELOT: I am, sir. I am a Knight of King Arthur. +FATHER: 'Mm ... very nice castle, Camelot ... very good pig country.... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 6053b4e14242c5dc9e7930a1374aeebf13314de7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:12:02 +0100 Subject: [PATCH 130/291] - patchlevel 795 --- 7.3.795 | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 7.3.795 diff --git a/7.3.795 b/7.3.795 new file mode 100644 index 00000000..283fd8db --- /dev/null +++ b/7.3.795 @@ -0,0 +1,212 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.795 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.795 +Problem: MzScheme does not build with tiny features. +Solution: Add #ifdefs. Also add UNUSED to avoid warnings. And change + library ordering. +Files: src/if_mzsch.c, src/Makefile + + +*** ../vim-7.3.794/src/if_mzsch.c 2013-01-30 14:55:35.000000000 +0100 +--- src/if_mzsch.c 2013-01-30 17:23:07.000000000 +0100 +*************** +*** 1483,1489 **** + + /* (eval {expr-string}) */ + static Scheme_Object * +! vim_eval(void *data, int argc, Scheme_Object **argv) + { + #ifdef FEAT_EVAL + Vim_Prim *prim = (Vim_Prim *)data; +--- 1483,1489 ---- + + /* (eval {expr-string}) */ + static Scheme_Object * +! vim_eval(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) + { + #ifdef FEAT_EVAL + Vim_Prim *prim = (Vim_Prim *)data; +*************** +*** 1686,1695 **** + static Scheme_Object * + get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) + { +- win_T *w; + int n = 0; + + for (w = firstwin; w != NULL; w = w->w_next) + ++n; + return scheme_make_integer(n); + } +--- 1686,1697 ---- + static Scheme_Object * + get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) + { + int n = 0; ++ #ifdef FEAT_WINDOWS ++ win_T *w; + + for (w = firstwin; w != NULL; w = w->w_next) ++ #endif + ++n; + return scheme_make_integer(n); + } +*************** +*** 1701,1712 **** + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + Scheme_Object *list; +! win_T *w; + + buf = get_buffer_arg(prim->name, 0, argc, argv); + list = scheme_null; + +! for (w = firstwin; w != NULL; w = w->w_next) + if (w->w_buffer == buf->buf) + { + list = scheme_make_pair(window_new(w), list); +--- 1703,1716 ---- + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + Scheme_Object *list; +! win_T *w = firstwin; + + buf = get_buffer_arg(prim->name, 0, argc, argv); + list = scheme_null; + +! #ifdef FEAT_WINDOWS +! for ( ; w != NULL; w = w->w_next) +! #endif + if (w->w_buffer == buf->buf) + { + list = scheme_make_pair(window_new(w), list); +*************** +*** 1755,1768 **** + + /* (get-win-num [window]) */ + static Scheme_Object * +! get_window_num(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; + win_T *win = get_window_arg(prim->name, 0, argc, argv)->win; +- int nr = 1; + win_T *wp; + + for (wp = firstwin; wp != win; wp = wp->w_next) + ++nr; + + return scheme_make_integer(nr); +--- 1759,1774 ---- + + /* (get-win-num [window]) */ + static Scheme_Object * +! get_window_num(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) + { ++ int nr = 1; ++ #ifdef FEAT_WINDOWS + Vim_Prim *prim = (Vim_Prim *)data; + win_T *win = get_window_arg(prim->name, 0, argc, argv)->win; + win_T *wp; + + for (wp = firstwin; wp != win; wp = wp->w_next) ++ #endif + ++nr; + + return scheme_make_integer(nr); +*************** +*** 1773,1786 **** + get_window_by_num(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! win_T *win; + int fnum; + + fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + if (fnum < 1) + scheme_signal_error(_("window index is out of range")); + +! for (win = firstwin; win != NULL; win = win->w_next, --fnum) + if (fnum == 1) /* to be 1-based */ + return window_new(win); + +--- 1779,1794 ---- + get_window_by_num(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! win_T *win = firstwin; + int fnum; + + fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + if (fnum < 1) + scheme_signal_error(_("window index is out of range")); + +! #ifdef FEAT_WINDOWS +! for ( ; win != NULL; win = win->w_next, --fnum) +! #endif + if (fnum == 1) /* to be 1-based */ + return window_new(win); + +*** ../vim-7.3.794/src/Makefile 2012-11-20 17:03:23.000000000 +0100 +--- src/Makefile 2013-01-30 17:34:55.000000000 +0100 +*************** +*** 1345,1350 **** +--- 1345,1352 ---- + + DEPEND_CFLAGS = -DPROTO -DDEPEND -DFEAT_GUI $(LINT_CFLAGS) + ++ # Note: MZSCHEME_LIBS must come before LIBS, because LIBS adds -lm which is ++ # needed by racket. + ALL_LIB_DIRS = $(GUI_LIBS_DIR) $(X_LIBS_DIR) + ALL_LIBS = \ + $(GUI_LIBS1) \ +*************** +*** 1353,1362 **** + $(X_PRE_LIBS) \ + $(X_LIBS) \ + $(X_EXTRA_LIBS) \ + $(LIBS) \ + $(EXTRA_LIBS) \ + $(LUA_LIBS) \ +- $(MZSCHEME_LIBS) \ + $(PERL_LIBS) \ + $(PYTHON_LIBS) \ + $(PYTHON3_LIBS) \ +--- 1355,1364 ---- + $(X_PRE_LIBS) \ + $(X_LIBS) \ + $(X_EXTRA_LIBS) \ ++ $(MZSCHEME_LIBS) \ + $(LIBS) \ + $(EXTRA_LIBS) \ + $(LUA_LIBS) \ + $(PERL_LIBS) \ + $(PYTHON_LIBS) \ + $(PYTHON3_LIBS) \ +*** ../vim-7.3.794/src/version.c 2013-01-30 17:30:14.000000000 +0100 +--- src/version.c 2013-01-30 17:38:25.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 795, + /**/ + +-- +GUEST: He's killed the best man! +SECOND GUEST: (holding a limp WOMAN) He's killed my auntie. +FATHER: No, please! This is supposed to be a happy occasion! Let's + not bicker and argue about who killed who ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From f6463ab671a18854f86a76c0dc43283b0a8c8567 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:12:03 +0100 Subject: [PATCH 131/291] - patchlevel 796 --- 7.3.796 | Bin 0 -> 3027 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.3.796 diff --git a/7.3.796 b/7.3.796 new file mode 100644 index 0000000000000000000000000000000000000000..333600dfb2fe8d4e67bf81ff057d4f47b5e91083 GIT binary patch literal 3027 zcmcImdvD@K5bwXS)bB8dDqTXr#ymoBN_B)slPZu0&YkWqm&n))II(w;cO8PR_uV_Q z1_GC;?WyVtZ13*uZ|6PZ3I`s;_%2|N?x~1W=lc$bRE@-w(Mv?^z;WWm&=(?N-18FnmFDl_)!gJv{buyTm=)i%M23PpV4EeQ zEx2M_72U;*IiT2+vSyJN@+0u4ULu)lUc0^G;WJ(0aXDs5vCDlCgnZ(_;V4u_abp<9 zHm?_n7)1PDS=&aY7M7?8eI+8FWIFM>1B(FtwV>7 zec;&T7l-iT&0*jK%9TdFP_C95KwAdD&dv@g)XKx#8~zqT4rrPQ8qtfSSZa1~26^k5 zHXOrl!W6t|!XMW|_paSKYu^n|KXvz>X}%h72zrNT^F-WiLTm8x_}blD?$E8-&T<3x zq1EZ!4bG016fBZxvu%L$-trR7_4E1j-o|k))eee82oA)lR50}(89oB^ksFS}p^F5I zEwR2C#g#Vl}Xj+(0J+(4IJ~J_sCgheO70T@pp$I|qziLl1 zN4D`b6YuZLvadZt+x>g}W?SEu7(Z^gAGZ&=|Hd%z8>*FRwSbRhaF7Xcc7RK@^4f&N zzfLem6f}KGJuHBEsHV_8|B!hU$pPSd=)dUnj)CIQF{H=ovpurB#o1h^Ei^$EWkgDD zj~>;8!Sz|@@#thKmFQ$wt-HZ_zvZ@1w6hU4`MH+hl|1tzQ&H})i=~62-GEXRvyD@$ zZsm^hM#6dZ^g3PDof>AIm+5LlvGl1~!&?hw3-%8cUjBkA##5Ktg)g^{nz^wMBQMDjMt9JmYw!zy^mSKv@T>K6 z3!le79V5=A{%eAv+q!a>^v=Y(UC%AEVBIdUtU$~6&#D&>|3&rL>9y()ol?!IHnt2$ zm4ei}F%0|$+pZOC`|w%ydZAoesb0%Y@^4B{2VartF)RC~zg2?jPStj*l^5KQovGNp zehLd$!zur}!c{NV3-$7b40-`;CSF0Q^(%$}#a9pj1=LKp1U!vLEP)Y=#2k|vW;Wd) zV3?uT{WK9mT&1wJX%Ig?qEOgZ)!AjY8P z0v000+&g1p7Gd4ultmFW8~0){P9qoz9%ypxL8c;Fz?=n<@E=ToYd#iyDE;OtdLXm6|!0 zHJ{JT?LB~-n;V0mmP5`2mm-1pA!_PTCS5{J2KyAoqm$Ee(Cf!$I Uyvf;VyWK0I9`T-Fg-2L_0SL(riU0rr literal 0 HcmV?d00001 From 9e1281362a7081abc9773a44fd807a0d70ae83ff Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:12:03 +0100 Subject: [PATCH 132/291] - patchlevel 797 --- 7.3.797 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.3.797 diff --git a/7.3.797 b/7.3.797 new file mode 100644 index 00000000..09d638a6 --- /dev/null +++ b/7.3.797 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.797 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.797 (after 7.3.792) +Problem: Compiler warning for size_t to int conversion. (Skeept) +Solution: Add type casts. +Files: src/ex_cmds.c + + +*** ../vim-7.3.796/src/ex_cmds.c 2013-01-30 16:30:19.000000000 +0100 +--- src/ex_cmds.c 2013-01-30 21:52:17.000000000 +0100 +*************** +*** 4764,4771 **** + * substitute may have inserted or + * deleted characters before the + * cursor. */ +! len_change = STRLEN(new_line) +! - STRLEN(orig_line); + curwin->w_cursor.col += len_change; + ml_replace(lnum, new_line, FALSE); + } +--- 4764,4771 ---- + * substitute may have inserted or + * deleted characters before the + * cursor. */ +! len_change = (int)STRLEN(new_line) +! - (int)STRLEN(orig_line); + curwin->w_cursor.col += len_change; + ml_replace(lnum, new_line, FALSE); + } +*** ../vim-7.3.796/src/version.c 2013-01-30 21:55:22.000000000 +0100 +--- src/version.c 2013-01-30 21:53:17.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 797, + /**/ + +-- + [SIR LAUNCELOT runs back up the stairs, grabs a rope + of the wall and swings out over the heads of the CROWD in a + swashbuckling manner towards a large window. He stops just short + of the window and is left swing pathetically back and forth.] +LAUNCELOT: Excuse me ... could somebody give me a push ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 93b11c4c89cc2aaef077aa21a23095f1208f139f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 31 Jan 2013 12:12:05 +0100 Subject: [PATCH 133/291] - patchlevel 797 --- README.patches | 12 ++++++++++++ vim.spec | 29 ++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index b186397c..c32f02dc 100644 --- a/README.patches +++ b/README.patches @@ -816,3 +816,15 @@ Individual patches for Vim 7.3: 1329 7.3.783 crash when mark is not set 1914 7.3.784 (after 7.3.781) error when 'guifontwide' has a comma 3145 7.3.785 (after 7.3.776) crash with specific use of search pattern + 2928 7.3.786 Python threads don't run in the background (issue 103) + 4304 7.3.787 with 'relativenumber' can't see the absolute line number + 1481 7.3.788 when only using patches build fails on missing nl.po + 5078 7.3.789 (after 7.3.776) "\k" in regexp does not work in other window + 1727 7.3.790 after reloading a buffer the modelines are not processed + 61514 7.3.791 MzScheme interface doesn't work propely + 4000 7.3.792 ":substitute" works differently without confirmation + 1768 7.3.793 (after 7.3.792) new :substutite behavior is not tested + 1999 7.3.794 tiny build fails + 5967 7.3.795 MzScheme does not build with tiny features + 3027 7.3.796 "/[^\n]" does match at a line break + 2040 7.3.797 (after 7.3.792) compiler warning for size_t to int conversion diff --git a/vim.spec b/vim.spec index af2a1c29..da4aaeeb 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 785 +%define patchlevel 797 Summary: The VIM editor URL: http://www.vim.org/ @@ -842,6 +842,18 @@ Patch782: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.782 Patch783: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.783 Patch784: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.784 Patch785: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.785 +Patch786: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.786 +Patch787: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.787 +Patch788: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.788 +Patch789: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.789 +Patch790: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.790 +Patch791: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.791 +Patch792: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.792 +Patch793: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.793 +Patch794: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.794 +Patch795: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.795 +Patch796: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.796 +Patch797: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.797 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1773,6 +1785,18 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch783 -p0 %patch784 -p0 %patch785 -p0 +%patch786 -p0 +%patch787 -p0 +%patch788 -p0 +%patch789 -p0 +%patch790 -p0 +%patch791 -p0 +%patch792 -p0 +%patch793 -p0 +%patch794 -p0 +%patch795 -p0 +%patch796 -p0 +%patch797 -p0 # install spell files @@ -2245,6 +2269,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Jan 31 2013 Karsten Hopp 7.3.797-1 +- patchlevel 797 + * Mon Jan 28 2013 Karsten Hopp 7.3.785-1 - patchlevel 785 From 2a1fde9bf45a6105e75dd48695365b4115a3af46 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Fri, 15 Feb 2013 14:20:22 -0800 Subject: [PATCH 134/291] Only use --vendor for desktop-file-install on F18 or less --- vim.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vim.spec b/vim.spec index da4aaeeb..966d1a5f 100644 --- a/vim.spec +++ b/vim.spec @@ -24,7 +24,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{beta}%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2 @@ -1954,7 +1954,10 @@ install -p -m644 %{SOURCE10} \ ln -sf gvim ./%{_bindir}/vimx %if "%{desktop_file}" == "1" mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications - desktop-file-install --vendor fedora \ + desktop-file-install \ + %if 0%{?fedora} && 0%{?fedora} < 19 + --vendor fedora \ + %endif --dir $RPM_BUILD_ROOT/%{_datadir}/applications \ %{SOURCE3} # --add-category "Development;TextEditor;X-Red-Hat-Base" D\ @@ -2269,6 +2272,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Feb 15 2013 Toshio Kuratomi - 7.3.797-2 +- Only use --vendor for desktop-file-install on F18 or less + * Thu Jan 31 2013 Karsten Hopp 7.3.797-1 - patchlevel 797 From 6fb3cf1498c80b18e8fa0c541fb41f22c88edccb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:49 +0100 Subject: [PATCH 135/291] - patchlevel 798 --- 7.3.798 | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 7.3.798 diff --git a/7.3.798 b/7.3.798 new file mode 100644 index 00000000..2133f753 --- /dev/null +++ b/7.3.798 @@ -0,0 +1,103 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.798 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.798 (after 7.3.791) +Problem: MzScheme: circular list does not work correctly. +Solution: Separate Mac-specific code from generic code. (Sergey Khorev) +Files: src/if_mzsch.c, src/testdir/test70.in + + +*** ../vim-7.3.797/src/if_mzsch.c 2013-01-30 17:41:43.000000000 +0100 +--- src/if_mzsch.c 2013-01-31 21:00:02.000000000 +0100 +*************** +*** 965,970 **** +--- 965,971 ---- + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + # if MZSCHEME_VERSION_MAJOR >= 299 ++ # ifdef MACOS + { + Scheme_Object *coll_byte_string = NULL; + Scheme_Object *coll_char_string = NULL; +*************** +*** 985,990 **** +--- 986,1021 ---- + MZ_GC_CHECK(); + MZ_GC_UNREG(); + } ++ # else ++ { ++ Scheme_Object *coll_byte_string = NULL; ++ Scheme_Object *coll_char_string = NULL; ++ Scheme_Object *coll_path = NULL; ++ Scheme_Object *coll_pair = NULL; ++ Scheme_Config *config = NULL; ++ ++ MZ_GC_DECL_REG(5); ++ MZ_GC_VAR_IN_REG(0, coll_byte_string); ++ MZ_GC_VAR_IN_REG(1, coll_char_string); ++ MZ_GC_VAR_IN_REG(2, coll_path); ++ MZ_GC_VAR_IN_REG(3, coll_pair); ++ MZ_GC_VAR_IN_REG(4, config); ++ MZ_GC_REG(); ++ coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS); ++ MZ_GC_CHECK(); ++ coll_char_string = scheme_byte_string_to_char_string(coll_byte_string); ++ MZ_GC_CHECK(); ++ coll_path = scheme_char_string_to_path(coll_char_string); ++ MZ_GC_CHECK(); ++ coll_pair = scheme_make_pair(coll_path, scheme_null); ++ MZ_GC_CHECK(); ++ config = scheme_current_config(); ++ MZ_GC_CHECK(); ++ scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair); ++ MZ_GC_CHECK(); ++ MZ_GC_UNREG(); ++ } ++ # endif + # else + { + Scheme_Object *coll_string = NULL; +*** ../vim-7.3.797/src/testdir/test70.in 2013-01-30 14:55:35.000000000 +0100 +--- src/testdir/test70.in 2013-01-31 21:00:06.000000000 +0100 +*************** +*** 38,45 **** + :" circular list (at the same time test lists containing lists) + :mz (set-car! (cddr l) l) + :let l2 = mzeval("h")["list"] +! :" bug: this returns item2, but it should be l2 +! :if l2[2] == "item2" + :let res = "OK" + :else + :let res = "FAILED: " . l2[2] +--- 38,44 ---- + :" circular list (at the same time test lists containing lists) + :mz (set-car! (cddr l) l) + :let l2 = mzeval("h")["list"] +! :if l2[2] == l2 + :let res = "OK" + :else + :let res = "FAILED: " . l2[2] +*** ../vim-7.3.797/src/version.c 2013-01-30 21:55:45.000000000 +0100 +--- src/version.c 2013-01-31 21:01:48.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 798, + /**/ + +-- +Be nice to your kids... they'll be the ones choosing your nursing home. + + /// 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 /// From fdbbb8a8736157579bee84ace3620599fed3fd3b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:50 +0100 Subject: [PATCH 136/291] - patchlevel 799 --- 7.3.799 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.3.799 diff --git a/7.3.799 b/7.3.799 new file mode 100644 index 00000000..941203e8 --- /dev/null +++ b/7.3.799 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.799 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.799 +Problem: The color column is not correct when entering a buffer. (Ben + Fritz) +Solution: Call check_colorcolumn() if 'textwidth' changed. (Christian + Brabandt) +Files: src/buffer.c + + +*** ../vim-7.3.798/src/buffer.c 2012-11-20 12:16:54.000000000 +0100 +--- src/buffer.c 2013-02-06 11:52:54.000000000 +0100 +*************** +*** 1441,1446 **** +--- 1441,1448 ---- + enter_buffer(buf) + buf_T *buf; + { ++ long old_tw = curbuf->b_p_tw; ++ + /* Copy buffer and window local option values. Not for a help buffer. */ + buf_copy_options(buf, BCO_ENTER | BCO_NOHELP); + if (!buf->b_help) +*************** +*** 1464,1469 **** +--- 1466,1473 ---- + + #ifdef FEAT_SYN_HL + curwin->w_s = &(buf->b_s); ++ if (old_tw != buf->b_p_tw) ++ check_colorcolumn(curwin); + #endif + + /* Cursor on first line by default. */ +*** ../vim-7.3.798/src/version.c 2013-01-31 21:09:10.000000000 +0100 +--- src/version.c 2013-02-06 11:55:06.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 799, + /**/ + +-- +I wonder, do vegetarians eat fruit bats? + + /// 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 /// From a2079e03752a7cc479b7bf7c7ea4284ea8509822 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:51 +0100 Subject: [PATCH 137/291] - patchlevel 800 --- 7.3.800 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.3.800 diff --git a/7.3.800 b/7.3.800 new file mode 100644 index 00000000..5e07e248 --- /dev/null +++ b/7.3.800 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.800 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.800 +Problem: The " mark is not adjusted when inserting lines. (Roland Eggner) +Solution: Adjust the line number. (Christian Brabandt) +Files: src/mark.c + + +*** ../vim-7.3.799/src/mark.c 2013-01-23 15:53:08.000000000 +0100 +--- src/mark.c 2013-02-06 12:29:46.000000000 +0100 +*************** +*** 1047,1052 **** +--- 1047,1053 ---- + #ifdef FEAT_WINDOWS + tabpage_T *tab; + #endif ++ static pos_T initpos = INIT_POS_T(1, 0, 0); + + if (line2 < line1 && amount_after == 0L) /* nothing to do */ + return; +*************** +*** 1072,1077 **** +--- 1073,1083 ---- + /* last change position */ + one_adjust(&(curbuf->b_last_change.lnum)); + ++ /* last cursor position, if it was set */ ++ if (!equalpos(curbuf->b_last_cursor, initpos)) ++ one_adjust(&(curbuf->b_last_cursor.lnum)); ++ ++ + #ifdef FEAT_JUMPLIST + /* list of change positions */ + for (i = 0; i < curbuf->b_changelistlen; ++i) +*** ../vim-7.3.799/src/version.c 2013-02-06 12:14:36.000000000 +0100 +--- src/version.c 2013-02-06 12:31:15.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 800, + /**/ + +-- +ARTHUR: What does it say? +BROTHER MAYNARD: It reads ... "Here may be found the last words of Joseph of + Aramathea." "He who is valorous and pure of heart may find + the Holy Grail in the aaaaarrrrrrggghhh..." +ARTHUR: What? +BROTHER MAYNARD: "The Aaaaarrrrrrggghhh..." + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From a136cf47c6e0bc5e58a3ab119e9f0f1cd1d1f174 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:52 +0100 Subject: [PATCH 138/291] - patchlevel 801 --- 7.3.801 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 7.3.801 diff --git a/7.3.801 b/7.3.801 new file mode 100644 index 00000000..d9247ad3 --- /dev/null +++ b/7.3.801 @@ -0,0 +1,61 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.801 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.801 +Problem: ":window set nu?" displays the cursor line. (Nazri Ramliy) +Solution: Do not update the cursor line when conceallevel is zero or the + screen has scrolled. (partly by Christian Brabandt) +Files: src/window.c + + +*** ../vim-7.3.800/src/window.c 2013-01-17 13:59:56.000000000 +0100 +--- src/window.c 2013-02-06 13:28:10.000000000 +0100 +*************** +*** 3991,3999 **** + + #ifdef FEAT_CONCEAL + /* Conceal cursor line in previous window, unconceal in current window. */ +! if (win_valid(owp)) + update_single_line(owp, owp->w_cursor.lnum); +! update_single_line(curwin, curwin->w_cursor.lnum); + #endif + } + +--- 3991,4000 ---- + + #ifdef FEAT_CONCEAL + /* Conceal cursor line in previous window, unconceal in current window. */ +! if (win_valid(owp) && owp->w_p_cole > 0 && !msg_scrolled) + update_single_line(owp, owp->w_cursor.lnum); +! if (curwin->w_p_cole > 0 && !msg_scrolled) +! need_cursor_line_redraw = TRUE; + #endif + } + +*** ../vim-7.3.800/src/version.c 2013-02-06 12:33:15.000000000 +0100 +--- src/version.c 2013-02-06 13:32:28.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 801, + /**/ + +-- +ARTHUR: But if he was dying, he wouldn't bother to carve + "Aaaaarrrrrrggghhh". He'd just say it. +BROTHER MAYNARD: It's down there carved in stone. +GALAHAD: Perhaps he was dictating. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From c3bdb205f5d55bbbc5a951c215783a5e9b828593 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:53 +0100 Subject: [PATCH 139/291] - patchlevel 802 --- 7.3.802 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.3.802 diff --git a/7.3.802 b/7.3.802 new file mode 100644 index 00000000..7b1b62fd --- /dev/null +++ b/7.3.802 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.802 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.802 +Problem: After setting 'isk' to a value ending in a comma appending to the + option fails. +Solution: Disallow a trailing comma for 'isk' and similar options. +Files: src/charset.c + + +*** ../vim-7.3.801/src/charset.c 2013-01-30 17:30:14.000000000 +0100 +--- src/charset.c 2013-02-06 16:20:01.000000000 +0100 +*************** +*** 284,290 **** +--- 284,295 ---- + } + ++c; + } ++ ++ c = *p; + p = skip_to_option_part(p); ++ if (c == ',' && *p == NUL) ++ /* Trailing comma is not allowed. */ ++ return FAIL; + } + } + chartab_initialized = TRUE; +*** ../vim-7.3.801/src/version.c 2013-02-06 13:37:58.000000000 +0100 +--- src/version.c 2013-02-06 16:21:18.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 802, + /**/ + +-- +Dreams are free, but there's a small charge for alterations. + + /// 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 /// From 0d6172b64463ae83e27f67ddf63f12891e11fa79 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:54 +0100 Subject: [PATCH 140/291] - patchlevel 803 --- 7.3.803 | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 7.3.803 diff --git a/7.3.803 b/7.3.803 new file mode 100644 index 00000000..27944f35 --- /dev/null +++ b/7.3.803 @@ -0,0 +1,106 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.803 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.803 (after 7.3.792) +Problem: Substitute with confirmation and then "q" does not replace + anything. (John McGowan) +Solution: Do not break the loop, skip to the end. +Files: src/ex_cmds.c, src/testdir/test80.in, src/testdir/test80.ok + + +*** ../vim-7.3.802/src/ex_cmds.c 2013-01-30 21:55:45.000000000 +0100 +--- src/ex_cmds.c 2013-02-06 18:13:52.000000000 +0100 +*************** +*** 4878,4884 **** + goto skip; + } + if (got_quit) +! break; + } + + /* Move the cursor to the start of the match, so that we can +--- 4878,4884 ---- + goto skip; + } + if (got_quit) +! goto skip; + } + + /* Move the cursor to the start of the match, so that we can +*** ../vim-7.3.802/src/testdir/test80.in 2013-01-30 17:03:25.000000000 +0100 +--- src/testdir/test80.in 2013-02-06 18:21:07.000000000 +0100 +*************** +*** 153,164 **** + :s/\(^\|,\)\ze\(,\|Y\)/\1N/gc + a:$put =',,Z' + :s/\(^\|,\)\ze\(,\|Z\)/\1N/gc +! yy/^TEST_9 + ENDTEST + + TEST_9: + + STARTTEST + :/^Results/,$wq! test.out + ENDTEST + +--- 153,175 ---- + :s/\(^\|,\)\ze\(,\|Y\)/\1N/gc + a:$put =',,Z' + :s/\(^\|,\)\ze\(,\|Z\)/\1N/gc +! yy/^TEST_9: + ENDTEST + + TEST_9: + + STARTTEST ++ :set magic& ++ :set cpo& ++ :$put =\"\n\nTEST_9:\" ++ :$put ='xxx' ++ :s/x/X/gc ++ yyq/^TEST_10: ++ ENDTEST ++ ++ TEST_10: ++ ++ STARTTEST + :/^Results/,$wq! test.out + ENDTEST + +*** ../vim-7.3.802/src/testdir/test80.ok 2013-01-30 17:03:25.000000000 +0100 +--- src/testdir/test80.ok 2013-02-06 18:21:16.000000000 +0100 +*************** +*** 105,107 **** +--- 105,111 ---- + N,,NX + N,,NY + N,,NZ ++ ++ ++ TEST_9: ++ XXx +*** ../vim-7.3.802/src/version.c 2013-02-06 16:26:20.000000000 +0100 +--- src/version.c 2013-02-06 18:14:42.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 803, + /**/ + +-- +To the optimist, the glass is half full. +To the pessimist, the glass is half empty. +To the engineer, the glass is twice as big as it needs to be. + + /// 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 /// From 0194ec7a2f2820281a3d3a0c4e32059a74b7c12e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:55 +0100 Subject: [PATCH 141/291] - patchlevel 804 --- 7.3.804 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.3.804 diff --git a/7.3.804 b/7.3.804 new file mode 100644 index 00000000..b9a7f9ca --- /dev/null +++ b/7.3.804 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.804 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.804 (after 7.3.799) +Problem: Compiler warning for tiny build. (Tony Mechelynck) +Solution: Add #ifdefs around variable. +Files: src/buffer.c + + +*** ../vim-7.3.803/src/buffer.c 2013-02-06 12:14:36.000000000 +0100 +--- src/buffer.c 2013-02-06 18:42:05.000000000 +0100 +*************** +*** 1441,1447 **** +--- 1441,1449 ---- + enter_buffer(buf) + buf_T *buf; + { ++ #ifdef FEAT_SYN_HL + long old_tw = curbuf->b_p_tw; ++ #endif + + /* Copy buffer and window local option values. Not for a help buffer. */ + buf_copy_options(buf, BCO_ENTER | BCO_NOHELP); +*** ../vim-7.3.803/src/version.c 2013-02-06 18:23:58.000000000 +0100 +--- src/version.c 2013-02-06 18:42:59.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 804, + /**/ + +-- +Sorry, no fortune today. + + /// 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 /// From c91c20960ec03f1563e27a2dad877551afa4b93e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:56 +0100 Subject: [PATCH 142/291] - patchlevel 805 --- 7.3.805 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 7.3.805 diff --git a/7.3.805 b/7.3.805 new file mode 100644 index 00000000..5604ccee --- /dev/null +++ b/7.3.805 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.805 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.805 +Problem: Lua version 5.2 is not detected properly on Arch Linux. +Solution: Adjust autoconf. (lilydjwg) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.3.804/src/configure.in 2013-01-30 14:55:34.000000000 +0100 +--- src/configure.in 2013-02-06 19:22:17.000000000 +0100 +*************** +*** 496,508 **** + else + dnl Determine the SONAME for the current version, but fallback to + dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found. +! for i in 0 1 2 3 4 5 6 7 8 9; do +! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then +! LUA_SONAME=".$i" +! break +! fi + done +- vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME" + fi + AC_DEFINE(DYNAMIC_LUA) + LUA_LIBS="" +--- 496,510 ---- + else + dnl Determine the SONAME for the current version, but fallback to + dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found. +! for LUA_SOVER in "${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do +! for i in 0 1 2 3 4 5 6 7 8 9; do +! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${LUA_SOVER}.$i"; then +! LUA_SONAME=".$i" +! break +! fi +! done +! vi_cv_dll_name_lua="liblua${LUA_SOVER}$LUA_SONAME" + done + fi + AC_DEFINE(DYNAMIC_LUA) + LUA_LIBS="" +*** ../vim-7.3.804/src/auto/configure 2013-01-30 14:55:34.000000000 +0100 +--- src/auto/configure 2013-02-06 19:24:11.000000000 +0100 +*************** +*** 4737,4749 **** + if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then + vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll" + else +! for i in 0 1 2 3 4 5 6 7 8 9; do +! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then +! LUA_SONAME=".$i" +! break +! fi + done +- vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME" + fi + $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h + +--- 4737,4751 ---- + if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then + vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll" + else +! for LUA_SOVER in "${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do +! for i in 0 1 2 3 4 5 6 7 8 9; do +! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${LUA_SOVER}.$i"; then +! LUA_SONAME=".$i" +! break +! fi +! done +! vi_cv_dll_name_lua="liblua${LUA_SOVER}$LUA_SONAME" + done + fi + $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h + +*** ../vim-7.3.804/src/version.c 2013-02-06 18:44:57.000000000 +0100 +--- src/version.c 2013-02-06 19:26:37.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 805, + /**/ + +-- +Permission is granted to read this message out aloud on Kings Cross Road, +London, under the condition that the orator is properly dressed. + + /// 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 /// From a23bd4ee3c14240ad1939a4602e8905381d9b3fc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:57 +0100 Subject: [PATCH 143/291] - patchlevel 806 --- 7.3.806 | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 7.3.806 diff --git a/7.3.806 b/7.3.806 new file mode 100644 index 00000000..a28cd5b1 --- /dev/null +++ b/7.3.806 @@ -0,0 +1,171 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.806 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.806 +Problem: Compiler warnings in Perl code when building with Visual studio + 2012. (skeept) +Solution: Add type casts. (Christian Brabandt, 2013 Jan 30) +Files: src/if_perl.xs + + +*** ../vim-7.3.805/src/if_perl.xs 2012-09-21 12:50:44.000000000 +0200 +--- src/if_perl.xs 2013-02-06 19:55:12.000000000 +0100 +*************** +*** 1048,1054 **** + { + SV *sv = ST(i); + if (SvIOK(sv)) +! b = SvIV(ST(i)); + else + { + char_u *pat; +--- 1048,1054 ---- + { + SV *sv = ST(i); + if (SvIOK(sv)) +! b = (int) SvIV(ST(i)); + else + { + char_u *pat; +*************** +*** 1091,1097 **** + { + for (i = 0; i < items; i++) + { +! w = SvIV(ST(i)); + vimwin = win_find_nr(w); + if (vimwin) + XPUSHs(newWINrv(newSV(0), vimwin)); +--- 1091,1097 ---- + { + for (i = 0; i < items; i++) + { +! w = (int) SvIV(ST(i)); + vimwin = win_find_nr(w); + if (vimwin) + XPUSHs(newWINrv(newSV(0), vimwin)); +*************** +*** 1154,1161 **** + + if (!win_valid(win)) + win = curwin; +! lnum = SvIV(ST(1)); +! col = SvIV(ST(2)); + win->w_cursor.lnum = lnum; + win->w_cursor.col = col; + check_cursor(); /* put cursor on an existing line */ +--- 1154,1161 ---- + + if (!win_valid(win)) + win = curwin; +! lnum = (int) SvIV(ST(1)); +! col = (int) SvIV(ST(2)); + win->w_cursor.lnum = lnum; + win->w_cursor.col = col; + check_cursor(); /* put cursor on an existing line */ +*************** +*** 1216,1222 **** + { + for (i = 1; i < items; i++) + { +! lnum = SvIV(ST(i)); + if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) + { + line = ml_get_buf(vimbuf, lnum, FALSE); +--- 1216,1222 ---- + { + for (i = 1; i < items; i++) + { +! lnum = (long) SvIV(ST(i)); + if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) + { + line = ml_get_buf(vimbuf, lnum, FALSE); +*************** +*** 1239,1245 **** + if (items < 3) + croak("Usage: VIBUF::Set(vimbuf, lnum, @lines)"); + +! lnum = SvIV(ST(1)); + for(i = 2; i < items; i++, lnum++) + { + line = SvPV(ST(i),PL_na); +--- 1239,1245 ---- + if (items < 3) + croak("Usage: VIBUF::Set(vimbuf, lnum, @lines)"); + +! lnum = (long) SvIV(ST(1)); + for(i = 2; i < items; i++, lnum++) + { + line = SvPV(ST(i),PL_na); +*************** +*** 1274,1286 **** + { + if (items == 2) + { +! lnum = SvIV(ST(1)); + count = 1; + } + else if (items == 3) + { +! lnum = SvIV(ST(1)); +! count = 1 + SvIV(ST(2)) - lnum; + if (count == 0) + count = 1; + if (count < 0) +--- 1274,1286 ---- + { + if (items == 2) + { +! lnum = (long) SvIV(ST(1)); + count = 1; + } + else if (items == 3) + { +! lnum = (long) SvIV(ST(1)); +! count = (long) 1 + SvIV(ST(2)) - lnum; + if (count == 0) + count = 1; + if (count < 0) +*************** +*** 1331,1337 **** + if (items < 3) + croak("Usage: VIBUF::Append(vimbuf, lnum, @lines)"); + +! lnum = SvIV(ST(1)); + for (i = 2; i < items; i++, lnum++) + { + line = SvPV(ST(i),PL_na); +--- 1331,1337 ---- + if (items < 3) + croak("Usage: VIBUF::Append(vimbuf, lnum, @lines)"); + +! lnum = (long) SvIV(ST(1)); + for (i = 2; i < items; i++, lnum++) + { + line = SvPV(ST(i),PL_na); +*** ../vim-7.3.805/src/version.c 2013-02-06 19:49:38.000000000 +0100 +--- src/version.c 2013-02-06 19:58:16.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 806, + /**/ + +-- +BRIDGEKEEPER: What is your favorite colour? +LAUNCELOT: Blue. +BRIDGEKEEPER: Right. Off you go. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 4ba41e25ac02cc13706a3b9dbf3bf67776885aac Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:37:58 +0100 Subject: [PATCH 144/291] - patchlevel 807 --- 7.3.807 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.3.807 diff --git a/7.3.807 b/7.3.807 new file mode 100644 index 00000000..95fbbcba --- /dev/null +++ b/7.3.807 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.807 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.807 +Problem: Popup menu does not work properly with the preview window, folds + and 'cursorcolumn'. +Solution: Redraw the popup menu after redrawing windows. (Christian + Brabandt) +Files: src/screen.c + + +*** ../vim-7.3.806/src/screen.c 2013-01-30 12:31:32.000000000 +0100 +--- src/screen.c 2013-02-13 11:59:23.000000000 +0100 +*************** +*** 548,553 **** +--- 548,558 ---- + #if defined(FEAT_SEARCH_EXTRA) + end_search_hl(); + #endif ++ #ifdef FEAT_INS_EXPAND ++ /* May need to redraw the popup menu. */ ++ if (pum_visible()) ++ pum_redraw(); ++ #endif + + #ifdef FEAT_WINDOWS + /* Reset b_mod_set flags. Going through all windows is probably faster +*** ../vim-7.3.806/src/version.c 2013-02-06 19:58:38.000000000 +0100 +--- src/version.c 2013-02-13 12:00:55.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 807, + /**/ + +-- +A special cleaning ordinance bans housewives from hiding dirt and dust under a +rug in a dwelling. + [real standing law in Pennsylvania, United States of America] + + /// 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 /// From ab8882d30829360139584db0426f25cfb589a97a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:00 +0100 Subject: [PATCH 145/291] - patchlevel 808 --- 7.3.808 | 289 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 7.3.808 diff --git a/7.3.808 b/7.3.808 new file mode 100644 index 00000000..a63e7731 --- /dev/null +++ b/7.3.808 @@ -0,0 +1,289 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.808 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.808 +Problem: Python threads still do not work properly. +Solution: Fix both Python 2 and 3. Add tests. (Ken Takata) +Files: src/if_python.c, src/if_python3.c, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok + + +*** ../vim-7.3.807/src/if_python.c 2013-01-30 11:44:33.000000000 +0100 +--- src/if_python.c 2013-02-13 14:07:28.000000000 +0100 +*************** +*** 741,747 **** + PyMac_Initialize(); + #endif + /* Initialise threads, and below save the state using +! * PyGILState_Ensure. Without the call to PyGILState_Ensure, thread + * specific state (such as the system trace hook), will be lost + * between invocations of Python code. */ + PyEval_InitThreads(); +--- 741,747 ---- + PyMac_Initialize(); + #endif + /* Initialise threads, and below save the state using +! * PyEval_SaveThread. Without the call to PyEval_SaveThread, thread + * specific state (such as the system trace hook), will be lost + * between invocations of Python code. */ + PyEval_InitThreads(); +*************** +*** 755,764 **** + if (PythonMod_Init()) + goto fail; + +- /* The first python thread is vim's, release the lock. */ +- Python_SaveThread(); +- pygilstate = PyGILState_Ensure(); +- + globals = PyModule_GetDict(PyImport_AddModule("__main__")); + + /* Remove the element from sys.path that was added because of our +--- 755,760 ---- +*************** +*** 767,773 **** + * the current directory in sys.path. */ + PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); + +! PyGILState_Release(pygilstate); + + initialised = 1; + } +--- 763,776 ---- + * the current directory in sys.path. */ + PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); + +! /* lock is created and acquired in PyEval_InitThreads() and thread +! * state is created in Py_Initialize() +! * there _PyGILState_NoteThreadState() also sets gilcounter to 1 +! * (python must have threads enabled!) +! * so the following does both: unlock GIL and save thread state in TLS +! * without deleting thread state +! */ +! PyEval_SaveThread(); + + initialised = 1; + } +*** ../vim-7.3.807/src/if_python3.c 2012-11-28 15:33:10.000000000 +0100 +--- src/if_python3.c 2013-02-13 14:07:28.000000000 +0100 +*************** +*** 729,741 **** + #else + PyMac_Initialize(); + #endif +! /* Initialise threads, and save the state using PyGILState_Ensure. +! * Without the call to PyGILState_Ensure, thread specific state (such +! * as the system trace hook), will be lost between invocations of +! * Python code. */ + PyEval_InitThreads(); +- pygilstate = PyGILState_Ensure(); +- + #ifdef DYNAMIC_PYTHON3 + get_py3_exceptions(); + #endif +--- 729,739 ---- + #else + PyMac_Initialize(); + #endif +! /* Initialise threads, and below save the state using +! * PyEval_SaveThread. Without the call to PyEval_SaveThread, thread +! * specific state (such as the system trace hook), will be lost +! * between invocations of Python code. */ + PyEval_InitThreads(); + #ifdef DYNAMIC_PYTHON3 + get_py3_exceptions(); + #endif +*************** +*** 754,766 **** + */ + PyRun_SimpleString("import vim; import sys; sys.path = list(filter(lambda x: not x.endswith('must>not&exist'), sys.path))"); + +! // lock is created and acquired in PyEval_InitThreads() and thread +! // state is created in Py_Initialize() +! // there _PyGILState_NoteThreadState() also sets gilcounter to 1 +! // (python must have threads enabled!) +! // so the following does both: unlock GIL and save thread state in TLS +! // without deleting thread state +! PyGILState_Release(pygilstate); + + py3initialised = 1; + } +--- 752,765 ---- + */ + PyRun_SimpleString("import vim; import sys; sys.path = list(filter(lambda x: not x.endswith('must>not&exist'), sys.path))"); + +! /* lock is created and acquired in PyEval_InitThreads() and thread +! * state is created in Py_Initialize() +! * there _PyGILState_NoteThreadState() also sets gilcounter to 1 +! * (python must have threads enabled!) +! * so the following does both: unlock GIL and save thread state in TLS +! * without deleting thread state +! */ +! PyEval_SaveThread(); + + py3initialised = 1; + } +*** ../vim-7.3.807/src/testdir/test86.in 2012-09-21 14:00:05.000000000 +0200 +--- src/testdir/test86.in 2013-02-13 13:58:25.000000000 +0100 +*************** +*** 267,272 **** +--- 267,320 ---- + : $put =toput + : endtry + :endfor ++ :" ++ :" threading ++ :let l = [0] ++ :py l=vim.bindeval('l') ++ :py < 8 # check if the background thread is working ++ :$put =string(l) ++ :" ++ :" settrace ++ :let l = [] ++ :py l=vim.bindeval('l') ++ :py < 8 # check if the background thread is working ++ :$put =string(l) ++ :" ++ :" settrace ++ :let l = [] ++ :py3 l=vim.bindeval('l') ++ :py3 < Date: Mon, 18 Feb 2013 15:38:01 +0100 Subject: [PATCH 146/291] - patchlevel 809 --- 7.3.809 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.3.809 diff --git a/7.3.809 b/7.3.809 new file mode 100644 index 00000000..ef27688f --- /dev/null +++ b/7.3.809 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.809 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.809 +Problem: The dosinst.c program has a buffer overflow. (Thomas Gwae) +Solution: Ignore $VIMRUNTIME if it is too long. +Files: src/dosinst.c + + +*** ../vim-7.3.808/src/dosinst.c 2010-08-15 21:57:28.000000000 +0200 +--- src/dosinst.c 2013-02-13 14:34:25.000000000 +0100 +*************** +*** 375,381 **** + + /* First get $VIMRUNTIME. If it's set, remove the tail. */ + vim = getenv("VIMRUNTIME"); +! if (vim != NULL && *vim != 0) + { + strcpy(buf, vim); + remove_tail(buf); +--- 375,381 ---- + + /* First get $VIMRUNTIME. If it's set, remove the tail. */ + vim = getenv("VIMRUNTIME"); +! if (vim != NULL && *vim != 0 && strlen(vim) < BUFSIZE) + { + strcpy(buf, vim); + remove_tail(buf); +*** ../vim-7.3.808/src/version.c 2013-02-13 14:17:00.000000000 +0100 +--- src/version.c 2013-02-13 14:36:33.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 809, + /**/ + +-- +"I know that there are people who don't love their fellow man, +and I hate those people!" - Tom Lehrer + + /// 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 /// From 5e08dfa4ccef538fe33dbbd9937e8c88ffce5208 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:03 +0100 Subject: [PATCH 147/291] - patchlevel 810 --- 7.3.810 | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 7.3.810 diff --git a/7.3.810 b/7.3.810 new file mode 100644 index 00000000..60c633ac --- /dev/null +++ b/7.3.810 @@ -0,0 +1,259 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.810 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.810 +Problem: 'relativenumber is reset unexpectedly. (François Ingelrest) +Solution: After an option was reset also reset the global value. Add a test. + (Christian Brabandt) +Files: src/option.c, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test89.in, + src/testdir/test89.ok + + +*** ../vim-7.3.809/src/option.c 2013-01-17 17:37:31.000000000 +0100 +--- src/option.c 2013-02-13 15:40:12.000000000 +0100 +*************** +*** 7109,7115 **** + return errmsg; + } + +! #ifdef FEAT_SYN_HL + /* + * Simple int comparison function for use with qsort() + */ +--- 7109,7115 ---- + return errmsg; + } + +! #if defined(FEAT_SYN_HL) || defined(PROTO) + /* + * Simple int comparison function for use with qsort() + */ +*************** +*** 7630,7646 **** + } + #endif + +! /* 'list', 'number' */ +! else if ((int *)varp == &curwin->w_p_list +! || (int *)varp == &curwin->w_p_nu + || (int *)varp == &curwin->w_p_rnu) + { + /* If 'number' is set, reset 'relativenumber'. */ + /* If 'relativenumber' is set, reset 'number'. */ + if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu) + curwin->w_p_rnu = FALSE; + if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu) + curwin->w_p_nu = FALSE; + } + + else if ((int *)varp == &curbuf->b_p_ro) +--- 7630,7651 ---- + } + #endif + +! /* 'number', 'relativenumber' */ +! else if ((int *)varp == &curwin->w_p_nu + || (int *)varp == &curwin->w_p_rnu) + { + /* If 'number' is set, reset 'relativenumber'. */ + /* If 'relativenumber' is set, reset 'number'. */ + if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu) ++ { + curwin->w_p_rnu = FALSE; ++ curwin->w_allbuf_opt.wo_rnu = FALSE; ++ } + if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu) ++ { + curwin->w_p_nu = FALSE; ++ curwin->w_allbuf_opt.wo_nu = FALSE; ++ } + } + + else if ((int *)varp == &curbuf->b_p_ro) +*** ../vim-7.3.809/src/testdir/Make_amiga.mak 2012-12-05 16:10:21.000000000 +0100 +--- src/testdir/Make_amiga.mak 2013-02-13 15:01:32.000000000 +0100 +*************** +*** 31,37 **** + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out test88.out + + .SUFFIXES: .in .out + +--- 31,38 ---- + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out test88.out \ +! test89.out + + .SUFFIXES: .in .out + +*************** +*** 136,138 **** +--- 137,140 ---- + test83.out: test83.in + test84.out: test84.in + test88.out: test88.in ++ test89.out: test89.in +*** ../vim-7.3.809/src/testdir/Make_dos.mak 2012-12-05 16:10:21.000000000 +0100 +--- src/testdir/Make_dos.mak 2013-02-13 15:00:59.000000000 +0100 +*************** +*** 30,36 **** + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out + + SCRIPTS32 = test50.out test70.out + +--- 30,37 ---- + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out \ +! test89.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.809/src/testdir/Make_ming.mak 2012-12-05 16:10:21.000000000 +0100 +--- src/testdir/Make_ming.mak 2013-02-13 15:01:16.000000000 +0100 +*************** +*** 50,56 **** + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out + + SCRIPTS32 = test50.out test70.out + +--- 50,57 ---- + test68.out test69.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out \ +! test89.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.809/src/testdir/Make_os2.mak 2012-12-05 16:10:21.000000000 +0100 +--- src/testdir/Make_os2.mak 2013-02-13 15:00:59.000000000 +0100 +*************** +*** 31,37 **** + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out test88.out + + .SUFFIXES: .in .out + +--- 31,38 ---- + test66.out test67.out test68.out test69.out test70.out \ + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ +! test81.out test82.out test83.out test84.out test88.out \ +! test89.out + + .SUFFIXES: .in .out + +*** ../vim-7.3.809/src/testdir/Make_vms.mms 2012-12-05 16:10:21.000000000 +0100 +--- src/testdir/Make_vms.mms 2013-02-13 15:00:59.000000000 +0100 +*************** +*** 76,82 **** + test66.out test67.out test68.out test69.out \ + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ +! test82.out test83.out test84.out test88.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +--- 76,82 ---- + test66.out test67.out test68.out test69.out \ + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ +! test82.out test83.out test84.out test88.out test89.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +*** ../vim-7.3.809/src/testdir/Makefile 2012-12-05 18:21:28.000000000 +0100 +--- src/testdir/Makefile 2013-02-13 15:00:59.000000000 +0100 +*************** +*** 27,33 **** + test69.out test70.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out + + SCRIPTS_GUI = test16.out + +--- 27,34 ---- + test69.out test70.out test71.out test72.out test73.out \ + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ +! test84.out test85.out test86.out test87.out test88.out \ +! test89.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.3.809/src/testdir/test89.in 2013-02-13 15:43:44.000000000 +0100 +--- src/testdir/test89.in 2013-02-13 15:07:28.000000000 +0100 +*************** +*** 0 **** +--- 1,15 ---- ++ Some tests for setting 'number' and 'relativenumber' ++ ++ STARTTEST ++ :set hidden nocp nu rnu ++ :redir @a | set nu? rnu? | redir END ++ :e! xx ++ :redir @b | set nu? rnu? | redir END ++ :e! # ++ :$put ='results:' ++ :$put a ++ :$put b ++ :/^results/,$w! test.out ++ :q! ++ ENDTEST ++ +*** ../vim-7.3.809/src/testdir/test89.ok 2013-02-13 15:43:44.000000000 +0100 +--- src/testdir/test89.ok 2013-02-13 15:08:05.000000000 +0100 +*************** +*** 0 **** +--- 1,7 ---- ++ results: ++ ++ nonumber ++ relativenumber ++ ++ nonumber ++ relativenumber +*** ../vim-7.3.809/src/version.c 2013-02-13 14:36:39.000000000 +0100 +--- src/version.c 2013-02-13 15:42:18.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 810, + /**/ + +-- +A law to reduce crime states: "It is mandatory for a motorist with criminal +intentions to stop at the city limits and telephone the chief of police as he +is entering the town. + [real standing law in Washington, United States of America] + + /// 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 /// From 91a6a7037e643d9f844d7bf6113e80852f646dd4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:05 +0100 Subject: [PATCH 148/291] - patchlevel 811 --- 7.3.811 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.3.811 diff --git a/7.3.811 b/7.3.811 new file mode 100644 index 00000000..657b3e0c --- /dev/null +++ b/7.3.811 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.811 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.811 +Problem: Useless termresponse parsing for SGR mouse. +Solution: Skip the parsing. (Hayaki Saito) +Files: src/term.c + + +*** ../vim-7.3.810/src/term.c 2012-12-05 14:42:56.000000000 +0100 +--- src/term.c 2013-02-13 15:49:24.000000000 +0100 +*************** +*** 4045,4052 **** + #ifdef FEAT_TERMRESPONSE + if (key_name[0] == NUL + /* URXVT mouse uses [#;#;#M, but we are matching [ */ +! || key_name[0] == KS_URXVT_MOUSE +! || key_name[0] == KS_SGR_MOUSE) + { + /* Check for xterm version string: "[>{x};{vers};{y}c". Also + * eat other possible responses to t_RV, rxvt returns +--- 4045,4051 ---- + #ifdef FEAT_TERMRESPONSE + if (key_name[0] == NUL + /* URXVT mouse uses [#;#;#M, but we are matching [ */ +! || key_name[0] == KS_URXVT_MOUSE) + { + /* Check for xterm version string: "[>{x};{vers};{y}c". Also + * eat other possible responses to t_RV, rxvt returns +*** ../vim-7.3.810/src/version.c 2013-02-13 15:44:22.000000000 +0100 +--- src/version.c 2013-02-13 15:50:27.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 811, + /**/ + +-- +No children may attend school with their breath smelling of "wild onions." + [real standing law in West Virginia, United States of America] + + /// 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 /// From 35e78d71226d959f0eb0a9fcc12f4d0a38bc716c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:06 +0100 Subject: [PATCH 149/291] - patchlevel 812 --- 7.3.812 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.3.812 diff --git a/7.3.812 b/7.3.812 new file mode 100644 index 00000000..83b9d2f8 --- /dev/null +++ b/7.3.812 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.812 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.812 +Problem: When 'indentexpr' moves the cursor "curswant" not restored. +Solution: Restore "curswant". (Sung Pae) +Files: src/misc1.c + + +*** ../vim-7.3.811/src/misc1.c 2013-01-17 17:01:56.000000000 +0100 +--- src/misc1.c 2013-02-13 16:04:08.000000000 +0100 +*************** +*** 8809,8820 **** + get_expr_indent() + { + int indent; +! pos_T pos; + int save_State; + int use_sandbox = was_set_insecurely((char_u *)"indentexpr", + OPT_LOCAL); + +! pos = curwin->w_cursor; + set_vim_var_nr(VV_LNUM, curwin->w_cursor.lnum); + if (use_sandbox) + ++sandbox; +--- 8809,8826 ---- + get_expr_indent() + { + int indent; +! pos_T save_pos; +! colnr_T save_curswant; +! int save_set_curswant; + int save_State; + int use_sandbox = was_set_insecurely((char_u *)"indentexpr", + OPT_LOCAL); + +! /* Save and restore cursor position and curswant, in case it was changed +! * via :normal commands */ +! save_pos = curwin->w_cursor; +! save_curswant = curwin->w_curswant; +! save_set_curswant = curwin->w_set_curswant; + set_vim_var_nr(VV_LNUM, curwin->w_cursor.lnum); + if (use_sandbox) + ++sandbox; +*************** +*** 8829,8835 **** + * command. */ + save_State = State; + State = INSERT; +! curwin->w_cursor = pos; + check_cursor(); + State = save_State; + +--- 8835,8843 ---- + * command. */ + save_State = State; + State = INSERT; +! curwin->w_cursor = save_pos; +! curwin->w_curswant = save_curswant; +! curwin->w_set_curswant = save_set_curswant; + check_cursor(); + State = save_State; + +*** ../vim-7.3.811/src/version.c 2013-02-13 15:53:15.000000000 +0100 +--- src/version.c 2013-02-13 16:01:52.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 812, + /**/ + +-- +Living on Earth includes an annual free trip around the Sun. + + /// 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 /// From 09b60b4a8f7bcfa832b311c3b8d21c2dd9d97fda Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:07 +0100 Subject: [PATCH 150/291] - patchlevel 813 --- 7.3.813 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.3.813 diff --git a/7.3.813 b/7.3.813 new file mode 100644 index 00000000..de1a0a99 --- /dev/null +++ b/7.3.813 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.813 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.813 +Problem: The CompleteDone event is not triggered when there are no pattern + matches. (Jianjun Mao) +Solution: Trigger the event. (Christian Brabandt) +Files: src/edit.c + + +*** ../vim-7.3.812/src/edit.c 2013-01-17 15:36:54.000000000 +0100 +--- src/edit.c 2013-02-13 16:25:35.000000000 +0100 +*************** +*** 3846,3851 **** +--- 3846,3857 ---- + #endif + } + } ++ #ifdef FEAT_AUTOCMD ++ else if (ctrl_x_mode == CTRL_X_LOCAL_MSG) ++ /* Trigger the CompleteDone event to give scripts a chance to act ++ * upon the (possibly failed) completion. */ ++ apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf); ++ #endif + + /* reset continue_* if we left expansion-mode, if we stay they'll be + * (re)set properly in ins_complete() */ +*** ../vim-7.3.812/src/version.c 2013-02-13 16:10:13.000000000 +0100 +--- src/version.c 2013-02-13 16:23:50.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 813, + /**/ + +-- +FROG: How you English say: I one more time, mac, I unclog my nose towards + you, sons of a window-dresser, so, you think you could out-clever us + French fellows with your silly knees-bent creeping about advancing + behaviour. (blows a raspberry) I wave my private parts at your aunties, + you brightly-coloured, mealy-templed, cranberry-smelling, electric + donkey-bottom biters. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 0aa87c5e8b85f7db789d6b79eb34e533bf8454cc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:08 +0100 Subject: [PATCH 151/291] - patchlevel 814 --- 7.3.814 | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 7.3.814 diff --git a/7.3.814 b/7.3.814 new file mode 100644 index 00000000..28d2acb5 --- /dev/null +++ b/7.3.814 @@ -0,0 +1,146 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.814 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.814 +Problem: Can't input multibyte characters on Win32 console if 'encoding' is + different from current codepage. +Solution: Use convert_input_safe() instead of convert_input(). Make + string_convert_ext() return an error for incomplete input. (Ken + Takata) +Files: src/mbyte.c, src/os_win32.c + + +*** ../vim-7.3.813/src/mbyte.c 2013-01-30 13:59:31.000000000 +0100 +--- src/mbyte.c 2013-02-13 16:38:25.000000000 +0100 +*************** +*** 6256,6263 **** + if (vcp->vc_cpfrom == 0) + tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); + else +! tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0, +! ptr, len, 0, 0); + tmp = (short_u *)alloc(sizeof(short_u) * tmp_len); + if (tmp == NULL) + break; +--- 6256,6278 ---- + if (vcp->vc_cpfrom == 0) + tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); + else +! { +! tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, +! unconvlenp ? MB_ERR_INVALID_CHARS : 0, +! ptr, len, 0, 0); +! if (tmp_len == 0 +! && GetLastError() == ERROR_NO_UNICODE_TRANSLATION) +! { +! if (lenp != NULL) +! *lenp = 0; +! if (unconvlenp != NULL) +! *unconvlenp = len; +! retval = alloc(1); +! if (retval) +! retval[0] = NUL; +! return retval; +! } +! } + tmp = (short_u *)alloc(sizeof(short_u) * tmp_len); + if (tmp == NULL) + break; +*** ../vim-7.3.813/src/os_win32.c 2012-11-20 16:53:34.000000000 +0100 +--- src/os_win32.c 2013-02-13 16:41:05.000000000 +0100 +*************** +*** 1466,1471 **** +--- 1466,1476 ---- + #define TYPEAHEADLEN 20 + static char_u typeahead[TYPEAHEADLEN]; /* previously typed bytes. */ + static int typeaheadlen = 0; ++ #ifdef FEAT_MBYTE ++ static char_u *rest = NULL; /* unconverted rest of previous read */ ++ static int restlen = 0; ++ int unconverted; ++ #endif + + /* First use any typeahead that was kept because "buf" was too small. */ + if (typeaheadlen > 0) +*************** +*** 1569,1574 **** +--- 1574,1606 ---- + + c = tgetch(&modifiers, &ch2); + ++ #ifdef FEAT_MBYTE ++ /* stolen from fill_input_buf() in ui.c */ ++ if (rest != NULL) ++ { ++ /* Use remainder of previous call, starts with an invalid ++ * character that may become valid when reading more. */ ++ if (restlen > TYPEAHEADLEN - typeaheadlen) ++ unconverted = TYPEAHEADLEN - typeaheadlen; ++ else ++ unconverted = restlen; ++ mch_memmove(typeahead + typeaheadlen, rest, unconverted); ++ if (unconverted == restlen) ++ { ++ vim_free(rest); ++ rest = NULL; ++ } ++ else ++ { ++ restlen -= unconverted; ++ mch_memmove(rest, rest + unconverted, restlen); ++ } ++ typeaheadlen += unconverted; ++ } ++ else ++ unconverted = 0; ++ #endif ++ + if (typebuf_changed(tb_change_cnt)) + { + /* "buf" may be invalid now if a client put something in the +*************** +*** 1604,1611 **** + * when 'tenc' is set. */ + if (input_conv.vc_type != CONV_NONE + && (ch2 == NUL || c != K_NUL)) +! n = convert_input(typeahead + typeaheadlen, n, +! TYPEAHEADLEN - typeaheadlen); + #endif + + /* Use the ALT key to set the 8th bit of the character +--- 1636,1647 ---- + * when 'tenc' is set. */ + if (input_conv.vc_type != CONV_NONE + && (ch2 == NUL || c != K_NUL)) +! { +! typeaheadlen -= unconverted; +! n = convert_input_safe(typeahead + typeaheadlen, +! n + unconverted, TYPEAHEADLEN - typeaheadlen, +! rest == NULL ? &rest : NULL, &restlen); +! } + #endif + + /* Use the ALT key to set the 8th bit of the character +*** ../vim-7.3.813/src/version.c 2013-02-13 16:30:17.000000000 +0100 +--- src/version.c 2013-02-13 16:47:50.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 814, + /**/ + +-- +SIGIRO -- irony detected (iron core dumped) + + /// 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 /// From 6fd135fdb8da1975e245676592685bc21d4359d9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:09 +0100 Subject: [PATCH 152/291] - patchlevel 815 --- 7.3.815 | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 7.3.815 diff --git a/7.3.815 b/7.3.815 new file mode 100644 index 00000000..f97dcbc8 --- /dev/null +++ b/7.3.815 @@ -0,0 +1,168 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.815 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.815 +Problem: Building with Cygwin and Ruby doesn't work. +Solution: Copy some things from the MingW build file. (Ken Takata) +Files: src/Make_cyg.mak + + +*** ../vim-7.3.814/src/Make_cyg.mak 2013-01-23 13:55:16.000000000 +0100 +--- src/Make_cyg.mak 2013-02-13 17:03:23.000000000 +0100 +*************** +*** 47,54 **** + # (i386) + # USEDLL no or yes: set to yes to use the Runtime library DLL (no) + # For USEDLL=yes the cygwin1.dll is required to run Vim. +! # "no" does not work with latest version of Cygwin, use +! # Make_ming.mak instead. Or set CC to gcc-3 and add + # -L/lib/w32api to EXTRA_LIBS. + # POSTSCRIPT no or yes: set to yes for PostScript printing (no) + # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG) +--- 47,54 ---- + # (i386) + # USEDLL no or yes: set to yes to use the Runtime library DLL (no) + # For USEDLL=yes the cygwin1.dll is required to run Vim. +! # For "no" the mingw-gcc-g++ package or the mingw64-i686-gcc-g++ +! # package is required to complie Vim. Or set CC to gcc-3 and add + # -L/lib/w32api to EXTRA_LIBS. + # POSTSCRIPT no or yes: set to yes for PostScript printing (no) + # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG) +*************** +*** 114,122 **** + INCLUDES = -march=$(ARCH) -Iproto + + #>>>>> name of the compiler and linker, name of lib directory +! CROSS_COMPILE = + CC = gcc + RC = windres + + ############################## + # DYNAMIC_PERL=yes and no both work +--- 114,130 ---- + INCLUDES = -march=$(ARCH) -Iproto + + #>>>>> name of the compiler and linker, name of lib directory +! ifeq (yes, $(USEDLL)) +! # CROSS_COMPILE is used for the gvimext DLL. +! CROSS_COMPILE = i686-pc-mingw32- + CC = gcc + RC = windres ++ else ++ # i686-pc-mingw32-gcc, i686-w64-mingw32-gcc or gcc-3 can be used. ++ CROSS_COMPILE = i686-pc-mingw32- ++ CC = $(CROSS_COMPILE)gcc ++ RC = $(CROSS_COMPILE)windres ++ endif + + ############################## + # DYNAMIC_PERL=yes and no both work +*************** +*** 193,223 **** + ############################## + ifdef RUBY + + ifndef RUBY_VER +! RUBY_VER=16 + endif +- + ifndef RUBY_VER_LONG +! RUBY_VER_LONG=1.6 + endif +! +! ifndef DYNAMIC_RUBY +! DYNAMIC_RUBY = yes + endif + +- ifeq ($(RUBY_VER), 16) + ifndef RUBY_PLATFORM + RUBY_PLATFORM = i586-mswin32 +- endif +- ifndef RUBY_INSTALL_NAME +- RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER) +- endif + else +! ifndef RUBY_PLATFORM + RUBY_PLATFORM = i386-mswin32 + endif + ifndef RUBY_INSTALL_NAME +! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER) + endif + endif + +--- 201,237 ---- + ############################## + ifdef RUBY + ++ ifndef DYNAMIC_RUBY ++ DYNAMIC_RUBY=yes ++ endif ++ # Set default value + ifndef RUBY_VER +! RUBY_VER = 16 + endif + ifndef RUBY_VER_LONG +! RUBY_VER_LONG = 1.6 + endif +! ifndef RUBY_API_VER +! RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG)) + endif + + ifndef RUBY_PLATFORM ++ ifeq ($(RUBY_VER), 16) + RUBY_PLATFORM = i586-mswin32 + else +! ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) +! RUBY_PLATFORM = i386-mingw32 +! else + RUBY_PLATFORM = i386-mswin32 + endif ++ endif ++ endif ++ + ifndef RUBY_INSTALL_NAME +! ifeq ($(RUBY_VER), 16) +! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) +! else +! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) + endif + endif + +*************** +*** 226,231 **** +--- 240,249 ---- + endif + + DEFINES += -DFEAT_RUBY ++ ifneq ($(findstring w64-mingw32,$(CC)),) ++ # A workaround for mingw-w64 ++ DEFINES += -DHAVE_STRUCT_TIMESPEC -DHAVE_STRUCT_TIMEZONE ++ endif + INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) + ifdef RUBY_19_OR_LATER + INCLUDES += -I$(RUBY)/include/ruby-$(RUBY_VER_LONG) -I$(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +*** ../vim-7.3.814/src/version.c 2013-02-13 16:49:54.000000000 +0100 +--- src/version.c 2013-02-13 17:03:36.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 815, + /**/ + +-- +ARTHUR: If you do not open these doors, we will take this castle by force ... + [A bucket of slops land on ARTHUR. He tries to retain his dignity.] + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 109cc86794de9e43a7163c5b28170eb0ca3ea102 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:10 +0100 Subject: [PATCH 153/291] - patchlevel 816 --- 7.3.816 | 368 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 368 insertions(+) create mode 100644 7.3.816 diff --git a/7.3.816 b/7.3.816 new file mode 100644 index 00000000..6e9f125d --- /dev/null +++ b/7.3.816 @@ -0,0 +1,368 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.816 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.816 +Problem: Can't compute a hash. +Solution: Add the sha256() function. (Tyru, Hirohito Higashi) +Files: runtime/doc/eval.txt, src/eval.c, src/proto/sha256.pro, + src/sha256.c, src/testdir/test90.in, src/testdir/test90.ok, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile + +*** ../vim-7.3.815/runtime/doc/eval.txt 2013-01-23 17:15:25.000000000 +0100 +--- runtime/doc/eval.txt 2013-02-13 17:32:52.000000000 +0100 +*************** +*** 1920,1925 **** +--- 1931,1937 ---- + settabwinvar( {tabnr}, {winnr}, {varname}, {val}) set {varname} in window + {winnr} in tab page {tabnr} to {val} + setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val} ++ sha256( {string}) String SHA256 checksum of {string} + shellescape( {string} [, {special}]) + String escape {string} for use as shell + command argument +*************** +*** 5312,5317 **** +--- 5337,5347 ---- + :call setwinvar(1, "&list", 0) + :call setwinvar(2, "myvar", "foobar") + ++ sha256({string}) *sha256()* ++ Returns a String with 64 hex charactes, which is the SHA256 ++ checksum of {string}. ++ {only available when compiled with the |+cryptv| feature} ++ + shellescape({string} [, {special}]) *shellescape()* + Escape {string} for use as a shell command argument. + On MS-Windows and MS-DOS, when 'shellslash' is not set, it +*** ../vim-7.3.815/src/eval.c 2013-01-30 14:55:34.000000000 +0100 +--- src/eval.c 2013-02-13 17:24:40.000000000 +0100 +*************** +*** 688,693 **** +--- 688,696 ---- + static void f_settabvar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv)); ++ #ifdef FEAT_CRYPT ++ static void f_sha256 __ARGS((typval_T *argvars, typval_T *rettv)); ++ #endif /* FEAT_CRYPT */ + static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 8055,8060 **** +--- 8058,8066 ---- + {"settabvar", 3, 3, f_settabvar}, + {"settabwinvar", 4, 4, f_settabwinvar}, + {"setwinvar", 3, 3, f_setwinvar}, ++ #ifdef FEAT_CRYPT ++ {"sha256", 1, 1, f_sha256}, ++ #endif + {"shellescape", 1, 2, f_shellescape}, + {"shiftwidth", 0, 0, f_shiftwidth}, + {"simplify", 1, 1, f_simplify}, +*************** +*** 16710,16715 **** +--- 16716,16739 ---- + } + } + ++ #ifdef FEAT_CRYPT ++ /* ++ * "sha256({string})" function ++ */ ++ static void ++ f_sha256(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ char_u *p; ++ ++ p = get_tv_string(&argvars[0]); ++ rettv->vval.v_string = vim_strsave( ++ sha256_bytes(p, (int)STRLEN(p), NULL, 0)); ++ rettv->v_type = VAR_STRING; ++ } ++ #endif /* FEAT_CRYPT */ ++ + /* + * "shellescape({string})" function + */ +*** ../vim-7.3.815/src/proto/sha256.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/sha256.pro 2013-02-13 17:25:08.000000000 +0100 +*************** +*** 2,7 **** +--- 2,8 ---- + void sha256_start __ARGS((context_sha256_T *ctx)); + void sha256_update __ARGS((context_sha256_T *ctx, char_u *input, UINT32_T length)); + void sha256_finish __ARGS((context_sha256_T *ctx, char_u digest[32])); ++ char_u *sha256_bytes __ARGS((char_u *buf, int buf_len, char_u *salt, int salt_len)); + char_u *sha256_key __ARGS((char_u *buf, char_u *salt, int salt_len)); + int sha256_self_test __ARGS((void)); + void sha2_seed __ARGS((char_u *header, int header_len, char_u *salt, int salt_len)); +*** ../vim-7.3.815/src/sha256.c 2012-11-20 17:18:56.000000000 +0100 +--- src/sha256.c 2013-02-13 17:25:04.000000000 +0100 +*************** +*** 273,286 **** + #endif /* FEAT_CRYPT || FEAT_PERSISTENT_UNDO */ + + #if defined(FEAT_CRYPT) || defined(PROTO) +- static char_u *sha256_bytes __ARGS((char_u *buf, int buf_len, char_u *salt, int salt_len)); + static unsigned int get_some_time __ARGS((void)); + + /* + * Returns hex digest of "buf[buf_len]" in a static array. + * if "salt" is not NULL also do "salt[salt_len]". + */ +! static char_u * + sha256_bytes(buf, buf_len, salt, salt_len) + char_u *buf; + int buf_len; +--- 273,285 ---- + #endif /* FEAT_CRYPT || FEAT_PERSISTENT_UNDO */ + + #if defined(FEAT_CRYPT) || defined(PROTO) + static unsigned int get_some_time __ARGS((void)); + + /* + * Returns hex digest of "buf[buf_len]" in a static array. + * if "salt" is not NULL also do "salt[salt_len]". + */ +! char_u * + sha256_bytes(buf, buf_len, salt, salt_len) + char_u *buf; + int buf_len; +*** ../vim-7.3.815/src/testdir/test90.in 2013-02-13 17:33:42.000000000 +0100 +--- src/testdir/test90.in 2013-02-13 17:20:13.000000000 +0100 +*************** +*** 0 **** +--- 1,53 ---- ++ Tests for sha256() function. vim: set ft=vim et ts=2 sw=2 : ++ ++ STARTTEST ++ :so small.vim ++ :if !has('cryptv') || !exists('*sha256') ++ e! test.ok ++ wq! test.out ++ :endif ++ :" ++ :let testcase='test for empty string: ' ++ :if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' ++ : let res='ok' ++ :else ++ : let res='ng' ++ :endif ++ :$put =testcase.res ++ :" ++ :let testcase='test for 1 char: ' ++ :if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb' ++ : let res='ok' ++ :else ++ : let res='ng' ++ :endif ++ :$put =testcase.res ++ :" ++ :let testcase='test for 3 chars: ' ++ :if sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad' ++ : let res='ok' ++ :else ++ : let res='ng' ++ :endif ++ :$put =testcase.res ++ :" ++ :let testcase='test for contains meta char: ' ++ :if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776' ++ : let res='ok' ++ :else ++ : let res='ng' ++ :endif ++ :$put =testcase.res ++ :" ++ :let testcase='test for contains non-ascii char: ' ++ :if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953' ++ : let res='ok' ++ :else ++ : let res='ng' ++ :endif ++ :$put =testcase.res ++ " ++ :/^start:/,$wq! test.out ++ ENDTEST ++ ++ start: +*** ../vim-7.3.815/src/testdir/test90.ok 2013-02-13 17:33:42.000000000 +0100 +--- src/testdir/test90.ok 2013-02-13 17:20:36.000000000 +0100 +*************** +*** 0 **** +--- 1,6 ---- ++ start: ++ test for empty string: ok ++ test for 1 char: ok ++ test for 3 chars: ok ++ test for contains meta char: ok ++ test for contains non-ascii char: ok +*** ../vim-7.3.815/src/testdir/Make_amiga.mak 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/Make_amiga.mak 2013-02-13 17:21:15.000000000 +0100 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out + + .SUFFIXES: .in .out + +--- 32,38 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out + + .SUFFIXES: .in .out + +*************** +*** 138,140 **** +--- 138,141 ---- + test84.out: test84.in + test88.out: test88.in + test89.out: test89.in ++ test90.out: test90.in +*** ../vim-7.3.815/src/testdir/Make_dos.mak 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/Make_dos.mak 2013-02-13 17:21:22.000000000 +0100 +*************** +*** 31,37 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out + + SCRIPTS32 = test50.out test70.out + +--- 31,37 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.815/src/testdir/Make_ming.mak 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/Make_ming.mak 2013-02-13 17:21:24.000000000 +0100 +*************** +*** 51,57 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out + + SCRIPTS32 = test50.out test70.out + +--- 51,57 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.815/src/testdir/Make_os2.mak 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/Make_os2.mak 2013-02-13 17:21:27.000000000 +0100 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out + + .SUFFIXES: .in .out + +--- 32,38 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out + + .SUFFIXES: .in .out + +*** ../vim-7.3.815/src/testdir/Make_vms.mms 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/Make_vms.mms 2013-02-13 17:21:32.000000000 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2012 Dec 05 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013 Feb 13 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 76,82 **** + test66.out test67.out test68.out test69.out \ + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ +! test82.out test83.out test84.out test88.out test89.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +--- 76,83 ---- + test66.out test67.out test68.out test69.out \ + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ +! test82.out test83.out test84.out test88.out test89.out \ +! test90.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +*** ../vim-7.3.815/src/testdir/Makefile 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/Makefile 2013-02-13 17:20:58.000000000 +0100 +*************** +*** 28,34 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out + + SCRIPTS_GUI = test16.out + +--- 28,34 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.3.815/src/version.c 2013-02-13 17:06:06.000000000 +0100 +--- src/version.c 2013-02-13 17:33:04.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 816, + /**/ + +-- + Another bucket of what can only be described as human ordure hits ARTHUR. +ARTHUR: ... Right! (to the KNIGHTS) That settles it! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 115413a8522123277597fba5ceff77642da73a6b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:11 +0100 Subject: [PATCH 154/291] - patchlevel 817 --- 7.3.817 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.3.817 diff --git a/7.3.817 b/7.3.817 new file mode 100644 index 00000000..d869fea4 --- /dev/null +++ b/7.3.817 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.817 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.817 +Problem: Test 89 fails with tiny and small features. +Solution: Add sourcing small.vim. +Files: src/testdir/test89.in + + +*** ../vim-7.3.816/src/testdir/test89.in 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/test89.in 2013-02-14 20:06:53.000000000 +0100 +*************** +*** 1,6 **** +--- 1,7 ---- + Some tests for setting 'number' and 'relativenumber' + + STARTTEST ++ :so small.vim + :set hidden nocp nu rnu + :redir @a | set nu? rnu? | redir END + :e! xx +*** ../vim-7.3.816/src/version.c 2013-02-13 17:34:59.000000000 +0100 +--- src/version.c 2013-02-14 20:10:00.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 817, + /**/ + +-- +INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving! + [Suddenly he notices the cameras.] +INSPECTOR END OF FILM: (to Camera) All right, put that away sonny. + [He walks over to it and puts his hand over the lens.] + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 3ad6546ff0546fb0f9cc9942d59050ed89d3517d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:12 +0100 Subject: [PATCH 155/291] - patchlevel 818 --- 7.3.818 | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 7.3.818 diff --git a/7.3.818 b/7.3.818 new file mode 100644 index 00000000..6ff3788e --- /dev/null +++ b/7.3.818 @@ -0,0 +1,133 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.818 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.818 +Problem: When test 40 fails because of a bad build it may leave files + behind that cause it to fail later. +Solution: Let the file names start with "X". +Files: src/testdir/test40.in + + +*** ../vim-7.3.817/src/testdir/test40.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test40.in 2013-02-14 20:56:45.000000000 +0100 +*************** +*** 3,20 **** + STARTTEST + :so small.vim + :/^start/,$w! Xxx " write lines below to Xxx +! :au BufReadCmd testA 0r Xxx|$del +! :e testA " will read text of Xxd instead +! :au BufWriteCmd testA call append(line("$"), "write") + :w " will append a line to the file +! :r testA " should not read anything + : " now we have: + : " 1 start of Xxx + : " 2 test40 + : " 3 end of Xxx + : " 4 write +! :au FileReadCmd testB '[r Xxx +! :2r testB " will read Xxx below line 2 instead + : " 1 start of Xxx + : " 2 test40 + : " 3 start of Xxx +--- 3,20 ---- + STARTTEST + :so small.vim + :/^start/,$w! Xxx " write lines below to Xxx +! :au BufReadCmd XtestA 0r Xxx|$del +! :e XtestA " will read text of Xxd instead +! :au BufWriteCmd XtestA call append(line("$"), "write") + :w " will append a line to the file +! :r XtestA " should not read anything + : " now we have: + : " 1 start of Xxx + : " 2 test40 + : " 3 end of Xxx + : " 4 write +! :au FileReadCmd XtestB '[r Xxx +! :2r XtestB " will read Xxx below line 2 instead + : " 1 start of Xxx + : " 2 test40 + : " 3 start of Xxx +*************** +*** 22,31 **** + : " 5 end of Xxx + : " 6 end of Xxx + : " 7 write +! :au FileWriteCmd testC '[,']copy $ + 4GA1 +! :4,5w testC " will copy lines 4 and 5 to the end +! :r testC " should not read anything + : " 1 start of Xxx + : " 2 test40 + : " 3 start of Xxx +--- 22,31 ---- + : " 5 end of Xxx + : " 6 end of Xxx + : " 7 write +! :au FileWriteCmd XtestC '[,']copy $ + 4GA1 +! :4,5w XtestC " will copy lines 4 and 5 to the end +! :r XtestC " should not read anything + : " 1 start of Xxx + : " 2 test40 + : " 3 start of Xxx +*************** +*** 35,48 **** + : " 7 write + : " 8 test401 + : " 9 end of Xxx +! :au FILEAppendCmd testD '[,']w! test.out +! :w >>testD " will write all lines to test.out +! :$r testD " should not read anything + :$w >>test.out " append "end of Xxx" to test.out +! :au BufReadCmd testE 0r test.out|$del +! :sp testE " split window with test.out + 5Goasdf:" +! :au BufWriteCmd testE w! test.out + :wall " will write other window to test.out + : " 1 start of Xxx + : " 2 test40 +--- 35,48 ---- + : " 7 write + : " 8 test401 + : " 9 end of Xxx +! :au FILEAppendCmd XtestD '[,']w! test.out +! :w >>XtestD " will write all lines to test.out +! :$r XtestD " should not read anything + :$w >>test.out " append "end of Xxx" to test.out +! :au BufReadCmd XtestE 0r test.out|$del +! :sp XtestE " split window with test.out + 5Goasdf:" +! :au BufWriteCmd XtestE w! test.out + :wall " will write other window to test.out + : " 1 start of Xxx + : " 2 test40 +*** ../vim-7.3.817/src/version.c 2013-02-14 20:10:28.000000000 +0100 +--- src/version.c 2013-02-14 20:57:44.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 818, + /**/ + +-- +JOHN CLEESE PLAYED: SECOND SOLDIER WITH A KEEN INTEREST IN BIRDS, LARGE MAN + WITH DEAD BODY, BLACK KNIGHT, MR NEWT (A VILLAGE + BLACKSMITH INTERESTED IN BURNING WITCHES), A QUITE + EXTRAORDINARILY RUDE FRENCHMAN, TIM THE WIZARD, SIR + LAUNCELOT + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From ca3f591609105bcc53cdd25a69e364910d198fdf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:13 +0100 Subject: [PATCH 156/291] - patchlevel 819 --- 7.3.819 | 682 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 682 insertions(+) create mode 100644 7.3.819 diff --git a/7.3.819 b/7.3.819 new file mode 100644 index 00000000..3f036c91 --- /dev/null +++ b/7.3.819 @@ -0,0 +1,682 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.819 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.819 +Problem: Compiling without +eval and with Python isn't working. +Solution: Add the eval feature when building with Python. +Files: src/if_py_both.h, src/feature.h, src/eval.c, src/ex_docmd.c, + src/normal.c, src/gui_gtk_x11.c + + +*** ../vim-7.3.818/src/if_py_both.h 2012-12-05 16:30:03.000000000 +0100 +--- src/if_py_both.h 2013-02-14 19:22:59.000000000 +0100 +*************** +*** 310,316 **** + return result; + } + +- #ifdef FEAT_EVAL + /* + * Function to translate a typval_T into a PyObject; this will recursively + * translate lists/dictionaries into their Python equivalents. +--- 310,315 ---- +*************** +*** 425,436 **** + + return result; + } +- #endif + + static PyObject * + VimEval(PyObject *self UNUSED, PyObject *args UNUSED) + { +- #ifdef FEAT_EVAL + char *expr; + typval_T *our_tv; + PyObject *result; +--- 424,433 ---- +*************** +*** 466,475 **** + Py_END_ALLOW_THREADS + + return result; +- #else +- PyErr_SetVim(_("expressions disabled at compile time")); +- return NULL; +- #endif + } + + static PyObject *ConvertToPyObject(typval_T *); +--- 463,468 ---- +*************** +*** 477,483 **** + static PyObject * + VimEvalPy(PyObject *self UNUSED, PyObject *args UNUSED) + { +- #ifdef FEAT_EVAL + char *expr; + typval_T *our_tv; + PyObject *result; +--- 470,475 ---- +*************** +*** 506,515 **** + Py_END_ALLOW_THREADS + + return result; +- #else +- PyErr_SetVim(_("expressions disabled at compile time")); +- return NULL; +- #endif + } + + static PyObject * +--- 498,503 ---- +*************** +*** 946,952 **** + } + + static PyObject * +! DictionaryListKeys(PyObject *self) + { + dict_T *dict = ((DictionaryObject *)(self))->dict; + long_u todo = dict->dv_hashtab.ht_used; +--- 934,940 ---- + } + + static PyObject * +! DictionaryListKeys(PyObject *self UNUSED) + { + dict_T *dict = ((DictionaryObject *)(self))->dict; + long_u todo = dict->dv_hashtab.ht_used; +*************** +*** 2549,2555 **** + return 0; + } + +- #ifdef FEAT_EVAL + typedef int (*pytotvfunc)(PyObject *, typval_T *, PyObject *); + + static int +--- 2537,2542 ---- +*************** +*** 2781,2784 **** + return NULL; + } + } +- #endif +--- 2768,2770 ---- +*** ../vim-7.3.818/src/feature.h 2013-01-23 13:40:54.000000000 +0100 +--- src/feature.h 2013-02-14 19:25:33.000000000 +0100 +*************** +*** 392,397 **** +--- 392,404 ---- + #endif + + /* ++ * +python and +python3 require FEAT_EVAL. ++ */ ++ #if !defined(FEAT_EVAL) && (defined(FEAT_PYTHON3) || defined(FEAT_PYTHON)) ++ # define FEAT_EVAL ++ #endif ++ ++ /* + * +profile Profiling for functions and scripts. + */ + #if defined(FEAT_HUGE) \ +*** ../vim-7.3.818/src/eval.c 2013-02-13 17:34:59.000000000 +0100 +--- src/eval.c 2013-02-14 19:38:09.000000000 +0100 +*************** +*** 917,923 **** +--- 917,925 ---- + hash_clear(&compat_hashtab); + + free_scriptnames(); ++ # if defined(FEAT_CMDL_COMPL) + free_locales(); ++ # endif + + /* global variables */ + vars_clear(&globvarht); +*************** +*** 1561,1568 **** + } + + +- #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \ +- || defined(FEAT_COMPL_FUNC) || defined(PROTO) + /* + * Call some vimL function and return the result in "*rettv". + * Uses argv[argc] for the function arguments. Only Number and String +--- 1563,1568 ---- +*************** +*** 1640,1692 **** + return ret; + } + +- # if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO) + /* +! * Call vimL function "func" and return the result as a string. +! * Returns NULL when calling the function fails. + * Uses argv[argc] for the function arguments. + */ +! void * +! call_func_retstr(func, argc, argv, safe) + char_u *func; + int argc; + char_u **argv; + int safe; /* use the sandbox */ + { + typval_T rettv; +! char_u *retval; + + /* All arguments are passed as strings, no conversion to number. */ + if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL) +! return NULL; + +! retval = vim_strsave(get_tv_string(&rettv)); + clear_tv(&rettv); + return retval; + } +- # endif + +! # if defined(FEAT_COMPL_FUNC) || defined(PROTO) + /* +! * Call vimL function "func" and return the result as a number. +! * Returns -1 when calling the function fails. + * Uses argv[argc] for the function arguments. + */ +! long +! call_func_retnr(func, argc, argv, safe) + char_u *func; + int argc; + char_u **argv; + int safe; /* use the sandbox */ + { + typval_T rettv; +! long retval; + + /* All arguments are passed as strings, no conversion to number. */ + if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL) +! return -1; + +! retval = get_tv_number_chk(&rettv, NULL); + clear_tv(&rettv); + return retval; + } +--- 1640,1693 ---- + return ret; + } + + /* +! * Call vimL function "func" and return the result as a number. +! * Returns -1 when calling the function fails. + * Uses argv[argc] for the function arguments. + */ +! long +! call_func_retnr(func, argc, argv, safe) + char_u *func; + int argc; + char_u **argv; + int safe; /* use the sandbox */ + { + typval_T rettv; +! long retval; + + /* All arguments are passed as strings, no conversion to number. */ + if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL) +! return -1; + +! retval = get_tv_number_chk(&rettv, NULL); + clear_tv(&rettv); + return retval; + } + +! #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \ +! || defined(FEAT_COMPL_FUNC) || defined(PROTO) +! +! # if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO) + /* +! * Call vimL function "func" and return the result as a string. +! * Returns NULL when calling the function fails. + * Uses argv[argc] for the function arguments. + */ +! void * +! call_func_retstr(func, argc, argv, safe) + char_u *func; + int argc; + char_u **argv; + int safe; /* use the sandbox */ + { + typval_T rettv; +! char_u *retval; + + /* All arguments are passed as strings, no conversion to number. */ + if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL) +! return NULL; + +! retval = vim_strsave(get_tv_string(&rettv)); + clear_tv(&rettv); + return retval; + } +*************** +*** 1720,1726 **** + } + #endif + +- + /* + * Save the current function call pointer, and set it to NULL. + * Used when executing autocommands and for ":source". +--- 1721,1726 ---- +*************** +*** 9330,9336 **** + */ + static void + f_cindent(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_CINDENT +--- 9330,9336 ---- + */ + static void + f_cindent(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_CINDENT +*************** +*** 10379,10387 **** + + static void + findfilendir(argvars, rettv, find_what) +! typval_T *argvars; + typval_T *rettv; +! int find_what; + { + #ifdef FEAT_SEARCHPATH + char_u *fname; +--- 10379,10387 ---- + + static void + findfilendir(argvars, rettv, find_what) +! typval_T *argvars UNUSED; + typval_T *rettv; +! int find_what UNUSED; + { + #ifdef FEAT_SEARCHPATH + char_u *fname; +*************** +*** 10751,10759 **** + */ + static void + foldclosed_both(argvars, rettv, end) +! typval_T *argvars; + typval_T *rettv; +! int end; + { + #ifdef FEAT_FOLDING + linenr_T lnum; +--- 10751,10759 ---- + */ + static void + foldclosed_both(argvars, rettv, end) +! typval_T *argvars UNUSED; + typval_T *rettv; +! int end UNUSED; + { + #ifdef FEAT_FOLDING + linenr_T lnum; +*************** +*** 10802,10809 **** + */ + static void + f_foldlevel(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_FOLDING + linenr_T lnum; +--- 10802,10809 ---- + */ + static void + f_foldlevel(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_FOLDING + linenr_T lnum; +*************** +*** 11583,11589 **** + static void + f_getmatches(argvars, rettv) + typval_T *argvars UNUSED; +! typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA + dict_T *dict; +--- 11583,11589 ---- + static void + f_getmatches(argvars, rettv) + typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_SEARCH_EXTRA + dict_T *dict; +*************** +*** 13589,13595 **** + */ + static void + f_lispindent(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_LISP +--- 13589,13595 ---- + */ + static void + f_lispindent(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_LISP +*************** +*** 13983,13990 **** + */ + static void + f_matchadd(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA + char_u buf[NUMBUFLEN]; +--- 13983,13990 ---- + */ + static void + f_matchadd(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_SEARCH_EXTRA + char_u buf[NUMBUFLEN]; +*************** +*** 14021,14027 **** + */ + static void + f_matcharg(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + if (rettv_list_alloc(rettv) == OK) +--- 14021,14027 ---- + */ + static void + f_matcharg(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + if (rettv_list_alloc(rettv) == OK) +*************** +*** 14053,14060 **** + */ + static void + f_matchdelete(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA + rettv->vval.v_number = match_delete(curwin, +--- 14053,14060 ---- + */ + static void + f_matchdelete(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_SEARCH_EXTRA + rettv->vval.v_number = match_delete(curwin, +*************** +*** 14871,14878 **** + */ + static void + f_reltime(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_RELTIME + proftime_T res; +--- 14871,14878 ---- + */ + static void + f_reltime(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_RELTIME + proftime_T res; +*************** +*** 14920,14926 **** + */ + static void + f_reltimestr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_RELTIME +--- 14920,14926 ---- + */ + static void + f_reltimestr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_RELTIME +*************** +*** 15965,15971 **** + int flags; /* SP_SETPCMARK and other SP_ values */ + pos_T *match_pos; + linenr_T lnum_stop; /* stop at this line if not zero */ +! long time_limit; /* stop after this many msec */ + { + char_u *save_cpo; + char_u *pat, *pat2 = NULL, *pat3 = NULL; +--- 15965,15971 ---- + int flags; /* SP_SETPCMARK and other SP_ values */ + pos_T *match_pos; + linenr_T lnum_stop; /* stop at this line if not zero */ +! long time_limit UNUSED; /* stop after this many msec */ + { + char_u *save_cpo; + char_u *pat, *pat2 = NULL, *pat3 = NULL; +*************** +*** 16390,16397 **** + */ + static void + f_setmatches(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA + list_T *l; +--- 16390,16397 ---- + */ + static void + f_setmatches(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_SEARCH_EXTRA + list_T *l; +*************** +*** 18463,18469 **** + */ + static void + f_undofile(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +--- 18463,18469 ---- + */ + static void + f_undofile(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +*** ../vim-7.3.818/src/ex_docmd.c 2012-12-05 19:13:11.000000000 +0100 +--- src/ex_docmd.c 2013-02-14 20:50:56.000000000 +0100 +*************** +*** 1734,1739 **** +--- 1734,1741 ---- + #ifdef FEAT_EVAL + /* avoid that a function call in 'statusline' does this */ + && !getline_equal(fgetline, cookie, get_func_line) ++ #endif ++ #ifdef FEAT_AUTOCMD + /* avoid that an autocommand, e.g. QuitPre, does this */ + && !getline_equal(fgetline, cookie, getnextac) + #endif +*************** +*** 5375,5381 **** +--- 5377,5385 ---- + #endif + return FAIL; + } ++ #endif + ++ #if defined(FEAT_USR_CMDS) || defined(FEAT_EVAL) || defined(PROTO) + /* + * List of names for completion for ":command" with the EXPAND_ flag. + * Must be alphabetical for completion. +*************** +*** 5430,5436 **** +--- 5434,5442 ---- + {EXPAND_USER_VARS, "var"}, + {0, NULL} + }; ++ #endif + ++ #if defined(FEAT_USR_CMDS) || defined(PROTO) + static void + uc_list(name, name_len) + char_u *name; +*************** +*** 6375,6384 **** + int vallen; + int *complp; + long *argt; +! char_u **compl_arg; + { + char_u *arg = NULL; + size_t arglen = 0; + int i; + int valend = vallen; + +--- 6381,6392 ---- + int vallen; + int *complp; + long *argt; +! char_u **compl_arg UNUSED; + { + char_u *arg = NULL; ++ # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) + size_t arglen = 0; ++ # endif + int i; + int valend = vallen; + +*************** +*** 6388,6394 **** +--- 6396,6404 ---- + if (value[i] == ',') + { + arg = &value[i + 1]; ++ # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) + arglen = vallen - i - 1; ++ # endif + valend = i; + break; + } +*** ../vim-7.3.818/src/normal.c 2013-01-24 21:00:15.000000000 +0100 +--- src/normal.c 2013-02-14 19:33:36.000000000 +0100 +*************** +*** 2292,2298 **** +--- 2292,2300 ---- + { + #ifdef FEAT_EVAL + char_u *(argv[1]); ++ # ifdef FEAT_VIRTUALEDIT + int save_virtual_op = virtual_op; ++ # endif + + if (*p_opfunc == NUL) + EMSG(_("E774: 'operatorfunc' is empty")); +*************** +*** 2312,2324 **** +--- 2314,2330 ---- + else + argv[0] = (char_u *)"char"; + ++ # ifdef FEAT_VIRTUALEDIT + /* Reset virtual_op so that 'virtualedit' can be changed in the + * function. */ + virtual_op = MAYBE; ++ # endif + + (void)call_func_retnr(p_opfunc, 1, argv, FALSE); + ++ # ifdef FEAT_VIRTUALEDIT + virtual_op = save_virtual_op; ++ # endif + } + #else + EMSG(_("E775: Eval feature not available")); +*** ../vim-7.3.818/src/gui_gtk_x11.c 2013-01-23 16:00:05.000000000 +0100 +--- src/gui_gtk_x11.c 2013-02-14 19:38:42.000000000 +0100 +*************** +*** 5164,5171 **** + return FAIL; + } + +! #if defined(FEAT_TITLE) \ +! || defined(PROTO) + /* + * Return the text window-id and display. Only required for X-based GUI's + */ +--- 5164,5170 ---- + return FAIL; + } + +! #if defined(FEAT_TITLE) || defined(FEAT_EVAL) || defined(PROTO) + /* + * Return the text window-id and display. Only required for X-based GUI's + */ +*** ../vim-7.3.818/src/version.c 2013-02-14 20:58:30.000000000 +0100 +--- src/version.c 2013-02-14 22:09:41.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 819, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + For an 'A' we would have to: Lose as many shits as possible; Take Jesus + Christ out, if possible; Loose "I fart in your general direction"; Lose + "the oral sex"; Lose "oh, fuck off"; Lose "We make castanets out of your + testicles" + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From c05c4819884004c502e80ebe1475f1318e2e05f3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:14 +0100 Subject: [PATCH 157/291] - patchlevel 820 --- 7.3.820 | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 7.3.820 diff --git a/7.3.820 b/7.3.820 new file mode 100644 index 00000000..df273ab7 --- /dev/null +++ b/7.3.820 @@ -0,0 +1,137 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.820 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.820 +Problem: Build errors and warnings when building with small features and + Lua, Perl or Ruby. +Solution: Add #ifdefs and UNUSED. +Files: src/if_perl.xs, src/if_lua.c, src/if_ruby.c + + +*** ../vim-7.3.819/src/if_perl.xs 2013-02-06 19:58:38.000000000 +0100 +--- src/if_perl.xs 2013-02-14 19:16:00.000000000 +0100 +*************** +*** 600,608 **** + */ + char_u * + eval_to_string(arg, nextcmd, dolist) +! char_u *arg; +! char_u **nextcmd; +! int dolist; + { + return NULL; + } +--- 600,608 ---- + */ + char_u * + eval_to_string(arg, nextcmd, dolist) +! char_u *arg UNUSED; +! char_u **nextcmd UNUSED; +! int dolist UNUSED; + { + return NULL; + } +*** ../vim-7.3.819/src/if_lua.c 2012-10-14 03:41:54.000000000 +0200 +--- src/if_lua.c 2013-02-14 19:15:29.000000000 +0100 +*************** +*** 845,852 **** + } + + static int +! luaV_dict_iter (lua_State *L) + { + hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(2)); + int n = lua_tointeger(L, lua_upvalueindex(3)); + dictitem_T *di; +--- 845,853 ---- + } + + static int +! luaV_dict_iter (lua_State *L UNUSED) + { ++ #ifdef FEAT_EVAL + hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(2)); + int n = lua_tointeger(L, lua_upvalueindex(3)); + dictitem_T *di; +*************** +*** 860,865 **** +--- 861,869 ---- + lua_pushinteger(L, n - 1); + lua_replace(L, lua_upvalueindex(3)); + return 2; ++ #else ++ return 0; ++ #endif + } + + static int +*** ../vim-7.3.819/src/if_ruby.c 2012-11-24 13:38:56.000000000 +0100 +--- src/if_ruby.c 2013-02-14 22:18:50.000000000 +0100 +*************** +*** 1210,1230 **** + return height; + } + +! static VALUE window_width(VALUE self) + { +! win_T *win = get_win(self); +! +! return INT2NUM(win->w_width); + } + +! static VALUE window_set_width(VALUE self, VALUE width) + { + win_T *win = get_win(self); + win_T *savewin = curwin; + + curwin = win; + win_setwidth(NUM2INT(width)); + curwin = savewin; + return width; + } + +--- 1210,1230 ---- + return height; + } + +! static VALUE window_width(VALUE self UNUSED) + { +! return INT2NUM(W_WIDTH(get_win(self))); + } + +! static VALUE window_set_width(VALUE self UNUSED, VALUE width) + { ++ #ifdef FEAT_VERTSPLIT + win_T *win = get_win(self); + win_T *savewin = curwin; + + curwin = win; + win_setwidth(NUM2INT(width)); + curwin = savewin; ++ #endif + return width; + } + +*** ../vim-7.3.819/src/version.c 2013-02-14 22:11:31.000000000 +0100 +--- src/version.c 2013-02-14 22:19:09.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 820, + /**/ + +-- +Did Adam and Eve have navels? + + /// 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 /// From 9b71e616be5646a7faf99457a880791c11643cb2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:15 +0100 Subject: [PATCH 158/291] - patchlevel 821 --- 7.3.821 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.3.821 diff --git a/7.3.821 b/7.3.821 new file mode 100644 index 00000000..13dc3bab --- /dev/null +++ b/7.3.821 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.821 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.821 +Problem: Build with OLE and Cygwin is broken. (Steve Hall) +Solution: Select static or shared stdc library. (Ken Takata) +Files: src/Make_cyg.mak + + +*** ../vim-7.3.820/src/Make_cyg.mak 2013-02-13 17:06:06.000000000 +0100 +--- src/Make_cyg.mak 2013-02-16 18:09:49.000000000 +0100 +*************** +*** 106,111 **** +--- 106,118 ---- + OPTIMIZE = MAXSPEED + endif + ++ ++ # Link against the shared version of libstdc++ by default. Set ++ # STATIC_STDCPLUS to "yes" to link against static version instead. ++ ifndef STATIC_STDCPLUS ++ STATIC_STDCPLUS=no ++ endif ++ + ### See feature.h for a list of optionals. + ### Any other defines can be included here. + +*************** +*** 478,484 **** + ifeq (yes, $(OLE)) + DEFINES += -DFEAT_OLE + EXTRA_OBJS += $(OUTDIR)/if_ole.o +! EXTRA_LIBS += -loleaut32 -lstdc++ + endif + + ############################## +--- 485,496 ---- + ifeq (yes, $(OLE)) + DEFINES += -DFEAT_OLE + EXTRA_OBJS += $(OUTDIR)/if_ole.o +! EXTRA_LIBS += -loleaut32 +! ifeq (yes, $(STATIC_STDCPLUS)) +! EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -lsupc++ -Wl,-Bdynamic +! else +! EXTRA_LIBS += -lstdc++ +! endif + endif + + ############################## +*** ../vim-7.3.820/src/version.c 2013-02-14 22:19:47.000000000 +0100 +--- src/version.c 2013-02-16 18:11:52.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 821, + /**/ + +-- +ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot. + King of all Britons, defeator of the Saxons, sovereign of all England! + [Pause] +SOLDIER: Get away! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 965fba8223a331edca9dc0220289a80dce919307 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:16 +0100 Subject: [PATCH 159/291] - patchlevel 822 --- 7.3.822 | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 7.3.822 diff --git a/7.3.822 b/7.3.822 new file mode 100644 index 00000000..0f9e0d91 --- /dev/null +++ b/7.3.822 @@ -0,0 +1,159 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.822 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.822 (after 7.3.799) +Problem: Crash when accessing freed buffer. +Solution: Get 'textwidth' in caller of enter_buffer(). (Christian Brabandt) +Files: src/buffer.c + + +*** ../vim-7.3.821/src/buffer.c 2013-02-06 18:44:57.000000000 +0100 +--- src/buffer.c 2013-02-17 15:10:44.000000000 +0100 +*************** +*** 82,87 **** +--- 82,90 ---- + #ifdef FEAT_AUTOCMD + buf_T *old_curbuf; + #endif ++ #ifdef FEAT_SYN_HL ++ long old_tw = curbuf->b_p_tw; ++ #endif + + /* + * The 'readonly' flag is only set when BF_NEVERLOADED is being reset. +*************** +*** 113,118 **** +--- 116,125 ---- + } + EMSG(_("E83: Cannot allocate buffer, using other one...")); + enter_buffer(curbuf); ++ #ifdef FEAT_SYN_HL ++ if (old_tw != curbuf->b_p_tw) ++ check_colorcolumn(curwin); ++ #endif + return FAIL; + } + +*************** +*** 786,791 **** +--- 793,801 ---- + # if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) + cleanup_T cs; + # endif ++ #ifdef FEAT_SYN_HL ++ long old_tw = curbuf->b_p_tw; ++ #endif + + if (swap_exists_action == SEA_QUIT) + { +*************** +*** 804,810 **** +--- 814,826 ---- + if (!buf_valid(old_curbuf) || old_curbuf == curbuf) + old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED); + if (old_curbuf != NULL) ++ { + enter_buffer(old_curbuf); ++ #ifdef FEAT_SYN_HL ++ if (old_tw != curbuf->b_p_tw) ++ check_colorcolumn(curwin); ++ #endif ++ } + /* If "old_curbuf" is NULL we are in big trouble here... */ + + # if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) +*************** +*** 1364,1369 **** +--- 1380,1388 ---- + buf_T *prevbuf; + int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL + || action == DOBUF_WIPE); ++ #ifdef FEAT_SYN_HL ++ long old_tw = curbuf->b_p_tw; ++ #endif + + setpcmark(); + if (!cmdmod.keepalt) +*************** +*** 1430,1450 **** + # endif + ) + #endif + enter_buffer(buf); + } + + /* + * Enter a new current buffer. +! * Old curbuf must have been abandoned already! + */ + void + enter_buffer(buf) + buf_T *buf; + { +- #ifdef FEAT_SYN_HL +- long old_tw = curbuf->b_p_tw; +- #endif +- + /* Copy buffer and window local option values. Not for a help buffer. */ + buf_copy_options(buf, BCO_ENTER | BCO_NOHELP); + if (!buf->b_help) +--- 1449,1472 ---- + # endif + ) + #endif ++ { + enter_buffer(buf); ++ #ifdef FEAT_SYN_HL ++ if (old_tw != curbuf->b_p_tw) ++ check_colorcolumn(curwin); ++ #endif ++ } + } + + /* + * Enter a new current buffer. +! * Old curbuf must have been abandoned already! This also means "curbuf" may +! * be pointing to freed memory. + */ + void + enter_buffer(buf) + buf_T *buf; + { + /* Copy buffer and window local option values. Not for a help buffer. */ + buf_copy_options(buf, BCO_ENTER | BCO_NOHELP); + if (!buf->b_help) +*************** +*** 1468,1475 **** + + #ifdef FEAT_SYN_HL + curwin->w_s = &(buf->b_s); +- if (old_tw != buf->b_p_tw) +- check_colorcolumn(curwin); + #endif + + /* Cursor on first line by default. */ +--- 1490,1495 ---- +*** ../vim-7.3.821/src/version.c 2013-02-16 18:16:11.000000000 +0100 +--- src/version.c 2013-02-17 15:35:41.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 822, + /**/ + +-- +Clothes make the man. Naked people have little or no influence on society. + -- Mark Twain (Samuel Clemens) (1835-1910) + + /// 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 /// From bcafa0577881c5a20b889f85dd6c7f9315386af1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 18 Feb 2013 15:38:18 +0100 Subject: [PATCH 160/291] - patchlevel 822 --- README.patches | 26 +++++++++++++++++++++++ vim.spec | 57 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 81 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index c32f02dc..d50252b1 100644 --- a/README.patches +++ b/README.patches @@ -299,6 +299,7 @@ Individual patches for Vim 7.3: 4017 7.3.265 storing search pattern in history without separator check 1677 7.3.266 in Gvim with iBus typing space in Insert mode doesn't work 1784 7.3.267 Ruby on Mac OS X 10.7 may crash + 2093 7.3.268 Vim freezes when executing an external command with zsh 2871 7.3.269 'shellcmdflag' only works with one flag 1514 7.3.270 illegal memory access 12980 7.3.271 code not following Vim coding style @@ -828,3 +829,28 @@ Individual patches for Vim 7.3: 5967 7.3.795 MzScheme does not build with tiny features 3027 7.3.796 "/[^\n]" does match at a line break 2040 7.3.797 (after 7.3.792) compiler warning for size_t to int conversion + 3208 7.3.798 (after 7.3.791) MzScheme: circular list works wrong + 1666 7.3.799 the color column is not correct when entering a buffer + 2085 7.3.800 the " mark is not adjusted when inserting lines + 2053 7.3.801 ":window set nu?" displays the cursor line + 1426 7.3.802 no error when setting 'isk' to a value ending in a comma + 2523 7.3.803 (after 7.3.792) ":s/a/b/gc" is a no-op when typing 'q' + 1373 7.3.804 (after 7.3.799) compiler warning for tiny build + 3434 7.3.805 Lua version 5.2 is not detected properly on Arch Linux + 4287 7.3.806 compiler warnings in Perl code when using Visual studio 2012 + 1620 7.3.807 popup menu does not work properly in some situations + 8219 7.3.808 Python threads still do not work properly + 1609 7.3.809 the dosinst.c program has a buffer overflow + 8532 7.3.810 'relativenumber is reset unexpectedly + 1867 7.3.811 useless termresponse parsing for SGR mouse + 2481 7.3.812 when 'indentexpr' moves the cursor "curswant" not restored + 2028 7.3.813 the CompleteDone event is not always triggered + 4425 7.3.814 Win32 console: problem if 'enc' differs from current codepage + 4694 7.3.815 building with Cygwin and Ruby doesn't work + 12480 7.3.816 can't compute a hash + 1567 7.3.817 test 89 fails with tiny and small features + 4236 7.3.818 when test 40 fails it may leave files behind + 16345 7.3.819 (CORRECTED) compiling without +eval and Python isn't working + 3295 7.3.820 errors when building with small features and Lua, Perl or Ruby + 2199 7.3.821 build with OLE and Cygwin is broken + 4013 7.3.822 (after 7.3.799) crash when accessing freed buffer diff --git a/vim.spec b/vim.spec index 966d1a5f..a29ca949 100644 --- a/vim.spec +++ b/vim.spec @@ -18,13 +18,13 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 797 +%define patchlevel 822 Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{beta}%{patchlevel} -Release: 2%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2 @@ -854,6 +854,31 @@ Patch794: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.794 Patch795: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.795 Patch796: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.796 Patch797: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.797 +Patch798: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.798 +Patch799: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.799 +Patch800: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.800 +Patch801: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.801 +Patch802: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.802 +Patch803: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.803 +Patch804: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.804 +Patch805: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.805 +Patch806: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.806 +Patch807: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.807 +Patch808: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.808 +Patch809: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.809 +Patch810: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.810 +Patch811: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.811 +Patch812: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.812 +Patch813: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.813 +Patch814: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.814 +Patch815: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.815 +Patch816: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.816 +Patch817: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.817 +Patch818: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.818 +Patch819: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.819 +Patch820: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.820 +Patch821: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.821 +Patch822: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.822 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1797,6 +1822,31 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch795 -p0 %patch796 -p0 %patch797 -p0 +%patch798 -p0 +%patch799 -p0 +%patch800 -p0 +%patch801 -p0 +%patch802 -p0 +%patch803 -p0 +%patch804 -p0 +%patch805 -p0 +%patch806 -p0 +%patch807 -p0 +%patch808 -p0 +%patch809 -p0 +%patch810 -p0 +%patch811 -p0 +%patch812 -p0 +%patch813 -p0 +%patch814 -p0 +%patch815 -p0 +%patch816 -p0 +%patch817 -p0 +%patch818 -p0 +%patch819 -p0 +%patch820 -p0 +%patch821 -p0 +%patch822 -p0 # install spell files @@ -2272,6 +2322,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Feb 18 2013 Karsten Hopp 7.3.822-1 +- patchlevel 822 + * Fri Feb 15 2013 Toshio Kuratomi - 7.3.797-2 - Only use --vendor for desktop-file-install on F18 or less From cf355aa88e19da8d881cad5ab9c2d1d12d174071 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:01:58 +0200 Subject: [PATCH 161/291] - patchlevel 823 --- 7.3.823 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.823 diff --git a/7.3.823 b/7.3.823 new file mode 100644 index 00000000..59a36014 --- /dev/null +++ b/7.3.823 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.823 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.823 (after 7.3.821) +Problem: Building with Cygwin: '-lsupc++' is not needed. +Solution: Remove it. (Ken Takata) +Files: src/Make_cyg.mak + + +*** ../vim-7.3.822/src/Make_cyg.mak 2013-02-16 18:16:11.000000000 +0100 +--- src/Make_cyg.mak 2013-02-17 15:04:05.000000000 +0100 +*************** +*** 1,6 **** + # + # Makefile for VIM on Win32, using Cygnus gcc +! # Last updated by Dan Sharp. Last Change: 2012 Jun 30 + # + # Also read INSTALLpc.txt! + # +--- 1,6 ---- + # + # Makefile for VIM on Win32, using Cygnus gcc +! # Last updated by Dan Sharp. Last Change: 2013 Feb 17 + # + # Also read INSTALLpc.txt! + # +*************** +*** 487,493 **** + EXTRA_OBJS += $(OUTDIR)/if_ole.o + EXTRA_LIBS += -loleaut32 + ifeq (yes, $(STATIC_STDCPLUS)) +! EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -lsupc++ -Wl,-Bdynamic + else + EXTRA_LIBS += -lstdc++ + endif +--- 487,493 ---- + EXTRA_OBJS += $(OUTDIR)/if_ole.o + EXTRA_LIBS += -loleaut32 + ifeq (yes, $(STATIC_STDCPLUS)) +! EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic + else + EXTRA_LIBS += -lstdc++ + endif +*** ../vim-7.3.822/src/version.c 2013-02-17 15:45:34.000000000 +0100 +--- src/version.c 2013-02-20 13:33:42.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 823, + /**/ + +-- +ARTHUR: Now stand aside worthy adversary. +BLACK KNIGHT: (Glancing at his shoulder) 'Tis but a scratch. +ARTHUR: A scratch? Your arm's off. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 075a8f851d16906841abee4dce5bbbd3695b2d1a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:01:59 +0200 Subject: [PATCH 162/291] - patchlevel 824 --- 7.3.824 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.3.824 diff --git a/7.3.824 b/7.3.824 new file mode 100644 index 00000000..7881aed0 --- /dev/null +++ b/7.3.824 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.824 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.824 +Problem: Can redefine builtin functions. (ZyX) +Solution: Disallow adding a function to g:. +Files: src/eval.c + + +*** ../vim-7.3.823/src/eval.c 2013-02-14 22:11:31.000000000 +0100 +--- src/eval.c 2013-02-20 15:17:50.000000000 +0100 +*************** +*** 21164,21169 **** +--- 21164,21172 ---- + if (arg[j] != NUL) + emsg_funcname((char *)e_invarg2, arg); + } ++ /* Disallow using the g: dict. */ ++ if (fudi.fd_dict != NULL && fudi.fd_dict->dv_scope == VAR_DEF_SCOPE) ++ EMSG(_("E862: Cannot use g: here")); + } + + /* +*** ../vim-7.3.823/src/version.c 2013-02-20 13:34:14.000000000 +0100 +--- src/version.c 2013-02-20 14:11:01.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 824, + /**/ + +-- +ARTHUR: You are indeed brave Sir knight, but the fight is mine. +BLACK KNIGHT: Had enough? +ARTHUR: You stupid bastard. You havn't got any arms left. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From b5ebfe20ebf948a5143c7ae0862efbc7dbd2d11f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:01:59 +0200 Subject: [PATCH 163/291] - patchlevel 825 --- 7.3.825 | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 7.3.825 diff --git a/7.3.825 b/7.3.825 new file mode 100644 index 00000000..6a8c29b1 --- /dev/null +++ b/7.3.825 @@ -0,0 +1,125 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.825 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.825 +Problem: With Python errors are not always clear. +Solution: Print the stack trace, unless :silent is used. (ZyX) +Files: src/if_python3.c, src/if_python.c + + +*** ../vim-7.3.824/src/if_python3.c 2013-02-13 14:17:00.000000000 +0100 +--- src/if_python3.c 2013-02-20 15:26:03.000000000 +0100 +*************** +*** 122,127 **** +--- 122,128 ---- + # define PyDict_SetItemString py3_PyDict_SetItemString + # define PyErr_BadArgument py3_PyErr_BadArgument + # define PyErr_Clear py3_PyErr_Clear ++ # define PyErr_PrintEx py3_PyErr_PrintEx + # define PyErr_NoMemory py3_PyErr_NoMemory + # define PyErr_Occurred py3_PyErr_Occurred + # define PyErr_SetNone py3_PyErr_SetNone +*************** +*** 279,284 **** +--- 280,286 ---- + static void* (*py3_PyMem_Malloc)(size_t); + static int (*py3_Py_IsInitialized)(void); + static void (*py3_PyErr_Clear)(void); ++ static void (*py3_PyErr_PrintEx)(int); + static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *); + static iternextfunc py3__PyObject_NextNotImplemented; + static PyObject* py3__Py_NoneStruct; +*************** +*** 403,408 **** +--- 405,411 ---- + {"_Py_FalseStruct", (PYTHON_PROC*)&py3__Py_FalseStruct}, + {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct}, + {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear}, ++ {"PyErr_PrintEx", (PYTHON_PROC*)&py3_PyErr_PrintEx}, + {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, + {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, + {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, +*************** +*** 842,848 **** +--- 845,855 ---- + r = PyRun_String(PyBytes_AsString(cmdbytes), Py_eval_input, + globals, globals); + if (r == NULL) ++ { ++ if (PyErr_Occurred() && !msg_silent) ++ PyErr_PrintEx(0); + EMSG(_("E860: Eval did not return a valid python 3 object")); ++ } + else + { + if (ConvertFromPyObject(r, rettv) == -1) +*** ../vim-7.3.824/src/if_python.c 2013-02-13 14:17:00.000000000 +0100 +--- src/if_python.c 2013-02-20 15:26:03.000000000 +0100 +*************** +*** 148,153 **** +--- 148,154 ---- + # define PyDict_SetItemString dll_PyDict_SetItemString + # define PyErr_BadArgument dll_PyErr_BadArgument + # define PyErr_Clear dll_PyErr_Clear ++ # define PyErr_PrintEx dll_PyErr_PrintEx + # define PyErr_NoMemory dll_PyErr_NoMemory + # define PyErr_Occurred dll_PyErr_Occurred + # define PyErr_SetNone dll_PyErr_SetNone +*************** +*** 251,256 **** +--- 252,258 ---- + static int(*dll_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item); + static int(*dll_PyErr_BadArgument)(void); + static void(*dll_PyErr_Clear)(void); ++ static void(*dll_PyErr_PrintEx)(int); + static PyObject*(*dll_PyErr_NoMemory)(void); + static PyObject*(*dll_PyErr_Occurred)(void); + static void(*dll_PyErr_SetNone)(PyObject *); +*************** +*** 380,385 **** +--- 382,388 ---- + {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString}, + {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument}, + {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear}, ++ {"PyErr_PrintEx", (PYTHON_PROC*)&dll_PyErr_PrintEx}, + {"PyErr_NoMemory", (PYTHON_PROC*)&dll_PyErr_NoMemory}, + {"PyErr_Occurred", (PYTHON_PROC*)&dll_PyErr_Occurred}, + {"PyErr_SetNone", (PYTHON_PROC*)&dll_PyErr_SetNone}, +*************** +*** 856,862 **** +--- 859,869 ---- + + r = PyRun_String((char *)(cmd), Py_eval_input, globals, globals); + if (r == NULL) ++ { ++ if (PyErr_Occurred() && !msg_silent) ++ PyErr_PrintEx(0); + EMSG(_("E858: Eval did not return a valid python object")); ++ } + else + { + if (ConvertFromPyObject(r, rettv) == -1) +*** ../vim-7.3.824/src/version.c 2013-02-20 15:19:38.000000000 +0100 +--- src/version.c 2013-02-20 15:27:20.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 825, + /**/ + +-- +ARTHUR: What are you going to do. bleed on me? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 787ee8378abfb9a2ad01e3f25f323bdc6d39cab4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:00 +0200 Subject: [PATCH 164/291] - patchlevel 826 --- 7.3.826 | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 7.3.826 diff --git a/7.3.826 b/7.3.826 new file mode 100644 index 00000000..2235e228 --- /dev/null +++ b/7.3.826 @@ -0,0 +1,155 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.826 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.826 +Problem: List of features in :version output is hard to read. +Solution: Make columns. (Nazri Ramliy) +Files: src/version.c + + +*** ../vim-7.3.825/src/version.c 2013-02-20 16:09:35.000000000 +0100 +--- src/version.c 2013-02-20 16:27:44.000000000 +0100 +*************** +*** 34,39 **** +--- 34,42 ---- + # if (defined(VMS) && defined(VAXC)) || defined(PROTO) + char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) + + sizeof(__TIME__) + 3]; ++ ++ static void list_features __ARGS((void)); ++ + void + make_version() + { +*************** +*** 2435,2440 **** +--- 2440,2513 ---- + } + } + ++ /* ++ * List all features aligned in columns, dictionary style. ++ */ ++ static void ++ list_features() ++ { ++ int i; ++ int ncol; ++ int nrow; ++ int nfeat = 0; ++ int width = 0; ++ ++ /* Find the length of the longest feature name, use that + 1 as the column ++ * width */ ++ for (i = 0; features[i] != NULL; ++i) ++ { ++ int l = STRLEN(features[i]); ++ ++ if (l > width) ++ width = l; ++ ++nfeat; ++ } ++ width += 1; ++ ++ if (Columns < width) ++ { ++ /* Not enough screen columns - show one per line */ ++ for (i = 0; features[i] != NULL; ++i) ++ { ++ version_msg(features[i]); ++ if (msg_col > 0) ++ msg_putchar('\n'); ++ } ++ return; ++ } ++ ++ ncol = (int) Columns / width; ++ /* The rightmost column doesn't need a separator. ++ * Sacrifice it to fit in one more column if possible. */ ++ if (Columns % width == width - 1) ++ ncol++; ++ ++ nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0); ++ ++ for (i = 0; !got_int && i < nrow * ncol; ++i) ++ { ++ int idx = (i / ncol) + (i % ncol) * nrow; ++ ++ if (idx < nfeat) ++ { ++ int last_col = (i + 1) % ncol == 0; ++ ++ msg_puts((char_u *)features[idx]); ++ if (last_col) ++ { ++ if (msg_col > 0) ++ msg_putchar('\n'); ++ } ++ else ++ { ++ while (msg_col % width) ++ msg_putchar(' '); ++ } ++ } ++ else ++ msg_putchar('\n'); ++ } ++ } + void + list_version() + { +*************** +*** 2632,2646 **** + #endif + version_msg(_(" Features included (+) or not (-):\n")); + +! /* print all the features */ +! for (i = 0; features[i] != NULL; ++i) +! { +! version_msg(features[i]); +! if (msg_col > 0) +! version_msg(" "); +! } + +- version_msg("\n"); + #ifdef SYS_VIMRC_FILE + version_msg(_(" system vimrc file: \"")); + version_msg(SYS_VIMRC_FILE); +--- 2705,2712 ---- + #endif + version_msg(_(" Features included (+) or not (-):\n")); + +! list_features(); + + #ifdef SYS_VIMRC_FILE + version_msg(_(" system vimrc file: \"")); + version_msg(SYS_VIMRC_FILE); +*** ../vim-7.3.825/src/version.c 2013-02-20 16:09:35.000000000 +0100 +--- src/version.c 2013-02-20 16:27:44.000000000 +0100 +*************** +*** 727,728 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 826, + /**/ + +-- +Mrs Abbott: I'm a paediatrician. + Basil: Feet? +Mrs Abbott: Children. + Sybil: Oh, Basil! + Basil: Well, children have feet, don't they? That's how they move + around, my dear. You must take a look next time, it's most + interesting. (Fawlty Towers) + + /// 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 /// From cf2fbf49a973b7a12fbf0ffc66c3d3bb72abede1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:01 +0200 Subject: [PATCH 165/291] - patchlevel 827 --- 7.3.827 | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 7.3.827 diff --git a/7.3.827 b/7.3.827 new file mode 100644 index 00000000..d37e30f2 --- /dev/null +++ b/7.3.827 @@ -0,0 +1,94 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.827 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.827 (after 7.3.825) +Problem: Python tests fail. +Solution: Adjust the output for the stack trace. +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.ok + + +*** ../vim-7.3.826/src/testdir/test86.in 2013-02-13 14:17:00.000000000 +0100 +--- src/testdir/test86.in 2013-02-17 21:16:13.000000000 +0100 +*************** +*** 1,5 **** +--- 1,11 ---- + Tests for various python features. vim: set ft=vim : + ++ NOTE: This will cause errors when run under valgrind. ++ This would require recompiling Python with: ++ ./configure --without-pymalloc ++ See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup ++ ++ + STARTTEST + :so small.vim + :if !has('python') | e! test.ok | wq! test.out | endif +*** ../vim-7.3.826/src/testdir/test86.ok 2013-02-13 14:17:00.000000000 +0100 +--- src/testdir/test86.ok 2013-02-20 16:33:20.000000000 +0100 +*************** +*** 61,67 **** + 0.0 + "\0": Vim(let):E859: + {"\0": 1}: Vim(let):E859: +! undefined_name: Vim(let):E858: + vim: Vim(let):E859: + [1] + [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] +--- 61,67 ---- + 0.0 + "\0": Vim(let):E859: + {"\0": 1}: Vim(let):E859: +! undefined_name: Vim(let):Trace + vim: Vim(let):E859: + [1] + [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] +*** ../vim-7.3.826/src/testdir/test87.ok 2013-02-13 14:17:00.000000000 +0100 +--- src/testdir/test87.ok 2013-02-20 16:33:31.000000000 +0100 +*************** +*** 61,67 **** + 0.0 + "\0": Vim(let):E861: + {"\0": 1}: Vim(let):E861: +! undefined_name: Vim(let):E860: + vim: Vim(let):E861: + [1] + [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] +--- 61,67 ---- + 0.0 + "\0": Vim(let):E861: + {"\0": 1}: Vim(let):E861: +! undefined_name: Vim(let):Trace + vim: Vim(let):E861: + [1] + [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] +*** ../vim-7.3.826/src/version.c 2013-02-20 16:46:52.000000000 +0100 +--- src/version.c 2013-02-20 16:48:39.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 827, + /**/ + +-- +Any resemblance between the above views and those of my employer, my terminal, +or the view out my window are purely coincidental. Any resemblance between +the above and my own views is non-deterministic. The question of the +existence of views in the absence of anyone to hold them is left as an +exercise for the reader. The question of the existence of the reader is left +as an exercise for the second god coefficient. (A discussion of +non-orthogonal, non-integral polytheism is beyond the scope of this article.) + (Ralph Jennings) + + /// 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 /// From aeecf43da818a9aa6c2a6271a09bb920a6c3db0c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:01 +0200 Subject: [PATCH 166/291] - patchlevel 828 --- 7.3.828 | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 7.3.828 diff --git a/7.3.828 b/7.3.828 new file mode 100644 index 00000000..cdcb950f --- /dev/null +++ b/7.3.828 @@ -0,0 +1,131 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.828 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.828 +Problem: Mappings are not aware of wildmenu mode. +Solution: Add wildmenumode(). (Christian Brabandt) +Files: src/eval.c, runtime/doc/eval.txt + + +*** ../vim-7.3.827/src/eval.c 2013-02-20 15:19:38.000000000 +0100 +--- src/eval.c 2013-02-20 17:45:19.000000000 +0100 +*************** +*** 751,756 **** +--- 751,757 ---- + static void f_values __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_virtcol __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_visualmode __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_wildmenumode __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_winbufnr __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_wincol __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_winheight __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 8121,8126 **** +--- 8122,8128 ---- + {"values", 1, 1, f_values}, + {"virtcol", 1, 1, f_virtcol}, + {"visualmode", 0, 1, f_visualmode}, ++ {"wildmenumode", 0, 0, f_wildmenumode}, + {"winbufnr", 1, 1, f_winbufnr}, + {"wincol", 0, 0, f_wincol}, + {"winheight", 1, 1, f_winheight}, +*************** +*** 18576,18581 **** +--- 18578,18597 ---- + #endif + } + ++ /* ++ * "wildmenumode()" function ++ */ ++ static void ++ f_wildmenumode(argvars, rettv) ++ typval_T *argvars UNUSED; ++ typval_T *rettv UNUSED; ++ { ++ #ifdef FEAT_WILDMENU ++ if (wild_menu_showing) ++ rettv->vval.v_number = 1; ++ #endif ++ } ++ + /* + * "winbufnr(nr)" function + */ +*** ../vim-7.3.827/runtime/doc/eval.txt 2013-02-13 17:34:59.000000000 +0100 +--- runtime/doc/eval.txt 2013-02-20 17:43:23.000000000 +0100 +*************** +*** 1974,1986 **** + toupper( {expr}) String the String {expr} switched to uppercase + tr( {src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} + to chars in {tostr} +! trunc( {expr} Float truncate Float {expr} + type( {name}) Number type of variable {name} + undofile( {name}) String undo file name for {name} + undotree() List undo file tree + values( {dict}) List values in {dict} + virtcol( {expr}) Number screen column of cursor or mark + visualmode( [expr]) String last visual mode used + winbufnr( {nr}) Number buffer number of window {nr} + wincol() Number window column of the cursor + winheight( {nr}) Number height of window {nr} +--- 1986,1999 ---- + toupper( {expr}) String the String {expr} switched to uppercase + tr( {src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} + to chars in {tostr} +! trunc( {expr}) Float truncate Float {expr} + type( {name}) Number type of variable {name} + undofile( {name}) String undo file name for {name} + undotree() List undo file tree + values( {dict}) List values in {dict} + virtcol( {expr}) Number screen column of cursor or mark + visualmode( [expr]) String last visual mode used ++ wildmenumode() Number whether 'wildmenu' mode is active + winbufnr( {nr}) Number buffer number of window {nr} + wincol() Number window column of the cursor + winheight( {nr}) Number height of window {nr} +*************** +*** 6121,6126 **** +--- 6163,6180 ---- + Dictionary or Float is not a Number or String, thus does not + cause the mode to be cleared. + ++ wildmenumode() *wildmenumode()* ++ Returns non-zero when the wildmenu is active and zero ++ otherwise. See 'wildmenu' and 'wildmode'. ++ This can be used in mappings to handle the 'wildcharm' option ++ gracefully. (Makes only sense with |mapmode-c| mappings). ++ ++ For example to make work like in wildmode, use: > ++ :cnoremap wildmenumode() ? "\\" : "\" ++ < ++ (Note, this needs the 'wildcharm' option set appropriately). ++ ++ + *winbufnr()* + winbufnr({nr}) The result is a Number, which is the number of the buffer + associated with window {nr}. When {nr} is zero, the number of +*** ../vim-7.3.827/src/version.c 2013-02-20 16:54:24.000000000 +0100 +--- src/version.c 2013-02-20 17:41:17.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 828, + /**/ + +-- +"Beware of bugs in the above code; I have only proved +it correct, not tried it." -- Donald Knuth + + /// 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 /// From e68389f0810785ffba6c7c8ea0ece8ecf257c48f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:02 +0200 Subject: [PATCH 167/291] - patchlevel 829 --- 7.3.829 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.3.829 diff --git a/7.3.829 b/7.3.829 new file mode 100644 index 00000000..4cd795fa --- /dev/null +++ b/7.3.829 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.829 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.829 +Problem: When compiled with the +rightleft feature 'showmatch' also shows a + match for the opening paren. When 'revins' is set the screen may + scroll. +Solution: Only check the opening paren when the +rightleft feature was + enabled. Do not show a match that is not visible. (partly by + Christian Brabandt) +Files: src/search.c + + +*** ../vim-7.3.828/src/search.c 2013-01-23 16:43:07.000000000 +0100 +--- src/search.c 2013-02-20 18:33:33.000000000 +0100 +*************** +*** 2431,2442 **** + /* 'matchpairs' is "x:y,x:y" */ + for (p = curbuf->b_p_mps; *p != NUL; ++p) + { +- if (PTR2CHAR(p) == c + #ifdef FEAT_RIGHTLEFT +! && (curwin->w_p_rl ^ p_ri) +! #endif +! ) + break; + p += MB_PTR2LEN(p) + 1; + if (PTR2CHAR(p) == c + #ifdef FEAT_RIGHTLEFT +--- 2431,2440 ---- + /* 'matchpairs' is "x:y,x:y" */ + for (p = curbuf->b_p_mps; *p != NUL; ++p) + { + #ifdef FEAT_RIGHTLEFT +! if (PTR2CHAR(p) == c && (curwin->w_p_rl ^ p_ri)) + break; ++ #endif + p += MB_PTR2LEN(p) + 1; + if (PTR2CHAR(p) == c + #ifdef FEAT_RIGHTLEFT +*************** +*** 2451,2457 **** + + if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */ + vim_beep(); +! else if (lpos->lnum >= curwin->w_topline) + { + if (!curwin->w_p_wrap) + getvcol(curwin, lpos, NULL, &vcol, NULL); +--- 2449,2455 ---- + + if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */ + vim_beep(); +! else if (lpos->lnum >= curwin->w_topline && lpos->lnum < curwin->w_botline) + { + if (!curwin->w_p_wrap) + getvcol(curwin, lpos, NULL, &vcol, NULL); +*** ../vim-7.3.828/src/version.c 2013-02-20 17:58:01.000000000 +0100 +--- src/version.c 2013-02-20 18:35:12.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 829, + /**/ + +-- +BLACK KNIGHT: The Black Knight always triumphs. Have at you! + ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright. +BLACK KNIGHT: All right, we'll call it a draw. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From dd7ab95564450d68215e902a16ad7f8377390494 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:02 +0200 Subject: [PATCH 168/291] - patchlevel 830 --- 7.3.830 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.3.830 diff --git a/7.3.830 b/7.3.830 new file mode 100644 index 00000000..be9edebf --- /dev/null +++ b/7.3.830 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.830 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.830 +Problem: :mksession confuses bytes, columns and characters when positioning + the cursor. +Solution: Use w_virtcol with "|" instead of w_cursor.col with "l". +Files: src/ex_docmd.c + + +*** ../vim-7.3.829/src/ex_docmd.c 2013-02-14 22:11:31.000000000 +0100 +--- src/ex_docmd.c 2013-02-20 19:13:21.000000000 +0100 +*************** +*** 10829,10852 **** + { + if (fprintf(fd, + "let s:c = %ld - ((%ld * winwidth(0) + %ld) / %ld)", +! (long)wp->w_cursor.col, +! (long)(wp->w_cursor.col - wp->w_leftcol), + (long)wp->w_width / 2, (long)wp->w_width) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "if s:c > 0") == FAIL + || fprintf(fd, +! " exe 'normal! 0' . s:c . 'lzs' . (%ld - s:c) . 'l'", +! (long)wp->w_cursor.col) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "else") == FAIL +! || fprintf(fd, " normal! 0%dl", wp->w_cursor.col) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "endif") == FAIL) + return FAIL; + } + else + { +! if (fprintf(fd, "normal! 0%dl", wp->w_cursor.col) < 0 + || put_eol(fd) == FAIL) + return FAIL; + } +--- 10829,10852 ---- + { + if (fprintf(fd, + "let s:c = %ld - ((%ld * winwidth(0) + %ld) / %ld)", +! (long)wp->w_virtcol + 1, +! (long)(wp->w_virtcol - wp->w_leftcol), + (long)wp->w_width / 2, (long)wp->w_width) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "if s:c > 0") == FAIL + || fprintf(fd, +! " exe 'normal! ' . s:c . '|zs' . %ld . '|'", +! (long)wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "else") == FAIL +! || fprintf(fd, " normal! %d|", wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "endif") == FAIL) + return FAIL; + } + else + { +! if (fprintf(fd, "normal! 0%d|", wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL) + return FAIL; + } +*** ../vim-7.3.829/src/version.c 2013-02-20 18:39:07.000000000 +0100 +--- src/version.c 2013-02-20 19:14:18.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 830, + /**/ + +-- +Westheimer's Discovery: + A couple of months in the laboratory can + frequently save a couple of hours in the library. + + /// 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 /// From a2599182a773a68bc3d2df714518f7b3143534c9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:03 +0200 Subject: [PATCH 169/291] - patchlevel 831 --- 7.3.831 | 609 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 609 insertions(+) create mode 100644 7.3.831 diff --git a/7.3.831 b/7.3.831 new file mode 100644 index 00000000..431b588a --- /dev/null +++ b/7.3.831 @@ -0,0 +1,609 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.831 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.831 +Problem: Clumsy to handle the situation that a variable does not exist. +Solution: Add default value to getbufvar() et al. (Shougo Matsushita, + Hirohito Higashi) +Files: runtime/doc/eval.txt, src/eval.c src/testdir/test91.in, + src/testdir/test91.ok, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile + + +*** ../vim-7.3.830/runtime/doc/eval.txt 2013-02-20 17:58:01.000000000 +0100 +--- runtime/doc/eval.txt 2013-02-20 20:53:50.000000000 +0100 +*************** +*** 1761,1772 **** + foldtextresult( {lnum}) String text for closed fold at {lnum} + foreground( ) Number bring the Vim window to the foreground + function( {name}) Funcref reference to function {name} +! garbagecollect( [at_exit]) none free memory, breaking cyclic references + get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def} + get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def} + getbufline( {expr}, {lnum} [, {end}]) + List lines {lnum} to {end} of buffer {expr} +! getbufvar( {expr}, {varname}) any variable {varname} in buffer {expr} + getchar( [expr]) Number get one character from the user + getcharmod( ) Number modifiers for the last typed character + getcmdline() String return the current command-line +--- 1772,1784 ---- + foldtextresult( {lnum}) String text for closed fold at {lnum} + foreground( ) Number bring the Vim window to the foreground + function( {name}) Funcref reference to function {name} +! garbagecollect( [{atexit}]) none free memory, breaking cyclic references + get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def} + get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def} + getbufline( {expr}, {lnum} [, {end}]) + List lines {lnum} to {end} of buffer {expr} +! getbufvar( {expr}, {varname} [, {def}]) +! any variable {varname} in buffer {expr} + getchar( [expr]) Number get one character from the user + getcharmod( ) Number modifiers for the last typed character + getcmdline() String return the current command-line +*************** +*** 1787,1798 **** + getqflist() List list of quickfix items + getreg( [{regname} [, 1]]) String contents of register + getregtype( [{regname}]) String type of register +! gettabvar( {nr}, {varname}) any variable {varname} in tab {nr} +! gettabwinvar( {tabnr}, {winnr}, {name}) + any {name} in {winnr} in tab page {tabnr} + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window +! getwinvar( {nr}, {varname}) any variable {varname} in window {nr} + glob( {expr} [, {nosuf} [, {list}]]) + any expand file wildcards in {expr} + globpath( {path}, {expr} [, {flag}]) +--- 1799,1812 ---- + getqflist() List list of quickfix items + getreg( [{regname} [, 1]]) String contents of register + getregtype( [{regname}]) String type of register +! gettabvar( {nr}, {varname} [, {def}]) +! any variable {varname} in tab {nr} or {def} +! gettabwinvar( {tabnr}, {winnr}, {name} [, {def}]) + any {name} in {winnr} in tab page {tabnr} + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window +! getwinvar( {nr}, {varname} [, {def}]) +! any variable {varname} in window {nr} + glob( {expr} [, {nosuf} [, {list}]]) + any expand file wildcards in {expr} + globpath( {path}, {expr} [, {flag}]) +*************** +*** 3131,3137 **** + Example: > + :let lines = getbufline(bufnr("myfile"), 1, "$") + +! getbufvar({expr}, {varname}) *getbufvar()* + The result is the value of option or local buffer variable + {varname} in buffer {expr}. Note that the name without "b:" + must be used. +--- 3146,3152 ---- + Example: > + :let lines = getbufline(bufnr("myfile"), 1, "$") + +! getbufvar({expr}, {varname} [, {def}]) *getbufvar()* + The result is the value of option or local buffer variable + {varname} in buffer {expr}. Note that the name without "b:" + must be used. +*************** +*** 3141,3148 **** + doesn't work for a global variable, window-local variable or + window-local option. + For the use of {expr}, see |bufname()| above. +! When the buffer or variable doesn't exist an empty string is +! returned, there is no error message. + Examples: > + :let bufmodified = getbufvar(1, "&mod") + :echo "todo myvar = " . getbufvar("todo", "myvar") +--- 3156,3163 ---- + doesn't work for a global variable, window-local variable or + window-local option. + For the use of {expr}, see |bufname()| above. +! When the buffer or variable doesn't exist {def} or an empty +! string is returned, there is no error message. + Examples: > + :let bufmodified = getbufvar(1, "&mod") + :echo "todo myvar = " . getbufvar("todo", "myvar") +*************** +*** 3414,3439 **** + is one character with value 0x16. + If {regname} is not specified, |v:register| is used. + +! gettabvar({tabnr}, {varname}) *gettabvar()* + Get the value of a tab-local variable {varname} in tab page + {tabnr}. |t:var| + Tabs are numbered starting with one. + Note that the name without "t:" must be used. + +! gettabwinvar({tabnr}, {winnr}, {varname}) *gettabwinvar()* + Get the value of window-local variable {varname} in window + {winnr} in tab page {tabnr}. + When {varname} starts with "&" get the value of a window-local + option. + Tabs are numbered starting with one. For the current tabpage + use |getwinvar()|. + When {winnr} is zero the current window is used. + This also works for a global option, buffer-local option and + window-local option, but it doesn't work for a global variable + or buffer-local variable. +! When {varname} is empty a dictionary with all window-local +! variables is returned. +! Note that {varname} must be the name without "w:". + Examples: > + :let list_is_on = gettabwinvar(1, 2, '&list') + :echo "myvar = " . gettabwinvar(3, 1, 'myvar') +--- 3434,3463 ---- + is one character with value 0x16. + If {regname} is not specified, |v:register| is used. + +! gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* + Get the value of a tab-local variable {varname} in tab page + {tabnr}. |t:var| + Tabs are numbered starting with one. + Note that the name without "t:" must be used. ++ When the tab or variable doesn't exist {def} or an empty ++ string is returned, there is no error message. + +! gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()* + Get the value of window-local variable {varname} in window + {winnr} in tab page {tabnr}. + When {varname} starts with "&" get the value of a window-local + option. ++ When {varname} is empty a dictionary with all window-local ++ variables is returned. ++ Note that {varname} must be the name without "w:". + Tabs are numbered starting with one. For the current tabpage + use |getwinvar()|. + When {winnr} is zero the current window is used. + This also works for a global option, buffer-local option and + window-local option, but it doesn't work for a global variable + or buffer-local variable. +! When the tab, window or variable doesn't exist {def} or an +! empty string is returned, there is no error message. + Examples: > + :let list_is_on = gettabwinvar(1, 2, '&list') + :echo "myvar = " . gettabwinvar(3, 1, 'myvar') +*************** +*** 3448,3454 **** + the top of the GUI Vim window. The result will be -1 if the + information is not available. + +! getwinvar({winnr}, {varname}) *getwinvar()* + Like |gettabwinvar()| for the current tabpage. + Examples: > + :let list_is_on = getwinvar(2, '&list') +--- 3472,3478 ---- + the top of the GUI Vim window. The result will be -1 if the + information is not available. + +! getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* + Like |gettabwinvar()| for the current tabpage. + Examples: > + :let list_is_on = getwinvar(2, '&list') +*** ../vim-7.3.830/src/eval.c 2013-02-20 17:58:01.000000000 +0100 +--- src/eval.c 2013-02-20 20:52:09.000000000 +0100 +*************** +*** 7916,7922 **** + {"garbagecollect", 0, 1, f_garbagecollect}, + {"get", 2, 3, f_get}, + {"getbufline", 2, 3, f_getbufline}, +! {"getbufvar", 2, 2, f_getbufvar}, + {"getchar", 0, 1, f_getchar}, + {"getcharmod", 0, 0, f_getcharmod}, + {"getcmdline", 0, 0, f_getcmdline}, +--- 7916,7922 ---- + {"garbagecollect", 0, 1, f_garbagecollect}, + {"get", 2, 3, f_get}, + {"getbufline", 2, 3, f_getbufline}, +! {"getbufvar", 2, 3, f_getbufvar}, + {"getchar", 0, 1, f_getchar}, + {"getcharmod", 0, 0, f_getcharmod}, + {"getcmdline", 0, 0, f_getcmdline}, +*************** +*** 7936,7946 **** + {"getqflist", 0, 0, f_getqflist}, + {"getreg", 0, 2, f_getreg}, + {"getregtype", 0, 1, f_getregtype}, +! {"gettabvar", 2, 2, f_gettabvar}, +! {"gettabwinvar", 3, 3, f_gettabwinvar}, + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, +! {"getwinvar", 2, 2, f_getwinvar}, + {"glob", 1, 3, f_glob}, + {"globpath", 2, 3, f_globpath}, + {"has", 1, 1, f_has}, +--- 7936,7946 ---- + {"getqflist", 0, 0, f_getqflist}, + {"getreg", 0, 2, f_getreg}, + {"getregtype", 0, 1, f_getregtype}, +! {"gettabvar", 2, 3, f_gettabvar}, +! {"gettabwinvar", 3, 4, f_gettabwinvar}, + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, +! {"getwinvar", 2, 3, f_getwinvar}, + {"glob", 1, 3, f_glob}, + {"globpath", 2, 3, f_globpath}, + {"has", 1, 1, f_has}, +*************** +*** 11115,11122 **** + ++emsg_off; + buf = get_buf_tv(&argvars[0]); + +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; + + if (buf != NULL && varname != NULL) + { +--- 11115,11128 ---- + ++emsg_off; + buf = get_buf_tv(&argvars[0]); + +! if (argvars[2].v_type != VAR_UNKNOWN) +! /* set the default value */ +! copy_tv(&argvars[2], rettv); +! else +! { +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; +! } + + if (buf != NULL && varname != NULL) + { +*************** +*** 11785,11791 **** +--- 11791,11801 ---- + v = find_var_in_ht(&tp->tp_vars.dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); ++ else if (argvars[2].v_type != VAR_UNKNOWN) ++ copy_tv(&argvars[2], rettv); + } ++ else if (argvars[2].v_type != VAR_UNKNOWN) ++ copy_tv(&argvars[2], rettv); + } + + /* +*************** +*** 11907,11914 **** + varname = get_tv_string_chk(&argvars[off + 1]); + ++emsg_off; + +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; + + if (win != NULL && varname != NULL) + { +--- 11917,11930 ---- + varname = get_tv_string_chk(&argvars[off + 1]); + ++emsg_off; + +! if (argvars[off + 2].v_type != VAR_UNKNOWN) +! /* set the default return value */ +! copy_tv(&argvars[off + 2], rettv); +! else +! { +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; +! } + + if (win != NULL && varname != NULL) + { +*** ../vim-7.3.830/src/testdir/test91.in 2013-02-20 21:09:20.000000000 +0100 +--- src/testdir/test91.in 2013-02-20 20:57:49.000000000 +0100 +*************** +*** 0 **** +--- 1,98 ---- ++ Tests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar(). ++ vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :" ++ :" test for getbufvar() ++ :let b:var_num = 1234 ++ :let def_num = 5678 ++ :$put =string(getbufvar(1, 'var_num')) ++ :$put =string(getbufvar(1, 'var_num', def_num)) ++ :$put =string(getbufvar(1, '')) ++ :$put =string(getbufvar(1, '', def_num)) ++ :unlet b:var_num ++ :$put =string(getbufvar(1, 'var_num', def_num)) ++ :$put =string(getbufvar(1, '')) ++ :$put =string(getbufvar(1, '', def_num)) ++ :$put =string(getbufvar(9, '')) ++ :$put =string(getbufvar(9, '', def_num)) ++ :unlet def_num ++ :$put =string(getbufvar(1, '&autoindent')) ++ :$put =string(getbufvar(1, '&autoindent', 1)) ++ :" ++ :" test for getwinvar() ++ :let w:var_str = "Dance" ++ :let def_str = "Chance" ++ :$put =string(getwinvar(1, 'var_str')) ++ :$put =string(getwinvar(1, 'var_str', def_str)) ++ :$put =string(getwinvar(1, '')) ++ :$put =string(getwinvar(1, '', def_str)) ++ :unlet w:var_str ++ :$put =string(getwinvar(1, 'var_str', def_str)) ++ :$put =string(getwinvar(1, '')) ++ :$put =string(getwinvar(1, '', def_str)) ++ :$put =string(getwinvar(9, '')) ++ :$put =string(getwinvar(9, '', def_str)) ++ :$put =string(getwinvar(1, '&nu')) ++ :$put =string(getwinvar(1, '&nu', 1)) ++ :unlet def_str ++ :" ++ :" test for gettabvar() ++ :tabnew ++ :tabnew ++ :let t:var_list = [1, 2, 3] ++ :let def_list = [4, 5, 6, 7] ++ :tabrewind ++ :$put =string(gettabvar(3, 'var_list')) ++ :$put =string(gettabvar(3, 'var_list', def_list)) ++ :$put =string(gettabvar(3, '')) ++ :$put =string(gettabvar(3, '', def_list)) ++ :tablast ++ :unlet t:var_list ++ :tabrewind ++ :$put =string(gettabvar(3, 'var_list', def_list)) ++ :$put =string(gettabvar(9, '')) ++ :$put =string(gettabvar(9, '', def_list)) ++ :$put =string(gettabvar(3, '&nu')) ++ :$put =string(gettabvar(3, '&nu', def_list)) ++ :unlet def_list ++ :tabonly ++ :" ++ :" test for gettabwinvar() ++ :tabnew ++ :tabnew ++ :tabprev ++ :split ++ :split ++ :wincmd w ++ :vert split ++ :wincmd w ++ :let w:var_dict = {'dict': 'tabwin'} ++ :let def_dict = {'dict2': 'newval'} ++ :wincmd b ++ :tabrewind ++ :$put =string(gettabwinvar(2, 3, 'var_dict')) ++ :$put =string(gettabwinvar(2, 3, 'var_dict', def_dict)) ++ :$put =string(gettabwinvar(2, 3, '')) ++ :$put =string(gettabwinvar(2, 3, '', def_dict)) ++ :tabnext ++ :3wincmd w ++ :unlet w:var_dict ++ :tabrewind ++ :$put =string(gettabwinvar(2, 3, 'var_dict', def_dict)) ++ :$put =string(gettabwinvar(2, 3, '')) ++ :$put =string(gettabwinvar(2, 3, '', def_dict)) ++ :$put =string(gettabwinvar(2, 9, '')) ++ :$put =string(gettabwinvar(2, 9, '', def_dict)) ++ :$put =string(gettabwinvar(9, 3, '')) ++ :$put =string(gettabwinvar(9, 3, '', def_dict)) ++ :unlet def_dict ++ :$put =string(gettabwinvar(2, 3, '&nux')) ++ :$put =string(gettabwinvar(2, 3, '&nux', 1)) ++ :tabonly ++ :" ++ :/^start/,$wq! test.out ++ ENDTEST ++ ++ start: +*** ../vim-7.3.830/src/testdir/test91.ok 2013-02-20 21:09:20.000000000 +0100 +--- src/testdir/test91.ok 2013-02-20 20:57:45.000000000 +0100 +*************** +*** 0 **** +--- 1,45 ---- ++ start: ++ 1234 ++ 1234 ++ {'var_num': 1234} ++ {'var_num': 1234} ++ 5678 ++ {} ++ {} ++ '' ++ 5678 ++ 0 ++ 0 ++ 'Dance' ++ 'Dance' ++ {'var_str': 'Dance'} ++ {'var_str': 'Dance'} ++ 'Chance' ++ {} ++ {} ++ '' ++ 'Chance' ++ 0 ++ 0 ++ [1, 2, 3] ++ [1, 2, 3] ++ '' ++ [4, 5, 6, 7] ++ [4, 5, 6, 7] ++ '' ++ [4, 5, 6, 7] ++ '' ++ [4, 5, 6, 7] ++ {'dict': 'tabwin'} ++ {'dict': 'tabwin'} ++ {'var_dict': {'dict': 'tabwin'}} ++ {'var_dict': {'dict': 'tabwin'}} ++ {'dict2': 'newval'} ++ {} ++ {} ++ '' ++ {'dict2': 'newval'} ++ '' ++ {'dict2': 'newval'} ++ '' ++ 1 +*** ../vim-7.3.830/src/testdir/Make_amiga.mak 2013-02-13 17:34:59.000000000 +0100 +--- src/testdir/Make_amiga.mak 2013-02-20 20:21:03.000000000 +0100 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out + + .SUFFIXES: .in .out + +--- 32,38 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out + + .SUFFIXES: .in .out + +*************** +*** 139,141 **** +--- 139,142 ---- + test88.out: test88.in + test89.out: test89.in + test90.out: test90.in ++ test91.out: test91.in +*** ../vim-7.3.830/src/testdir/Make_dos.mak 2013-02-13 17:34:59.000000000 +0100 +--- src/testdir/Make_dos.mak 2013-02-20 20:21:13.000000000 +0100 +*************** +*** 31,37 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out + + SCRIPTS32 = test50.out test70.out + +--- 31,37 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.830/src/testdir/Make_ming.mak 2013-02-13 17:34:59.000000000 +0100 +--- src/testdir/Make_ming.mak 2013-02-20 20:21:19.000000000 +0100 +*************** +*** 51,57 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out + + SCRIPTS32 = test50.out test70.out + +--- 51,57 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.830/src/testdir/Make_os2.mak 2013-02-13 17:34:59.000000000 +0100 +--- src/testdir/Make_os2.mak 2013-02-20 20:21:25.000000000 +0100 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out + + .SUFFIXES: .in .out + +--- 32,38 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out + + .SUFFIXES: .in .out + +*** ../vim-7.3.830/src/testdir/Make_vms.mms 2013-02-13 17:34:59.000000000 +0100 +--- src/testdir/Make_vms.mms 2013-02-20 20:21:31.000000000 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013 Feb 13 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013 Feb 20 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 77,83 **** + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ + test82.out test83.out test84.out test88.out test89.out \ +! test90.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +--- 77,83 ---- + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ + test82.out test83.out test84.out test88.out test89.out \ +! test90.out test91.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +*** ../vim-7.3.830/src/testdir/Makefile 2013-02-13 17:34:59.000000000 +0100 +--- src/testdir/Makefile 2013-02-20 20:21:47.000000000 +0100 +*************** +*** 28,34 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out + + SCRIPTS_GUI = test16.out + +--- 28,34 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.3.830/src/version.c 2013-02-20 19:26:24.000000000 +0100 +--- src/version.c 2013-02-20 21:08:40.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 831, + /**/ + +-- + | + +Ceci n'est pas une pipe. + + /// 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 /// From 8a98aa1d989cb04cc5c2d5ed64e8ace17702f75c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:04 +0200 Subject: [PATCH 170/291] - patchlevel 832 --- 7.3.832 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 7.3.832 diff --git a/7.3.832 b/7.3.832 new file mode 100644 index 00000000..1a389406 --- /dev/null +++ b/7.3.832 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.832 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.832 +Problem: Compiler warning. +Solution: Add type cast. (Mike Williams) +Files: src/version.c + + +*** ../vim-7.3.831/src/version.c 2013-02-20 21:11:14.000000000 +0100 +--- src/version.c 2013-02-26 11:21:41.000000000 +0100 +*************** +*** 2466,2472 **** + * width */ + for (i = 0; features[i] != NULL; ++i) + { +! int l = STRLEN(features[i]); + + if (l > width) + width = l; +--- 2468,2474 ---- + * width */ + for (i = 0; features[i] != NULL; ++i) + { +! int l = (int)STRLEN(features[i]); + + if (l > width) + width = l; +*************** +*** 2518,2523 **** +--- 2520,2526 ---- + msg_putchar('\n'); + } + } ++ + void + list_version() + { +*** ../vim-7.3.831/src/version.c 2013-02-20 21:11:14.000000000 +0100 +--- src/version.c 2013-02-26 11:21:41.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 832, + /**/ + +-- +Engineers are always delighted to share wisdom, even in areas in which they +have no experience whatsoever. Their logic provides them with inherent +insight into any field of expertise. This can be a problem when dealing with +the illogical people who believe that knowledge can only be derived through +experience. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 1ae198ba72b760669e489a1fb9c99539941c6630 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:04 +0200 Subject: [PATCH 171/291] - patchlevel 833 --- 7.3.833 | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 7.3.833 diff --git a/7.3.833 b/7.3.833 new file mode 100644 index 00000000..b28af4f9 --- /dev/null +++ b/7.3.833 @@ -0,0 +1,118 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.833 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.833 +Problem: In the terminal the scroll wheel always scrolls the active window. +Solution: Scroll the window under the mouse pointer, like in the GUI. + (Bradie Rao) +Files: src/edit.c, src/normal.c + + +*** ../vim-7.3.832/src/edit.c 2013-02-13 16:30:17.000000000 +0100 +--- src/edit.c 2013-02-26 11:20:31.000000000 +0100 +*************** +*** 9139,9147 **** + + tpos = curwin->w_cursor; + +! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) +! /* Currently the mouse coordinates are only known in the GUI. */ +! if (gui.in_use && mouse_row >= 0 && mouse_col >= 0) + { + int row, col; + +--- 9139,9146 ---- + + tpos = curwin->w_cursor; + +! # ifdef FEAT_WINDOWS +! if (mouse_row >= 0 && mouse_col >= 0) + { + int row, col; + +*************** +*** 9191,9197 **** + # endif + } + +! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) + curwin->w_redr_status = TRUE; + + curwin = old_curwin; +--- 9190,9196 ---- + # endif + } + +! # ifdef FEAT_WINDOWS + curwin->w_redr_status = TRUE; + + curwin = old_curwin; +*** ../vim-7.3.832/src/normal.c 2013-02-14 22:11:31.000000000 +0100 +--- src/normal.c 2013-02-26 11:20:31.000000000 +0100 +*************** +*** 4649,4659 **** + nv_mousescroll(cap) + cmdarg_T *cap; + { +! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) + win_T *old_curwin = curwin; + +! /* Currently we only get the mouse coordinates in the GUI. */ +! if (gui.in_use && mouse_row >= 0 && mouse_col >= 0) + { + int row, col; + +--- 4649,4658 ---- + nv_mousescroll(cap) + cmdarg_T *cap; + { +! # ifdef FEAT_WINDOWS + win_T *old_curwin = curwin; + +! if (mouse_row >= 0 && mouse_col >= 0) + { + int row, col; + +*************** +*** 4698,4704 **** + } + # endif + +! # if defined(FEAT_GUI) && defined(FEAT_WINDOWS) + curwin->w_redr_status = TRUE; + + curwin = old_curwin; +--- 4697,4703 ---- + } + # endif + +! # ifdef FEAT_WINDOWS + curwin->w_redr_status = TRUE; + + curwin = old_curwin; +*** ../vim-7.3.832/src/version.c 2013-02-26 11:25:28.000000000 +0100 +--- src/version.c 2013-02-26 13:28:51.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 833, + /**/ + +-- +Female engineers become irresistible at the age of consent and remain that +way until about thirty minutes after their clinical death. Longer if it's a +warm day. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 1ce0605ae6e613b953803959d7519168bf8f2a00 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:05 +0200 Subject: [PATCH 172/291] - patchlevel 834 --- 7.3.834 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.3.834 diff --git a/7.3.834 b/7.3.834 new file mode 100644 index 00000000..b95610e8 --- /dev/null +++ b/7.3.834 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.834 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.834 +Problem: Ruby 2.0 has a few API changes. +Solution: Add handling of Ruby 2.0. (Yasuhiro Matsumoto) +Files: src/if_ruby.c + + +*** ../vim-7.3.833/src/if_ruby.c 2013-02-14 22:19:47.000000000 +0100 +--- src/if_ruby.c 2013-02-26 13:41:24.000000000 +0100 +*************** +*** 189,195 **** +--- 189,197 ---- + #ifndef RUBY19_OR_LATER + #define rb_num2long dll_rb_num2long + #endif ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 19 + #define rb_num2ulong dll_rb_num2ulong ++ #endif + #define rb_obj_alloc dll_rb_obj_alloc + #define rb_obj_as_string dll_rb_obj_as_string + #define rb_obj_id dll_rb_obj_id +*************** +*** 344,349 **** +--- 346,362 ---- + { + return dll_rb_int2big(x); + } ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 ++ VALUE ++ rb_float_new_in_heap(double d) ++ { ++ return dll_rb_float_new(d); ++ } ++ unsigned long rb_num2ulong(VALUE x) ++ { ++ return (long)RSHIFT((SIGNED_VALUE)(x),1); ++ } ++ #endif + #endif + + static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */ +*************** +*** 434,440 **** +--- 447,457 ---- + #endif + #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, ++ # if DYNAMIC_RUBY_VER <= 19 + {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, ++ # else ++ {"rb_float_new_in_heap", (RUBY_PROC*)&dll_rb_float_new}, ++ # endif + {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new}, + {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push}, + #endif +*** ../vim-7.3.833/src/version.c 2013-02-26 13:30:28.000000000 +0100 +--- src/version.c 2013-02-26 13:33:34.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 834, + /**/ + +-- +An alien life briefly visits earth. Just before departing it leaves a +message in the dust on the back of a white van. The world is shocked +and wants to know what it means. After months of studies the worlds +best linguistic scientists are able to decipher the message: "Wash me!". + + /// 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 /// From f4766d776c326603764f32316ebf99456ff0eebb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:06 +0200 Subject: [PATCH 173/291] - patchlevel 835 --- 7.3.835 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 7.3.835 diff --git a/7.3.835 b/7.3.835 new file mode 100644 index 00000000..61991bb9 --- /dev/null +++ b/7.3.835 @@ -0,0 +1,60 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.835 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.835 +Problem: "xxd -i" fails on an empty file. +Solution: Do output the closing } for an empty file. (partly by Lawrence + Woodman) +Files: src/xxd/xxd.c + + +*** ../vim-7.3.834/src/xxd/xxd.c 2011-04-11 21:35:03.000000000 +0200 +--- src/xxd/xxd.c 2013-02-26 14:08:48.000000000 +0100 +*************** +*** 729,737 **** + if (c == EOF && ferror(fp)) + die(2); + +! if (p) +! if (fputs("\n};\n" + 3 * (fp == stdin), fpo) == EOF) +! die(3); + + if (fp != stdin) + { +--- 729,738 ---- + if (c == EOF && ferror(fp)) + die(2); + +! if (p && fputs("\n", fpo) == EOF) +! die(3); +! if (fputs("};\n" + 3 * (fp == stdin), fpo) == EOF) +! die(3); + + if (fp != stdin) + { +*** ../vim-7.3.834/src/version.c 2013-02-26 13:41:31.000000000 +0100 +--- src/version.c 2013-02-26 14:11:21.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 835, + /**/ + +-- +For society, it's probably a good thing that engineers value function over +appearance. For example, you wouldn't want engineers to build nuclear power +plants that only _look_ like they would keep all the radiation inside. + (Scott Adams - The Dilbert principle) + + /// 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 /// From e373ee4808a75f0938a2d32ada796190c5b54b30 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:06 +0200 Subject: [PATCH 174/291] - patchlevel 836 --- 7.3.836 | 2071 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2071 insertions(+) create mode 100644 7.3.836 diff --git a/7.3.836 b/7.3.836 new file mode 100644 index 00000000..712e2b3d --- /dev/null +++ b/7.3.836 @@ -0,0 +1,2071 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.836 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.836 +Problem: Clipboard does not work on Win32 when compiled with Cygwin. +Solution: Move the Win32 clipboard code to a separate file and use it when + building with os_unix.c. (Frodak Baksik, Ken Takata) +Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ivc.mak, + src/Make_ming.mak, src/Make_mvc.mak, src/Make_w16.mak, + src/Makefile, src/config.h.in, src/configure.in, + src/auto/configure, src/feature.h, src/globals.h, src/mbyte.c, + src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/proto.h, + src/proto/os_mswin.pro, src/proto/winclip.pro, src/term.c, + src/vim.h, src/winclip.c + + +*** ../vim-7.3.835/src/Make_bc5.mak 2010-08-15 21:57:32.000000000 +0200 +--- src/Make_bc5.mak 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 694,700 **** + + !if ($(OSTYPE)==WIN32) + vimobj = $(vimobj) \ +! $(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj + !elif ($(OSTYPE)==DOS16) + vimobj = $(vimobj) \ + $(OBJDIR)\os_msdos.obj +--- 694,700 ---- + + !if ($(OSTYPE)==WIN32) + vimobj = $(vimobj) \ +! $(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj $(OBJDIR)\winclip.obj + !elif ($(OSTYPE)==DOS16) + vimobj = $(vimobj) \ + $(OBJDIR)\os_msdos.obj +*** ../vim-7.3.835/src/Make_cyg.mak 2013-02-20 13:34:14.000000000 +0100 +--- src/Make_cyg.mak 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 547,552 **** +--- 547,553 ---- + $(OUTDIR)/option.o \ + $(OUTDIR)/os_win32.o \ + $(OUTDIR)/os_mswin.o \ ++ $(OUTDIR)/winclip.o \ + $(OUTDIR)/pathdef.o \ + $(OUTDIR)/popupmnu.o \ + $(OUTDIR)/quickfix.o \ +*** ../vim-7.3.835/src/Make_ivc.mak 2010-08-15 21:57:28.000000000 +0200 +--- src/Make_ivc.mak 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 241,246 **** +--- 241,247 ---- + "$(INTDIR)/ops.obj" \ + "$(INTDIR)/option.obj" \ + "$(INTDIR)/os_mswin.obj" \ ++ "$(INTDIR)/winclip.obj" \ + "$(INTDIR)/os_win32.obj" \ + "$(INTDIR)/popupmnu.obj" \ + "$(INTDIR)/quickfix.obj" \ +*************** +*** 600,605 **** +--- 601,610 ---- + # End Source File + # Begin Source File + ++ SOURCE=.\winclip.c ++ # End Source File ++ # Begin Source File ++ + SOURCE=.\os_win32.c + # End Source File + # Begin Source File +*** ../vim-7.3.835/src/Make_ming.mak 2013-01-30 14:55:35.000000000 +0100 +--- src/Make_ming.mak 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 523,528 **** +--- 523,529 ---- + $(OUTDIR)/option.o \ + $(OUTDIR)/os_win32.o \ + $(OUTDIR)/os_mswin.o \ ++ $(OUTDIR)/winclip.o \ + $(OUTDIR)/pathdef.o \ + $(OUTDIR)/popupmnu.o \ + $(OUTDIR)/quickfix.o \ +*** ../vim-7.3.835/src/Make_mvc.mak 2013-01-30 14:55:35.000000000 +0100 +--- src/Make_mvc.mak 2013-02-26 14:29:05.000000000 +0100 +*************** +*** 543,548 **** +--- 543,549 ---- + $(OUTDIR)\ops.obj \ + $(OUTDIR)\option.obj \ + $(OUTDIR)\os_mswin.obj \ ++ $(OUTDIR)\winclip.obj \ + $(OUTDIR)\os_win32.obj \ + $(OUTDIR)\pathdef.obj \ + $(OUTDIR)\popupmnu.obj \ +*************** +*** 1149,1154 **** +--- 1150,1157 ---- + + $(OUTDIR)/os_mswin.obj: $(OUTDIR) os_mswin.c $(INCL) + ++ $(OUTDIR)/winclip.obj: $(OUTDIR) winclip.c $(INCL) ++ + $(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) os_win32.h + + $(OUTDIR)/os_w32exe.obj: $(OUTDIR) os_w32exe.c $(INCL) +*************** +*** 1256,1261 **** +--- 1259,1265 ---- + proto/ops.pro \ + proto/option.pro \ + proto/os_mswin.pro \ ++ proto/winclip.pro \ + proto/os_win32.pro \ + proto/popupmnu.pro \ + proto/quickfix.pro \ +*** ../vim-7.3.835/src/Make_w16.mak 2010-08-15 21:57:27.000000000 +0200 +--- src/Make_w16.mak 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 107,112 **** +--- 107,113 ---- + $(INTDIR)\os_win16.obj\ + $(INTDIR)\os_msdos.obj\ + $(INTDIR)\os_mswin.obj\ ++ $(INTDIR)\winclip.obj\ + $(INTDIR)\popupmnu.obj\ + $(INTDIR)\quickfix.obj\ + $(INTDIR)\regexp.obj\ +*** ../vim-7.3.835/src/Makefile 2013-01-30 17:41:43.000000000 +0100 +--- src/Makefile 2013-02-26 14:54:51.000000000 +0100 +*************** +*** 1638,1644 **** + RSRC_DIR = os_mac_rsrc + + PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \ +! os_mswin.pro os_beos.pro os_vms.pro $(PERL_PRO) + + # Default target is making the executable and tools + all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE) +--- 1638,1644 ---- + RSRC_DIR = os_mac_rsrc + + PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \ +! os_mswin.pro winclip.pro os_beos.pro os_vms.pro $(PERL_PRO) + + # Default target is making the executable and tools + all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE) +*************** +*** 1792,1797 **** +--- 1792,1801 ---- + $(CPROTO) -DWIN16 -DWIN32 -UHAVE_CONFIG_H $< > proto/$@ + echo "/* vim: set ft=c : */" >> proto/$@ + ++ winclip.pro: winclip.c ++ $(CPROTO) -DWIN16 -DWIN32 -UHAVE_CONFIG_H $< > proto/$@ ++ echo "/* vim: set ft=c : */" >> proto/$@ ++ + os_beos.pro: os_beos.c + $(CPROTO) -D__BEOS__ -UHAVE_CONFIG_H $< > proto/$@ + echo "/* vim: set ft=c : */" >> proto/$@ +*************** +*** 2642,2647 **** +--- 2646,2657 ---- + objects/os_unix.o: os_unix.c + $(CCC) -o $@ os_unix.c + ++ objects/os_mswin.o: os_mswin.c ++ $(CCC) -o $@ os_mswin.c ++ ++ objects/winclip.o: winclip.c ++ $(CCC) -o $@ winclip.c ++ + objects/pathdef.o: auto/pathdef.c + $(CCC) -o $@ auto/pathdef.c + +*************** +*** 2970,2975 **** +--- 2980,2989 ---- + ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ + gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \ + arabic.h version.h ++ objects/winclip.o: winclip.c vimio.h vim.h auto/config.h feature.h os_unix.h \ ++ auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \ ++ regexp.h gui.h ex_cmds.h proto.h globals.h farsi.h arabic.h \ ++ proto/winclip.pro + objects/window.o: window.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \ + ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ + gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \ +*** ../vim-7.3.835/src/config.h.in 2012-08-15 14:04:50.000000000 +0200 +--- src/config.h.in 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 439,441 **** +--- 439,444 ---- + + /* Define if fcntl()'s F_SETFD command knows about FD_CLOEXEC */ + #undef HAVE_FD_CLOEXEC ++ ++ /* Define if you want Cygwin to use the WIN32 clipboard, not compatible with X11*/ ++ #undef FEAT_CYGWIN_WIN32_CLIPBOARD +*** ../vim-7.3.835/src/configure.in 2013-02-06 19:49:37.000000000 +0100 +--- src/configure.in 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 2474,2479 **** +--- 2474,2494 ---- + dnl end of GUI-checking + dnl --------------------------------------------------------------------------- + ++ dnl Check for Cygwin, which needs an extra source file if not using X11 ++ AC_MSG_CHECKING(for CYGWIN environment) ++ case `uname` in ++ CYGWIN*) CYGWIN=yes; AC_MSG_RESULT(yes) ++ AC_MSG_CHECKING(for CYGWIN clipboard support) ++ if test "x$with_x" = "xno" ; then ++ OS_EXTRA_SRC=winclip.c; OS_EXTRA_OBJ=objects/winclip.o ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(FEAT_CYGWIN_WIN32_CLIPBOARD) ++ else ++ AC_MSG_RESULT(no - using X11) ++ fi ;; ++ ++ *) CYGWIN=no; AC_MSG_RESULT(no);; ++ esac + + dnl Only really enable hangul input when GUI and XFONTSET are available + if test "$enable_hangulinput" = "yes"; then +*** ../vim-7.3.835/src/auto/configure 2013-02-06 19:49:38.000000000 +0100 +--- src/auto/configure 2013-02-26 14:22:16.000000000 +0100 +*************** +*** 8846,8851 **** +--- 8846,8872 ---- + + + ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN environment" >&5 ++ $as_echo_n "checking for CYGWIN environment... " >&6; } ++ case `uname` in ++ CYGWIN*) CYGWIN=yes; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++ $as_echo "yes" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN clipboard support" >&5 ++ $as_echo_n "checking for CYGWIN clipboard support... " >&6; } ++ if test "x$with_x" = "xno" ; then ++ OS_EXTRA_SRC=winclip.c; OS_EXTRA_OBJ=objects/winclip.o ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++ $as_echo "yes" >&6; } ++ $as_echo "#define FEAT_CYGWIN_WIN32_CLIPBOARD 1" >>confdefs.h ++ ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - using X11" >&5 ++ $as_echo "no - using X11" >&6; } ++ fi ;; ++ ++ *) CYGWIN=no; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++ $as_echo "no" >&6; };; ++ esac + + if test "$enable_hangulinput" = "yes"; then + if test "x$GUITYPE" = "xNONE"; then +*** ../vim-7.3.835/src/feature.h 2013-02-14 22:11:31.000000000 +0100 +--- src/feature.h 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 1129,1134 **** +--- 1129,1139 ---- + * +xterm_clipboard Unix only: Include code for handling the clipboard + * in an xterm like in the GUI. + */ ++ ++ #ifdef FEAT_CYGWIN_WIN32_CLIPBOARD ++ # define FEAT_CLIPBOARD ++ #endif ++ + #ifdef FEAT_GUI + # ifndef FEAT_CLIPBOARD + # define FEAT_CLIPBOARD +*** ../vim-7.3.835/src/globals.h 2012-08-23 18:43:06.000000000 +0200 +--- src/globals.h 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 802,808 **** + EXTERN int enc_unicode INIT(= 0); /* 2: UCS-2 or UTF-16, 4: UCS-4 */ + EXTERN int enc_utf8 INIT(= FALSE); /* UTF-8 encoded Unicode */ + EXTERN int enc_latin1like INIT(= TRUE); /* 'encoding' is latin1 comp. */ +! # ifdef WIN3264 + /* Codepage nr of 'encoding'. Negative means it's not been set yet, zero + * means 'encoding' is not a valid codepage. */ + EXTERN int enc_codepage INIT(= -1); +--- 802,808 ---- + EXTERN int enc_unicode INIT(= 0); /* 2: UCS-2 or UTF-16, 4: UCS-4 */ + EXTERN int enc_utf8 INIT(= FALSE); /* UTF-8 encoded Unicode */ + EXTERN int enc_latin1like INIT(= TRUE); /* 'encoding' is latin1 comp. */ +! # if defined(WIN3264) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) + /* Codepage nr of 'encoding'. Negative means it's not been set yet, zero + * means 'encoding' is not a valid codepage. */ + EXTERN int enc_codepage INIT(= -1); +*** ../vim-7.3.835/src/mbyte.c 2013-02-13 16:49:54.000000000 +0100 +--- src/mbyte.c 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 613,619 **** + enc_dbcs = enc_dbcs_new; + has_mbyte = (enc_dbcs != 0 || enc_utf8); + +! #ifdef WIN3264 + enc_codepage = encname2codepage(p_enc); + enc_latin9 = (STRCMP(p_enc, "iso-8859-15") == 0); + #endif +--- 613,619 ---- + enc_dbcs = enc_dbcs_new; + has_mbyte = (enc_dbcs != 0 || enc_utf8); + +! #if defined(WIN3264) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) + enc_codepage = encname2codepage(p_enc); + enc_latin9 = (STRCMP(p_enc, "iso-8859-15") == 0); + #endif +*************** +*** 4089,4095 **** + return enc_canonize((char_u *)buf); + } + +! #if defined(WIN3264) || defined(PROTO) + /* + * Convert an encoding name to an MS-Windows codepage. + * Returns zero if no codepage can be figured out. +--- 4089,4095 ---- + return enc_canonize((char_u *)buf); + } + +! #if defined(WIN3264) || defined(PROTO) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) + /* + * Convert an encoding name to an MS-Windows codepage. + * Returns zero if no codepage can be figured out. +*** ../vim-7.3.835/src/os_mswin.c 2012-11-20 16:53:34.000000000 +0100 +--- src/os_mswin.c 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 905,1640 **** + } + #endif + +- #if defined(FEAT_MBYTE) || defined(PROTO) +- /* +- * Convert an UTF-8 string to UTF-16. +- * "instr[inlen]" is the input. "inlen" is in bytes. +- * When "outstr" is NULL only return the number of UTF-16 words produced. +- * Otherwise "outstr" must be a buffer of sufficient size. +- * Returns the number of UTF-16 words produced. +- */ +- int +- utf8_to_utf16(char_u *instr, int inlen, short_u *outstr, int *unconvlenp) +- { +- int outlen = 0; +- char_u *p = instr; +- int todo = inlen; +- int l; +- int ch; +- +- while (todo > 0) +- { +- /* Only convert if we have a complete sequence. */ +- l = utf_ptr2len_len(p, todo); +- if (l > todo) +- { +- /* Return length of incomplete sequence. */ +- if (unconvlenp != NULL) +- *unconvlenp = todo; +- break; +- } +- +- ch = utf_ptr2char(p); +- if (ch >= 0x10000) +- { +- /* non-BMP character, encoding with surrogate pairs */ +- ++outlen; +- if (outstr != NULL) +- { +- *outstr++ = (0xD800 - (0x10000 >> 10)) + (ch >> 10); +- *outstr++ = 0xDC00 | (ch & 0x3FF); +- } +- } +- else if (outstr != NULL) +- *outstr++ = ch; +- ++outlen; +- p += l; +- todo -= l; +- } +- +- return outlen; +- } +- +- /* +- * Convert an UTF-16 string to UTF-8. +- * The input is "instr[inlen]" with "inlen" in number of UTF-16 words. +- * When "outstr" is NULL only return the required number of bytes. +- * Otherwise "outstr" must be a buffer of sufficient size. +- * Return the number of bytes produced. +- */ +- int +- utf16_to_utf8(short_u *instr, int inlen, char_u *outstr) +- { +- int outlen = 0; +- int todo = inlen; +- short_u *p = instr; +- int l; +- int ch, ch2; +- +- while (todo > 0) +- { +- ch = *p; +- if (ch >= 0xD800 && ch <= 0xDBFF && todo > 1) +- { +- /* surrogate pairs handling */ +- ch2 = p[1]; +- if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) +- { +- ch = ((ch - 0xD800) << 10) + (ch2 & 0x3FF) + 0x10000; +- ++p; +- --todo; +- } +- } +- if (outstr != NULL) +- { +- l = utf_char2bytes(ch, outstr); +- outstr += l; +- } +- else +- l = utf_char2len(ch); +- ++p; +- outlen += l; +- --todo; +- } +- +- return outlen; +- } +- +- /* +- * Call MultiByteToWideChar() and allocate memory for the result. +- * Returns the result in "*out[*outlen]" with an extra zero appended. +- * "outlen" is in words. +- */ +- void +- MultiByteToWideChar_alloc(UINT cp, DWORD flags, +- LPCSTR in, int inlen, +- LPWSTR *out, int *outlen) +- { +- *outlen = MultiByteToWideChar(cp, flags, in, inlen, 0, 0); +- /* Add one one word to avoid a zero-length alloc(). */ +- *out = (LPWSTR)alloc(sizeof(WCHAR) * (*outlen + 1)); +- if (*out != NULL) +- { +- MultiByteToWideChar(cp, flags, in, inlen, *out, *outlen); +- (*out)[*outlen] = 0; +- } +- } +- +- /* +- * Call WideCharToMultiByte() and allocate memory for the result. +- * Returns the result in "*out[*outlen]" with an extra NUL appended. +- */ +- void +- WideCharToMultiByte_alloc(UINT cp, DWORD flags, +- LPCWSTR in, int inlen, +- LPSTR *out, int *outlen, +- LPCSTR def, LPBOOL useddef) +- { +- *outlen = WideCharToMultiByte(cp, flags, in, inlen, NULL, 0, def, useddef); +- /* Add one one byte to avoid a zero-length alloc(). */ +- *out = alloc((unsigned)*outlen + 1); +- if (*out != NULL) +- { +- WideCharToMultiByte(cp, flags, in, inlen, *out, *outlen, def, useddef); +- (*out)[*outlen] = 0; +- } +- } +- +- #endif /* FEAT_MBYTE */ +- +- #ifdef FEAT_CLIPBOARD +- /* +- * Clipboard stuff, for cutting and pasting text to other windows. +- */ +- +- /* Type used for the clipboard type of Vim's data. */ +- typedef struct +- { +- int type; /* MCHAR, MBLOCK or MLINE */ +- int txtlen; /* length of CF_TEXT in bytes */ +- int ucslen; /* length of CF_UNICODETEXT in words */ +- int rawlen; /* length of clip_star.format_raw, including encoding, +- excluding terminating NUL */ +- } VimClipType_t; +- +- /* +- * Make vim the owner of the current selection. Return OK upon success. +- */ +- /*ARGSUSED*/ +- int +- clip_mch_own_selection(VimClipboard *cbd) +- { +- /* +- * Never actually own the clipboard. If another application sets the +- * clipboard, we don't want to think that we still own it. +- */ +- return FAIL; +- } +- +- /* +- * Make vim NOT the owner of the current selection. +- */ +- /*ARGSUSED*/ +- void +- clip_mch_lose_selection(VimClipboard *cbd) +- { +- /* Nothing needs to be done here */ +- } +- +- /* +- * Copy "str[*size]" into allocated memory, changing CR-NL to NL. +- * Return the allocated result and the size in "*size". +- * Returns NULL when out of memory. +- */ +- static char_u * +- crnl_to_nl(const char_u *str, int *size) +- { +- int pos = 0; +- int str_len = *size; +- char_u *ret; +- char_u *retp; +- +- /* Avoid allocating zero bytes, it generates an error message. */ +- ret = lalloc((long_u)(str_len == 0 ? 1 : str_len), TRUE); +- if (ret != NULL) +- { +- retp = ret; +- for (pos = 0; pos < str_len; ++pos) +- { +- if (str[pos] == '\r' && str[pos + 1] == '\n') +- { +- ++pos; +- --(*size); +- } +- *retp++ = str[pos]; +- } +- } +- +- return ret; +- } +- +- /* +- * Wait for another process to Close the Clipboard. +- * Returns TRUE for success. +- */ +- static int +- vim_open_clipboard(void) +- { +- int delay = 10; +- +- while (!OpenClipboard(NULL)) +- { +- if (delay > 500) +- return FALSE; /* waited too long, give up */ +- Sleep(delay); +- delay *= 2; /* wait for 10, 20, 40, 80, etc. msec */ +- } +- return TRUE; +- } +- +- /* +- * Get the current selection and put it in the clipboard register. +- * +- * NOTE: Must use GlobalLock/Unlock here to ensure Win32s compatibility. +- * On NT/W95 the clipboard data is a fixed global memory object and +- * so its handle = its pointer. +- * On Win32s, however, co-operation with the Win16 system means that +- * the clipboard data is moveable and its handle is not a pointer at all, +- * so we can't just cast the return value of GetClipboardData to (char_u*). +- * +- */ +- void +- clip_mch_request_selection(VimClipboard *cbd) +- { +- VimClipType_t metadata = { -1, -1, -1, -1 }; +- HGLOBAL hMem = NULL; +- char_u *str = NULL; +- #if defined(FEAT_MBYTE) && defined(WIN3264) +- char_u *to_free = NULL; +- #endif +- #ifdef FEAT_MBYTE +- HGLOBAL rawh = NULL; +- #endif +- int str_size = 0; +- int maxlen; +- size_t n; +- +- /* +- * Don't pass GetActiveWindow() as an argument to OpenClipboard() because +- * then we can't paste back into the same window for some reason - webb. +- */ +- if (!vim_open_clipboard()) +- return; +- +- /* Check for vim's own clipboard format first. This only gets the type of +- * the data, still need to use CF_UNICODETEXT or CF_TEXT for the text. */ +- if (IsClipboardFormatAvailable(cbd->format)) +- { +- VimClipType_t *meta_p; +- HGLOBAL meta_h; +- +- /* We have metadata on the clipboard; try to get it. */ +- if ((meta_h = GetClipboardData(cbd->format)) != NULL +- && (meta_p = (VimClipType_t *)GlobalLock(meta_h)) != NULL) +- { +- /* The size of "VimClipType_t" changed, "rawlen" was added later. +- * Only copy what is available for backwards compatibility. */ +- n = sizeof(VimClipType_t); +- if (GlobalSize(meta_h) < n) +- n = GlobalSize(meta_h); +- memcpy(&metadata, meta_p, n); +- GlobalUnlock(meta_h); +- } +- } +- +- #ifdef FEAT_MBYTE +- /* Check for Vim's raw clipboard format first. This is used without +- * conversion, but only if 'encoding' matches. */ +- if (IsClipboardFormatAvailable(cbd->format_raw) +- && metadata.rawlen > (int)STRLEN(p_enc)) +- { +- /* We have raw data on the clipboard; try to get it. */ +- if ((rawh = GetClipboardData(cbd->format_raw)) != NULL) +- { +- char_u *rawp; +- +- rawp = (char_u *)GlobalLock(rawh); +- if (rawp != NULL && STRCMP(p_enc, rawp) == 0) +- { +- n = STRLEN(p_enc) + 1; +- str = rawp + n; +- str_size = (int)(metadata.rawlen - n); +- } +- else +- { +- GlobalUnlock(rawh); +- rawh = NULL; +- } +- } +- } +- if (str == NULL) +- { +- #endif +- +- #if defined(FEAT_MBYTE) && defined(WIN3264) +- /* Try to get the clipboard in Unicode if it's not an empty string. */ +- if (IsClipboardFormatAvailable(CF_UNICODETEXT) && metadata.ucslen != 0) +- { +- HGLOBAL hMemW; +- +- if ((hMemW = GetClipboardData(CF_UNICODETEXT)) != NULL) +- { +- WCHAR *hMemWstr = (WCHAR *)GlobalLock(hMemW); +- +- /* Use the length of our metadata if possible, but limit it to the +- * GlobalSize() for safety. */ +- maxlen = (int)(GlobalSize(hMemW) / sizeof(WCHAR)); +- if (metadata.ucslen >= 0) +- { +- if (metadata.ucslen > maxlen) +- str_size = maxlen; +- else +- str_size = metadata.ucslen; +- } +- else +- { +- for (str_size = 0; str_size < maxlen; ++str_size) +- if (hMemWstr[str_size] == NUL) +- break; +- } +- to_free = str = utf16_to_enc((short_u *)hMemWstr, &str_size); +- GlobalUnlock(hMemW); +- } +- } +- else +- #endif +- /* Get the clipboard in the Active codepage. */ +- if (IsClipboardFormatAvailable(CF_TEXT)) +- { +- if ((hMem = GetClipboardData(CF_TEXT)) != NULL) +- { +- str = (char_u *)GlobalLock(hMem); +- +- /* The length is either what our metadata says or the strlen(). +- * But limit it to the GlobalSize() for safety. */ +- maxlen = (int)GlobalSize(hMem); +- if (metadata.txtlen >= 0) +- { +- if (metadata.txtlen > maxlen) +- str_size = maxlen; +- else +- str_size = metadata.txtlen; +- } +- else +- { +- for (str_size = 0; str_size < maxlen; ++str_size) +- if (str[str_size] == NUL) +- break; +- } +- +- # if defined(FEAT_MBYTE) && defined(WIN3264) +- /* The text is in the active codepage. Convert to 'encoding', +- * going through UTF-16. */ +- acp_to_enc(str, str_size, &to_free, &maxlen); +- if (to_free != NULL) +- { +- str_size = maxlen; +- str = to_free; +- } +- # endif +- } +- } +- #ifdef FEAT_MBYTE +- } +- #endif +- +- if (str != NULL && *str != NUL) +- { +- char_u *temp_clipboard; +- +- /* If the type is not known detect it. */ +- if (metadata.type == -1) +- metadata.type = MAUTO; +- +- /* Translate into . */ +- temp_clipboard = crnl_to_nl(str, &str_size); +- if (temp_clipboard != NULL) +- { +- clip_yank_selection(metadata.type, temp_clipboard, str_size, cbd); +- vim_free(temp_clipboard); +- } +- } +- +- /* unlock the global object */ +- if (hMem != NULL) +- GlobalUnlock(hMem); +- #ifdef FEAT_MBYTE +- if (rawh != NULL) +- GlobalUnlock(rawh); +- #endif +- CloseClipboard(); +- #if defined(FEAT_MBYTE) && defined(WIN3264) +- vim_free(to_free); +- #endif +- } +- +- /* +- * Send the current selection to the clipboard. +- */ +- void +- clip_mch_set_selection(VimClipboard *cbd) +- { +- char_u *str = NULL; +- VimClipType_t metadata; +- long_u txtlen; +- HGLOBAL hMemRaw = NULL; +- HGLOBAL hMem = NULL; +- HGLOBAL hMemVim = NULL; +- # if defined(FEAT_MBYTE) && defined(WIN3264) +- HGLOBAL hMemW = NULL; +- # endif +- +- /* If the '*' register isn't already filled in, fill it in now */ +- cbd->owned = TRUE; +- clip_get_selection(cbd); +- cbd->owned = FALSE; +- +- /* Get the text to be put on the clipboard, with CR-LF. */ +- metadata.type = clip_convert_selection(&str, &txtlen, cbd); +- if (metadata.type < 0) +- return; +- metadata.txtlen = (int)txtlen; +- metadata.ucslen = 0; +- metadata.rawlen = 0; +- +- #ifdef FEAT_MBYTE +- /* Always set the raw bytes: 'encoding', NUL and the text. This is used +- * when copy/paste from/to Vim with the same 'encoding', so that illegal +- * bytes can also be copied and no conversion is needed. */ +- { +- LPSTR lpszMemRaw; +- +- metadata.rawlen = (int)(txtlen + STRLEN(p_enc) + 1); +- hMemRaw = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, +- metadata.rawlen + 1); +- lpszMemRaw = (LPSTR)GlobalLock(hMemRaw); +- if (lpszMemRaw != NULL) +- { +- STRCPY(lpszMemRaw, p_enc); +- memcpy(lpszMemRaw + STRLEN(p_enc) + 1, str, txtlen + 1); +- GlobalUnlock(hMemRaw); +- } +- else +- metadata.rawlen = 0; +- } +- #endif +- +- # if defined(FEAT_MBYTE) && defined(WIN3264) +- { +- WCHAR *out; +- int len = metadata.txtlen; +- +- /* Convert the text to UTF-16. This is put on the clipboard as +- * CF_UNICODETEXT. */ +- out = (WCHAR *)enc_to_utf16(str, &len); +- if (out != NULL) +- { +- WCHAR *lpszMemW; +- +- /* Convert the text for CF_TEXT to Active codepage. Otherwise it's +- * p_enc, which has no relation to the Active codepage. */ +- metadata.txtlen = WideCharToMultiByte(GetACP(), 0, out, len, +- NULL, 0, 0, 0); +- vim_free(str); +- str = (char_u *)alloc((unsigned)(metadata.txtlen == 0 ? 1 +- : metadata.txtlen)); +- if (str == NULL) +- { +- vim_free(out); +- return; /* out of memory */ +- } +- WideCharToMultiByte(GetACP(), 0, out, len, +- str, metadata.txtlen, 0, 0); +- +- /* Allocate memory for the UTF-16 text, add one NUL word to +- * terminate the string. */ +- hMemW = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, +- (len + 1) * sizeof(WCHAR)); +- lpszMemW = (WCHAR *)GlobalLock(hMemW); +- if (lpszMemW != NULL) +- { +- memcpy(lpszMemW, out, len * sizeof(WCHAR)); +- lpszMemW[len] = NUL; +- GlobalUnlock(hMemW); +- } +- vim_free(out); +- metadata.ucslen = len; +- } +- } +- # endif +- +- /* Allocate memory for the text, add one NUL byte to terminate the string. +- */ +- hMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, metadata.txtlen + 1); +- { +- LPSTR lpszMem = (LPSTR)GlobalLock(hMem); +- +- if (lpszMem) +- { +- vim_strncpy(lpszMem, str, metadata.txtlen); +- GlobalUnlock(hMem); +- } +- } +- +- /* Set up metadata: */ +- { +- VimClipType_t *lpszMemVim = NULL; +- +- hMemVim = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE, +- sizeof(VimClipType_t)); +- lpszMemVim = (VimClipType_t *)GlobalLock(hMemVim); +- memcpy(lpszMemVim, &metadata, sizeof(metadata)); +- GlobalUnlock(hMemVim); +- } +- +- /* +- * Open the clipboard, clear it and put our text on it. +- * Always set our Vim format. Put Unicode and plain text on it. +- * +- * Don't pass GetActiveWindow() as an argument to OpenClipboard() +- * because then we can't paste back into the same window for some +- * reason - webb. +- */ +- if (vim_open_clipboard()) +- { +- if (EmptyClipboard()) +- { +- SetClipboardData(cbd->format, hMemVim); +- hMemVim = 0; +- # if defined(FEAT_MBYTE) && defined(WIN3264) +- if (hMemW != NULL) +- { +- if (SetClipboardData(CF_UNICODETEXT, hMemW) != NULL) +- hMemW = NULL; +- } +- # endif +- /* Always use CF_TEXT. On Win98 Notepad won't obtain the +- * CF_UNICODETEXT text, only CF_TEXT. */ +- SetClipboardData(CF_TEXT, hMem); +- hMem = 0; +- } +- CloseClipboard(); +- } +- +- vim_free(str); +- /* Free any allocations we didn't give to the clipboard: */ +- if (hMemRaw) +- GlobalFree(hMemRaw); +- if (hMem) +- GlobalFree(hMem); +- # if defined(FEAT_MBYTE) && defined(WIN3264) +- if (hMemW) +- GlobalFree(hMemW); +- # endif +- if (hMemVim) +- GlobalFree(hMemVim); +- } +- +- #endif /* FEAT_CLIPBOARD */ +- +- #if defined(FEAT_MBYTE) || defined(PROTO) +- /* +- * Note: the following two functions are only guaranteed to work when using +- * valid MS-Windows codepages or when iconv() is available. +- */ +- +- /* +- * Convert "str" from 'encoding' to UTF-16. +- * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen(). +- * Output is returned as an allocated string. "*lenp" is set to the length of +- * the result. A trailing NUL is always added. +- * Returns NULL when out of memory. +- */ +- short_u * +- enc_to_utf16(char_u *str, int *lenp) +- { +- vimconv_T conv; +- WCHAR *ret; +- char_u *allocbuf = NULL; +- int len_loc; +- int length; +- +- if (lenp == NULL) +- { +- len_loc = (int)STRLEN(str) + 1; +- lenp = &len_loc; +- } +- +- if (enc_codepage > 0) +- { +- /* We can do any CP### -> UTF-16 in one pass, and we can do it +- * without iconv() (convert_* may need iconv). */ +- MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length); +- } +- else +- { +- /* Use "latin1" by default, we might be called before we have p_enc +- * set up. Convert to utf-8 first, works better with iconv(). Does +- * nothing if 'encoding' is "utf-8". */ +- conv.vc_type = CONV_NONE; +- if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1", +- (char_u *)"utf-8") == FAIL) +- return NULL; +- if (conv.vc_type != CONV_NONE) +- { +- str = allocbuf = string_convert(&conv, str, lenp); +- if (str == NULL) +- return NULL; +- } +- convert_setup(&conv, NULL, NULL); +- +- length = utf8_to_utf16(str, *lenp, NULL, NULL); +- ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR))); +- if (ret != NULL) +- { +- utf8_to_utf16(str, *lenp, (short_u *)ret, NULL); +- ret[length] = 0; +- } +- +- vim_free(allocbuf); +- } +- +- *lenp = length; +- return (short_u *)ret; +- } +- +- /* +- * Convert an UTF-16 string to 'encoding'. +- * Input in "str" with length (counted in wide characters) "*lenp". When +- * "lenp" is NULL, use wcslen(). +- * Output is returned as an allocated string. If "*lenp" is not NULL it is +- * set to the length of the result. +- * Returns NULL when out of memory. +- */ +- char_u * +- utf16_to_enc(short_u *str, int *lenp) +- { +- vimconv_T conv; +- char_u *utf8_str = NULL, *enc_str = NULL; +- int len_loc; +- +- if (lenp == NULL) +- { +- len_loc = (int)wcslen(str) + 1; +- lenp = &len_loc; +- } +- +- if (enc_codepage > 0) +- { +- /* We can do any UTF-16 -> CP### in one pass. */ +- int length; +- +- WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp, +- (LPSTR *)&enc_str, &length, 0, 0); +- *lenp = length; +- return enc_str; +- } +- +- /* Avoid allocating zero bytes, it generates an error message. */ +- utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL)); +- if (utf8_str != NULL) +- { +- *lenp = utf16_to_utf8(str, *lenp, utf8_str); +- +- /* We might be called before we have p_enc set up. */ +- conv.vc_type = CONV_NONE; +- convert_setup(&conv, (char_u *)"utf-8", +- p_enc? p_enc: (char_u *)"latin1"); +- if (conv.vc_type == CONV_NONE) +- { +- /* p_enc is utf-8, so we're done. */ +- enc_str = utf8_str; +- } +- else +- { +- enc_str = string_convert(&conv, utf8_str, lenp); +- vim_free(utf8_str); +- } +- +- convert_setup(&conv, NULL, NULL); +- } +- +- return enc_str; +- } +- #endif /* FEAT_MBYTE */ +- +- #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO) +- /* +- * Convert from the active codepage to 'encoding'. +- * Input is "str[str_size]". +- * The result is in allocated memory: "out[outlen]". With terminating NUL. +- */ +- void +- acp_to_enc(str, str_size, out, outlen) +- char_u *str; +- int str_size; +- char_u **out; +- int *outlen; +- +- { +- LPWSTR widestr; +- +- MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen); +- if (widestr != NULL) +- { +- ++*outlen; /* Include the 0 after the string */ +- *out = utf16_to_enc((short_u *)widestr, outlen); +- vim_free(widestr); +- } +- } +- #endif +- +- + /* + * Debugging helper: expose the MCH_WRITE_DUMP stuff to other modules + */ +--- 905,910 ---- +*** ../vim-7.3.835/src/os_unix.c 2013-01-30 14:55:35.000000000 +0100 +--- src/os_unix.c 2013-02-26 14:31:32.000000000 +0100 +*************** +*** 61,66 **** +--- 61,71 ---- + # include + # include /* for cygwin_conv_to_posix_path() and/or + * for cygwin_conv_path() */ ++ # ifdef FEAT_CYGWIN_WIN32_CLIPBOARD ++ # define WIN32_LEAN_AND_MEAN ++ # include ++ # include "winclip.pro" ++ # endif + # endif + #endif + +*************** +*** 1223,1228 **** +--- 1228,1236 ---- + #ifdef MACOS_CONVERT + mac_conv_init(); + #endif ++ #ifdef FEAT_CYGWIN_WIN32_CLIPBOARD ++ win_clip_init(); ++ #endif + } + + static void +*** ../vim-7.3.835/src/os_win32.c 2013-02-13 16:49:54.000000000 +0100 +--- src/os_win32.c 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 1851,1866 **** + set_option_value((char_u *)"grepprg", 0, (char_u *)"grep -n", 0); + + #ifdef FEAT_CLIPBOARD +! clip_init(TRUE); +! +! /* +! * Vim's own clipboard format recognises whether the text is char, line, +! * or rectangular block. Only useful for copying between two Vims. +! * "VimClipboard" was used for previous versions, using the first +! * character to specify MCHAR, MLINE or MBLOCK. +! */ +! clip_star.format = RegisterClipboardFormat("VimClipboard2"); +! clip_star.format_raw = RegisterClipboardFormat("VimRawBytes"); + #endif + } + +--- 1851,1857 ---- + set_option_value((char_u *)"grepprg", 0, (char_u *)"grep -n", 0); + + #ifdef FEAT_CLIPBOARD +! win_clip_init(); + #endif + } + +*************** +*** 2345,2360 **** + #endif + + #ifdef FEAT_CLIPBOARD +! clip_init(TRUE); +! +! /* +! * Vim's own clipboard format recognises whether the text is char, line, or +! * rectangular block. Only useful for copying between two Vims. +! * "VimClipboard" was used for previous versions, using the first +! * character to specify MCHAR, MLINE or MBLOCK. +! */ +! clip_star.format = RegisterClipboardFormat("VimClipboard2"); +! clip_star.format_raw = RegisterClipboardFormat("VimRawBytes"); + #endif + + /* This will be NULL on anything but NT 4.0 */ +--- 2336,2342 ---- + #endif + + #ifdef FEAT_CLIPBOARD +! win_clip_init(); + #endif + + /* This will be NULL on anything but NT 4.0 */ +*** ../vim-7.3.835/src/proto.h 2011-05-10 16:41:13.000000000 +0200 +--- src/proto.h 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 47,56 **** +--- 47,58 ---- + typedef int LPBOOL; + # include "os_win16.pro" + # include "os_mswin.pro" ++ # include "winclip.pro" + # endif + # ifdef WIN3264 + # include "os_win32.pro" + # include "os_mswin.pro" ++ # include "winclip.pro" + # if (defined(__GNUC__) && !defined(__MINGW32__)) \ + || (defined(__BORLANDC__) && __BORLANDC__ < 0x502) + extern int _stricoll __ARGS((char *a, char *b)); +*** ../vim-7.3.835/src/proto/os_mswin.pro 2012-11-20 16:56:49.000000000 +0100 +--- src/proto/os_mswin.pro 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 22,38 **** + int can_end_termcap_mode __ARGS((int give_msg)); + int mch_screenmode __ARGS((char_u *arg)); + int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); +- int utf8_to_utf16 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp)); +- int utf16_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr)); +- void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen)); +- void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); +- int clip_mch_own_selection __ARGS((VimClipboard *cbd)); +- void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); +- void clip_mch_request_selection __ARGS((VimClipboard *cbd)); +- void clip_mch_set_selection __ARGS((VimClipboard *cbd)); +- short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp)); +- char_u *utf16_to_enc __ARGS((short_u *str, int *lenp)); +- void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); + void DumpPutS __ARGS((const char *psz)); + int mch_get_winpos __ARGS((int *x, int *y)); + void mch_set_winpos __ARGS((int x, int y)); +--- 22,27 ---- +*** ../vim-7.3.835/src/proto/winclip.pro 2013-02-26 14:55:20.000000000 +0100 +--- src/proto/winclip.pro 2013-02-26 14:32:52.000000000 +0100 +*************** +*** 0 **** +--- 1,14 ---- ++ /* winclip.c */ ++ int utf8_to_utf16 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp)); ++ int utf16_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr)); ++ void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen)); ++ void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); ++ void win_clip_init __ARGS((void)); ++ int clip_mch_own_selection __ARGS((VimClipboard *cbd)); ++ void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); ++ void clip_mch_request_selection __ARGS((VimClipboard *cbd)); ++ void clip_mch_set_selection __ARGS((VimClipboard *cbd)); ++ short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp)); ++ char_u *utf16_to_enc __ARGS((short_u *str, int *lenp)); ++ void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); ++ /* vim: set ft=c : */ +*** ../vim-7.3.835/src/term.c 2013-02-13 15:53:15.000000000 +0100 +--- src/term.c 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 1853,1859 **** +--- 1853,1861 ---- + # ifdef FEAT_GUI + if (!gui.in_use) + # endif ++ # ifndef FEAT_CYGWIN_WIN32_CLIPBOARD + clip_init(FALSE); ++ # endif + # endif + if (use_xterm_like_mouse(term)) + { +*** ../vim-7.3.835/src/vim.h 2013-01-17 17:17:21.000000000 +0100 +--- src/vim.h 2013-02-26 14:18:19.000000000 +0100 +*************** +*** 1927,1933 **** + GdkAtom gtk_sel_atom; /* PRIMARY/CLIPBOARD selection ID */ + # endif + +! # ifdef MSWIN + int_u format; /* Vim's own special clipboard format */ + int_u format_raw; /* Vim's raw text clipboard format */ + # endif +--- 1927,1933 ---- + GdkAtom gtk_sel_atom; /* PRIMARY/CLIPBOARD selection ID */ + # endif + +! # if defined(MSWIN) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD) + int_u format; /* Vim's own special clipboard format */ + int_u format_raw; /* Vim's raw text clipboard format */ + # endif +*** ../vim-7.3.835/src/winclip.c 2013-02-26 14:55:20.000000000 +0100 +--- src/winclip.c 2013-02-26 14:32:42.000000000 +0100 +*************** +*** 0 **** +--- 1,798 ---- ++ /* vi:set ts=8 sts=4 sw=4: ++ * ++ * VIM - Vi IMproved by Bram Moolenaar ++ * ++ * Do ":help uganda" in Vim to read copying and usage conditions. ++ * Do ":help credits" in Vim to see a list of people who contributed. ++ * See README.txt for an overview of the Vim source code. ++ */ ++ ++ /* ++ * winclip.c ++ * ++ * Routines common to both Win16 and Win32 for clipboard handling. ++ * Also used by Cygwin, using os_unix.c. ++ */ ++ ++ #ifdef WIN16 ++ # ifdef __BORLANDC__ ++ # pragma warn -par ++ # pragma warn -ucp ++ # pragma warn -use ++ # pragma warn -aus ++ # endif ++ #endif ++ ++ #include "vimio.h" ++ #include "vim.h" ++ ++ /* ++ * Compile only the clipboard handling features when compiling for cygwin ++ * posix environment. ++ */ ++ #ifdef FEAT_CYGWIN_WIN32_CLIPBOARD ++ # define WIN3264 ++ # define WIN32_LEAN_AND_MEAN ++ # include ++ # include "winclip.pro" ++ #endif ++ ++ /* ++ * When generating prototypes for Win32 on Unix, these lines make the syntax ++ * errors disappear. They do not need to be correct. ++ */ ++ #ifdef PROTO ++ #define WINAPI ++ #define WINBASEAPI ++ typedef int DWORD; ++ typedef int LPBOOL; ++ typedef int LPCSTR; ++ typedef int LPCWSTR; ++ typedef int LPSTR; ++ typedef int LPWSTR; ++ typedef int UINT; ++ #endif ++ ++ #if defined(FEAT_MBYTE) || defined(PROTO) ++ /* ++ * Convert an UTF-8 string to UTF-16. ++ * "instr[inlen]" is the input. "inlen" is in bytes. ++ * When "outstr" is NULL only return the number of UTF-16 words produced. ++ * Otherwise "outstr" must be a buffer of sufficient size. ++ * Returns the number of UTF-16 words produced. ++ */ ++ int ++ utf8_to_utf16(char_u *instr, int inlen, short_u *outstr, int *unconvlenp) ++ { ++ int outlen = 0; ++ char_u *p = instr; ++ int todo = inlen; ++ int l; ++ int ch; ++ ++ while (todo > 0) ++ { ++ /* Only convert if we have a complete sequence. */ ++ l = utf_ptr2len_len(p, todo); ++ if (l > todo) ++ { ++ /* Return length of incomplete sequence. */ ++ if (unconvlenp != NULL) ++ *unconvlenp = todo; ++ break; ++ } ++ ++ ch = utf_ptr2char(p); ++ if (ch >= 0x10000) ++ { ++ /* non-BMP character, encoding with surrogate pairs */ ++ ++outlen; ++ if (outstr != NULL) ++ { ++ *outstr++ = (0xD800 - (0x10000 >> 10)) + (ch >> 10); ++ *outstr++ = 0xDC00 | (ch & 0x3FF); ++ } ++ } ++ else if (outstr != NULL) ++ *outstr++ = ch; ++ ++outlen; ++ p += l; ++ todo -= l; ++ } ++ ++ return outlen; ++ } ++ ++ /* ++ * Convert an UTF-16 string to UTF-8. ++ * The input is "instr[inlen]" with "inlen" in number of UTF-16 words. ++ * When "outstr" is NULL only return the required number of bytes. ++ * Otherwise "outstr" must be a buffer of sufficient size. ++ * Return the number of bytes produced. ++ */ ++ int ++ utf16_to_utf8(short_u *instr, int inlen, char_u *outstr) ++ { ++ int outlen = 0; ++ int todo = inlen; ++ short_u *p = instr; ++ int l; ++ int ch, ch2; ++ ++ while (todo > 0) ++ { ++ ch = *p; ++ if (ch >= 0xD800 && ch <= 0xDBFF && todo > 1) ++ { ++ /* surrogate pairs handling */ ++ ch2 = p[1]; ++ if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) ++ { ++ ch = ((ch - 0xD800) << 10) + (ch2 & 0x3FF) + 0x10000; ++ ++p; ++ --todo; ++ } ++ } ++ if (outstr != NULL) ++ { ++ l = utf_char2bytes(ch, outstr); ++ outstr += l; ++ } ++ else ++ l = utf_char2len(ch); ++ ++p; ++ outlen += l; ++ --todo; ++ } ++ ++ return outlen; ++ } ++ ++ /* ++ * Call MultiByteToWideChar() and allocate memory for the result. ++ * Returns the result in "*out[*outlen]" with an extra zero appended. ++ * "outlen" is in words. ++ */ ++ void ++ MultiByteToWideChar_alloc(UINT cp, DWORD flags, ++ LPCSTR in, int inlen, ++ LPWSTR *out, int *outlen) ++ { ++ *outlen = MultiByteToWideChar(cp, flags, in, inlen, 0, 0); ++ /* Add one one word to avoid a zero-length alloc(). */ ++ *out = (LPWSTR)alloc(sizeof(WCHAR) * (*outlen + 1)); ++ if (*out != NULL) ++ { ++ MultiByteToWideChar(cp, flags, in, inlen, *out, *outlen); ++ (*out)[*outlen] = 0; ++ } ++ } ++ ++ /* ++ * Call WideCharToMultiByte() and allocate memory for the result. ++ * Returns the result in "*out[*outlen]" with an extra NUL appended. ++ */ ++ void ++ WideCharToMultiByte_alloc(UINT cp, DWORD flags, ++ LPCWSTR in, int inlen, ++ LPSTR *out, int *outlen, ++ LPCSTR def, LPBOOL useddef) ++ { ++ *outlen = WideCharToMultiByte(cp, flags, in, inlen, NULL, 0, def, useddef); ++ /* Add one one byte to avoid a zero-length alloc(). */ ++ *out = alloc((unsigned)*outlen + 1); ++ if (*out != NULL) ++ { ++ WideCharToMultiByte(cp, flags, in, inlen, *out, *outlen, def, useddef); ++ (*out)[*outlen] = 0; ++ } ++ } ++ ++ #endif /* FEAT_MBYTE */ ++ ++ #ifdef FEAT_CLIPBOARD ++ /* ++ * Clipboard stuff, for cutting and pasting text to other windows. ++ */ ++ ++ void ++ win_clip_init(void) ++ { ++ clip_init(TRUE); ++ ++ /* ++ * Vim's own clipboard format recognises whether the text is char, line, ++ * or rectangular block. Only useful for copying between two Vims. ++ * "VimClipboard" was used for previous versions, using the first ++ * character to specify MCHAR, MLINE or MBLOCK. ++ */ ++ clip_star.format = RegisterClipboardFormat("VimClipboard2"); ++ clip_star.format_raw = RegisterClipboardFormat("VimRawBytes"); ++ } ++ ++ /* Type used for the clipboard type of Vim's data. */ ++ typedef struct ++ { ++ int type; /* MCHAR, MBLOCK or MLINE */ ++ int txtlen; /* length of CF_TEXT in bytes */ ++ int ucslen; /* length of CF_UNICODETEXT in words */ ++ int rawlen; /* length of clip_star.format_raw, including encoding, ++ excluding terminating NUL */ ++ } VimClipType_t; ++ ++ /* ++ * Make vim the owner of the current selection. Return OK upon success. ++ */ ++ /*ARGSUSED*/ ++ int ++ clip_mch_own_selection(VimClipboard *cbd) ++ { ++ /* ++ * Never actually own the clipboard. If another application sets the ++ * clipboard, we don't want to think that we still own it. ++ */ ++ return FAIL; ++ } ++ ++ /* ++ * Make vim NOT the owner of the current selection. ++ */ ++ /*ARGSUSED*/ ++ void ++ clip_mch_lose_selection(VimClipboard *cbd) ++ { ++ /* Nothing needs to be done here */ ++ } ++ ++ /* ++ * Copy "str[*size]" into allocated memory, changing CR-NL to NL. ++ * Return the allocated result and the size in "*size". ++ * Returns NULL when out of memory. ++ */ ++ static char_u * ++ crnl_to_nl(const char_u *str, int *size) ++ { ++ int pos = 0; ++ int str_len = *size; ++ char_u *ret; ++ char_u *retp; ++ ++ /* Avoid allocating zero bytes, it generates an error message. */ ++ ret = lalloc((long_u)(str_len == 0 ? 1 : str_len), TRUE); ++ if (ret != NULL) ++ { ++ retp = ret; ++ for (pos = 0; pos < str_len; ++pos) ++ { ++ if (str[pos] == '\r' && str[pos + 1] == '\n') ++ { ++ ++pos; ++ --(*size); ++ } ++ *retp++ = str[pos]; ++ } ++ } ++ ++ return ret; ++ } ++ ++ /* ++ * Wait for another process to Close the Clipboard. ++ * Returns TRUE for success. ++ */ ++ static int ++ vim_open_clipboard(void) ++ { ++ int delay = 10; ++ ++ while (!OpenClipboard(NULL)) ++ { ++ if (delay > 500) ++ return FALSE; /* waited too long, give up */ ++ Sleep(delay); ++ delay *= 2; /* wait for 10, 20, 40, 80, etc. msec */ ++ } ++ return TRUE; ++ } ++ ++ /* ++ * Get the current selection and put it in the clipboard register. ++ * ++ * NOTE: Must use GlobalLock/Unlock here to ensure Win32s compatibility. ++ * On NT/W95 the clipboard data is a fixed global memory object and ++ * so its handle = its pointer. ++ * On Win32s, however, co-operation with the Win16 system means that ++ * the clipboard data is moveable and its handle is not a pointer at all, ++ * so we can't just cast the return value of GetClipboardData to (char_u*). ++ * ++ */ ++ void ++ clip_mch_request_selection(VimClipboard *cbd) ++ { ++ VimClipType_t metadata = { -1, -1, -1, -1 }; ++ HGLOBAL hMem = NULL; ++ char_u *str = NULL; ++ #if defined(FEAT_MBYTE) && defined(WIN3264) ++ char_u *to_free = NULL; ++ #endif ++ #ifdef FEAT_MBYTE ++ HGLOBAL rawh = NULL; ++ #endif ++ int str_size = 0; ++ int maxlen; ++ size_t n; ++ ++ /* ++ * Don't pass GetActiveWindow() as an argument to OpenClipboard() because ++ * then we can't paste back into the same window for some reason - webb. ++ */ ++ if (!vim_open_clipboard()) ++ return; ++ ++ /* Check for vim's own clipboard format first. This only gets the type of ++ * the data, still need to use CF_UNICODETEXT or CF_TEXT for the text. */ ++ if (IsClipboardFormatAvailable(cbd->format)) ++ { ++ VimClipType_t *meta_p; ++ HGLOBAL meta_h; ++ ++ /* We have metadata on the clipboard; try to get it. */ ++ if ((meta_h = GetClipboardData(cbd->format)) != NULL ++ && (meta_p = (VimClipType_t *)GlobalLock(meta_h)) != NULL) ++ { ++ /* The size of "VimClipType_t" changed, "rawlen" was added later. ++ * Only copy what is available for backwards compatibility. */ ++ n = sizeof(VimClipType_t); ++ if (GlobalSize(meta_h) < n) ++ n = GlobalSize(meta_h); ++ memcpy(&metadata, meta_p, n); ++ GlobalUnlock(meta_h); ++ } ++ } ++ ++ #ifdef FEAT_MBYTE ++ /* Check for Vim's raw clipboard format first. This is used without ++ * conversion, but only if 'encoding' matches. */ ++ if (IsClipboardFormatAvailable(cbd->format_raw) ++ && metadata.rawlen > (int)STRLEN(p_enc)) ++ { ++ /* We have raw data on the clipboard; try to get it. */ ++ if ((rawh = GetClipboardData(cbd->format_raw)) != NULL) ++ { ++ char_u *rawp; ++ ++ rawp = (char_u *)GlobalLock(rawh); ++ if (rawp != NULL && STRCMP(p_enc, rawp) == 0) ++ { ++ n = STRLEN(p_enc) + 1; ++ str = rawp + n; ++ str_size = (int)(metadata.rawlen - n); ++ } ++ else ++ { ++ GlobalUnlock(rawh); ++ rawh = NULL; ++ } ++ } ++ } ++ if (str == NULL) ++ { ++ #endif ++ ++ #if defined(FEAT_MBYTE) && defined(WIN3264) ++ /* Try to get the clipboard in Unicode if it's not an empty string. */ ++ if (IsClipboardFormatAvailable(CF_UNICODETEXT) && metadata.ucslen != 0) ++ { ++ HGLOBAL hMemW; ++ ++ if ((hMemW = GetClipboardData(CF_UNICODETEXT)) != NULL) ++ { ++ WCHAR *hMemWstr = (WCHAR *)GlobalLock(hMemW); ++ ++ /* Use the length of our metadata if possible, but limit it to the ++ * GlobalSize() for safety. */ ++ maxlen = (int)(GlobalSize(hMemW) / sizeof(WCHAR)); ++ if (metadata.ucslen >= 0) ++ { ++ if (metadata.ucslen > maxlen) ++ str_size = maxlen; ++ else ++ str_size = metadata.ucslen; ++ } ++ else ++ { ++ for (str_size = 0; str_size < maxlen; ++str_size) ++ if (hMemWstr[str_size] == NUL) ++ break; ++ } ++ to_free = str = utf16_to_enc((short_u *)hMemWstr, &str_size); ++ GlobalUnlock(hMemW); ++ } ++ } ++ else ++ #endif ++ /* Get the clipboard in the Active codepage. */ ++ if (IsClipboardFormatAvailable(CF_TEXT)) ++ { ++ if ((hMem = GetClipboardData(CF_TEXT)) != NULL) ++ { ++ str = (char_u *)GlobalLock(hMem); ++ ++ /* The length is either what our metadata says or the strlen(). ++ * But limit it to the GlobalSize() for safety. */ ++ maxlen = (int)GlobalSize(hMem); ++ if (metadata.txtlen >= 0) ++ { ++ if (metadata.txtlen > maxlen) ++ str_size = maxlen; ++ else ++ str_size = metadata.txtlen; ++ } ++ else ++ { ++ for (str_size = 0; str_size < maxlen; ++str_size) ++ if (str[str_size] == NUL) ++ break; ++ } ++ ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ /* The text is in the active codepage. Convert to 'encoding', ++ * going through UTF-16. */ ++ acp_to_enc(str, str_size, &to_free, &maxlen); ++ if (to_free != NULL) ++ { ++ str_size = maxlen; ++ str = to_free; ++ } ++ # endif ++ } ++ } ++ #ifdef FEAT_MBYTE ++ } ++ #endif ++ ++ if (str != NULL && *str != NUL) ++ { ++ char_u *temp_clipboard; ++ ++ /* If the type is not known detect it. */ ++ if (metadata.type == -1) ++ metadata.type = MAUTO; ++ ++ /* Translate into . */ ++ temp_clipboard = crnl_to_nl(str, &str_size); ++ if (temp_clipboard != NULL) ++ { ++ clip_yank_selection(metadata.type, temp_clipboard, str_size, cbd); ++ vim_free(temp_clipboard); ++ } ++ } ++ ++ /* unlock the global object */ ++ if (hMem != NULL) ++ GlobalUnlock(hMem); ++ #ifdef FEAT_MBYTE ++ if (rawh != NULL) ++ GlobalUnlock(rawh); ++ #endif ++ CloseClipboard(); ++ #if defined(FEAT_MBYTE) && defined(WIN3264) ++ vim_free(to_free); ++ #endif ++ } ++ ++ /* ++ * Send the current selection to the clipboard. ++ */ ++ void ++ clip_mch_set_selection(VimClipboard *cbd) ++ { ++ char_u *str = NULL; ++ VimClipType_t metadata; ++ long_u txtlen; ++ HGLOBAL hMemRaw = NULL; ++ HGLOBAL hMem = NULL; ++ HGLOBAL hMemVim = NULL; ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ HGLOBAL hMemW = NULL; ++ # endif ++ ++ /* If the '*' register isn't already filled in, fill it in now */ ++ cbd->owned = TRUE; ++ clip_get_selection(cbd); ++ cbd->owned = FALSE; ++ ++ /* Get the text to be put on the clipboard, with CR-LF. */ ++ metadata.type = clip_convert_selection(&str, &txtlen, cbd); ++ if (metadata.type < 0) ++ return; ++ metadata.txtlen = (int)txtlen; ++ metadata.ucslen = 0; ++ metadata.rawlen = 0; ++ ++ #ifdef FEAT_MBYTE ++ /* Always set the raw bytes: 'encoding', NUL and the text. This is used ++ * when copy/paste from/to Vim with the same 'encoding', so that illegal ++ * bytes can also be copied and no conversion is needed. */ ++ { ++ LPSTR lpszMemRaw; ++ ++ metadata.rawlen = (int)(txtlen + STRLEN(p_enc) + 1); ++ hMemRaw = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, ++ metadata.rawlen + 1); ++ lpszMemRaw = (LPSTR)GlobalLock(hMemRaw); ++ if (lpszMemRaw != NULL) ++ { ++ STRCPY(lpszMemRaw, p_enc); ++ memcpy(lpszMemRaw + STRLEN(p_enc) + 1, str, txtlen + 1); ++ GlobalUnlock(hMemRaw); ++ } ++ else ++ metadata.rawlen = 0; ++ } ++ #endif ++ ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ { ++ WCHAR *out; ++ int len = metadata.txtlen; ++ ++ /* Convert the text to UTF-16. This is put on the clipboard as ++ * CF_UNICODETEXT. */ ++ out = (WCHAR *)enc_to_utf16(str, &len); ++ if (out != NULL) ++ { ++ WCHAR *lpszMemW; ++ ++ /* Convert the text for CF_TEXT to Active codepage. Otherwise it's ++ * p_enc, which has no relation to the Active codepage. */ ++ metadata.txtlen = WideCharToMultiByte(GetACP(), 0, out, len, ++ NULL, 0, 0, 0); ++ vim_free(str); ++ str = (char_u *)alloc((unsigned)(metadata.txtlen == 0 ? 1 ++ : metadata.txtlen)); ++ if (str == NULL) ++ { ++ vim_free(out); ++ return; /* out of memory */ ++ } ++ WideCharToMultiByte(GetACP(), 0, out, len, ++ str, metadata.txtlen, 0, 0); ++ ++ /* Allocate memory for the UTF-16 text, add one NUL word to ++ * terminate the string. */ ++ hMemW = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, ++ (len + 1) * sizeof(WCHAR)); ++ lpszMemW = (WCHAR *)GlobalLock(hMemW); ++ if (lpszMemW != NULL) ++ { ++ memcpy(lpszMemW, out, len * sizeof(WCHAR)); ++ lpszMemW[len] = NUL; ++ GlobalUnlock(hMemW); ++ } ++ vim_free(out); ++ metadata.ucslen = len; ++ } ++ } ++ # endif ++ ++ /* Allocate memory for the text, add one NUL byte to terminate the string. ++ */ ++ hMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, metadata.txtlen + 1); ++ { ++ LPSTR lpszMem = (LPSTR)GlobalLock(hMem); ++ ++ if (lpszMem) ++ { ++ vim_strncpy(lpszMem, str, metadata.txtlen); ++ GlobalUnlock(hMem); ++ } ++ } ++ ++ /* Set up metadata: */ ++ { ++ VimClipType_t *lpszMemVim = NULL; ++ ++ hMemVim = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE, ++ sizeof(VimClipType_t)); ++ lpszMemVim = (VimClipType_t *)GlobalLock(hMemVim); ++ memcpy(lpszMemVim, &metadata, sizeof(metadata)); ++ GlobalUnlock(hMemVim); ++ } ++ ++ /* ++ * Open the clipboard, clear it and put our text on it. ++ * Always set our Vim format. Put Unicode and plain text on it. ++ * ++ * Don't pass GetActiveWindow() as an argument to OpenClipboard() ++ * because then we can't paste back into the same window for some ++ * reason - webb. ++ */ ++ if (vim_open_clipboard()) ++ { ++ if (EmptyClipboard()) ++ { ++ SetClipboardData(cbd->format, hMemVim); ++ hMemVim = 0; ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ if (hMemW != NULL) ++ { ++ if (SetClipboardData(CF_UNICODETEXT, hMemW) != NULL) ++ hMemW = NULL; ++ } ++ # endif ++ /* Always use CF_TEXT. On Win98 Notepad won't obtain the ++ * CF_UNICODETEXT text, only CF_TEXT. */ ++ SetClipboardData(CF_TEXT, hMem); ++ hMem = 0; ++ } ++ CloseClipboard(); ++ } ++ ++ vim_free(str); ++ /* Free any allocations we didn't give to the clipboard: */ ++ if (hMemRaw) ++ GlobalFree(hMemRaw); ++ if (hMem) ++ GlobalFree(hMem); ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ if (hMemW) ++ GlobalFree(hMemW); ++ # endif ++ if (hMemVim) ++ GlobalFree(hMemVim); ++ } ++ ++ #endif /* FEAT_CLIPBOARD */ ++ ++ #if defined(FEAT_MBYTE) || defined(PROTO) ++ /* ++ * Note: the following two functions are only guaranteed to work when using ++ * valid MS-Windows codepages or when iconv() is available. ++ */ ++ ++ /* ++ * Convert "str" from 'encoding' to UTF-16. ++ * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen(). ++ * Output is returned as an allocated string. "*lenp" is set to the length of ++ * the result. A trailing NUL is always added. ++ * Returns NULL when out of memory. ++ */ ++ short_u * ++ enc_to_utf16(char_u *str, int *lenp) ++ { ++ vimconv_T conv; ++ WCHAR *ret; ++ char_u *allocbuf = NULL; ++ int len_loc; ++ int length; ++ ++ if (lenp == NULL) ++ { ++ len_loc = (int)STRLEN(str) + 1; ++ lenp = &len_loc; ++ } ++ ++ if (enc_codepage > 0) ++ { ++ /* We can do any CP### -> UTF-16 in one pass, and we can do it ++ * without iconv() (convert_* may need iconv). */ ++ MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length); ++ } ++ else ++ { ++ /* Use "latin1" by default, we might be called before we have p_enc ++ * set up. Convert to utf-8 first, works better with iconv(). Does ++ * nothing if 'encoding' is "utf-8". */ ++ conv.vc_type = CONV_NONE; ++ if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1", ++ (char_u *)"utf-8") == FAIL) ++ return NULL; ++ if (conv.vc_type != CONV_NONE) ++ { ++ str = allocbuf = string_convert(&conv, str, lenp); ++ if (str == NULL) ++ return NULL; ++ } ++ convert_setup(&conv, NULL, NULL); ++ ++ length = utf8_to_utf16(str, *lenp, NULL, NULL); ++ ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR))); ++ if (ret != NULL) ++ { ++ utf8_to_utf16(str, *lenp, (short_u *)ret, NULL); ++ ret[length] = 0; ++ } ++ ++ vim_free(allocbuf); ++ } ++ ++ *lenp = length; ++ return (short_u *)ret; ++ } ++ ++ /* ++ * Convert an UTF-16 string to 'encoding'. ++ * Input in "str" with length (counted in wide characters) "*lenp". When ++ * "lenp" is NULL, use wcslen(). ++ * Output is returned as an allocated string. If "*lenp" is not NULL it is ++ * set to the length of the result. ++ * Returns NULL when out of memory. ++ */ ++ char_u * ++ utf16_to_enc(short_u *str, int *lenp) ++ { ++ vimconv_T conv; ++ char_u *utf8_str = NULL, *enc_str = NULL; ++ int len_loc; ++ ++ if (lenp == NULL) ++ { ++ len_loc = (int)wcslen(str) + 1; ++ lenp = &len_loc; ++ } ++ ++ if (enc_codepage > 0) ++ { ++ /* We can do any UTF-16 -> CP### in one pass. */ ++ int length; ++ ++ WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp, ++ (LPSTR *)&enc_str, &length, 0, 0); ++ *lenp = length; ++ return enc_str; ++ } ++ ++ /* Avoid allocating zero bytes, it generates an error message. */ ++ utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL)); ++ if (utf8_str != NULL) ++ { ++ *lenp = utf16_to_utf8(str, *lenp, utf8_str); ++ ++ /* We might be called before we have p_enc set up. */ ++ conv.vc_type = CONV_NONE; ++ convert_setup(&conv, (char_u *)"utf-8", ++ p_enc? p_enc: (char_u *)"latin1"); ++ if (conv.vc_type == CONV_NONE) ++ { ++ /* p_enc is utf-8, so we're done. */ ++ enc_str = utf8_str; ++ } ++ else ++ { ++ enc_str = string_convert(&conv, utf8_str, lenp); ++ vim_free(utf8_str); ++ } ++ ++ convert_setup(&conv, NULL, NULL); ++ } ++ ++ return enc_str; ++ } ++ #endif /* FEAT_MBYTE */ ++ ++ #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO) ++ /* ++ * Convert from the active codepage to 'encoding'. ++ * Input is "str[str_size]". ++ * The result is in allocated memory: "out[outlen]". With terminating NUL. ++ */ ++ void ++ acp_to_enc(str, str_size, out, outlen) ++ char_u *str; ++ int str_size; ++ char_u **out; ++ int *outlen; ++ ++ { ++ LPWSTR widestr; ++ ++ MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen); ++ if (widestr != NULL) ++ { ++ ++*outlen; /* Include the 0 after the string */ ++ *out = utf16_to_enc((short_u *)widestr, outlen); ++ vim_free(widestr); ++ } ++ } ++ #endif +*** ../vim-7.3.835/src/version.c 2013-02-26 14:14:01.000000000 +0100 +--- src/version.c 2013-02-26 14:43:36.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 836, + /**/ + +-- +Engineers understand that their appearance only bothers other people and +therefore it is not worth optimizing. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 523ed1e25fcd94e2275e041d46cd3d8094d5d0fa Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:07 +0200 Subject: [PATCH 175/291] - patchlevel 837 --- 7.3.837 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.3.837 diff --git a/7.3.837 b/7.3.837 new file mode 100644 index 00000000..7e7ed417 --- /dev/null +++ b/7.3.837 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.837 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.837 (after 7.3.826) +Problem: Empty lines in :version output when 'columns' is 320. +Solution: Simplify the logic of making columns. (Nazri Ramliy, Roland + Eggner) +Files: src/version.c + + +*** ../vim-7.3.836/src/version.c 2013-02-26 14:56:24.000000000 +0100 +--- src/version.c 2013-02-26 15:10:56.000000000 +0100 +*************** +*** 2496,2509 **** + return; + } + +- ncol = (int) Columns / width; + /* The rightmost column doesn't need a separator. + * Sacrifice it to fit in one more column if possible. */ +! if (Columns % width == width - 1) +! ncol++; +! + nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0); + + for (i = 0; !got_int && i < nrow * ncol; ++i) + { + int idx = (i / ncol) + (i % ncol) * nrow; +--- 2498,2509 ---- + return; + } + + /* The rightmost column doesn't need a separator. + * Sacrifice it to fit in one more column if possible. */ +! ncol = (int) (Columns + 1) / width; + nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0); + ++ /* i counts columns then rows. idx counts rows then columns. */ + for (i = 0; !got_int && i < nrow * ncol; ++i) + { + int idx = (i / ncol) + (i % ncol) * nrow; +*************** +*** 2525,2531 **** + } + } + else +! msg_putchar('\n'); + } + } + +--- 2525,2534 ---- + } + } + else +! { +! if (msg_col > 0) +! msg_putchar('\n'); +! } + } + } + +*** ../vim-7.3.836/src/version.c 2013-02-26 14:56:24.000000000 +0100 +--- src/version.c 2013-02-26 15:10:56.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 837, + /**/ + +-- +Imagine a world without hypothetical situations. + + /// 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 /// From 9d213938c6bf47a984ccbb0670d0377fc7a062d9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:08 +0200 Subject: [PATCH 176/291] - patchlevel 838 --- 7.3.838 | 364 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 364 insertions(+) create mode 100644 7.3.838 diff --git a/7.3.838 b/7.3.838 new file mode 100644 index 00000000..02ad2ae2 --- /dev/null +++ b/7.3.838 @@ -0,0 +1,364 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.838 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.838 (after 7.3.830) +Problem: Insufficient testing for mksession. +Solution: Add tests. (mostly by Roland Eggner) +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile, + src/testdir/test92.in, src/testdir/test92.ok, + src/testdir/test93.in, src/testdir/test93.ok, + src/ex_docmd.c + + +*** ../vim-7.3.837/src/testdir/Make_amiga.mak 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/Make_amiga.mak 2013-02-26 15:30:10.000000000 +0100 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out + + .SUFFIXES: .in .out + +--- 32,38 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + .SUFFIXES: .in .out + +*************** +*** 140,142 **** +--- 140,144 ---- + test89.out: test89.in + test90.out: test90.in + test91.out: test91.in ++ test92.out: test92.in ++ test93.out: test93.in +*** ../vim-7.3.837/src/testdir/Make_dos.mak 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/Make_dos.mak 2013-02-26 15:30:10.000000000 +0100 +*************** +*** 31,37 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out + + SCRIPTS32 = test50.out test70.out + +--- 31,37 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.837/src/testdir/Make_ming.mak 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/Make_ming.mak 2013-02-26 15:30:10.000000000 +0100 +*************** +*** 51,57 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out + + SCRIPTS32 = test50.out test70.out + +--- 51,57 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.837/src/testdir/Make_os2.mak 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/Make_os2.mak 2013-02-26 15:30:10.000000000 +0100 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out + + .SUFFIXES: .in .out + +--- 32,38 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + .SUFFIXES: .in .out + +*** ../vim-7.3.837/src/testdir/Make_vms.mms 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/Make_vms.mms 2013-02-26 15:30:10.000000000 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013 Feb 20 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013-02-21 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 77,83 **** + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ + test82.out test83.out test84.out test88.out test89.out \ +! test90.out test91.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +--- 77,83 ---- + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ + test82.out test83.out test84.out test88.out test89.out \ +! test90.out test91.out test92.out test93.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +*** ../vim-7.3.837/src/testdir/Makefile 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/Makefile 2013-02-26 15:30:10.000000000 +0100 +*************** +*** 28,34 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out + + SCRIPTS_GUI = test16.out + +--- 28,34 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.3.837/src/testdir/test92.in 2013-02-26 17:20:44.000000000 +0100 +--- src/testdir/test92.in 2013-02-26 16:27:55.000000000 +0100 +*************** +*** 0 **** +--- 1,48 ---- ++ vim: set ft=vim fenc=utf-8: ++ ++ Tests if :mksession saves cursor columns correctly in presence of tab and ++ multibyte characters when fileencoding=utf-8. ++ ++ STARTTEST ++ :so mbyte.vim ++ :if !has('mksession') ++ : e! test.ok ++ : wq! test.out ++ :endif ++ :set sessionoptions=buffers splitbelow fileencoding=utf-8 ++ /^start: ++ :vsplit ++ j16|:split ++ j16|:split ++ j16|:split ++ j8|:split ++ j8|:split ++ j16|:split ++ j16|:split ++ j16|:wincmd l ++ /^start: ++ :set nowrap ++ j16|3zl:split ++ j016|3zl:split ++ j016|3zl:split ++ j08|3zl:split ++ j08|3zl:split ++ j016|3zl:split ++ j016|3zl:split ++ j016|3zl:split ++ :mksession! test.out ++ :new test.out ++ :v/\(^ *normal! 0\|^ *exe 'normal!\)/d ++ :w ++ :qa! ++ ENDTEST ++ ++ start: ++ no multibyte chAracter ++ one leaDing tab ++ four leadinG spaces ++ two consecutive tabs ++ two tabs in one line ++ one … multibyteCharacter ++ a “b†two multiByte characters ++ “câ€Â1€ three mulTibyte characters +*** ../vim-7.3.837/src/testdir/test92.ok 2013-02-26 17:20:44.000000000 +0100 +--- src/testdir/test92.ok 2013-02-26 17:13:48.000000000 +0100 +*************** +*** 0 **** +--- 1,26 ---- ++ normal! 016| ++ normal! 016| ++ normal! 016| ++ normal! 08| ++ normal! 08| ++ normal! 016| ++ normal! 016| ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 8 . '|' ++ normal! 08| ++ exe 'normal! ' . s:c . '|zs' . 8 . '|' ++ normal! 08| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| +*** ../vim-7.3.837/src/testdir/test93.in 2013-02-26 17:20:44.000000000 +0100 +--- src/testdir/test93.in 2013-02-26 17:13:01.000000000 +0100 +*************** +*** 0 **** +--- 1,48 ---- ++ vim: set ft=vim fenc=latin1: ++ ++ Tests if :mksession saves cursor columns correctly in presence of tab and ++ multibyte characters when fileencoding=latin1. ++ ++ STARTTEST ++ :so mbyte.vim ++ :if !has('mksession') ++ : e! test.ok ++ : wq! test.out ++ :endif ++ :set sessionoptions=buffers splitbelow fileencoding=latin1 ++ /^start: ++ :vsplit ++ j16|:split ++ j16|:split ++ j16|:split ++ j8|:split ++ j8|:split ++ j16|:split ++ j16|:split ++ j16|:wincmd l ++ /^start: ++ :set nowrap ++ j16|3zl:split ++ j016|3zl:split ++ j016|3zl:split ++ j08|3zl:split ++ j08|3zl:split ++ j016|3zl:split ++ j016|3zl:split ++ j016|3zl:split ++ :mksession! test.out ++ :new test.out ++ :v/\(^ *normal! 0\|^ *exe 'normal!\)/d ++ :w ++ :qa! ++ ENDTEST ++ ++ start: ++ no multibyte chAracter ++ one leaDing tab ++ four leadinG spaces ++ two consecutive tabs ++ two tabs in one line ++ one ä multibyteCharacter ++ aä Ä two multiByte characters ++ Aäöü three mulTibyte characters +*** ../vim-7.3.837/src/testdir/test93.ok 2013-02-26 17:20:44.000000000 +0100 +--- src/testdir/test93.ok 2013-02-26 17:14:02.000000000 +0100 +*************** +*** 0 **** +--- 1,26 ---- ++ normal! 016| ++ normal! 016| ++ normal! 016| ++ normal! 08| ++ normal! 08| ++ normal! 016| ++ normal! 016| ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 8 . '|' ++ normal! 08| ++ exe 'normal! ' . s:c . '|zs' . 8 . '|' ++ normal! 08| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| ++ exe 'normal! ' . s:c . '|zs' . 16 . '|' ++ normal! 016| +*** ../vim-7.3.837/src/ex_docmd.c 2013-02-20 19:26:24.000000000 +0100 +--- src/ex_docmd.c 2013-02-26 16:14:07.000000000 +0100 +*************** +*** 10839,10845 **** + (long)wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "else") == FAIL +! || fprintf(fd, " normal! %d|", wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "endif") == FAIL) + return FAIL; +--- 10839,10845 ---- + (long)wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "else") == FAIL +! || fprintf(fd, " normal! 0%d|", wp->w_virtcol + 1) < 0 + || put_eol(fd) == FAIL + || put_line(fd, "endif") == FAIL) + return FAIL; +*** ../vim-7.3.837/src/version.c 2013-02-26 15:27:20.000000000 +0100 +--- src/version.c 2013-02-26 15:31:06.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 838, + /**/ + +-- +It doesn't really matter what you are able to do if you don't do it. + (Bram Moolenaar) + + /// 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 /// From 7264c3a635eea3bf02372b4f5c35baf7cd47c0a8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:08 +0200 Subject: [PATCH 177/291] - patchlevel 839 --- 7.3.839 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.3.839 diff --git a/7.3.839 b/7.3.839 new file mode 100644 index 00000000..2c4eb78c --- /dev/null +++ b/7.3.839 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.839 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.839 +Problem: Some files missing in the list of distributed files. +Solution: Add lines for new files. +Files: Filelist + + +*** ../vim-7.3.838/Filelist 2012-10-03 21:48:38.000000000 +0200 +--- Filelist 2013-02-26 17:55:17.000000000 +0100 +*************** +*** 73,78 **** +--- 73,79 ---- + src/version.c \ + src/version.h \ + src/vim.h \ ++ src/winclip.c \ + src/window.c \ + src/xxd/xxd.c \ + src/main.aap \ +*************** +*** 83,88 **** +--- 84,90 ---- + src/testdir/test60.vim \ + src/testdir/test83-tags? \ + src/proto.h \ ++ src/proto/arabic.pro \ + src/proto/blowfish.pro \ + src/proto/buffer.pro \ + src/proto/charset.pro \ +*************** +*** 130,135 **** +--- 132,138 ---- + src/proto/ui.pro \ + src/proto/undo.pro \ + src/proto/version.pro \ ++ src/proto/winclip.pro \ + src/proto/window.pro \ + + +*************** +*** 444,449 **** +--- 447,453 ---- + src/os_beos.c \ + src/os_beos.h \ + src/os_beos.rsrc \ ++ src/proto/os_beos.pro \ + src/os_mint.h \ + src/os_vms_fix.com \ + src/toolbar.phi \ +*** ../vim-7.3.838/src/version.c 2013-02-26 17:21:15.000000000 +0100 +--- src/version.c 2013-02-26 17:56:40.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 839, + /**/ + +-- +Normal people believe that if it ain't broke, don't fix it. Engineers believe +that if it ain't broke, it doesn't have enough features yet. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 4fabf59821b95ebce50f77cfd4fcc7283d8f699f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:09 +0200 Subject: [PATCH 178/291] - patchlevel 840 --- 7.3.840 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.3.840 diff --git a/7.3.840 b/7.3.840 new file mode 100644 index 00000000..d68c9fbf --- /dev/null +++ b/7.3.840 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.840 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.840 +Problem: "\@rs_un.regsave.rs_u.pos.col -= ++ (*mb_head_off)(regline, regline ++ + rp->rs_un.regsave.rs_u.pos.col - 1) + 1; ++ else ++ #endif + --rp->rs_un.regsave.rs_u.pos.col; + } + else +*** ../vim-7.3.839/src/version.c 2013-02-26 17:59:37.000000000 +0100 +--- src/version.c 2013-02-26 18:39:28.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 840, + /**/ + +-- +I learned the customs and mannerisms of engineers by observing them, much the +way Jane Goodall learned about the great apes, but without the hassle of +grooming. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 3bed6c4f45fb137330a64c7111ae8d0a695bcda7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:09 +0200 Subject: [PATCH 179/291] - patchlevel 841 --- 7.3.841 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.3.841 diff --git a/7.3.841 b/7.3.841 new file mode 100644 index 00000000..abe5bf7b --- /dev/null +++ b/7.3.841 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.841 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.841 +Problem: When a "cond ? one : two" expression has a subscript it is not + parsed correctly. (Andy Wokula) +Solution: Handle a subscript also when the type is unknown. (Christian + Brabandt) +Files: src/eval.c + + +*** ../vim-7.3.840/src/eval.c 2013-02-20 21:11:14.000000000 +0100 +--- src/eval.c 2013-02-26 19:27:59.000000000 +0100 +*************** +*** 5164,5169 **** +--- 5164,5179 ---- + ret = get_func_tv(s, len, rettv, arg, + curwin->w_cursor.lnum, curwin->w_cursor.lnum, + &len, evaluate, NULL); ++ ++ /* If evaluate is FALSE rettv->v_type was not set in ++ * get_func_tv, but it's needed in handle_subscript() to parse ++ * what follows. So set it here. */ ++ if (rettv->v_type == VAR_UNKNOWN && !evaluate && **arg == '(') ++ { ++ rettv->vval.v_string = vim_strsave(""); ++ rettv->v_type = VAR_FUNC; ++ } ++ + /* Stop the expression evaluation when immediately + * aborting on error, or when an interrupt occurred or + * an exception was thrown but not caught. */ +*** ../vim-7.3.840/src/version.c 2013-02-26 18:45:49.000000000 +0100 +--- src/version.c 2013-02-26 19:35:36.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 841, + /**/ + +-- +If someone questions your market projections, simply point out that your +target market is "People who are nuts" and "People who will buy any damn +thing". Nobody is going to tell you there aren't enough of those people +to go around. + (Scott Adams - The Dilbert principle) + + /// 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 /// From f07892961f75c1ad34ba68e7698f71dec0c6a487 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:10 +0200 Subject: [PATCH 180/291] - patchlevel 842 --- 7.3.842 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.3.842 diff --git a/7.3.842 b/7.3.842 new file mode 100644 index 00000000..895c783b --- /dev/null +++ b/7.3.842 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.842 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.842 +Problem: Compiler warning for signed/unsigned pointer. +Solution: Add type cast. (Christian Brabandt) +Files: src/eval.c + + +*** ../vim-7.3.841/src/eval.c 2013-02-26 19:36:03.000000000 +0100 +--- src/eval.c 2013-02-26 21:41:24.000000000 +0100 +*************** +*** 5170,5176 **** + * what follows. So set it here. */ + if (rettv->v_type == VAR_UNKNOWN && !evaluate && **arg == '(') + { +! rettv->vval.v_string = vim_strsave(""); + rettv->v_type = VAR_FUNC; + } + +--- 5170,5176 ---- + * what follows. So set it here. */ + if (rettv->v_type == VAR_UNKNOWN && !evaluate && **arg == '(') + { +! rettv->vval.v_string = vim_strsave((char_u *)""); + rettv->v_type = VAR_FUNC; + } + +*** ../vim-7.3.841/src/version.c 2013-02-26 19:36:03.000000000 +0100 +--- src/version.c 2013-02-26 21:43:21.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 842, + /**/ + +-- +The process for understanding customers primarily involves sitting around with +other marketing people and talking about what you would to if you were dumb +enough to be a customer. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 50186aef3c08a43bd62a7e992279907724b3f0de Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:11 +0200 Subject: [PATCH 181/291] - patchlevel 843 --- 7.3.843 | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 7.3.843 diff --git a/7.3.843 b/7.3.843 new file mode 100644 index 00000000..ebb369d5 --- /dev/null +++ b/7.3.843 @@ -0,0 +1,111 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.843 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.843 (after 7.3.841) +Problem: Missing test file changes. +Solution: Change the tests. +Files: src/testdir/test49.vim, src/testdir/test49.ok + + +*** ../vim-7.3.842/src/testdir/test49.vim 2012-12-05 19:00:03.000000000 +0100 +--- src/testdir/test49.vim 2013-02-26 19:22:36.000000000 +0100 +*************** +*** 9624,9630 **** + Xcheck 0 + + "------------------------------------------------------------------------------- +! " Test 87: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1 + " + " It is possible to configure Vim for throwing exceptions on error + " or interrupt, controlled by variables $VIMNOERRTHROW and +--- 9624,9661 ---- + Xcheck 0 + + "------------------------------------------------------------------------------- +! " Test 87 using (expr) ? funcref : funcref {{{1 +! " +! " Vim needs to correctly parse the funcref and even when it does +! " not execute the funcref, it needs to consume the trailing () +! "------------------------------------------------------------------------------- +! +! XpathINIT +! +! func Add2(x1, x2) +! return a:x1 + a:x2 +! endfu +! +! func GetStr() +! return "abcdefghijklmnopqrstuvwxyp" +! endfu +! +! echo function('Add2')(2,3) +! +! Xout 1 ? function('Add2')(1,2) : function('Add2')(2,3) +! Xout 0 ? function('Add2')(1,2) : function('Add2')(2,3) +! " Make sure, GetStr() still works. +! Xout GetStr()[0:10] +! +! +! delfunction GetStr +! delfunction Add2 +! Xout "Successfully executed funcref Add2" +! +! Xcheck 0 +! +! "------------------------------------------------------------------------------- +! " Test 88: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1 + " + " It is possible to configure Vim for throwing exceptions on error + " or interrupt, controlled by variables $VIMNOERRTHROW and +*** ../vim-7.3.842/src/testdir/test49.ok 2012-11-14 22:38:04.000000000 +0100 +--- src/testdir/test49.ok 2013-02-26 19:22:36.000000000 +0100 +*************** +*** 87,94 **** + *** Test 85: OK (198689) + --- Test 86: No Crash for vimgrep on BufUnload + *** Test 86: OK (0) +! --- Test 87: All tests were run with throwing exceptions on error. + The $VIMNOERRTHROW control is not configured. +! --- Test 87: All tests were run with throwing exceptions on interrupt. + The $VIMNOINTTHROW control is not configured. +! *** Test 87: OK (50443995) +--- 87,99 ---- + *** Test 85: OK (198689) + --- Test 86: No Crash for vimgrep on BufUnload + *** Test 86: OK (0) +! --- Test 87: 3 +! --- Test 87: 5 +! --- Test 87: abcdefghijk +! --- Test 87: Successfully executed funcref Add2 +! *** Test 87: OK (0) +! --- Test 88: All tests were run with throwing exceptions on error. + The $VIMNOERRTHROW control is not configured. +! --- Test 88: All tests were run with throwing exceptions on interrupt. + The $VIMNOINTTHROW control is not configured. +! *** Test 88: OK (50443995) +*** ../vim-7.3.842/src/version.c 2013-02-26 21:43:28.000000000 +0100 +--- src/version.c 2013-02-26 22:53:13.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 843, + /**/ + +-- +Never enter the boss's office unless it's absolutely necessary. Every boss +saves one corner of the desk for useless assignments that are doled out like +Halloween candy to each visitor. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 348c77da12bba828496a28205606f93967547bb5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:11 +0200 Subject: [PATCH 182/291] - patchlevel 844 --- 7.3.844 | 197 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 7.3.844 diff --git a/7.3.844 b/7.3.844 new file mode 100644 index 00000000..015a0b56 --- /dev/null +++ b/7.3.844 @@ -0,0 +1,197 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.844 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.844 +Problem: Enum is not indented correctly with "public" etc. +Solution: Skip "public", "private" and "protected". (Hong Xu) +Files: src/misc1.c + + +*** ../vim-7.3.843/src/misc1.c 2013-02-13 16:10:13.000000000 +0100 +--- src/misc1.c 2013-03-07 12:59:45.000000000 +0100 +*************** +*** 5275,5280 **** +--- 5275,5281 ---- + static int cin_is_cpp_baseclass __ARGS((colnr_T *col)); + static int get_baseclass_amount __ARGS((int col, int ind_maxparen, int ind_maxcomment, int ind_cpp_baseclass)); + static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); ++ static int cin_starts_with __ARGS((char_u *s, char *word)); + static int cin_skip2pos __ARGS((pos_T *trypos)); + static pos_T *find_start_brace __ARGS((int)); + static pos_T *find_match_paren __ARGS((int, int)); +*************** +*** 5446,5469 **** + } + + /* +! * Recognize structure initialization and enumerations. +! * Q&D-Implementation: +! * check for "=" at end or "[typedef] enum" at beginning of line. + */ + static int + cin_isinit(void) + { + char_u *s; + + s = cin_skipcomment(ml_get_curline()); + +! if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7])) + s = cin_skipcomment(s + 7); + +! if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6])) +! s = cin_skipcomment(s + 6); + +! if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4])) + return TRUE; + + if (cin_ends_in(s, (char_u *)"=", (char_u *)"{")) +--- 5447,5486 ---- + } + + /* +! * Recognize structure initialization and enumerations: +! * "[typedef] [static|public|protected|private] enum" +! * "[typedef] [static|public|protected|private] = {" + */ + static int + cin_isinit(void) + { + char_u *s; ++ static char *skip[] = {"static", "public", "protected", "private"}; + + s = cin_skipcomment(ml_get_curline()); + +! if (cin_starts_with(s, "typedef")) + s = cin_skipcomment(s + 7); + +! for (;;) +! { +! int i, l; +! +! for (i = 0; i < (int)(sizeof(skip) / sizeof(char *)); ++i) +! { +! l = strlen(skip[i]); +! if (cin_starts_with(s, skip[i])) +! { +! s = cin_skipcomment(s + l); +! l = 0; +! break; +! } +! } +! if (l != 0) +! break; +! } + +! if (cin_starts_with(s, "enum")) + return TRUE; + + if (cin_ends_in(s, (char_u *)"=", (char_u *)"{")) +*************** +*** 5481,5487 **** + int strict; /* Allow relaxed check of case statement for JS */ + { + s = cin_skipcomment(s); +! if (STRNCMP(s, "case", 4) == 0 && !vim_isIDc(s[4])) + { + for (s += 4; *s; ++s) + { +--- 5498,5504 ---- + int strict; /* Allow relaxed check of case statement for JS */ + { + s = cin_skipcomment(s); +! if (cin_starts_with(s, "case")) + { + for (s += 4; *s; ++s) + { +*************** +*** 6049,6055 **** + p = cin_skipcomment(p); + if (*p == '}') /* accept "} while (cond);" */ + p = cin_skipcomment(p + 1); +! if (STRNCMP(p, "while", 5) == 0 && !vim_isIDc(p[5])) + { + cursor_save = curwin->w_cursor; + curwin->w_cursor.lnum = lnum; +--- 6066,6072 ---- + p = cin_skipcomment(p); + if (*p == '}') /* accept "} while (cond);" */ + p = cin_skipcomment(p + 1); +! if (cin_starts_with(p, "while")) + { + cursor_save = curwin->w_cursor; + curwin->w_cursor.lnum = lnum; +*************** +*** 6156,6162 **** + s = cin_skipcomment(ml_get(trypos->lnum)); + if (*s == '}') /* accept "} while (cond);" */ + s = cin_skipcomment(s + 1); +! if (STRNCMP(s, "while", 5) == 0 && !vim_isIDc(s[5])) + { + curwin->w_cursor.lnum = trypos->lnum; + return TRUE; +--- 6173,6179 ---- + s = cin_skipcomment(ml_get(trypos->lnum)); + if (*s == '}') /* accept "} while (cond);" */ + s = cin_skipcomment(s + 1); +! if (cin_starts_with(s, "while")) + { + curwin->w_cursor.lnum = trypos->lnum; + return TRUE; +*************** +*** 6406,6411 **** +--- 6423,6441 ---- + } + + /* ++ * Return TRUE when "s" starts with "word" and then a non-ID character. ++ */ ++ static int ++ cin_starts_with(s, word) ++ char_u *s; ++ char *word; ++ { ++ int l = STRLEN(word); ++ ++ return (STRNCMP(s, word, l) == 0 && !vim_isIDc(s[l])); ++ } ++ ++ /* + * Skip strings, chars and comments until at or past "trypos". + * Return the column found. + */ +*** ../vim-7.3.843/src/version.c 2013-02-26 22:54:06.000000000 +0100 +--- src/version.c 2013-03-07 13:12:20.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 844, + /**/ + +-- +Now it is such a bizarrely improbable coincidence that anything as +mind-bogglingly useful as the Babel fish could have evolved purely by chance +that some thinkers have chosen to see it as a final and clinching proof of the +NON-existence of God. +The argument goes something like this: 'I refuse to prove that I exist,' says +God, 'for proof denies faith, and without faith I am nothing.' +'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not +have evolved by chance. It proves you exist, and so therefore, by your own +arguments, you don't. QED.' +'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a +puff of logic. +'Oh, that was easy,' says Man, and for an encore goes on to prove that black +is white and gets himself killed on the next pedestrian crossing. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 312157ace0267077c8518bca2b155e3d50e4c0ee Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:12 +0200 Subject: [PATCH 183/291] - patchlevel 845 --- 7.3.845 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.3.845 diff --git a/7.3.845 b/7.3.845 new file mode 100644 index 00000000..d9acfefb --- /dev/null +++ b/7.3.845 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.845 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.845 (after 7.3.844) +Problem: Enum indenting is not tested. +Solution: Add tests. (Hong Xu) +Files: src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.3.844/src/testdir/test3.in 2012-06-13 13:40:45.000000000 +0200 +--- src/testdir/test3.in 2013-03-07 12:39:35.000000000 +0100 +*************** +*** 318,323 **** +--- 318,337 ---- + maybe + } soppie; + ++ public static enum ++ { ++ yes = 0, ++ no, ++ maybe ++ } soppie; ++ ++ static private enum ++ { ++ yes = 0, ++ no, ++ maybe ++ } soppie; ++ + { + int a, + b; +*** ../vim-7.3.844/src/testdir/test3.ok 2012-06-13 13:40:45.000000000 +0200 +--- src/testdir/test3.ok 2013-03-07 12:40:03.000000000 +0100 +*************** +*** 306,311 **** +--- 306,325 ---- + maybe + } soppie; + ++ public static enum ++ { ++ yes = 0, ++ no, ++ maybe ++ } soppie; ++ ++ static private enum ++ { ++ yes = 0, ++ no, ++ maybe ++ } soppie; ++ + { + int a, + b; +*** ../vim-7.3.844/src/version.c 2013-03-07 13:13:45.000000000 +0100 +--- src/version.c 2013-03-07 13:18:49.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 845, + /**/ + +-- +"So this is it," said Arthur, "we are going to die." +"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across +the chamber at something behind Arthur's line of vision. "What's this +switch?" he cried. +"What? Where?" cried Arthur, twisting around. +"No, I was only fooling," said Ford, "we are going to die after all." + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 26ce66b13982816905fe886eccb8f7471ae1efd1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:12 +0200 Subject: [PATCH 184/291] - patchlevel 846 --- 7.3.846 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.3.846 diff --git a/7.3.846 b/7.3.846 new file mode 100644 index 00000000..da52ef59 --- /dev/null +++ b/7.3.846 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.846 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.846 +Problem: Missing proto file, listing a non-existing proto file. +Solution: Remove the file. Add os_beos.pro only in Mercurial. +Files: Filelist + + +*** ../vim-7.3.845/Filelist 2013-02-26 17:59:37.000000000 +0100 +--- Filelist 2013-03-07 13:27:30.000000000 +0100 +*************** +*** 84,90 **** + src/testdir/test60.vim \ + src/testdir/test83-tags? \ + src/proto.h \ +- src/proto/arabic.pro \ + src/proto/blowfish.pro \ + src/proto/buffer.pro \ + src/proto/charset.pro \ +--- 84,89 ---- +*** ../vim-7.3.845/src/version.c 2013-03-07 13:21:28.000000000 +0100 +--- src/version.c 2013-03-07 13:23:02.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 846, + /**/ + +-- +I am also told that there is a logical proof out there somewhere +that demonstrates that there is no task which duct tape cannot handle. + -- Paul Brannan + + /// 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 /// From d2126a04240ee2c1b7117b891ae5bb4b44f23b4d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:13 +0200 Subject: [PATCH 185/291] - patchlevel 847 --- 7.3.847 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.3.847 diff --git a/7.3.847 b/7.3.847 new file mode 100644 index 00000000..a9bb4267 --- /dev/null +++ b/7.3.847 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.847 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.847 +Problem: Test 55 fails when messages are translated. +Solution: Set language to C. (Ken Takata) +Files: src/testdir/test55.in + + +*** ../vim-7.3.846/src/testdir/test55.in 2012-08-29 16:55:09.000000000 +0200 +--- src/testdir/test55.in 2013-03-07 14:33:12.000000000 +0100 +*************** +*** 3,8 **** +--- 3,9 ---- + STARTTEST + :so small.vim + :fun Test(...) ++ :lang C + :" Creating List directly with different types + :let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},] + :$put =string(l) +*** ../vim-7.3.846/src/version.c 2013-03-07 13:32:03.000000000 +0100 +--- src/version.c 2013-03-07 14:49:57.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 847, + /**/ + +-- +"Space is big. Really big. You just won't believe how vastly hugely mind- +bogglingly big it is. I mean, you may think it's a long way down the +road to the chemist, but that's just peanuts to space." + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 4c79b2ba49fec4c34fc2eb328e106852de48445d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:14 +0200 Subject: [PATCH 186/291] - patchlevel 848 --- 7.3.848 | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 7.3.848 diff --git a/7.3.848 b/7.3.848 new file mode 100644 index 00000000..aaf8401c --- /dev/null +++ b/7.3.848 @@ -0,0 +1,153 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.848 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.848 +Problem: Can't build with Ruby 2.0 when using MinGW x64 or MSVC10. +Solution: Fix it. Also detect RUBY_PLATFORM and RUBY_INSTALL_NAME for x64. + (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_ruby.c + + +*** ../vim-7.3.847/src/Make_cyg.mak 2013-02-26 14:56:24.000000000 +0100 +--- src/Make_cyg.mak 2013-03-07 14:56:29.000000000 +0100 +*************** +*** 229,246 **** +--- 229,254 ---- + ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) + RUBY_PLATFORM = i386-mingw32 + else ++ ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) ++ RUBY_PLATFORM = x64-mingw32 ++ else + RUBY_PLATFORM = i386-mswin32 + endif + endif + endif ++ endif + + ifndef RUBY_INSTALL_NAME + ifeq ($(RUBY_VER), 16) + RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) + else ++ ifeq ($(ARCH),x86-64) ++ RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) ++ else + RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) + endif + endif ++ endif + + ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) + RUBY_19_OR_LATER = 1 +*** ../vim-7.3.847/src/Make_ming.mak 2013-02-26 14:56:24.000000000 +0100 +--- src/Make_ming.mak 2013-03-07 14:56:29.000000000 +0100 +*************** +*** 288,305 **** +--- 288,313 ---- + ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) + RUBY_PLATFORM = i386-mingw32 + else ++ ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) ++ RUBY_PLATFORM = x64-mingw32 ++ else + RUBY_PLATFORM = i386-mswin32 + endif + endif + endif ++ endif + + ifndef RUBY_INSTALL_NAME + ifeq ($(RUBY_VER), 16) + RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) + else ++ ifeq ($(ARCH),x86-64) ++ RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) ++ else + RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) + endif + endif ++ endif + + ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) + RUBY_19_OR_LATER = 1 +*** ../vim-7.3.847/src/if_ruby.c 2013-02-26 13:41:31.000000000 +0100 +--- src/if_ruby.c 2013-03-07 14:56:29.000000000 +0100 +*************** +*** 39,44 **** +--- 39,47 ---- + */ + # define rb_cFalseClass (*dll_rb_cFalseClass) + # define rb_cFixnum (*dll_rb_cFixnum) ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 ++ # define rb_cFloat (*dll_rb_cFloat) ++ # endif + # define rb_cNilClass (*dll_rb_cNilClass) + # define rb_cSymbol (*dll_rb_cSymbol) + # define rb_cTrueClass (*dll_rb_cTrueClass) +*************** +*** 249,254 **** +--- 252,260 ---- + static VALUE (*dll_rb_assoc_new) (VALUE, VALUE); + VALUE *dll_rb_cFalseClass; + VALUE *dll_rb_cFixnum; ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 ++ VALUE *dll_rb_cFloat; ++ #endif + VALUE *dll_rb_cNilClass; + static VALUE *dll_rb_cObject; + VALUE *dll_rb_cSymbol; +*************** +*** 352,358 **** + { + return dll_rb_float_new(d); + } +! unsigned long rb_num2ulong(VALUE x) + { + return (long)RSHIFT((SIGNED_VALUE)(x),1); + } +--- 358,364 ---- + { + return dll_rb_float_new(d); + } +! VALUE rb_num2ulong(VALUE x) + { + return (long)RSHIFT((SIGNED_VALUE)(x),1); + } +*************** +*** 373,378 **** +--- 379,387 ---- + {"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new}, + {"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass}, + {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum}, ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 ++ {"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat}, ++ #endif + {"rb_cNilClass", (RUBY_PROC*)&dll_rb_cNilClass}, + {"rb_cObject", (RUBY_PROC*)&dll_rb_cObject}, + {"rb_cSymbol", (RUBY_PROC*)&dll_rb_cSymbol}, +*** ../vim-7.3.847/src/version.c 2013-03-07 14:50:30.000000000 +0100 +--- src/version.c 2013-03-07 14:57:03.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 848, + /**/ + +-- +`The Guide says there is an art to flying,' said Ford, `or at least a +knack. The knack lies in learning how to throw yourself at the ground +and miss.' He smiled weakly. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From e24c92a7ffec3f5f145f1b3ed2df2172ece1cc0e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:14 +0200 Subject: [PATCH 187/291] - patchlevel 849 --- 7.3.849 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.3.849 diff --git a/7.3.849 b/7.3.849 new file mode 100644 index 00000000..b97cc74c --- /dev/null +++ b/7.3.849 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.849 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.849 +Problem: ":g//" gives "Pattern not found error" with E486. Should not use + the error number, it's not a regular error message. +Solution: Use a normal message. (David Bürgin) +Files: src/ex_cmds.c + + +*** ../vim-7.3.848/src/ex_cmds.c 2013-02-06 18:23:58.000000000 +0100 +--- src/ex_cmds.c 2013-03-07 16:05:49.000000000 +0100 +*************** +*** 5411,5417 **** + if (type == 'v') + smsg((char_u *)_("Pattern found in every line: %s"), pat); + else +! smsg((char_u *)_(e_patnotf2), pat); + } + else + global_exe(cmd); +--- 5411,5417 ---- + if (type == 'v') + smsg((char_u *)_("Pattern found in every line: %s"), pat); + else +! smsg((char_u *)_("Pattern not found: %s"), pat); + } + else + global_exe(cmd); +*** ../vim-7.3.848/src/version.c 2013-03-07 15:16:16.000000000 +0100 +--- src/version.c 2013-03-07 16:03:57.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 849, + /**/ + +-- +Apparently, 1 in 5 people in the world are Chinese. And there are 5 +people in my family, so it must be one of them. It's either my mum +or my dad. Or my older brother Colin. Or my younger brother +Ho-Cha-Chu. But I think it's Colin. + + /// 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 /// From 1cd6cc7334cf5c1df4e9136a186d3c048fc1e440 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:15 +0200 Subject: [PATCH 188/291] - patchlevel 850 --- 7.3.850 | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 7.3.850 diff --git a/7.3.850 b/7.3.850 new file mode 100644 index 00000000..325b5ee7 --- /dev/null +++ b/7.3.850 @@ -0,0 +1,82 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.850 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.850 +Problem: ":vimgrep //" matches everywhere. +Solution: Make it use the previous search pattern. (David Bürgin) +Files: runtime/doc/quickfix.txt, src/quickfix.c + + +*** ../vim-7.3.849/runtime/doc/quickfix.txt 2010-08-15 21:57:19.000000000 +0200 +--- runtime/doc/quickfix.txt 2013-03-07 16:17:39.000000000 +0100 +*************** +*** 563,568 **** +--- 574,581 ---- + 'ignorecase' applies. To overrule it put |/\c| in the + pattern to ignore case or |/\C| to match case. + 'smartcase' is not used. ++ If {pattern} is empty (e.g. // is specified), the last ++ used search pattern is used. |last-pattern| + + When a number is put before the command this is used + as the maximum number of matches to find. Use +*** ../vim-7.3.849/src/quickfix.c 2012-12-12 15:55:16.000000000 +0100 +--- src/quickfix.c 2013-03-07 16:21:17.000000000 +0100 +*************** +*** 3179,3185 **** + EMSG(_(e_invalpat)); + goto theend; + } +! regmatch.regprog = vim_regcomp(s, RE_MAGIC); + if (regmatch.regprog == NULL) + goto theend; + regmatch.rmm_ic = p_ic; +--- 3179,3198 ---- + EMSG(_(e_invalpat)); + goto theend; + } +! +! if (s != NULL && *s == NUL) +! { +! /* Pattern is empty, use last search pattern. */ +! if (last_search_pat() == NULL) +! { +! EMSG(_(e_noprevre)); +! goto theend; +! } +! regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC); +! } +! else +! regmatch.regprog = vim_regcomp(s, RE_MAGIC); +! + if (regmatch.regprog == NULL) + goto theend; + regmatch.rmm_ic = p_ic; +*** ../vim-7.3.849/src/version.c 2013-03-07 16:08:31.000000000 +0100 +--- src/version.c 2013-03-07 16:16:26.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 850, + /**/ + +-- +The technology involved in making anything invisible is so infinitely +complex that nine hundred and ninety-nine billion, nine hundred and +ninety-nine million, nine hundred and ninety-nine thousand, nine hundred +and ninety-nine times out of a trillion it is much simpler and more +effective just to take the thing away and do without it. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 12f5c18472257647a37397f4e5133c33d7f75f5d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:15 +0200 Subject: [PATCH 189/291] - patchlevel 851 --- 7.3.851 | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 7.3.851 diff --git a/7.3.851 b/7.3.851 new file mode 100644 index 00000000..87ff27d1 --- /dev/null +++ b/7.3.851 @@ -0,0 +1,67 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.851 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.851 +Problem: Using an empty pattern with :sort silently continues when there is + no previous search pattern. +Solution: Give an error message. +Files: src/ex_cmds.c + + +*** ../vim-7.3.850/src/ex_cmds.c 2013-03-07 16:08:31.000000000 +0100 +--- src/ex_cmds.c 2013-03-07 16:25:28.000000000 +0100 +*************** +*** 415,422 **** + } + *s = NUL; + /* Use last search pattern if sort pattern is empty. */ +! if (s == p + 1 && last_search_pat() != NULL) + regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC); + else + regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC); + if (regmatch.regprog == NULL) +--- 415,429 ---- + } + *s = NUL; + /* Use last search pattern if sort pattern is empty. */ +! if (s == p + 1) +! { +! if (last_search_pat() == NULL) +! { +! EMSG(_(e_noprevre)); +! goto sortend; +! } + regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC); ++ } + else + regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC); + if (regmatch.regprog == NULL) +*** ../vim-7.3.850/src/version.c 2013-03-07 16:32:49.000000000 +0100 +--- src/version.c 2013-03-07 16:38:49.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 851, + /**/ + +-- +This planet has -- or rather had -- a problem, which was this: most +of the people living on it were unhappy for pretty much of the time. +Many solutions were suggested for this problem, but most of these +were largely concerned with the movements of small green pieces of +paper, which is odd because on the whole it wasn't the small green +pieces of paper that were unhappy. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 0c1b460c7ffda39862ec091a14c164887660ec0e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:16 +0200 Subject: [PATCH 190/291] - patchlevel 852 --- 7.3.852 | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 7.3.852 diff --git a/7.3.852 b/7.3.852 new file mode 100644 index 00000000..50906577 --- /dev/null +++ b/7.3.852 @@ -0,0 +1,124 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.852 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.852 +Problem: system() breaks clipboard text. (Yukihiro Nakadaira) +Solution: Use Xutf8TextPropertyToTextList(). (Christian Brabandt) + Also do not put the text in the clip buffer if conversion fails. +Files: src/ui.c, src/ops.c + + +*** ../vim-7.3.851/src/ui.c 2012-10-21 00:58:34.000000000 +0200 +--- src/ui.c 2013-03-07 17:30:37.000000000 +0100 +*************** +*** 2119,2125 **** + text_prop.encoding = *type; + text_prop.format = *format; + text_prop.nitems = len; +! status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); + if (status != Success || n_text < 1) + { +--- 2119,2131 ---- + text_prop.encoding = *type; + text_prop.format = *format; + text_prop.nitems = len; +! #ifdef FEAT_MBYTE +! if (*type == utf8_atom) +! status = Xutf8TextPropertyToTextList(X_DISPLAY, &text_prop, +! &text_list, &n_text); +! else +! #endif +! status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); + if (status != Success || n_text < 1) + { +*** ../vim-7.3.851/src/ops.c 2012-12-12 16:11:28.000000000 +0100 +--- src/ops.c 2013-03-07 17:55:59.000000000 +0100 +*************** +*** 5828,5833 **** +--- 5828,5835 ---- + && len < 1024*1024 && len > 0) + { + #ifdef FEAT_MBYTE ++ int ok = TRUE; ++ + /* The CUT_BUFFER0 is supposed to always contain latin1. Convert from + * 'enc' when it is a multi-byte encoding. When 'enc' is an 8-bit + * encoding conversion usually doesn't work, so keep the text as-is. +*************** +*** 5842,5847 **** +--- 5844,5850 ---- + int intlen = len; + char_u *conv_str; + ++ vc.vc_fail = TRUE; + conv_str = string_convert(&vc, str, &intlen); + len = intlen; + if (conv_str != NULL) +*************** +*** 5849,5860 **** + vim_free(str); + str = conv_str; + } + convert_setup(&vc, NULL, NULL); + } + } + #endif +! XStoreBuffer(dpy, (char *)str, (int)len, 0); +! XFlush(dpy); + } + + vim_free(str); +--- 5852,5877 ---- + vim_free(str); + str = conv_str; + } ++ else ++ { ++ ok = FALSE; ++ } + convert_setup(&vc, NULL, NULL); + } ++ else ++ { ++ ok = FALSE; ++ } + } ++ ++ /* Do not store the string if conversion failed. Better to use any ++ * other selection than garbled text. */ ++ if (ok) + #endif +! { +! XStoreBuffer(dpy, (char *)str, (int)len, 0); +! XFlush(dpy); +! } + } + + vim_free(str); +*** ../vim-7.3.851/src/version.c 2013-03-07 16:41:26.000000000 +0100 +--- src/version.c 2013-03-07 18:01:08.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 852, + /**/ + +-- +Tips for aliens in New York: Land anywhere. Central Park, anywhere. +No one will care or indeed even notice. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From ceaab2aead323b60f1b35c557fb9369c5a477772 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:17 +0200 Subject: [PATCH 191/291] - patchlevel 853 --- 7.3.853 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 7.3.853 diff --git a/7.3.853 b/7.3.853 new file mode 100644 index 00000000..6ccb0f4a --- /dev/null +++ b/7.3.853 @@ -0,0 +1,96 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.853 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.853 +Problem: Using "ra" in multiple lines on multi-byte characters leaves a few + characters not replaced. +Solution: Adjust the end column only in the last line. (Yasuhiro Matsumoto) +Files: src/testdir/test69.in, src/testdir/test69.ok, src/ops.c + + +*** ../vim-7.3.852/src/testdir/test69.in 2013-01-17 17:01:57.000000000 +0100 +--- src/testdir/test69.in 2013-03-07 18:30:50.000000000 +0100 +*************** +*** 1,5 **** +--- 1,6 ---- + Test for multi-byte text formatting. + Also test, that 'mps' with multibyte chars works. ++ And test "ra" on multi-byte characters. + + STARTTEST + :so mbyte.vim +*************** +*** 144,149 **** +--- 145,159 ---- + ‘ two three ’ four + } + STARTTEST ++ /^ra test ++ jVjra ++ ENDTEST ++ ++ ra test ++ ï½bbï½ ++ ï½ï½b ++ ++ STARTTEST + :g/^STARTTEST/.,/^ENDTEST/d + :1;/^Results/,$wq! test.out + ENDTEST +*** ../vim-7.3.852/src/testdir/test69.ok 2013-01-17 17:01:57.000000000 +0100 +--- src/testdir/test69.ok 2013-03-07 18:31:32.000000000 +0100 +*************** +*** 144,146 **** +--- 144,151 ---- + { + four + } ++ ++ ra test ++ aaaa ++ aaa ++ +*** ../vim-7.3.852/src/ops.c 2013-03-07 18:02:27.000000000 +0100 +--- src/ops.c 2013-03-07 18:35:01.000000000 +0100 +*************** +*** 2194,2200 **** + { + /* This is slow, but it handles replacing a single-byte + * with a multi-byte and the other way around. */ +! oap->end.col += (*mb_char2len)(c) - (*mb_char2len)(n); + n = State; + State = REPLACE; + ins_char(c); +--- 2194,2201 ---- + { + /* This is slow, but it handles replacing a single-byte + * with a multi-byte and the other way around. */ +! if (curwin->w_cursor.lnum == oap->end.lnum) +! oap->end.col += (*mb_char2len)(c) - (*mb_char2len)(n); + n = State; + State = REPLACE; + ins_char(c); +*** ../vim-7.3.852/src/version.c 2013-03-07 18:02:27.000000000 +0100 +--- src/version.c 2013-03-07 18:36:46.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 853, + /**/ + +-- +What a wonderfully exciting cough! Do you mind if I join you? + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 823a007e5becdc66c8157356d3be6cd839d16aeb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:17 +0200 Subject: [PATCH 192/291] - patchlevel 854 --- 7.3.854 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.3.854 diff --git a/7.3.854 b/7.3.854 new file mode 100644 index 00000000..6bc4717f --- /dev/null +++ b/7.3.854 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.854 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.854 +Problem: After using backspace in insert mode completion, CTRL-N and CTRL-P + do not highlight the right entry. (Olivier Teuliere) +Solution: Set the current item to the shown item after using backspace. +Files: src/edit.c + + +*** ../vim-7.3.853/src/edit.c 2013-02-26 13:30:28.000000000 +0100 +--- src/edit.c 2013-03-07 19:31:46.000000000 +0100 +*************** +*** 3380,3385 **** +--- 3380,3388 ---- + if (compl_leader != NULL) + { + ins_compl_new_leader(); ++ if (compl_shown_match != NULL) ++ /* Make sure current match is not a hidden item. */ ++ compl_curr_match = compl_shown_match; + return NUL; + } + return K_BS; +*** ../vim-7.3.853/src/version.c 2013-03-07 18:50:52.000000000 +0100 +--- src/version.c 2013-03-07 19:34:32.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 854, + /**/ + +-- +If you put 7 of the most talented OSS developers in a room for a week +and asked them to fix a bug in a spreadsheet program, in 1 week +you'd have 2 new mail readers and a text-based web browser. + + /// 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 /// From 1983f939aac8f598d561712df4dd2fffbe5b9ff9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:18 +0200 Subject: [PATCH 193/291] - patchlevel 855 --- 7.3.855 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.855 diff --git a/7.3.855 b/7.3.855 new file mode 100644 index 00000000..06b315d5 --- /dev/null +++ b/7.3.855 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.855 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.855 +Problem: Compiler warnings. +Solution: Add type casts. (Mike Williams) +Files: src/misc1.c + + +*** ../vim-7.3.854/src/misc1.c 2013-03-07 13:13:45.000000000 +0100 +--- src/misc1.c 2013-03-13 16:58:12.000000000 +0100 +*************** +*** 5468,5474 **** + + for (i = 0; i < (int)(sizeof(skip) / sizeof(char *)); ++i) + { +! l = strlen(skip[i]); + if (cin_starts_with(s, skip[i])) + { + s = cin_skipcomment(s + l); +--- 5468,5474 ---- + + for (i = 0; i < (int)(sizeof(skip) / sizeof(char *)); ++i) + { +! l = (int)strlen(skip[i]); + if (cin_starts_with(s, skip[i])) + { + s = cin_skipcomment(s + l); +*************** +*** 6430,6436 **** + char_u *s; + char *word; + { +! int l = STRLEN(word); + + return (STRNCMP(s, word, l) == 0 && !vim_isIDc(s[l])); + } +--- 6430,6436 ---- + char_u *s; + char *word; + { +! int l = (int)STRLEN(word); + + return (STRNCMP(s, word, l) == 0 && !vim_isIDc(s[l])); + } +*** ../vim-7.3.854/src/version.c 2013-03-07 19:38:49.000000000 +0100 +--- src/version.c 2013-03-13 16:59:02.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 855, + /**/ + +-- +George: "I just got a new set of golf clubs for my wife!" + John: "Great trade!" + + /// 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 /// From 9644463c847473505024ab45c432cdced69fc347 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:18 +0200 Subject: [PATCH 194/291] - patchlevel 856 --- 7.3.856 | 311 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 7.3.856 diff --git a/7.3.856 b/7.3.856 new file mode 100644 index 00000000..b9f28a47 --- /dev/null +++ b/7.3.856 @@ -0,0 +1,311 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.856 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.856 +Problem: When calling system() multi-byte clipboard contents is garbled. +Solution: Save and restore the clipboard contents. (Yukihiro Nakadaira) +Files: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/ops.c, + src/proto/ops.pro, src/os_unix.c, src/proto/ui.pro, src/ui.c + + +*** ../vim-7.3.855/src/gui_gtk_x11.c 2013-02-14 22:11:31.000000000 +0100 +--- src/gui_gtk_x11.c 2013-03-13 17:28:00.000000000 +0100 +*************** +*** 5674,5685 **** + void + clip_mch_lose_selection(VimClipboard *cbd UNUSED) + { +! /* WEIRD: when using NULL to actually disown the selection, we lose the +! * selection the first time we own it. */ +! /* +! gtk_selection_owner_set(NULL, cbd->gtk_sel_atom, (guint32)GDK_CURRENT_TIME); + gui_mch_update(); +- */ + } + + /* +--- 5674,5681 ---- + void + clip_mch_lose_selection(VimClipboard *cbd UNUSED) + { +! gtk_selection_owner_set(NULL, cbd->gtk_sel_atom, gui.event_time); + gui_mch_update(); + } + + /* +*************** +*** 5705,5710 **** +--- 5701,5712 ---- + { + } + ++ int ++ clip_gtk_owner_exists(VimClipboard *cbd) ++ { ++ return gdk_selection_owner_get(cbd->gtk_sel_atom) != NULL; ++ } ++ + + #if defined(FEAT_MENU) || defined(PROTO) + /* +*** ../vim-7.3.855/src/proto/gui_gtk_x11.pro 2012-05-18 17:03:14.000000000 +0200 +--- src/proto/gui_gtk_x11.pro 2013-03-13 17:35:17.000000000 +0100 +*************** +*** 59,64 **** +--- 59,65 ---- + void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); + int clip_mch_own_selection __ARGS((VimClipboard *cbd)); + void clip_mch_set_selection __ARGS((VimClipboard *cbd)); ++ int clip_gtk_owner_exists __ARGS((VimClipboard *cbd)); + void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey)); + void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden)); + void gui_mch_draw_menubar __ARGS((void)); +*** ../vim-7.3.855/src/ops.c 2013-03-07 18:50:52.000000000 +0100 +--- src/ops.c 2013-03-13 17:30:50.000000000 +0100 +*************** +*** 1017,1022 **** +--- 1017,1035 ---- + may_set_selection(); + # endif + } ++ ++ void ++ free_register(reg) ++ void *reg; ++ { ++ struct yankreg tmp; ++ ++ tmp = *y_current; ++ *y_current = *(struct yankreg *)reg; ++ free_yank_all(); ++ vim_free(reg); ++ *y_current = tmp; ++ } + #endif + + #if defined(FEAT_MOUSE) || defined(PROTO) +*** ../vim-7.3.855/src/proto/ops.pro 2012-06-06 16:12:54.000000000 +0200 +--- src/proto/ops.pro 2013-03-13 17:35:04.000000000 +0100 +*************** +*** 15,20 **** +--- 15,21 ---- + int may_get_selection __ARGS((int regname)); + void *get_register __ARGS((int name, int copy)); + void put_register __ARGS((int name, void *reg)); ++ void free_register __ARGS((void *reg)); + int yank_register_mline __ARGS((int regname)); + int do_record __ARGS((int c)); + int do_execreg __ARGS((int regname, int colon, int addcr, int silent)); +*** ../vim-7.3.855/src/os_unix.c 2013-02-26 14:56:24.000000000 +0100 +--- src/os_unix.c 2013-03-13 17:33:00.000000000 +0100 +*************** +*** 1138,1143 **** +--- 1138,1148 ---- + + # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) + static void loose_clipboard __ARGS((void)); ++ static void save_clipboard __ARGS((void)); ++ static void restore_clipboard __ARGS((void)); ++ ++ static void *clip_star_save = NULL; ++ static void *clip_plus_save = NULL; + + /* + * Called when Vim is going to sleep or execute a shell command. +*************** +*** 1158,1163 **** +--- 1163,1204 ---- + XFlush(x11_display); + } + } ++ ++ /* ++ * Save clipboard text to restore later. ++ */ ++ static void ++ save_clipboard() ++ { ++ if (clip_star.owned) ++ clip_star_save = get_register('*', TRUE); ++ if (clip_plus.owned) ++ clip_plus_save = get_register('+', TRUE); ++ } ++ ++ /* ++ * Restore clipboard text if no one own the X selection. ++ */ ++ static void ++ restore_clipboard() ++ { ++ if (clip_star_save != NULL) ++ { ++ if (!clip_gen_owner_exists(&clip_star)) ++ put_register('*', clip_star_save); ++ else ++ free_register(clip_star_save); ++ clip_star_save = NULL; ++ } ++ if (clip_plus_save != NULL) ++ { ++ if (!clip_gen_owner_exists(&clip_plus)) ++ put_register('+', clip_plus_save); ++ else ++ free_register(clip_plus_save); ++ clip_plus_save = NULL; ++ } ++ } + #endif + + /* +*************** +*** 3844,3849 **** +--- 3885,3891 ---- + settmode(TMODE_COOK); /* set to normal mode */ + + # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) ++ save_clipboard(); + loose_clipboard(); + # endif + +*************** +*** 3917,3922 **** +--- 3959,3967 ---- + # ifdef FEAT_TITLE + resettitle(); + # endif ++ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) ++ restore_clipboard(); ++ # endif + return x; + + #else /* USE_SYSTEM */ /* don't use system(), use fork()/exec() */ +*************** +*** 3965,3970 **** +--- 4010,4018 ---- + settmode(TMODE_COOK); /* set to normal mode */ + + # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) ++ /* Disown the clipboard, because is the executed command tries to obtain a ++ * selection and we own it we get a deadlock. */ ++ save_clipboard(); + loose_clipboard(); + # endif + +*************** +*** 4836,4841 **** +--- 4884,4892 ---- + # ifdef FEAT_TITLE + resettitle(); + # endif ++ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) ++ restore_clipboard(); ++ # endif + vim_free(newcmd); + + return retval; +*** ../vim-7.3.855/src/proto/ui.pro 2012-07-10 16:49:08.000000000 +0200 +--- src/proto/ui.pro 2013-03-13 17:35:08.000000000 +0100 +*************** +*** 29,34 **** +--- 29,35 ---- + void clip_gen_lose_selection __ARGS((VimClipboard *cbd)); + void clip_gen_set_selection __ARGS((VimClipboard *cbd)); + void clip_gen_request_selection __ARGS((VimClipboard *cbd)); ++ int clip_gen_owner_exists __ARGS((VimClipboard *cbd)); + int vim_is_input_buf_full __ARGS((void)); + int vim_is_input_buf_empty __ARGS((void)); + int vim_free_in_input_buf __ARGS((void)); +*************** +*** 52,57 **** +--- 53,59 ---- + void clip_x11_lose_selection __ARGS((Widget myShell, VimClipboard *cbd)); + int clip_x11_own_selection __ARGS((Widget myShell, VimClipboard *cbd)); + void clip_x11_set_selection __ARGS((VimClipboard *cbd)); ++ int clip_x11_owner_exists __ARGS((VimClipboard *cbd)); + void yank_cut_buffer0 __ARGS((Display *dpy, VimClipboard *cbd)); + int jump_to_mouse __ARGS((int flags, int *inclusive, int which_button)); + int mouse_comp_pos __ARGS((win_T *win, int *rowp, int *colp, linenr_T *lnump)); +*** ../vim-7.3.855/src/ui.c 2013-03-07 18:02:27.000000000 +0100 +--- src/ui.c 2013-03-13 17:31:31.000000000 +0100 +*************** +*** 1456,1461 **** +--- 1456,1476 ---- + #endif + } + ++ int ++ clip_gen_owner_exists(cbd) ++ VimClipboard *cbd; ++ { ++ #ifdef FEAT_XCLIPBOARD ++ # ifdef FEAT_GUI_GTK ++ if (gui.in_use) ++ return clip_gtk_owner_exists(cbd); ++ else ++ # endif ++ return clip_x11_owner_exists(cbd); ++ #endif ++ return TRUE; ++ } ++ + #endif /* FEAT_CLIPBOARD */ + + /***************************************************************************** +*************** +*** 2398,2404 **** + Widget myShell; + VimClipboard *cbd; + { +! XtDisownSelection(myShell, cbd->sel_atom, CurrentTime); + } + + int +--- 2413,2420 ---- + Widget myShell; + VimClipboard *cbd; + { +! XtDisownSelection(myShell, cbd->sel_atom, +! XtLastTimestampProcessed(XtDisplay(myShell))); + } + + int +*************** +*** 2440,2445 **** +--- 2456,2468 ---- + VimClipboard *cbd UNUSED; + { + } ++ ++ int ++ clip_x11_owner_exists(cbd) ++ VimClipboard *cbd; ++ { ++ return XGetSelectionOwner(X_DISPLAY, cbd->sel_atom) != None; ++ } + #endif + + #if defined(FEAT_XCLIPBOARD) || defined(FEAT_GUI_X11) \ +*** ../vim-7.3.855/src/version.c 2013-03-13 17:01:47.000000000 +0100 +--- src/version.c 2013-03-13 17:45:25.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 856, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +39. You move into a new house and decide to Netscape before you landscape. + + /// 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 /// From ce9b31f8a388dc44d283f0e65ba39f8c91424b06 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:19 +0200 Subject: [PATCH 195/291] - patchlevel 857 --- 7.3.857 | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 7.3.857 diff --git a/7.3.857 b/7.3.857 new file mode 100644 index 00000000..1c3ca8c5 --- /dev/null +++ b/7.3.857 @@ -0,0 +1,91 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.857 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.857 +Problem: The QuitPre autocommand event does not trigger for :qa and :wq. +Solution: Trigger the event. (Tatsuro Fujii) +Files: src/ex_docmd.c + + +*** ../vim-7.3.856/src/ex_docmd.c 2013-02-26 17:21:15.000000000 +0100 +--- src/ex_docmd.c 2013-03-13 18:14:56.000000000 +0100 +*************** +*** 6526,6532 **** + } + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); +! /* Refuse to quick when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ + if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing)) + return; +--- 6526,6532 ---- + } + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); +! /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ + if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing)) + return; +*************** +*** 6600,6606 **** + return; + } + #ifdef FEAT_AUTOCMD +! if (curbuf_locked()) + return; + #endif + +--- 6600,6609 ---- + return; + } + #ifdef FEAT_AUTOCMD +! apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); +! /* Refuse to quit when locked or when the buffer in the last window is +! * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing)) + return; + #endif + +*************** +*** 6936,6942 **** + return; + } + #ifdef FEAT_AUTOCMD +! if (curbuf_locked()) + return; + #endif + +--- 6939,6948 ---- + return; + } + #ifdef FEAT_AUTOCMD +! apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); +! /* Refuse to quit when locked or when the buffer in the last window is +! * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing)) + return; + #endif + +*** ../vim-7.3.856/src/version.c 2013-03-13 17:50:20.000000000 +0100 +--- src/version.c 2013-03-13 18:26:13.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 857, + /**/ + +-- +The future isn't what it used to be. + + /// 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 /// From 9716d7cd8839ce9863d05b9d706caa810746360f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:20 +0200 Subject: [PATCH 196/291] - patchlevel 858 --- 7.3.858 | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 7.3.858 diff --git a/7.3.858 b/7.3.858 new file mode 100644 index 00000000..a03c0158 --- /dev/null +++ b/7.3.858 @@ -0,0 +1,159 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.858 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.858 +Problem: "gv" selects the wrong area after some operators. +Solution: Save and restore the type of selection. (Christian Brabandt) +Files: src/testdir/test66.in, src/testdir/test66.ok, src/normal.c + + +*** ../vim-7.3.857/src/testdir/test66.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test66.in 2013-03-13 18:42:46.000000000 +0100 +*************** +*** 3,14 **** + + STARTTEST + :so small.vim + /^abcdefgh + 4jI j<<11|D + 7|a  + 7|a  + 7|a 4k13|4j< +! :$-4,$w! test.out + :$-4,$s/\s\+//g + 4kI j<< + 7|a  +--- 3,16 ---- + + STARTTEST + :so small.vim ++ /^one ++ fe4jRugvr1:'<,'>w! test.out + /^abcdefgh + 4jI j<<11|D + 7|a  + 7|a  + 7|a 4k13|4j< +! :$-5,$w >> test.out + :$-4,$s/\s\+//g + 4kI j<< + 7|a  +*************** +*** 18,23 **** +--- 20,31 ---- + :qa! + ENDTEST + ++ one two three ++ one two three ++ one two three ++ one two three ++ one two three ++ + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz +*** ../vim-7.3.857/src/testdir/test66.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test66.ok 2013-03-13 18:42:46.000000000 +0100 +*************** +*** 1,3 **** +--- 1,9 ---- ++ on1 two three ++ on1 two three ++ on1 two three ++ on1 two three ++ on1 two three ++ + abcdefghijklmnopqrstuvwxyz + abcdefghij + abc defghijklmnopqrstuvwxyz +*** ../vim-7.3.857/src/normal.c 2013-02-26 13:30:28.000000000 +0100 +--- src/normal.c 2013-03-13 18:47:49.000000000 +0100 +*************** +*** 21,26 **** +--- 21,27 ---- + static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */ + static linenr_T resel_VIsual_line_count; /* number of lines */ + static colnr_T resel_VIsual_vcol; /* nr of cols or end col */ ++ static int VIsual_mode_orig = NUL; /* type of Visual mode, that user entered */ + + static int restart_VIsual_select = 0; + #endif +*************** +*** 1594,1599 **** +--- 1595,1605 ---- + curbuf->b_visual.vi_start = VIsual; + curbuf->b_visual.vi_end = curwin->w_cursor; + curbuf->b_visual.vi_mode = VIsual_mode; ++ if (VIsual_mode_orig != NUL) ++ { ++ curbuf->b_visual.vi_mode = VIsual_mode_orig; ++ VIsual_mode_orig = NUL; ++ } + curbuf->b_visual.vi_curswant = curwin->w_curswant; + # ifdef FEAT_EVAL + curbuf->b_visual_mode_eval = VIsual_mode; +*************** +*** 7230,7235 **** +--- 7236,7242 ---- + { + cap->cmdchar = 'c'; + cap->nchar = NUL; ++ VIsual_mode_orig = VIsual_mode; /* remember original area for gv */ + VIsual_mode = 'V'; + nv_operator(cap); + } +*************** +*** 7429,7435 **** +--- 7436,7445 ---- + if (isupper(cap->cmdchar)) + { + if (VIsual_mode != Ctrl_V) ++ { ++ VIsual_mode_orig = VIsual_mode; + VIsual_mode = 'V'; ++ } + else if (cap->cmdchar == 'C' || cap->cmdchar == 'D') + curwin->w_curswant = MAXCOL; + } +*************** +*** 7449,7455 **** +--- 7459,7468 ---- + if (VIsual_active) /* "vs" and "vS" are the same as "vc" */ + { + if (cap->cmdchar == 'S') ++ { ++ VIsual_mode_orig = VIsual_mode; + VIsual_mode = 'V'; ++ } + cap->cmdchar = 'c'; + nv_operator(cap); + } +*** ../vim-7.3.857/src/version.c 2013-03-13 18:30:39.000000000 +0100 +--- src/version.c 2013-03-13 18:48:50.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 858, + /**/ + +-- +"Oh, no! NOT the Spanish Inquisition!" +"NOBODY expects the Spanish Inquisition!!!" + -- Monty Python sketch -- +"Oh, no! NOT another option!" +"EVERYBODY expects another option!!!" + -- Discussion in vim-dev mailing list -- + + /// 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 /// From 599fe65eec33ad5a6d730ae1a9cca22839704d3a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:20 +0200 Subject: [PATCH 197/291] - patchlevel 859 --- 7.3.859 | 316 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 7.3.859 diff --git a/7.3.859 b/7.3.859 new file mode 100644 index 00000000..e1714c4b --- /dev/null +++ b/7.3.859 @@ -0,0 +1,316 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.859 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.859 +Problem: 'ambiwidth' must be set by the user. +Solution: Detects East Asian ambiguous width (UAX #11) state of the terminal + at the start-up time and 'ambiwidth' accordingly. (Hayaki Saito) +Files: src/main.c, src/option.c, src/term.c, src/term.h, + src/proto/term.pro + + +*** ../vim-7.3.858/src/main.c 2013-01-17 13:59:56.000000000 +0100 +--- src/main.c 2013-03-13 19:09:03.000000000 +0100 +*************** +*** 804,809 **** +--- 804,812 ---- + + starttermcap(); /* start termcap if not done by wait_return() */ + TIME_MSG("start termcap"); ++ #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE) ++ may_req_ambiguous_character_width(); ++ #endif + + #ifdef FEAT_MOUSE + setmouse(); /* may start using the mouse */ +*** ../vim-7.3.858/src/option.c 2013-02-13 15:44:22.000000000 +0100 +--- src/option.c 2013-03-13 19:09:03.000000000 +0100 +*************** +*** 2900,2905 **** +--- 2900,2906 ---- + p_term("t_op", T_OP) + p_term("t_RI", T_CRI) + p_term("t_RV", T_CRV) ++ p_term("t_u7", T_U7) + p_term("t_Sb", T_CSB) + p_term("t_Sf", T_CSF) + p_term("t_se", T_SE) +*** ../vim-7.3.858/src/term.c 2013-02-26 14:56:24.000000000 +0100 +--- src/term.c 2013-03-13 19:18:22.000000000 +0100 +*************** +*** 111,116 **** +--- 111,121 ---- + # define CRV_SENT 2 /* did send T_CRV, waiting for answer */ + # define CRV_GOT 3 /* received T_CRV response */ + static int crv_status = CRV_GET; ++ /* Request Cursor position report: */ ++ # define U7_GET 1 /* send T_U7 when switched to RAW mode */ ++ # define U7_SENT 2 /* did send T_U7, waiting for answer */ ++ # define U7_GOT 3 /* received T_U7 response */ ++ static int u7_status = U7_GET; + # endif + + /* +*************** +*** 933,938 **** +--- 938,944 ---- + {(int)KS_CWP, IF_EB("\033[3;%d;%dt", ESC_STR "[3;%d;%dt")}, + # endif + {(int)KS_CRV, IF_EB("\033[>c", ESC_STR "[>c")}, ++ {(int)KS_U7, IF_EB("\033[6n", ESC_STR "[6n")}, + + {K_UP, IF_EB("\033O*A", ESC_STR "O*A")}, + {K_DOWN, IF_EB("\033O*B", ESC_STR "O*B")}, +*************** +*** 1221,1226 **** +--- 1227,1233 ---- + {(int)KS_CWP, "[%dCWP%d]"}, + # endif + {(int)KS_CRV, "[CRV]"}, ++ {(int)KS_U7, "[U7]"}, + {K_UP, "[KU]"}, + {K_DOWN, "[KD]"}, + {K_LEFT, "[KL]"}, +*************** +*** 1596,1601 **** +--- 1603,1609 ---- + {KS_TS, "ts"}, {KS_FS, "fs"}, + {KS_CWP, "WP"}, {KS_CWS, "WS"}, + {KS_CSI, "SI"}, {KS_CEI, "EI"}, ++ {KS_U7, "u7"}, + {(enum SpecialKey)0, NULL} + }; + +*************** +*** 3183,3189 **** + /* May need to check for T_CRV response and termcodes, it + * doesn't work in Cooked mode, an external program may get + * them. */ +! if (tmode != TMODE_RAW && crv_status == CRV_SENT) + (void)vpeekc_nomap(); + check_for_codes_from_term(); + } +--- 3191,3198 ---- + /* May need to check for T_CRV response and termcodes, it + * doesn't work in Cooked mode, an external program may get + * them. */ +! if (tmode != TMODE_RAW && (crv_status == CRV_SENT +! || u7_status == U7_SENT)) + (void)vpeekc_nomap(); + check_for_codes_from_term(); + } +*************** +*** 3245,3251 **** + # endif + { + /* May need to check for T_CRV response. */ +! if (crv_status == CRV_SENT) + (void)vpeekc_nomap(); + /* Check for termcodes first, otherwise an external program may + * get them. */ +--- 3254,3260 ---- + # endif + { + /* May need to check for T_CRV response. */ +! if (crv_status == CRV_SENT || u7_status == U7_SENT) + (void)vpeekc_nomap(); + /* Check for termcodes first, otherwise an external program may + * get them. */ +*************** +*** 3299,3304 **** +--- 3308,3355 ---- + (void)vpeekc_nomap(); + } + } ++ ++ # if defined(FEAT_MBYTE) || defined(PROTO) ++ /* ++ * Check how the terminal treats ambiguous character width (UAX #11). ++ * First, we move the cursor to (0, 0) and print a test ambiguous character ++ * \u25bd (WHITE DOWN-POINTING TRIANGLE) and query current cursor position. ++ * If the terminal treats \u25bd as single width, the position is (0, 1), ++ * or if it is treated as double width, that will be (0, 2). ++ * This function has the side effect that changes cursor position, so ++ * it must be called immediately after entering termcap mode. ++ */ ++ void ++ may_req_ambiguous_character_width() ++ { ++ if (u7_status == U7_GET ++ && cur_tmode == TMODE_RAW ++ && termcap_active ++ && p_ek ++ # ifdef UNIX ++ && isatty(1) ++ && isatty(read_cmd_fd) ++ # endif ++ && *T_U7 != NUL ++ && !option_was_set((char_u *)"ambiwidth")) ++ { ++ char_u buf[16]; ++ ++ term_windgoto(0, 0); ++ buf[mb_char2bytes(0x25bd, buf)] = 0; ++ out_str(buf); ++ out_str(T_U7); ++ u7_status = U7_SENT; ++ term_windgoto(0, 0); ++ out_str((char_u *)" "); ++ term_windgoto(0, 0); ++ /* check for the characters now, otherwise they might be eaten by ++ * get_keystroke() */ ++ out_flush(); ++ (void)vpeekc_nomap(); ++ } ++ } ++ # endif + #endif + + /* +*************** +*** 4049,4061 **** + /* URXVT mouse uses [#;#;#M, but we are matching [ */ + || key_name[0] == KS_URXVT_MOUSE) + { +! /* Check for xterm version string: "[>{x};{vers};{y}c". Also +! * eat other possible responses to t_RV, rxvt returns +! * "[?1;2c". Also accept CSI instead of [. +! * mrxvt has been reported to have "+" in the version. Assume +! * the escape sequence ends with a letter or one of "{|}~". */ +! if (*T_CRV != NUL && ((tp[0] == ESC && tp[1] == '[' && len >= 3) +! || (tp[0] == CSI && len >= 2))) + { + j = 0; + extra = 0; +--- 4100,4121 ---- + /* URXVT mouse uses [#;#;#M, but we are matching [ */ + || key_name[0] == KS_URXVT_MOUSE) + { +! /* Check for some responses from terminal start with "[" or +! * CSI. +! * +! * - xterm version string: [>{x};{vers};{y}c +! * Also eat other possible responses to t_RV, rxvt returns +! * "[?1;2c". Also accept CSI instead of [. +! * mrxvt has been reported to have "+" in the version. Assume +! * the escape sequence ends with a letter or one of "{|}~". +! * +! * - cursor position report: [{row};{col}R +! * The final byte is 'R'. now it is only used for checking for +! * ambiguous-width character state. +! */ +! if ((*T_CRV != NUL || *T_U7 != NUL) +! && ((tp[0] == ESC && tp[1] == '[' && len >= 3) +! || (tp[0] == CSI && len >= 2))) + { + j = 0; + extra = 0; +*************** +*** 4067,4074 **** + if (i == len) + return -1; /* not enough characters */ + + /* eat it when at least one digit and ending in 'c' */ +! if (i > 2 + (tp[0] != CSI) && tp[i] == 'c') + { + crv_status = CRV_GOT; + +--- 4127,4153 ---- + if (i == len) + return -1; /* not enough characters */ + ++ #ifdef FEAT_MBYTE ++ /* eat it when it has 2 arguments and ends in 'R' */ ++ if (u7_status == U7_SENT && j == 1 && tp[i] == 'R') ++ { ++ char *p = NULL; ++ ++ u7_status = U7_GOT; ++ if (extra == 2) ++ p = "single"; ++ else if (extra == 3) ++ p = "double"; ++ if (p != NULL) ++ set_option_value((char_u *)"ambw", 0L, (char_u *)p, 0); ++ key_name[0] = (int)KS_EXTRA; ++ key_name[1] = (int)KE_IGNORE; ++ slen = i + 1; ++ } ++ else ++ #endif + /* eat it when at least one digit and ending in 'c' */ +! if (*T_CRV != NUL && i > 2 + (tp[0] != CSI) && tp[i] == 'c') + { + crv_status = CRV_GOT; + +*** ../vim-7.3.858/src/term.h 2010-08-15 21:57:25.000000000 +0200 +--- src/term.h 2013-03-13 19:09:03.000000000 +0100 +*************** +*** 83,92 **** + #ifdef FEAT_VERTSPLIT + KS_CSV, /* scroll region vertical */ + #endif +! KS_OP /* original color pair */ + }; + +! #define KS_LAST KS_OP + + /* + * the terminal capabilities are stored in this array +--- 83,93 ---- + #ifdef FEAT_VERTSPLIT + KS_CSV, /* scroll region vertical */ + #endif +! KS_OP, /* original color pair */ +! KS_U7 /* request cursor position */ + }; + +! #define KS_LAST KS_U7 + + /* + * the terminal capabilities are stored in this array +*************** +*** 158,163 **** +--- 159,165 ---- + #define T_CEI (term_str(KS_CEI)) /* end insert mode */ + #define T_CRV (term_str(KS_CRV)) /* request version string */ + #define T_OP (term_str(KS_OP)) /* original color pair */ ++ #define T_U7 (term_str(KS_U7)) /* request cursor position */ + + #define TMODE_COOK 0 /* terminal mode for external cmds and Ex mode */ + #define TMODE_SLEEP 1 /* terminal mode for sleeping (cooked but no echo) */ +*** ../vim-7.3.858/src/proto/term.pro 2012-02-05 22:05:44.000000000 +0100 +--- src/proto/term.pro 2013-03-13 19:09:54.000000000 +0100 +*************** +*** 34,39 **** +--- 34,40 ---- + void starttermcap __ARGS((void)); + void stoptermcap __ARGS((void)); + void may_req_termresponse __ARGS((void)); ++ void may_req_ambiguous_character_width __ARGS((void)); + int swapping_screen __ARGS((void)); + void setmouse __ARGS((void)); + int mouse_has __ARGS((int c)); +*** ../vim-7.3.858/src/version.c 2013-03-13 19:02:37.000000000 +0100 +--- src/version.c 2013-03-13 19:27:31.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 859, + /**/ + +-- +Microsoft is to software what McDonalds is to gourmet cooking + + /// 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 /// From 13d1cd872af463a041745c574af6372b016122ab Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:21 +0200 Subject: [PATCH 198/291] - patchlevel 860 --- 7.3.860 | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 7.3.860 diff --git a/7.3.860 b/7.3.860 new file mode 100644 index 00000000..fbcab261 --- /dev/null +++ b/7.3.860 @@ -0,0 +1,85 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.860 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.860 +Problem: When using --remote-expr try/catch does not work. (Andrey Radev) +Solution: Set emsg_silent instead of emsg_skip. +Files: src/main.c + + +*** ../vim-7.3.859/src/main.c 2013-03-13 19:29:24.000000000 +0100 +--- src/main.c 2013-03-13 19:46:03.000000000 +0100 +*************** +*** 4025,4032 **** + + /* + * Evaluate an expression that the client sent to a string. +- * Handles disabling error messages and disables debugging, otherwise Vim +- * hangs, waiting for "cont" to be typed. + */ + char_u * + eval_client_expr_to_string(expr) +--- 4025,4030 ---- +*************** +*** 4036,4050 **** + int save_dbl = debug_break_level; + int save_ro = redir_off; + + debug_break_level = -1; + redir_off = 0; +! ++emsg_skip; + + res = eval_to_string(expr, NULL, TRUE); + + debug_break_level = save_dbl; + redir_off = save_ro; +! --emsg_skip; + + /* A client can tell us to redraw, but not to display the cursor, so do + * that here. */ +--- 4034,4054 ---- + int save_dbl = debug_break_level; + int save_ro = redir_off; + ++ /* Disable debugging, otherwise Vim hangs, waiting for "cont" to be ++ * typed. */ + debug_break_level = -1; + redir_off = 0; +! /* Do not display error message, otherwise Vim hangs, waiting for "cont" +! * to be typed. Do generate errors so that try/catch works. */ +! ++emsg_silent; + + res = eval_to_string(expr, NULL, TRUE); + + debug_break_level = save_dbl; + redir_off = save_ro; +! --emsg_silent; +! if (emsg_silent < 0) +! emsg_silent = 0; + + /* A client can tell us to redraw, but not to display the cursor, so do + * that here. */ +*** ../vim-7.3.859/src/version.c 2013-03-13 19:29:24.000000000 +0100 +--- src/version.c 2013-03-13 20:09:47.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 860, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth. + + /// 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 /// From ee4e8f4f3a87ddf33f2eea8281c6ff97939d0491 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:22 +0200 Subject: [PATCH 199/291] - patchlevel 861 --- 7.3.861 | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 7.3.861 diff --git a/7.3.861 b/7.3.861 new file mode 100644 index 00000000..aa91d583 --- /dev/null +++ b/7.3.861 @@ -0,0 +1,165 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.861 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.861 +Problem: ":setlocal number" clears global value of 'relativenumber'. +Solution: Do it properly. (Markus Heidelberg) +Files: src/testdir/test89.in, src/testdir/test89.ok, src/option.c + + +*** ../vim-7.3.860/src/testdir/test89.in 2013-02-14 20:10:28.000000000 +0100 +--- src/testdir/test89.in 2013-03-13 20:27:10.000000000 +0100 +*************** +*** 10,15 **** +--- 10,52 ---- + :$put ='results:' + :$put a + :$put b ++ :" ++ :set nonu nornu ++ :setglobal nu ++ :setlocal rnu ++ :redir @c | setglobal nu? | redir END ++ :set nonu nornu ++ :setglobal rnu ++ :setlocal nu ++ :redir @d | setglobal rnu? | redir END ++ :$put =':setlocal must NOT reset the other global value' ++ :$put c ++ :$put d ++ :" ++ :set nonu nornu ++ :setglobal nu ++ :setglobal rnu ++ :redir @e | setglobal nu? | redir END ++ :set nonu nornu ++ :setglobal rnu ++ :setglobal nu ++ :redir @f | setglobal rnu? | redir END ++ :$put =':setglobal MUST reset the other global value' ++ :$put e ++ :$put f ++ :" ++ :set nonu nornu ++ :set nu ++ :set rnu ++ :redir @g | setglobal nu? | redir END ++ :set nonu nornu ++ :set rnu ++ :set nu ++ :redir @h | setglobal rnu? | redir END ++ :$put =':set MUST reset the other global value' ++ :$put g ++ :$put h ++ :" + :/^results/,$w! test.out + :q! + ENDTEST +*** ../vim-7.3.860/src/testdir/test89.ok 2013-02-13 15:44:22.000000000 +0100 +--- src/testdir/test89.ok 2013-03-13 20:27:10.000000000 +0100 +*************** +*** 5,7 **** +--- 5,22 ---- + + nonumber + relativenumber ++ :setlocal must NOT reset the other global value ++ ++ number ++ ++ relativenumber ++ :setglobal MUST reset the other global value ++ ++ nonumber ++ ++ norelativenumber ++ :set MUST reset the other global value ++ ++ nonumber ++ ++ norelativenumber +*** ../vim-7.3.860/src/option.c 2013-03-13 19:29:24.000000000 +0100 +--- src/option.c 2013-03-13 20:35:20.000000000 +0100 +*************** +*** 7631,7652 **** + } + #endif + +! /* 'number', 'relativenumber' */ +! else if ((int *)varp == &curwin->w_p_nu +! || (int *)varp == &curwin->w_p_rnu) + { +! /* If 'number' is set, reset 'relativenumber'. */ +! /* If 'relativenumber' is set, reset 'number'. */ +! if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu) +! { +! curwin->w_p_rnu = FALSE; + curwin->w_allbuf_opt.wo_rnu = FALSE; +! } +! if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu) +! { +! curwin->w_p_nu = FALSE; + curwin->w_allbuf_opt.wo_nu = FALSE; +! } + } + + else if ((int *)varp == &curbuf->b_p_ro) +--- 7631,7663 ---- + } + #endif + +! /* If 'number' is set, reset 'relativenumber'. */ +! /* If 'relativenumber' is set, reset 'number'. */ +! else if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu) + { +! curwin->w_p_rnu = FALSE; +! +! /* Only reset the global value if the own value is set globally. */ +! if (((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0)) + curwin->w_allbuf_opt.wo_rnu = FALSE; +! } +! else if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu) +! { +! curwin->w_p_nu = FALSE; +! +! /* Only reset the global value if the own value is set globally. */ +! if (((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0)) + curwin->w_allbuf_opt.wo_nu = FALSE; +! } +! else if ((int *)varp == &curwin->w_allbuf_opt.wo_nu +! && curwin->w_allbuf_opt.wo_nu) +! { +! curwin->w_allbuf_opt.wo_rnu = FALSE; +! } +! else if ((int *)varp == &curwin->w_allbuf_opt.wo_rnu +! && curwin->w_allbuf_opt.wo_rnu) +! { +! curwin->w_allbuf_opt.wo_nu = FALSE; + } + + else if ((int *)varp == &curbuf->b_p_ro) +*** ../vim-7.3.860/src/version.c 2013-03-13 20:23:17.000000000 +0100 +--- src/version.c 2013-03-13 20:42:09.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 861, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +43. You tell the kids they can't use the computer because "Daddy's got work to + do" and you don't even have a job. + + /// 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 /// From 6e5bc62eae8576a7111350b200d362031a8ebcbb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:22 +0200 Subject: [PATCH 200/291] - patchlevel 862 --- 7.3.862 | 215 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 7.3.862 diff --git a/7.3.862 b/7.3.862 new file mode 100644 index 00000000..3ad18363 --- /dev/null +++ b/7.3.862 @@ -0,0 +1,215 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.862 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.862 +Problem: Dragging the status line can be slow. +Solution: Look ahead and drop the drag event if there is a next one. +Files: src/eval.c, src/misc1.c, src/proto/misc1.pro, src/normal.c + + +*** ../vim-7.3.861/src/eval.c 2013-02-26 21:43:28.000000000 +0100 +--- src/eval.c 2013-03-16 14:02:36.000000000 +0100 +*************** +*** 11238,11264 **** + rettv->vval.v_string = vim_strsave(temp); + + #ifdef FEAT_MOUSE +! if (n == K_LEFTMOUSE +! || n == K_LEFTMOUSE_NM +! || n == K_LEFTDRAG +! || n == K_LEFTRELEASE +! || n == K_LEFTRELEASE_NM +! || n == K_MIDDLEMOUSE +! || n == K_MIDDLEDRAG +! || n == K_MIDDLERELEASE +! || n == K_RIGHTMOUSE +! || n == K_RIGHTDRAG +! || n == K_RIGHTRELEASE +! || n == K_X1MOUSE +! || n == K_X1DRAG +! || n == K_X1RELEASE +! || n == K_X2MOUSE +! || n == K_X2DRAG +! || n == K_X2RELEASE +! || n == K_MOUSELEFT +! || n == K_MOUSERIGHT +! || n == K_MOUSEDOWN +! || n == K_MOUSEUP) + { + int row = mouse_row; + int col = mouse_col; +--- 11238,11244 ---- + rettv->vval.v_string = vim_strsave(temp); + + #ifdef FEAT_MOUSE +! if (is_mouse_key(n)) + { + int row = mouse_row; + int col = mouse_col; +*** ../vim-7.3.861/src/misc1.c 2013-03-13 17:01:47.000000000 +0100 +--- src/misc1.c 2013-03-16 14:08:05.000000000 +0100 +*************** +*** 3288,3293 **** +--- 3288,3325 ---- + return r; + } + ++ #if defined(FEAT_MOUSE) || defined(PROTO) ++ /* ++ * Return TRUE if "c" is a mouse key. ++ */ ++ int ++ is_mouse_key(c) ++ int c; ++ { ++ return c == K_LEFTMOUSE ++ || c == K_LEFTMOUSE_NM ++ || c == K_LEFTDRAG ++ || c == K_LEFTRELEASE ++ || c == K_LEFTRELEASE_NM ++ || c == K_MIDDLEMOUSE ++ || c == K_MIDDLEDRAG ++ || c == K_MIDDLERELEASE ++ || c == K_RIGHTMOUSE ++ || c == K_RIGHTDRAG ++ || c == K_RIGHTRELEASE ++ || c == K_MOUSEDOWN ++ || c == K_MOUSEUP ++ || c == K_MOUSELEFT ++ || c == K_MOUSERIGHT ++ || c == K_X1MOUSE ++ || c == K_X1DRAG ++ || c == K_X1RELEASE ++ || c == K_X2MOUSE ++ || c == K_X2DRAG ++ || c == K_X2RELEASE; ++ } ++ #endif ++ + /* + * Get a key stroke directly from the user. + * Ignores mouse clicks and scrollbar events, except a click for the left +*************** +*** 3373,3403 **** + n = TO_SPECIAL(buf[1], buf[2]); + if (buf[1] == KS_MODIFIER + || n == K_IGNORE +! #ifdef FEAT_MOUSE +! || n == K_LEFTMOUSE_NM +! || n == K_LEFTDRAG +! || n == K_LEFTRELEASE +! || n == K_LEFTRELEASE_NM +! || n == K_MIDDLEMOUSE +! || n == K_MIDDLEDRAG +! || n == K_MIDDLERELEASE +! || n == K_RIGHTMOUSE +! || n == K_RIGHTDRAG +! || n == K_RIGHTRELEASE +! || n == K_MOUSEDOWN +! || n == K_MOUSEUP +! || n == K_MOUSELEFT +! || n == K_MOUSERIGHT +! || n == K_X1MOUSE +! || n == K_X1DRAG +! || n == K_X1RELEASE +! || n == K_X2MOUSE +! || n == K_X2DRAG +! || n == K_X2RELEASE +! # ifdef FEAT_GUI + || n == K_VER_SCROLLBAR + || n == K_HOR_SCROLLBAR +- # endif + #endif + ) + { +--- 3405,3414 ---- + n = TO_SPECIAL(buf[1], buf[2]); + if (buf[1] == KS_MODIFIER + || n == K_IGNORE +! || (is_mouse_key(n) && n != K_LEFTMOUSE) +! #ifdef FEAT_GUI + || n == K_VER_SCROLLBAR + || n == K_HOR_SCROLLBAR + #endif + ) + { +*** ../vim-7.3.861/src/proto/misc1.pro 2012-11-20 16:56:49.000000000 +0100 +--- src/proto/misc1.pro 2013-03-16 14:02:33.000000000 +0100 +*************** +*** 42,47 **** +--- 42,48 ---- + void check_status __ARGS((buf_T *buf)); + void change_warning __ARGS((int col)); + int ask_yesno __ARGS((char_u *str, int direct)); ++ int is_mouse_key __ARGS((int c)); + int get_keystroke __ARGS((void)); + int get_number __ARGS((int colon, int *mouse_used)); + int prompt_for_number __ARGS((int *mouse_used)); +*** ../vim-7.3.861/src/normal.c 2013-03-13 19:02:37.000000000 +0100 +--- src/normal.c 2013-03-16 14:09:34.000000000 +0100 +*************** +*** 2443,2449 **** + return FALSE; + } + +! which_button = get_mouse_button(KEY2TERMCAP1(c), &is_click, &is_drag); + + #ifdef FEAT_MOUSESHAPE + /* May have stopped dragging the status or separator line. The pointer is +--- 2443,2473 ---- + return FALSE; + } + +! for (;;) +! { +! which_button = get_mouse_button(KEY2TERMCAP1(c), &is_click, &is_drag); +! if (is_drag) +! { +! /* If the next character is the same mouse event then use that +! * one. Speeds up dragging the status line. */ +! if (vpeekc() != NUL) +! { +! int nc; +! int save_mouse_row = mouse_row; +! int save_mouse_col = mouse_col; +! +! /* Need to get the character, peeking doesn't get the actual +! * one. */ +! nc = safe_vgetc(); +! if (c == nc) +! continue; +! vungetc(nc); +! mouse_row = save_mouse_row; +! mouse_col = save_mouse_col; +! } +! } +! break; +! } + + #ifdef FEAT_MOUSESHAPE + /* May have stopped dragging the status or separator line. The pointer is +*** ../vim-7.3.861/src/version.c 2013-03-13 20:42:28.000000000 +0100 +--- src/version.c 2013-03-16 14:18:36.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 862, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +53. To find out what time it is, you send yourself an e-mail and check the + "Date:" field. + + /// 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 /// From 9259b4aafd82b8d4195838fef3e3545221b8cf59 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:23 +0200 Subject: [PATCH 201/291] - patchlevel 863 --- 7.3.863 | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 7.3.863 diff --git a/7.3.863 b/7.3.863 new file mode 100644 index 00000000..64bd9ba1 --- /dev/null +++ b/7.3.863 @@ -0,0 +1,91 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.863 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.863 (after 7.3.859) +Problem: Problem with 'ambiwidth' detection for ANSI terminal. +Solution: Work around not recognizing a term response. (Hayaki Saito) +Files: src/term.c + + +*** ../vim-7.3.862/src/term.c 2013-03-13 19:29:24.000000000 +0100 +--- src/term.c 2013-03-16 14:29:00.000000000 +0100 +*************** +*** 3926,3933 **** + * Check at several positions in typebuf.tb_buf[], to catch something like + * "x" that can be mapped. Stop at max_offset, because characters + * after that cannot be used for mapping, and with @r commands +! * typebuf.tb_buf[] +! * can become very long. + * This is used often, KEEP IT FAST! + */ + for (offset = 0; offset < max_offset; ++offset) +--- 3926,3932 ---- + * Check at several positions in typebuf.tb_buf[], to catch something like + * "x" that can be mapped. Stop at max_offset, because characters + * after that cannot be used for mapping, and with @r commands +! * typebuf.tb_buf[] can become very long. + * This is used often, KEEP IT FAST! + */ + for (offset = 0; offset < max_offset; ++offset) +*************** +*** 4098,4104 **** + #ifdef FEAT_TERMRESPONSE + if (key_name[0] == NUL + /* URXVT mouse uses [#;#;#M, but we are matching [ */ +! || key_name[0] == KS_URXVT_MOUSE) + { + /* Check for some responses from terminal start with "[" or + * CSI. +--- 4097,4107 ---- + #ifdef FEAT_TERMRESPONSE + if (key_name[0] == NUL + /* URXVT mouse uses [#;#;#M, but we are matching [ */ +! || key_name[0] == KS_URXVT_MOUSE +! # ifdef FEAT_MBYTE +! || u7_status == U7_SENT +! # endif +! ) + { + /* Check for some responses from terminal start with "[" or + * CSI. +*************** +*** 4129,4135 **** + + #ifdef FEAT_MBYTE + /* eat it when it has 2 arguments and ends in 'R' */ +! if (u7_status == U7_SENT && j == 1 && tp[i] == 'R') + { + char *p = NULL; + +--- 4132,4138 ---- + + #ifdef FEAT_MBYTE + /* eat it when it has 2 arguments and ends in 'R' */ +! if (j == 1 && tp[i] == 'R') + { + char *p = NULL; + +*** ../vim-7.3.862/src/version.c 2013-03-16 14:20:45.000000000 +0100 +--- src/version.c 2013-03-16 14:33:16.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 863, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +54. You start tilting your head sideways to smile. :-) + + /// 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 /// From aaee7ef92a728a8a209dfb0a2ceb43938f5a58f9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:23 +0200 Subject: [PATCH 202/291] - patchlevel 864 --- 7.3.864 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.3.864 diff --git a/7.3.864 b/7.3.864 new file mode 100644 index 00000000..c8d0e201 --- /dev/null +++ b/7.3.864 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.864 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.864 (after 7.3.862) +Problem: Can't build without the mouse feature. +Solution: Add an #ifdef. (Ike Devolder) +Files: src/misc1.c + + +*** ../vim-7.3.863/src/misc1.c 2013-03-16 14:20:45.000000000 +0100 +--- src/misc1.c 2013-03-16 21:33:08.000000000 +0100 +*************** +*** 3405,3411 **** +--- 3405,3413 ---- + n = TO_SPECIAL(buf[1], buf[2]); + if (buf[1] == KS_MODIFIER + || n == K_IGNORE ++ #ifdef FEAT_MOUSE + || (is_mouse_key(n) && n != K_LEFTMOUSE) ++ #endif + #ifdef FEAT_GUI + || n == K_VER_SCROLLBAR + || n == K_HOR_SCROLLBAR +*** ../vim-7.3.863/src/version.c 2013-03-16 14:33:32.000000000 +0100 +--- src/version.c 2013-03-16 21:34:15.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 864, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +57. You begin to wonder how on earth your service provider is allowed to call + 200 hours per month "unlimited." + + /// 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 /// From be0e497d550ad1ab9c3f4a2aa4d42c1bda67cdb3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:24 +0200 Subject: [PATCH 203/291] - patchlevel 865 --- 7.3.865 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.3.865 diff --git a/7.3.865 b/7.3.865 new file mode 100644 index 00000000..faffde0f --- /dev/null +++ b/7.3.865 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.865 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.865 (after 7.3.862) +Problem: Mouse position may be wrong. +Solution: Let vungetc() restore the mouse position. +Files: src/getchar.c + + +*** ../vim-7.3.864/src/getchar.c 2012-06-06 12:06:10.000000000 +0200 +--- src/getchar.c 2013-03-16 21:41:02.000000000 +0100 +*************** +*** 1337,1342 **** +--- 1337,1346 ---- + + static int old_char = -1; /* character put back by vungetc() */ + static int old_mod_mask; /* mod_mask for ungotten character */ ++ #ifdef FEAT_MOUSE ++ static int old_mouse_row; /* mouse_row related to old_char */ ++ static int old_mouse_col; /* mouse_col related to old_char */ ++ #endif + + #if defined(FEAT_EVAL) || defined(FEAT_EX_EXTRA) || defined(PROTO) + +*************** +*** 1567,1572 **** +--- 1571,1580 ---- + c = old_char; + old_char = -1; + mod_mask = old_mod_mask; ++ #ifdef FEAT_MOUSE ++ mouse_row = old_mouse_row; ++ mouse_col = old_mouse_col; ++ #endif + } + else + { +*************** +*** 1877,1882 **** +--- 1885,1894 ---- + { + old_char = c; + old_mod_mask = mod_mask; ++ #ifdef FEAT_MOUSE ++ old_mouse_row = mouse_row; ++ old_mouse_col = mouse_col; ++ #endif + } + + /* +*** ../vim-7.3.864/src/version.c 2013-03-16 21:35:28.000000000 +0100 +--- src/version.c 2013-03-16 21:38:44.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 865, + /**/ + +-- +Creating the world with Emacs: M-x let-there-be-light +Creating the world with Vim: :make world + + /// 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 /// From 219fed690413ced179a058b815962fabce8b32d7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:25 +0200 Subject: [PATCH 204/291] - patchlevel 866 --- 7.3.866 | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 7.3.866 diff --git a/7.3.866 b/7.3.866 new file mode 100644 index 00000000..c0da32d2 --- /dev/null +++ b/7.3.866 @@ -0,0 +1,196 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.866 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.866 +Problem: Not serving the X selection during system() isn't nice. +Solution: When using fork() do not loose the selection, keep serving it. + Add a loop similar to handling I/O. (Yukihiro Nakadaira) +Files: src/os_unix.c + + +*** ../vim-7.3.865/src/os_unix.c 2013-03-13 17:50:20.000000000 +0100 +--- src/os_unix.c 2013-03-19 12:34:04.000000000 +0100 +*************** +*** 132,137 **** +--- 132,138 ---- + # include + # include + static Widget xterm_Shell = (Widget)0; ++ static void clip_update __ARGS((void)); + static void xterm_update __ARGS((void)); + # endif + +*************** +*** 1138,1148 **** +--- 1139,1151 ---- + + # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) + static void loose_clipboard __ARGS((void)); ++ # ifdef USE_SYSTEM + static void save_clipboard __ARGS((void)); + static void restore_clipboard __ARGS((void)); + + static void *clip_star_save = NULL; + static void *clip_plus_save = NULL; ++ # endif + + /* + * Called when Vim is going to sleep or execute a shell command. +*************** +*** 1164,1169 **** +--- 1167,1173 ---- + } + } + ++ # ifdef USE_SYSTEM + /* + * Save clipboard text to restore later. + */ +*************** +*** 1199,1204 **** +--- 1203,1209 ---- + clip_plus_save = NULL; + } + } ++ # endif + #endif + + /* +*************** +*** 4009,4021 **** + if (options & SHELL_COOKED) + settmode(TMODE_COOK); /* set to normal mode */ + +- # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) +- /* Disown the clipboard, because is the executed command tries to obtain a +- * selection and we own it we get a deadlock. */ +- save_clipboard(); +- loose_clipboard(); +- # endif +- + /* + * Do this loop twice: + * 1: find number of arguments +--- 4014,4019 ---- +*************** +*** 4788,4793 **** +--- 4786,4796 ---- + } + else + wait_pid = 0; ++ ++ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) ++ /* Handle any X events, e.g. serving the clipboard. */ ++ clip_update(); ++ # endif + } + finished: + p_more = p_more_save; +*************** +*** 4814,4819 **** +--- 4817,4861 ---- + close(toshell_fd); + close(fromshell_fd); + } ++ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) ++ else ++ { ++ /* ++ * Similar to the loop above, but only handle X events, no ++ * I/O. ++ */ ++ for (;;) ++ { ++ if (got_int) ++ { ++ /* CTRL-C sends a signal to the child, we ignore it ++ * ourselves */ ++ # ifdef HAVE_SETSID ++ kill(-pid, SIGINT); ++ # else ++ kill(0, SIGINT); ++ # endif ++ got_int = FALSE; ++ } ++ # ifdef __NeXT__ ++ wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0); ++ # else ++ wait_pid = waitpid(pid, &status, WNOHANG); ++ # endif ++ if ((wait_pid == (pid_t)-1 && errno == ECHILD) ++ || (wait_pid == pid && WIFEXITED(status))) ++ { ++ wait_pid = pid; ++ break; ++ } ++ ++ /* Handle any X events, e.g. serving the clipboard. */ ++ clip_update(); ++ ++ mch_delay(10L, TRUE); ++ } ++ } ++ # endif + + /* + * Wait until our child has exited. +*************** +*** 4884,4892 **** + # ifdef FEAT_TITLE + resettitle(); + # endif +- # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) +- restore_clipboard(); +- # endif + vim_free(newcmd); + + return retval; +--- 4926,4931 ---- +*************** +*** 6868,6873 **** +--- 6907,6927 ---- + # endif + + /* ++ * Catch up with GUI or X events. ++ */ ++ static void ++ clip_update() ++ { ++ # ifdef FEAT_GUI ++ if (gui.in_use) ++ gui_mch_update(); ++ else ++ # endif ++ if (xterm_Shell != (Widget)0) ++ xterm_update(); ++ } ++ ++ /* + * Catch up with any queued X events. This may put keyboard input into the + * input buffer, call resize call-backs, trigger timers etc. If there is + * nothing in the X event queue (& no timers pending), then we return +*** ../vim-7.3.865/src/version.c 2013-03-16 21:42:12.000000000 +0100 +--- src/version.c 2013-03-19 12:30:16.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 866, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +71. You wonder how people walk + + /// 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 /// From 7f399bb764f8aa7a8b5c0b68db8862c003f83511 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:25 +0200 Subject: [PATCH 205/291] - patchlevel 867 --- 7.3.867 | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 7.3.867 diff --git a/7.3.867 b/7.3.867 new file mode 100644 index 00000000..68f4312b --- /dev/null +++ b/7.3.867 @@ -0,0 +1,279 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.867 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.867 +Problem: Matchparen does not update match when using auto-indenting. + (Marc Aldorasi) +Solution: Add the TextChanged and TextChangedI autocommand events. +Files: runtime/plugin/matchparen.vim, src/main.c, src/edit.c, + src/globals.h, src/vim.h, src/fileio.c, src/proto/fileio.pro, + runtime/doc/autocmd.txt + + +*** ../vim-7.3.866/runtime/plugin/matchparen.vim 2010-08-15 21:57:19.000000000 +0200 +--- runtime/plugin/matchparen.vim 2013-03-19 13:16:46.000000000 +0100 +*************** +*** 1,6 **** + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2008 Sep 03 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +--- 1,6 ---- + " Vim plugin for showing matching parens + " Maintainer: Bram Moolenaar +! " Last Change: 2013 Mar 19 + + " Exit quickly when: + " - this plugin was already loaded (or disabled) +*************** +*** 14,19 **** +--- 14,22 ---- + augroup matchparen + " Replace all matchparen autocommands + autocmd! CursorMoved,CursorMovedI,WinEnter * call s:Highlight_Matching_Pair() ++ if exists('##TextChanged') ++ autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair() ++ endif + augroup END + + " Skip the rest if it was already done. +*************** +*** 82,89 **** + endif + + " When not in a string or comment ignore matches inside them. + let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' . +! \ '=~? "string\\|character\\|singlequote\\|comment"' + execute 'if' s_skip '| let s_skip = 0 | endif' + + " Limit the search to lines visible in the window. +--- 85,93 ---- + endif + + " When not in a string or comment ignore matches inside them. ++ " We match "escape" for special items, such as lispEscapeSpecial. + let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' . +! \ '=~? "string\\|character\\|singlequote\\|escape\\|comment"' + execute 'if' s_skip '| let s_skip = 0 | endif' + + " Limit the search to lines visible in the window. +*** ../vim-7.3.866/src/main.c 2013-03-13 20:23:17.000000000 +0100 +--- src/main.c 2013-03-19 13:00:34.000000000 +0100 +*************** +*** 1168,1173 **** +--- 1168,1186 ---- + } + #endif + ++ #ifdef FEAT_AUTOCMD ++ /* Trigger TextChanged if b_changedtick differs. */ ++ if (!finish_op && has_textchanged() ++ && last_changedtick != curbuf->b_changedtick) ++ { ++ if (last_changedtick_buf == curbuf) ++ apply_autocmds(EVENT_TEXTCHANGED, NULL, NULL, ++ FALSE, curbuf); ++ last_changedtick_buf = curbuf; ++ last_changedtick = curbuf->b_changedtick; ++ } ++ #endif ++ + #if defined(FEAT_DIFF) && defined(FEAT_SCROLLBIND) + /* Scroll-binding for diff mode may have been postponed until + * here. Avoids doing it for every change. */ +*** ../vim-7.3.866/src/edit.c 2013-03-07 19:38:49.000000000 +0100 +--- src/edit.c 2013-03-19 13:08:46.000000000 +0100 +*************** +*** 1593,1598 **** +--- 1593,1613 ---- + last_cursormoved = curwin->w_cursor; + } + #endif ++ #ifdef FEAT_AUTOCMD ++ /* Trigger TextChangedI if b_changedtick differs. */ ++ if (!ready && has_textchangedI() ++ && last_changedtick != curbuf->b_changedtick ++ # ifdef FEAT_INS_EXPAND ++ && !pum_visible() ++ # endif ++ ) ++ { ++ if (last_changedtick_buf == curbuf) ++ apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf); ++ last_changedtick_buf = curbuf; ++ last_changedtick = curbuf->b_changedtick; ++ } ++ #endif + if (must_redraw) + update_screen(0); + else if (clear_cmdline || redraw_cmdline) +*** ../vim-7.3.866/src/globals.h 2013-02-26 14:56:24.000000000 +0100 +--- src/globals.h 2013-03-19 13:11:35.000000000 +0100 +*************** +*** 1057,1067 **** + EXTERN int autocmd_bufnr INIT(= 0); /* fnum for on cmdline */ + EXTERN char_u *autocmd_match INIT(= NULL); /* name for on cmdline */ + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ +! EXTERN pos_T last_cursormoved /* for CursorMoved event */ + # ifdef DO_INIT + = INIT_POS_T(0, 0, 0) + # endif + ; + #endif + + #ifdef FEAT_WINDOWS +--- 1057,1069 ---- + EXTERN int autocmd_bufnr INIT(= 0); /* fnum for on cmdline */ + EXTERN char_u *autocmd_match INIT(= NULL); /* name for on cmdline */ + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ +! EXTERN pos_T last_cursormoved /* for CursorMoved event */ + # ifdef DO_INIT + = INIT_POS_T(0, 0, 0) + # endif + ; ++ EXTERN int last_changedtick INIT(= 0); /* for TextChanged event */ ++ EXTERN buf_T *last_changedtick_buf INIT(= NULL); + #endif + + #ifdef FEAT_WINDOWS +*** ../vim-7.3.866/src/vim.h 2013-02-26 14:56:24.000000000 +0100 +--- src/vim.h 2013-03-19 13:07:00.000000000 +0100 +*************** +*** 1300,1305 **** +--- 1300,1307 ---- + EVENT_TABENTER, /* after entering a tab page */ + EVENT_SHELLCMDPOST, /* after ":!cmd" */ + EVENT_SHELLFILTERPOST, /* after ":1,2!cmd", ":w !cmd", ":r !cmd". */ ++ EVENT_TEXTCHANGED, /* text was modified */ ++ EVENT_TEXTCHANGEDI, /* text was modified in Insert mode*/ + NUM_EVENTS /* MUST be the last one */ + }; + +*** ../vim-7.3.866/src/fileio.c 2013-01-30 14:13:52.000000000 +0100 +--- src/fileio.c 2013-03-19 13:08:31.000000000 +0100 +*************** +*** 7713,7718 **** +--- 7713,7720 ---- + {"TabLeave", EVENT_TABLEAVE}, + {"TermChanged", EVENT_TERMCHANGED}, + {"TermResponse", EVENT_TERMRESPONSE}, ++ {"TextChanged", EVENT_TEXTCHANGED}, ++ {"TextChangedI", EVENT_TEXTCHANGEDI}, + {"User", EVENT_USER}, + {"VimEnter", EVENT_VIMENTER}, + {"VimLeave", EVENT_VIMLEAVE}, +*************** +*** 9138,9143 **** +--- 9140,9163 ---- + } + + /* ++ * Return TRUE when there is a TextChanged autocommand defined. ++ */ ++ int ++ has_textchanged() ++ { ++ return (first_autopat[(int)EVENT_TEXTCHANGED] != NULL); ++ } ++ ++ /* ++ * Return TRUE when there is a TextChangedI autocommand defined. ++ */ ++ int ++ has_textchangedI() ++ { ++ return (first_autopat[(int)EVENT_TEXTCHANGEDI] != NULL); ++ } ++ ++ /* + * Return TRUE when there is an InsertCharPre autocommand defined. + */ + int +*** ../vim-7.3.866/src/proto/fileio.pro 2012-12-05 19:13:11.000000000 +0100 +--- src/proto/fileio.pro 2013-03-19 13:10:13.000000000 +0100 +*************** +*** 44,49 **** +--- 44,51 ---- + int trigger_cursorhold __ARGS((void)); + int has_cursormoved __ARGS((void)); + int has_cursormovedI __ARGS((void)); ++ int has_textchanged __ARGS((void)); ++ int has_textchangedI __ARGS((void)); + int has_insertcharpre __ARGS((void)); + void block_autocmds __ARGS((void)); + void unblock_autocmds __ARGS((void)); +*** ../vim-7.3.866/runtime/doc/autocmd.txt 2012-03-07 20:13:44.000000000 +0100 +--- runtime/doc/autocmd.txt 2013-03-19 13:22:37.000000000 +0100 +*************** +*** 805,817 **** + TermResponse After the response to |t_RV| is received from + the terminal. The value of |v:termresponse| + can be used to do things depending on the +! terminal version. + *User* + User Never executed automatically. To be used for + autocommands that are only executed with + ":doautocmd". + *UserGettingBored* +! UserGettingBored When the user hits CTRL-C. Just kidding! :-) + *VimEnter* + VimEnter After doing all the startup stuff, including + loading .vimrc files, executing the "-c cmd" +--- 828,858 ---- + TermResponse After the response to |t_RV| is received from + the terminal. The value of |v:termresponse| + can be used to do things depending on the +! terminal version. Note that this event may be +! triggered halfway executing another event, +! especially if file I/O, a shell command or +! anything else that takes time is involved. +! *TextChanged* +! TextChanged After a change was made to the text in the +! current buffer in Normal mode. That is when +! |b:changedtick| has changed. +! Not triggered when there is typeahead or when +! an operator is pending. +! Careful: This is triggered very often, don't +! do anything that the user does not expect or +! that is slow. +! *TextChangedI* +! TextChangedI After a change was made to the text in the +! current buffer in Insert mode. +! Not triggered when the popup menu is visible. +! Otherwise the same as TextChanged. + *User* + User Never executed automatically. To be used for + autocommands that are only executed with + ":doautocmd". + *UserGettingBored* +! UserGettingBored When the user presses the same key 42 times. +! Just kidding! :-) + *VimEnter* + VimEnter After doing all the startup stuff, including + loading .vimrc files, executing the "-c cmd" +*** ../vim-7.3.866/src/version.c 2013-03-19 12:35:33.000000000 +0100 +--- src/version.c 2013-03-19 13:29:58.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 867, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +73. You give your dog used motherboards instead of bones + + /// 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 /// From 20d8e8e0d2d51eec682732788bc5cf92e4b6a755 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:26 +0200 Subject: [PATCH 206/291] - patchlevel 868 --- 7.3.868 | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 7.3.868 diff --git a/7.3.868 b/7.3.868 new file mode 100644 index 00000000..56a0225e --- /dev/null +++ b/7.3.868 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.868 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.868 +Problem: When at the hit-return prompt and using "k" while no text has + scrolled off screen, then using "j", an empty line is displayed. +Solution: Only act on "k" when text scrolled off screen. Also accept + page-up and page-down. (cptstubing) +Files: src/message.c + + +*** ../vim-7.3.867/src/message.c 2012-11-14 18:10:49.000000000 +0100 +--- src/message.c 2013-03-19 13:50:16.000000000 +0100 +*************** +*** 976,985 **** + */ + if (p_more && !p_cp) + { +! if (c == 'b' || c == 'k' || c == 'u' || c == 'g' || c == K_UP) + { +! /* scroll back to show older messages */ +! do_more_prompt(c); + if (quit_more) + { + c = CAR; /* just pretend CR was hit */ +--- 976,997 ---- + */ + if (p_more && !p_cp) + { +! if (c == 'b' || c == 'k' || c == 'u' || c == 'g' +! || c == K_UP || c == K_PAGEUP) + { +! if (msg_scrolled > Rows) +! /* scroll back to show older messages */ +! do_more_prompt(c); +! else +! { +! msg_didout = FALSE; +! c = K_IGNORE; +! msg_col = +! #ifdef FEAT_RIGHTLEFT +! cmdmsg_rl ? Columns - 1 : +! #endif +! 0; +! } + if (quit_more) + { + c = CAR; /* just pretend CR was hit */ +*************** +*** 993,999 **** + } + } + else if (msg_scrolled > Rows - 2 +! && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f')) + c = K_IGNORE; + } + } while ((had_got_int && c == Ctrl_C) +--- 1005,1012 ---- + } + } + else if (msg_scrolled > Rows - 2 +! && (c == 'j' || c == 'd' || c == 'f' +! || c == K_DOWN || c == K_PAGEDOWN)) + c = K_IGNORE; + } + } while ((had_got_int && c == Ctrl_C) +*** ../vim-7.3.867/src/version.c 2013-03-19 13:33:18.000000000 +0100 +--- src/version.c 2013-03-19 13:53:02.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 868, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +74. Your most erotic dreams are about cybersex + + /// 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 /// From 4e368ca8dbb940cd3ab80e8556567e74de557e41 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:26 +0200 Subject: [PATCH 207/291] - patchlevel 869 --- 7.3.869 | 358 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 7.3.869 diff --git a/7.3.869 b/7.3.869 new file mode 100644 index 00000000..a848f0cd --- /dev/null +++ b/7.3.869 @@ -0,0 +1,358 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.869 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.869 +Problem: bufwinnr() matches buffers in other tabs. +Solution: For bufwinnr() and ? only match buffers in the current tab. + (Alexey Radkov) +Files: src/buffer.c, src/diff.c, src/eval.c, src/ex_docmd.c, + src/if_perl.xs, src/proto/buffer.pro + + +*** ../vim-7.3.868/src/buffer.c 2013-02-17 15:45:34.000000000 +0100 +--- src/buffer.c 2013-03-19 14:19:17.000000000 +0100 +*************** +*** 928,934 **** + if (!VIM_ISDIGIT(*arg)) + { + p = skiptowhite_esc(arg); +! bnr = buflist_findpat(arg, p, command == DOBUF_WIPE, FALSE); + if (bnr < 0) /* failed */ + break; + arg = p; +--- 928,935 ---- + if (!VIM_ISDIGIT(*arg)) + { + p = skiptowhite_esc(arg); +! bnr = buflist_findpat(arg, p, command == DOBUF_WIPE, +! FALSE, FALSE); + if (bnr < 0) /* failed */ + break; + arg = p; +*************** +*** 2129,2146 **** + return NULL; + } + +! #if defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) || defined(PROTO) + /* + * Find file in buffer list by a regexp pattern. + * Return fnum of the found buffer. + * Return < 0 for error. + */ + int +! buflist_findpat(pattern, pattern_end, unlisted, diffmode) + char_u *pattern; + char_u *pattern_end; /* pointer to first char after pattern */ + int unlisted; /* find unlisted buffers */ + int diffmode UNUSED; /* find diff-mode buffers only */ + { + buf_T *buf; + regprog_T *prog; +--- 2130,2149 ---- + return NULL; + } + +! #if defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) \ +! || defined(PROTO) + /* + * Find file in buffer list by a regexp pattern. + * Return fnum of the found buffer. + * Return < 0 for error. + */ + int +! buflist_findpat(pattern, pattern_end, unlisted, diffmode, curtab_only) + char_u *pattern; + char_u *pattern_end; /* pointer to first char after pattern */ + int unlisted; /* find unlisted buffers */ + int diffmode UNUSED; /* find diff-mode buffers only */ ++ int curtab_only; /* find buffers in current tab only */ + { + buf_T *buf; + regprog_T *prog; +*************** +*** 2208,2213 **** +--- 2211,2233 ---- + #endif + && buflist_match(prog, buf) != NULL) + { ++ if (curtab_only) ++ { ++ /* Ignore the match if the buffer is not open in ++ * the current tab. */ ++ #ifdef FEAT_WINDOWS ++ win_T *wp; ++ ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ if (wp->w_buffer == buf) ++ break; ++ if (wp == NULL) ++ continue; ++ #else ++ if (curwin->w_buffer != buf) ++ continue; ++ #endif ++ } + if (match >= 0) /* already found a match */ + { + match = -2; +*** ../vim-7.3.868/src/diff.c 2012-10-21 22:18:17.000000000 +0200 +--- src/diff.c 2013-03-19 14:11:40.000000000 +0100 +*************** +*** 2152,2158 **** + i = atol((char *)eap->arg); + else + { +! i = buflist_findpat(eap->arg, p, FALSE, TRUE); + if (i < 0) + return; /* error message already given */ + } +--- 2152,2158 ---- + i = atol((char *)eap->arg); + else + { +! i = buflist_findpat(eap->arg, p, FALSE, TRUE, FALSE); + if (i < 0) + return; /* error message already given */ + } +*** ../vim-7.3.868/src/eval.c 2013-03-16 14:20:45.000000000 +0100 +--- src/eval.c 2013-03-19 14:11:40.000000000 +0100 +*************** +*** 9019,9032 **** + rettv->vval.v_number = (buf != NULL && buf->b_ml.ml_mfp != NULL); + } + +! static buf_T *get_buf_tv __ARGS((typval_T *tv)); + + /* + * Get buffer by number or pattern. + */ + static buf_T * +! get_buf_tv(tv) + typval_T *tv; + { + char_u *name = tv->vval.v_string; + int save_magic; +--- 9019,9033 ---- + rettv->vval.v_number = (buf != NULL && buf->b_ml.ml_mfp != NULL); + } + +! static buf_T *get_buf_tv __ARGS((typval_T *tv, int curtab_only)); + + /* + * Get buffer by number or pattern. + */ + static buf_T * +! get_buf_tv(tv, curtab_only) + typval_T *tv; ++ int curtab_only; + { + char_u *name = tv->vval.v_string; + int save_magic; +*************** +*** 9049,9055 **** + p_cpo = (char_u *)""; + + buf = buflist_findnr(buflist_findpat(name, name + STRLEN(name), +! TRUE, FALSE)); + + p_magic = save_magic; + p_cpo = save_cpo; +--- 9050,9056 ---- + p_cpo = (char_u *)""; + + buf = buflist_findnr(buflist_findpat(name, name + STRLEN(name), +! TRUE, FALSE, curtab_only)); + + p_magic = save_magic; + p_cpo = save_cpo; +*************** +*** 9073,9079 **** + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0]); + rettv->v_type = VAR_STRING; + if (buf != NULL && buf->b_fname != NULL) + rettv->vval.v_string = vim_strsave(buf->b_fname); +--- 9074,9080 ---- + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0], FALSE); + rettv->v_type = VAR_STRING; + if (buf != NULL && buf->b_fname != NULL) + rettv->vval.v_string = vim_strsave(buf->b_fname); +*************** +*** 9096,9102 **** + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0]); + --emsg_off; + + /* If the buffer isn't found and the second argument is not zero create a +--- 9097,9103 ---- + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0], FALSE); + --emsg_off; + + /* If the buffer isn't found and the second argument is not zero create a +*************** +*** 9131,9137 **** + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0]); + #ifdef FEAT_WINDOWS + for (wp = firstwin; wp; wp = wp->w_next) + { +--- 9132,9138 ---- + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0], TRUE); + #ifdef FEAT_WINDOWS + for (wp = firstwin; wp; wp = wp->w_next) + { +*************** +*** 11095,11101 **** + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0]); + --emsg_off; + + lnum = get_tv_lnum_buf(&argvars[1], buf); +--- 11096,11102 ---- + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + ++emsg_off; +! buf = get_buf_tv(&argvars[0], FALSE); + --emsg_off; + + lnum = get_tv_lnum_buf(&argvars[1], buf); +*************** +*** 11123,11129 **** + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); + ++emsg_off; +! buf = get_buf_tv(&argvars[0]); + + if (argvars[2].v_type != VAR_UNKNOWN) + /* set the default value */ +--- 11124,11130 ---- + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); + ++emsg_off; +! buf = get_buf_tv(&argvars[0], FALSE); + + if (argvars[2].v_type != VAR_UNKNOWN) + /* set the default value */ +*************** +*** 16216,16222 **** + return; + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); +! buf = get_buf_tv(&argvars[0]); + varp = &argvars[2]; + + if (buf != NULL && varname != NULL && varp != NULL) +--- 16217,16223 ---- + return; + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); +! buf = get_buf_tv(&argvars[0], FALSE); + varp = &argvars[2]; + + if (buf != NULL && varname != NULL && varp != NULL) +*** ../vim-7.3.868/src/ex_docmd.c 2013-03-13 18:30:39.000000000 +0100 +--- src/ex_docmd.c 2013-03-19 14:15:17.000000000 +0100 +*************** +*** 2645,2651 **** + while (p > ea.arg && vim_iswhite(p[-1])) + --p; + } +! ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & BUFUNL) != 0, FALSE); + if (ea.line2 < 0) /* failed */ + goto doend; + ea.addr_count = 1; +--- 2645,2652 ---- + while (p > ea.arg && vim_iswhite(p[-1])) + --p; + } +! ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & BUFUNL) != 0, +! FALSE, FALSE); + if (ea.line2 < 0) /* failed */ + goto doend; + ea.addr_count = 1; +*** ../vim-7.3.868/src/if_perl.xs 2013-02-14 22:19:47.000000000 +0100 +--- src/if_perl.xs 2013-03-19 14:15:46.000000000 +0100 +*************** +*** 1056,1062 **** + + pat = (char_u *)SvPV(sv, len); + ++emsg_off; +! b = buflist_findpat(pat, pat+len, FALSE, FALSE); + --emsg_off; + } + +--- 1056,1062 ---- + + pat = (char_u *)SvPV(sv, len); + ++emsg_off; +! b = buflist_findpat(pat, pat+len, FALSE, FALSE, FALSE); + --emsg_off; + } + +*** ../vim-7.3.868/src/proto/buffer.pro 2012-10-03 18:24:55.000000000 +0200 +--- src/proto/buffer.pro 2013-03-19 14:16:22.000000000 +0100 +*************** +*** 17,23 **** + void buflist_getfpos __ARGS((void)); + buf_T *buflist_findname_exp __ARGS((char_u *fname)); + buf_T *buflist_findname __ARGS((char_u *ffname)); +! int buflist_findpat __ARGS((char_u *pattern, char_u *pattern_end, int unlisted, int diffmode)); + int ExpandBufnames __ARGS((char_u *pat, int *num_file, char_u ***file, int options)); + buf_T *buflist_findnr __ARGS((int nr)); + char_u *buflist_nr2name __ARGS((int n, int fullname, int helptail)); +--- 17,23 ---- + void buflist_getfpos __ARGS((void)); + buf_T *buflist_findname_exp __ARGS((char_u *fname)); + buf_T *buflist_findname __ARGS((char_u *ffname)); +! int buflist_findpat __ARGS((char_u *pattern, char_u *pattern_end, int unlisted, int diffmode, int curtab_only)); + int ExpandBufnames __ARGS((char_u *pat, int *num_file, char_u ***file, int options)); + buf_T *buflist_findnr __ARGS((int nr)); + char_u *buflist_nr2name __ARGS((int n, int fullname, int helptail)); +*** ../vim-7.3.868/src/version.c 2013-03-19 13:56:03.000000000 +0100 +--- src/version.c 2013-03-19 14:23:42.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 869, + /**/ + +-- +Proof techniques #2: Proof by Oddity. + SAMPLE: To prove that horses have an infinite number of legs. +(1) Horses have an even number of legs. +(2) They have two legs in back and fore legs in front. +(3) This makes a total of six legs, which certainly is an odd number of + legs for a horse. +(4) But the only number that is both odd and even is infinity. +(5) Therefore, horses must have an infinite number of legs. + + /// 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 /// From 9197e4b739317b03fddbeb33bc4611be5d7963fd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:27 +0200 Subject: [PATCH 208/291] - patchlevel 870 --- 7.3.870 | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 7.3.870 diff --git a/7.3.870 b/7.3.870 new file mode 100644 index 00000000..38bb219f --- /dev/null +++ b/7.3.870 @@ -0,0 +1,203 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.870 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.870 +Problem: Compiler warnings when using MingW 4.5.3. +Solution: Do not use MAKEINTRESOURCE. Adjust #if. (Ken Takata) +Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c, + src/os_win32.h + + +*** ../vim-7.3.869/src/gui_w32.c 2012-11-20 16:53:34.000000000 +0100 +--- src/gui_w32.c 2013-03-19 14:45:24.000000000 +0100 +*************** +*** 1614,1620 **** + #endif + + #ifdef FEAT_EVAL +! # if _MSC_VER < 1400 + /* HandleToLong() only exists in compilers that can do 64 bit builds */ + # define HandleToLong(h) ((long)(h)) + # endif +--- 1614,1620 ---- + #endif + + #ifdef FEAT_EVAL +! # ifndef HandleToLong + /* HandleToLong() only exists in compilers that can do 64 bit builds */ + # define HandleToLong(h) ((long)(h)) + # endif +*** ../vim-7.3.869/src/gui_w48.c 2013-01-25 19:28:34.000000000 +0100 +--- src/gui_w48.c 2013-03-19 14:46:35.000000000 +0100 +*************** +*** 3265,3291 **** + * misc2.c! */ + static LPCSTR mshape_idcs[] = + { +! MAKEINTRESOURCE(IDC_ARROW), /* arrow */ +! MAKEINTRESOURCE(0), /* blank */ +! MAKEINTRESOURCE(IDC_IBEAM), /* beam */ +! MAKEINTRESOURCE(IDC_SIZENS), /* updown */ +! MAKEINTRESOURCE(IDC_SIZENS), /* udsizing */ +! MAKEINTRESOURCE(IDC_SIZEWE), /* leftright */ +! MAKEINTRESOURCE(IDC_SIZEWE), /* lrsizing */ +! MAKEINTRESOURCE(IDC_WAIT), /* busy */ + #ifdef WIN3264 +! MAKEINTRESOURCE(IDC_NO), /* no */ + #else +! MAKEINTRESOURCE(IDC_ICON), /* no */ + #endif +! MAKEINTRESOURCE(IDC_ARROW), /* crosshair */ +! MAKEINTRESOURCE(IDC_ARROW), /* hand1 */ +! MAKEINTRESOURCE(IDC_ARROW), /* hand2 */ +! MAKEINTRESOURCE(IDC_ARROW), /* pencil */ +! MAKEINTRESOURCE(IDC_ARROW), /* question */ +! MAKEINTRESOURCE(IDC_ARROW), /* right-arrow */ +! MAKEINTRESOURCE(IDC_UPARROW), /* up-arrow */ +! MAKEINTRESOURCE(IDC_ARROW) /* last one */ + }; + + void +--- 3265,3291 ---- + * misc2.c! */ + static LPCSTR mshape_idcs[] = + { +! IDC_ARROW, /* arrow */ +! MAKEINTRESOURCE(0), /* blank */ +! IDC_IBEAM, /* beam */ +! IDC_SIZENS, /* updown */ +! IDC_SIZENS, /* udsizing */ +! IDC_SIZEWE, /* leftright */ +! IDC_SIZEWE, /* lrsizing */ +! IDC_WAIT, /* busy */ + #ifdef WIN3264 +! IDC_NO, /* no */ + #else +! IDC_ICON, /* no */ + #endif +! IDC_ARROW, /* crosshair */ +! IDC_ARROW, /* hand1 */ +! IDC_ARROW, /* hand2 */ +! IDC_ARROW, /* pencil */ +! IDC_ARROW, /* question */ +! IDC_ARROW, /* right-arrow */ +! IDC_UPARROW, /* up-arrow */ +! IDC_ARROW /* last one */ + }; + + void +*************** +*** 3298,3304 **** + else + { + if (shape >= MSHAPE_NUMBERED) +! idc = MAKEINTRESOURCE(IDC_ARROW); + else + idc = mshape_idcs[shape]; + #ifdef SetClassLongPtr +--- 3298,3304 ---- + else + { + if (shape >= MSHAPE_NUMBERED) +! idc = IDC_ARROW; + else + idc = mshape_idcs[shape]; + #ifdef SetClassLongPtr +*** ../vim-7.3.869/src/os_mswin.c 2013-02-26 14:56:24.000000000 +0100 +--- src/os_mswin.c 2013-03-19 14:45:24.000000000 +0100 +*************** +*** 184,195 **** +--- 184,197 ---- + } + # endif + ++ # if !defined(__MINGW32__) || (__GNUC__ < 4) + int _chdrive(int drive) + { + char temp [3] = "-:"; + temp[0] = drive + 'A' - 1; + return !SetCurrentDirectory(temp); + } ++ # endif + #else + # ifdef __BORLANDC__ + /* being a more ANSI compliant compiler, BorlandC doesn't define _stricoll: +*** ../vim-7.3.869/src/os_win32.c 2013-02-26 14:56:24.000000000 +0100 +--- src/os_win32.c 2013-03-19 14:45:24.000000000 +0100 +*************** +*** 163,169 **** + + /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE +! LRESULT (WINAPI *pDispatchMessage)(LPMSG) = DispatchMessage; + BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage; + BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG) = IsDialogMessage; + BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage; +--- 163,169 ---- + + /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE +! LRESULT (WINAPI *pDispatchMessage)(CONST MSG *) = DispatchMessage; + BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage; + BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG) = IsDialogMessage; + BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage; +*************** +*** 3464,3470 **** + && (lnum != curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) + { +! WriteFile(g_hChildStd_IN_Wr, "\n", 1, &ignored, NULL); + } + + ++lnum; +--- 3464,3470 ---- + && (lnum != curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) + { +! WriteFile(g_hChildStd_IN_Wr, "\n", 1, (LPDWORD)&ignored, NULL); + } + + ++lnum; +*** ../vim-7.3.869/src/os_win32.h 2012-11-20 16:53:34.000000000 +0100 +--- src/os_win32.h 2013-03-19 14:45:24.000000000 +0100 +*************** +*** 204,210 **** + /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE + /* The variables are defined in os_win32.c. */ +! extern LRESULT (WINAPI *pDispatchMessage)(LPMSG); + extern BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT); + extern BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG); + extern BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT); +--- 204,210 ---- + /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE + /* The variables are defined in os_win32.c. */ +! extern LRESULT (WINAPI *pDispatchMessage)(CONST MSG *); + extern BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT); + extern BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG); + extern BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT); +*** ../vim-7.3.869/src/version.c 2013-03-19 14:25:50.000000000 +0100 +--- src/version.c 2013-03-19 14:45:42.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 870, + /**/ + +-- +Q: How many legs does a giraffe have? +A: Eight: two in front, two behind, two on the left and two on the right + + /// 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 /// From 9681cac6fc0777b081a1503227d3ae207487f47e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:28 +0200 Subject: [PATCH 209/291] - patchlevel 871 --- 7.3.871 | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 7.3.871 diff --git a/7.3.871 b/7.3.871 new file mode 100644 index 00000000..25ab1dd0 --- /dev/null +++ b/7.3.871 @@ -0,0 +1,102 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.871 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.871 +Problem: search('^$', 'c') does not use the empty match under the cursor. +Solution: Special handling of the 'c' flag. (Christian Brabandt) + Add tests. +Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok + + +*** ../vim-7.3.870/src/search.c 2013-02-20 18:39:07.000000000 +0100 +--- src/search.c 2013-03-19 15:23:13.000000000 +0100 +*************** +*** 727,732 **** +--- 727,734 ---- + ++matchcol; + } + } ++ if (options & SEARCH_START) ++ break; + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, + win, buf, lnum + matchpos.lnum, +*** ../vim-7.3.870/src/testdir/test14.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test14.in 2013-03-19 15:21:54.000000000 +0100 +*************** +*** 2,7 **** +--- 2,8 ---- + Also test ":s/pat/sub/" with different ~s in sub. + Also test for ^Vxff and ^Vo123 in Insert mode. + Also test "[m", "]m", "[M" and "]M" ++ Also test search() + + STARTTEST + :so small.vim +*************** +*** 34,39 **** +--- 35,50 ---- + 2[MaJ:.w >>test.out + k[MaK:.w >>test.out + 3[MaL:.w >>test.out ++ :" ++ /^foobar ++ :let startline = line('.') ++ :call search('foobar', 'c') ++ :call append(line('$'), line('.') - startline) ++ j:call search('^$', 'c') ++ :call append(line('$'), line('.') - startline) ++ :call search('^$', 'bc') ++ :call append(line('$'), line('.') - startline) ++ :/^search()/,$w >>test.out + :qa! + ENDTEST + +*************** +*** 64,66 **** +--- 75,82 ---- + } + } e3 + } ++ ++ foobar ++ ++ ++ search() +*** ../vim-7.3.870/src/testdir/test14.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test14.ok 2013-03-19 15:26:18.000000000 +0100 +*************** +*** 15,17 **** +--- 15,21 ---- + }JH e3 + }K e2 + {LF ++ search() ++ 0 ++ 1 ++ 1 +*** ../vim-7.3.870/src/version.c 2013-03-19 14:48:25.000000000 +0100 +--- src/version.c 2013-03-19 15:26:38.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 871, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +75. You start wondering whether you could actually upgrade your brain + with a Pentium Pro microprocessor 80. The upgrade works just fine. + + /// 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 /// From 30914c92e24edb2b1f5090ba1382fb0e317760d4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:28 +0200 Subject: [PATCH 210/291] - patchlevel 872 --- 7.3.872 | 524 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 524 insertions(+) create mode 100644 7.3.872 diff --git a/7.3.872 b/7.3.872 new file mode 100644 index 00000000..0e407f45 --- /dev/null +++ b/7.3.872 @@ -0,0 +1,524 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.872 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.872 +Problem: On some systems case of file names is always ignored, on others + never. +Solution: Add the 'fileignorecase' option to control this at runtime. + Implies 'wildignorecase'. +Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c, + src/fileio.c, src/misc1.c, src/misc2.c, src/option.c, + src/option.h, src/vim.h, runtime/doc/options.txt + + +*** ../vim-7.3.871/src/buffer.c 2013-03-19 14:25:50.000000000 +0100 +--- src/buffer.c 2013-03-19 16:03:42.000000000 +0100 +*************** +*** 2401,2412 **** + if (name != NULL) + { + regmatch.regprog = prog; +! #ifdef CASE_INSENSITIVE_FILENAME +! regmatch.rm_ic = TRUE; /* Always ignore case */ +! #else +! regmatch.rm_ic = FALSE; /* Never ignore case */ +! #endif +! + if (vim_regexec(®match, name, (colnr_T)0)) + match = name; + else +--- 2401,2407 ---- + if (name != NULL) + { + regmatch.regprog = prog; +! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */ + if (vim_regexec(®match, name, (colnr_T)0)) + match = name; + else +*** ../vim-7.3.871/src/edit.c 2013-03-19 13:33:18.000000000 +0100 +--- src/edit.c 2013-03-19 15:43:19.000000000 +0100 +*************** +*** 4336,4348 **** + + /* May change home directory back to "~". */ + tilde_replace(compl_pattern, num_matches, matches); +! ins_compl_add_matches(num_matches, matches, +! #ifdef CASE_INSENSITIVE_FILENAME +! TRUE +! #else +! FALSE +! #endif +! ); + } + break; + +--- 4336,4342 ---- + + /* May change home directory back to "~". */ + tilde_replace(compl_pattern, num_matches, matches); +! ins_compl_add_matches(num_matches, matches, p_fic || p_wic); + } + break; + +*** ../vim-7.3.871/src/ex_cmds2.c 2012-10-03 18:24:55.000000000 +0200 +--- src/ex_cmds2.c 2013-03-19 16:03:50.000000000 +0100 +*************** +*** 1926,1936 **** + * Delete the items: use each item as a regexp and find a match in the + * argument list. + */ +! #ifdef CASE_INSENSITIVE_FILENAME +! regmatch.rm_ic = TRUE; /* Always ignore case */ +! #else +! regmatch.rm_ic = FALSE; /* Never ignore case */ +! #endif + for (i = 0; i < new_ga.ga_len && !got_int; ++i) + { + p = ((char_u **)new_ga.ga_data)[i]; +--- 1926,1932 ---- + * Delete the items: use each item as a regexp and find a match in the + * argument list. + */ +! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */ + for (i = 0; i < new_ga.ga_len && !got_int; ++i) + { + p = ((char_u **)new_ga.ga_data)[i]; +*** ../vim-7.3.871/src/ex_getln.c 2012-11-28 16:49:53.000000000 +0100 +--- src/ex_getln.c 2013-03-19 16:03:53.000000000 +0100 +*************** +*** 3653,3671 **** + { + for (i = 0; i < xp->xp_numfiles; ++i) + { +! #ifdef CASE_INSENSITIVE_FILENAME +! if (xp->xp_context == EXPAND_DIRECTORIES + || xp->xp_context == EXPAND_FILES + || xp->xp_context == EXPAND_SHELLCMD +! || xp->xp_context == EXPAND_BUFFERS) + { + if (TOLOWER_LOC(xp->xp_files[i][len]) != + TOLOWER_LOC(xp->xp_files[0][len])) + break; + } +! else +! #endif +! if (xp->xp_files[i][len] != xp->xp_files[0][len]) + break; + } + if (i < xp->xp_numfiles) +--- 3653,3668 ---- + { + for (i = 0; i < xp->xp_numfiles; ++i) + { +! if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES + || xp->xp_context == EXPAND_FILES + || xp->xp_context == EXPAND_SHELLCMD +! || xp->xp_context == EXPAND_BUFFERS)) + { + if (TOLOWER_LOC(xp->xp_files[i][len]) != + TOLOWER_LOC(xp->xp_files[0][len])) + break; + } +! else if (xp->xp_files[i][len] != xp->xp_files[0][len]) + break; + } + if (i < xp->xp_numfiles) +*** ../vim-7.3.871/src/fileio.c 2013-03-19 13:33:18.000000000 +0100 +--- src/fileio.c 2013-03-19 15:49:28.000000000 +0100 +*************** +*** 6485,6493 **** + #ifdef HAVE_ACL + vim_acl_T acl; /* ACL from original file */ + #endif +- #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME) + int use_tmp_file = FALSE; +- #endif + + /* + * When the names are identical, there is nothing to do. When they refer +--- 6485,6491 ---- +*************** +*** 6496,6506 **** + */ + if (fnamecmp(from, to) == 0) + { +! #ifdef CASE_INSENSITIVE_FILENAME +! if (STRCMP(gettail(from), gettail(to)) != 0) + use_tmp_file = TRUE; + else +- #endif + return 0; + } + +--- 6494,6502 ---- + */ + if (fnamecmp(from, to) == 0) + { +! if (p_fic && STRCMP(gettail(from), gettail(to)) != 0) + use_tmp_file = TRUE; + else + return 0; + } + +*************** +*** 6539,6545 **** + } + #endif + +- #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME) + if (use_tmp_file) + { + char tempname[MAXPATHL + 1]; +--- 6535,6540 ---- +*************** +*** 6572,6578 **** + } + return -1; + } +- #endif + + /* + * Delete the "to" file, this is required on some systems to make the +--- 6567,6572 ---- +*************** +*** 10007,10017 **** + int match = FALSE; + #endif + +! #ifdef CASE_INSENSITIVE_FILENAME +! regmatch.rm_ic = TRUE; /* Always ignore case */ +! #else +! regmatch.rm_ic = FALSE; /* Don't ever ignore case */ +! #endif + #ifdef FEAT_OSFILETYPE + if (*pattern == '<') + { +--- 10001,10007 ---- + int match = FALSE; + #endif + +! regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */ + #ifdef FEAT_OSFILETYPE + if (*pattern == '<') + { +*** ../vim-7.3.871/src/misc1.c 2013-03-16 21:35:28.000000000 +0100 +--- src/misc1.c 2013-03-19 16:16:24.000000000 +0100 +*************** +*** 5026,5041 **** + return retval; + } + +- #if (defined(CASE_INSENSITIVE_FILENAME) && defined(BACKSLASH_IN_FILENAME)) \ +- || defined(PROTO) + /* +! * Versions of fnamecmp() and fnamencmp() that handle '/' and '\' equally. + */ + int + vim_fnamecmp(x, y) + char_u *x, *y; + { + return vim_fnamencmp(x, y, MAXPATHL); + } + + int +--- 5026,5046 ---- + return retval; + } + + /* +! * Versions of fnamecmp() and fnamencmp() that handle '/' and '\' equally +! * and deal with 'fileignorecase'. + */ + int + vim_fnamecmp(x, y) + char_u *x, *y; + { ++ #ifdef BACKSLASH_IN_FILENAME + return vim_fnamencmp(x, y, MAXPATHL); ++ #else ++ if (p_fic) ++ return MB_STRICMP(x, y); ++ return STRCMP(x, y); ++ #endif + } + + int +*************** +*** 5043,5051 **** + char_u *x, *y; + size_t len; + { + while (len > 0 && *x && *y) + { +! if (TOLOWER_LOC(*x) != TOLOWER_LOC(*y) + && !(*x == '/' && *y == '\\') + && !(*x == '\\' && *y == '/')) + break; +--- 5048,5058 ---- + char_u *x, *y; + size_t len; + { ++ #ifdef BACKSLASH_IN_FILENAME ++ /* TODO: multi-byte characters. */ + while (len > 0 && *x && *y) + { +! if ((p_fic ? TOLOWER_LOC(*x) != TOLOWER_LOC(*y) : *x != *y) + && !(*x == '/' && *y == '\\') + && !(*x == '\\' && *y == '/')) + break; +*************** +*** 5056,5063 **** + if (len == 0) + return 0; + return (*x - *y); +! } + #endif + + /* + * Concatenate file names fname1 and fname2 into allocated memory. +--- 5063,5074 ---- + if (len == 0) + return 0; + return (*x - *y); +! #else +! if (p_fic) +! return MB_STRNICMP(x, y, len); +! return STRNCMP(x, y, len); + #endif ++ } + + /* + * Concatenate file names fname1 and fname2 into allocated memory. +*************** +*** 9835,9845 **** + } + else if (path_end >= path + wildoff + && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL +! #ifndef CASE_INSENSITIVE_FILENAME +! || ((flags & EW_ICASE) +! && isalpha(PTR2CHAR(path_end))) +! #endif +! )) + e = p; + #ifdef FEAT_MBYTE + if (has_mbyte) +--- 9846,9853 ---- + } + else if (path_end >= path + wildoff + && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL +! || (!p_fic && (flags & EW_ICASE) +! && isalpha(PTR2CHAR(path_end))))) + e = p; + #ifdef FEAT_MBYTE + if (has_mbyte) +*************** +*** 9882,9895 **** + } + + /* compile the regexp into a program */ +- #ifdef CASE_INSENSITIVE_FILENAME +- regmatch.rm_ic = TRUE; /* Behave like Terminal.app */ +- #else + if (flags & EW_ICASE) + regmatch.rm_ic = TRUE; /* 'wildignorecase' set */ + else +! regmatch.rm_ic = FALSE; /* Don't ignore case */ +! #endif + if (flags & (EW_NOERROR | EW_NOTWILD)) + ++emsg_silent; + regmatch.regprog = vim_regcomp(pat, RE_MAGIC); +--- 9890,9899 ---- + } + + /* compile the regexp into a program */ + if (flags & EW_ICASE) + regmatch.rm_ic = TRUE; /* 'wildignorecase' set */ + else +! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */ + if (flags & (EW_NOERROR | EW_NOTWILD)) + ++emsg_silent; + regmatch.regprog = vim_regcomp(pat, RE_MAGIC); +*** ../vim-7.3.871/src/misc2.c 2012-11-28 18:31:49.000000000 +0100 +--- src/misc2.c 2013-03-19 16:39:56.000000000 +0100 +*************** +*** 5362,5374 **** + if (STRLEN(s1) != STRLEN(s2)) + return FAIL; + + for (i = 0; s1[i] != NUL && s2[i] != NUL; i++) + { + if (s1[i] != s2[i] +! #ifdef CASE_INSENSITIVE_FILENAME +! && TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i]) +! #endif +! ) + { + if (i >= 2) + if (s1[i-1] == '*' && s1[i-2] == '*') +--- 5362,5372 ---- + if (STRLEN(s1) != STRLEN(s2)) + return FAIL; + ++ /* TODO: handle multi-byte characters. */ + for (i = 0; s1[i] != NUL && s2[i] != NUL; i++) + { + if (s1[i] != s2[i] +! && (!p_fic || TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i]))) + { + if (i >= 2) + if (s1[i-1] == '*' && s1[i-2] == '*') +*************** +*** 6123,6134 **** + break; + } + +! if ( +! #ifdef CASE_INSENSITIVE_FILENAME +! TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i]) +! #else +! p[i] != q[i] +! #endif + #ifdef BACKSLASH_IN_FILENAME + /* consider '/' and '\\' to be equal */ + && !((p[i] == '/' && q[i] == '\\') +--- 6121,6127 ---- + break; + } + +! if ((p_fic ? TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i]) : p[i] != q[i]) + #ifdef BACKSLASH_IN_FILENAME + /* consider '/' and '\\' to be equal */ + && !((p[i] == '/' && q[i] == '\\') +*** ../vim-7.3.871/src/option.c 2013-03-13 20:42:28.000000000 +0100 +--- src/option.c 2013-03-19 15:40:25.000000000 +0100 +*************** +*** 1108,1113 **** +--- 1108,1122 ---- + (char_u *)&p_ffs, PV_NONE, + {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM} + SCRIPTID_INIT}, ++ {"fileignorecase", "fic", P_BOOL|P_VI_DEF, ++ (char_u *)&p_fic, PV_NONE, ++ { ++ #ifdef CASE_INSENSITIVE_FILENAME ++ (char_u *)TRUE, ++ #else ++ (char_u *)FALSE, ++ #endif ++ (char_u *)0L} SCRIPTID_INIT}, + {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ft, PV_FT, +*** ../vim-7.3.871/src/option.h 2012-08-15 16:20:59.000000000 +0200 +--- src/option.h 2013-03-19 15:42:24.000000000 +0100 +*************** +*** 453,458 **** +--- 453,459 ---- + EXTERN char_u *p_fencs; /* 'fileencodings' */ + #endif + EXTERN char_u *p_ffs; /* 'fileformats' */ ++ EXTERN long p_fic; /* 'fileignorecase' */ + #ifdef FEAT_FOLDING + EXTERN char_u *p_fcl; /* 'foldclose' */ + EXTERN long p_fdls; /* 'foldlevelstart' */ +*** ../vim-7.3.871/src/vim.h 2013-03-19 13:33:18.000000000 +0100 +--- src/vim.h 2013-03-19 16:14:29.000000000 +0100 +*************** +*** 1627,1644 **** + * (this does not account for maximum name lengths and things like "../dir", + * thus it is not 100% accurate!) + */ +! #ifdef CASE_INSENSITIVE_FILENAME +! # ifdef BACKSLASH_IN_FILENAME +! # define fnamecmp(x, y) vim_fnamecmp((x), (y)) +! # define fnamencmp(x, y, n) vim_fnamencmp((x), (y), (size_t)(n)) +! # else +! # define fnamecmp(x, y) MB_STRICMP((x), (y)) +! # define fnamencmp(x, y, n) MB_STRNICMP((x), (y), (n)) +! # endif +! #else +! # define fnamecmp(x, y) strcmp((char *)(x), (char *)(y)) +! # define fnamencmp(x, y, n) strncmp((char *)(x), (char *)(y), (size_t)(n)) +! #endif + + #ifdef HAVE_MEMSET + # define vim_memset(ptr, c, size) memset((ptr), (c), (size)) +--- 1627,1634 ---- + * (this does not account for maximum name lengths and things like "../dir", + * thus it is not 100% accurate!) + */ +! #define fnamecmp(x, y) vim_fnamecmp((char_u *)(x), (char_u *)(y)) +! #define fnamencmp(x, y, n) vim_fnamencmp((char_u *)(x), (char_u *)(y), (size_t)(n)) + + #ifdef HAVE_MEMSET + # define vim_memset(ptr, c, size) memset((ptr), (c), (size)) +*** ../vim-7.3.871/runtime/doc/options.txt 2013-01-23 18:37:31.000000000 +0100 +--- runtime/doc/options.txt 2013-03-19 16:25:49.000000000 +0100 +*************** +*** 2895,2900 **** +--- 2941,2954 ---- + NOTE: This option is set to the Vi default value when 'compatible' is + set and to the Vim default value when 'compatible' is reset. + ++ *'fileignorecase'* *'wic'* *'nofileignorecase'* *'nowic'* ++ 'fileignorecase' 'wic' boolean (default on for systems where case in file ++ names is normally ignored. ++ global ++ {not in Vi} ++ When set case is ignored when using file names and directories. ++ See 'wildignorecase' for only ignoring case when doing completion. ++ + *'filetype'* *'ft'* + 'filetype' 'ft' string (default: "") + local to buffer +*************** +*** 7832,7843 **** + uses another default. + + +! *'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'* + 'wildignorecase' 'wic' boolean (default off) + global + {not in Vi} + When set case is ignored when completing file names and directories. +! Has no effect on systems where file name case is generally ignored. + Does not apply when the shell is used to expand wildcards, which + happens when there are special characters. + +--- 7906,7917 ---- + uses another default. + + +! *'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'* + 'wildignorecase' 'wic' boolean (default off) + global + {not in Vi} + When set case is ignored when completing file names and directories. +! Has no effect when 'fileignorecase' is set. + Does not apply when the shell is used to expand wildcards, which + happens when there are special characters. + +*** ../vim-7.3.871/src/version.c 2013-03-19 15:27:43.000000000 +0100 +--- src/version.c 2013-03-19 16:22:46.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 872, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +76. Your ISP regards you as a business partner rather than as a customer. + + /// 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 /// From 31a88b7740602cc9dee2d50537b8734d7822c5c8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:29 +0200 Subject: [PATCH 211/291] - patchlevel 873 --- 7.3.873 | Bin 0 -> 5967 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.3.873 diff --git a/7.3.873 b/7.3.873 new file mode 100644 index 0000000000000000000000000000000000000000..dbb636522de863509795ff0e986878acd762c1a6 GIT binary patch literal 5967 zcmcIo>yz3>63@p&RrfWYJ5DP55_%xCfPB8nX2V{bTBlrIz-CL8Eg=SwEomq{c-WQy z{klg;h}U|TBq|Uy!*owSe$zeE9d5zQ3m%4S_S2a2vCqa4Pp7fs@<6&v2OpW6Sn$?K z+zB)kLuob)>Be;};At}83+X1}fdxNDP5^H>_gUyT5&VbxKLvST30d-A>5Uh#YL7*+ z$3qKrMU$?1n6NOZc9v6SLBbY^I`thddUM6b&Go#<3F8rqs_oF_LoXa# z&>VP)R4qM{v?=S`h!1>*BI0xHgdtCWIkD$2A&nVWF(e!U=M#g(OMC{d6Ej7+<9?b5 zF#&#cW(;1~w|4phA{M890$y024X3|30gK^{d(D?;(v9b{*s9QaapbBI8?(h!ab?j< zSey*KNTuIKOYy?J!~Byh6%5KGO>Hj;4)afvB%Pn1gQBSD&T8hWnpzg2Qqy#!s@1Bs zOVFEE-L&d0Mav(!&~!~BTW-j`A~LFa3-pF%n3l0igbSA+2|Lixo2J~*TRPBR64?XL za!IA)zTD_-c0&%YpsK%=z7qtaX%anjDx)-Xar`vvp8ejvz0H~UUdTe4>gI; z!SVeag?3ba;33lFSn)eh3E3gq^Jb+|xShuW52Wo8h(#W2%w`M< z)E;5J%JIluOTUfXdJBWEsTb+L!0y*fa2TCOtM)X6t_}GFj2yXTEoH=1tAZdvF8%k@*`mfFatJM@q$)q)@8g0V2h5<|Get8{i^Gl zA?sRm?GasT$+~`-3-&zqh4McNZNH8|{^_q^u%LcE25WV>)>>;t}dqoDO2FA*2aAJ(=}pCo-J$@MXWS2lfl>oY0kM&)oU@ zIn8~a&9xt$yZEr6xgWB*Q9k!#AKyOB6fcS(%l?ugi0GpvdnxXTLcA!t+<(5O=<=Bc zh3x7d85B^BQnV>=eQb;UaM_R>wKXg*F?SZ5Y>x#ny3rzCe4(|%T&um-`Wq~}S9db0 zu1eh25y;eN}<^^>DbIf<xFFaEti2=$lCKK^{ZzyFM5+2^rn@mT6fk$k9?v|`5Em3i7KUKr3>z1|~S@xm5VbFDNRpuhL*?^G;!Y_D- z!(-3Ya0nrr!&H<~u~ao+5eyjKfARW-w>~Q9(B10-CyO7t`(d?JM*YPI-l9O7q~S1P z!>SVwt5h6{m%%jQK@5C^%&;U1PDoWY7Gcd5oZ-;J@~zZpD$wUCjJ$9NOP*qF)gQso zb8yiyynYLrILHMnn|K$TPLQ`ENua9gc5N4>5Y^qH+Dp}4)D Date: Mon, 15 Apr 2013 17:02:29 +0200 Subject: [PATCH 212/291] - patchlevel 874 --- 7.3.874 | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 7.3.874 diff --git a/7.3.874 b/7.3.874 new file mode 100644 index 00000000..3b0f51b1 --- /dev/null +++ b/7.3.874 @@ -0,0 +1,139 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.874 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.874 +Problem: Comparing file names does not handle multi-byte characters + properly. +Solution: Implement multi-byte handling. +Files: src/misc1.c, src/misc2.c + + +*** ../vim-7.3.873/src/misc1.c 2013-03-19 16:46:59.000000000 +0100 +--- src/misc1.c 2013-03-19 18:30:52.000000000 +0100 +*************** +*** 5049,5068 **** + size_t len; + { + #ifdef BACKSLASH_IN_FILENAME + /* TODO: multi-byte characters. */ +! while (len > 0 && *x && *y) + { +! if ((p_fic ? TOLOWER_LOC(*x) != TOLOWER_LOC(*y) : *x != *y) +! && !(*x == '/' && *y == '\\') +! && !(*x == '\\' && *y == '/')) + break; +! ++x; +! ++y; +! --len; + } + if (len == 0) + return 0; +! return (*x - *y); + #else + if (p_fic) + return MB_STRNICMP(x, y, len); +--- 5049,5076 ---- + size_t len; + { + #ifdef BACKSLASH_IN_FILENAME ++ char_u *px = x; ++ char_u *py = y; ++ int cx = NUL; ++ int cy = NUL; ++ + /* TODO: multi-byte characters. */ +! while (len > 0) + { +! cx = PTR2CHAR(px); +! cy = PTR2CHAR(py); +! if (cx == NUL || cy == NUL +! || ((p_fic ? MB_TOLOWER(cx) != MB_TOLOWER(cy) : cx != cy) +! && !(cx == '/' && cy == '\\') +! && !(cx == '\\' && cy == '/'))) + break; +! len -= MB_PTR2LEN(px); +! px += MB_PTR2LEN(px); +! py += MB_PTR2LEN(py); + } + if (len == 0) + return 0; +! return (cx - cy); + #else + if (p_fic) + return MB_STRNICMP(x, y, len); +*** ../vim-7.3.873/src/misc2.c 2013-03-19 16:46:59.000000000 +0100 +--- src/misc2.c 2013-03-19 18:22:29.000000000 +0100 +*************** +*** 5352,5357 **** +--- 5352,5359 ---- + char_u *s2; + { + int i; ++ int prev1 = NUL; ++ int prev2 = NUL; + + if (s1 == s2) + return TRUE; +*************** +*** 5362,5381 **** + if (STRLEN(s1) != STRLEN(s2)) + return FAIL; + +! /* TODO: handle multi-byte characters. */ +! for (i = 0; s1[i] != NUL && s2[i] != NUL; i++) + { +! if (s1[i] != s2[i] +! && (!p_fic || TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i]))) +! { +! if (i >= 2) +! if (s1[i-1] == '*' && s1[i-2] == '*') +! continue; +! else +! return FAIL; +! else +! return FAIL; +! } + } + return TRUE; + } +--- 5364,5379 ---- + if (STRLEN(s1) != STRLEN(s2)) + return FAIL; + +! for (i = 0; s1[i] != NUL && s2[i] != NUL; i += MB_PTR2LEN(s1 + i)) + { +! int c1 = PTR2CHAR(s1 + i); +! int c2 = PTR2CHAR(s2 + i); +! +! if ((p_fic ? MB_TOLOWER(c1) != MB_TOLOWER(c2) : c1 != c2) +! && (prev1 != '*' || prev2 != '*')) +! return FAIL; +! prev2 = prev1; +! prev1 = c1; + } + return TRUE; + } +*** ../vim-7.3.873/src/version.c 2013-03-19 17:42:10.000000000 +0100 +--- src/version.c 2013-03-19 18:24:57.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 874, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +80. At parties, you introduce your spouse as your "service provider." + + /// 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 /// From 5c4a61c945d0a0e012ff6a21d1be8803b79f045d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:30 +0200 Subject: [PATCH 213/291] - patchlevel 875 --- 7.3.875 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.875 diff --git a/7.3.875 b/7.3.875 new file mode 100644 index 00000000..155d6567 --- /dev/null +++ b/7.3.875 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.875 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.875 (after 7.3.866) +Problem: Build problem with some combination of features. +Solution: Use FEAT_XCLIPBOARD instead of FEAT_CLIPBOARD. +Files: src/os_unix.c + + +*** ../vim-7.3.874/src/os_unix.c 2013-03-19 12:35:33.000000000 +0100 +--- src/os_unix.c 2013-03-21 21:43:37.000000000 +0100 +*************** +*** 4787,4793 **** + else + wait_pid = 0; + +! # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) + /* Handle any X events, e.g. serving the clipboard. */ + clip_update(); + # endif +--- 4787,4793 ---- + else + wait_pid = 0; + +! # if defined(FEAT_XCLIPBOARD) && defined(FEAT_X11) + /* Handle any X events, e.g. serving the clipboard. */ + clip_update(); + # endif +*************** +*** 4817,4823 **** + close(toshell_fd); + close(fromshell_fd); + } +! # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) + else + { + /* +--- 4817,4823 ---- + close(toshell_fd); + close(fromshell_fd); + } +! # if defined(FEAT_XCLIPBOARD) && defined(FEAT_X11) + else + { + /* +*** ../vim-7.3.874/src/version.c 2013-03-19 18:31:45.000000000 +0100 +--- src/version.c 2013-03-21 22:05:59.000000000 +0100 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 875, + /**/ + +-- +From "know your smileys": + O:-) Saint + + /// 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 /// From 9013d9abcb096e6b648b0bb555cc6cb08ea57285 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:31 +0200 Subject: [PATCH 214/291] - patchlevel 876 --- 7.3.876 | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 7.3.876 diff --git a/7.3.876 b/7.3.876 new file mode 100644 index 00000000..573df0da --- /dev/null +++ b/7.3.876 @@ -0,0 +1,80 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.876 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.876 +Problem: #if indents are off. +Solution: Insert a space where appropriate. (Taro Muraoka) +Files: src/gui.c + + +*** ../vim-7.3.875/src/gui.c 2013-01-23 18:37:31.000000000 +0100 +--- src/gui.c 2013-03-27 22:44:19.000000000 +0100 +*************** +*** 991,997 **** + } + + gui_mch_free_font(gui.wide_font); +! #ifdef FEAT_GUI_GTK + /* Avoid unnecessary overhead if 'guifontwide' is equal to 'guifont'. */ + if (font != NOFONT && gui.norm_font != NOFONT + && pango_font_description_equal(font, gui.norm_font)) +--- 991,997 ---- + } + + gui_mch_free_font(gui.wide_font); +! # ifdef FEAT_GUI_GTK + /* Avoid unnecessary overhead if 'guifontwide' is equal to 'guifont'. */ + if (font != NOFONT && gui.norm_font != NOFONT + && pango_font_description_equal(font, gui.norm_font)) +*************** +*** 1000,1010 **** + gui_mch_free_font(font); + } + else +! #endif + gui.wide_font = font; +! #ifdef FEAT_GUI_MSWIN + gui_mch_wide_font_changed(); +! #endif + return OK; + } + #endif +--- 1000,1010 ---- + gui_mch_free_font(font); + } + else +! # endif + gui.wide_font = font; +! # ifdef FEAT_GUI_MSWIN + gui_mch_wide_font_changed(); +! # endif + return OK; + } + #endif +*** ../vim-7.3.875/src/version.c 2013-03-21 22:53:45.000000000 +0100 +--- src/version.c 2013-04-03 21:10:44.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 876, + /**/ + +-- +Nobody will ever need more than 640 kB RAM. + -- Bill Gates, 1983 +Windows 98 requires 16 MB RAM. + -- Bill Gates, 1999 +Logical conclusion: Nobody will ever need Windows 98. + + /// 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 /// From 74c289cb457afdae7d1fc0156fb5e31e0fb32fb6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:31 +0200 Subject: [PATCH 215/291] - patchlevel 877 --- 7.3.877 | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 7.3.877 diff --git a/7.3.877 b/7.3.877 new file mode 100644 index 00000000..7a563997 --- /dev/null +++ b/7.3.877 @@ -0,0 +1,100 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.877 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.877 (after 7.3.871) +Problem: Forward searching with search() is broken. +Solution: Fix it and add tests. (Sung Pae) +Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok + + +*** ../vim-7.3.876/src/search.c 2013-03-19 15:27:43.000000000 +0100 +--- src/search.c 2013-04-03 21:07:11.000000000 +0200 +*************** +*** 727,733 **** + ++matchcol; + } + } +! if (options & SEARCH_START) + break; + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, +--- 727,733 ---- + ++matchcol; + } + } +! if (matchcol == 0 && (options & SEARCH_START)) + break; + if (ptr[matchcol] == NUL + || (nmatched = vim_regexec_multi(®match, +*************** +*** 869,875 **** + /* With the SEARCH_END option move to the last character + * of the match. Don't do it for an empty match, end + * should be same as start then. */ +! if (options & SEARCH_END && !(options & SEARCH_NOOF) + && !(matchpos.lnum == endpos.lnum + && matchpos.col == endpos.col)) + { +--- 869,875 ---- + /* With the SEARCH_END option move to the last character + * of the match. Don't do it for an empty match, end + * should be same as start then. */ +! if ((options & SEARCH_END) && !(options & SEARCH_NOOF) + && !(matchpos.lnum == endpos.lnum + && matchpos.col == endpos.col)) + { +*** ../vim-7.3.876/src/testdir/test14.in 2013-03-19 15:27:43.000000000 +0100 +--- src/testdir/test14.in 2013-04-03 20:59:14.000000000 +0200 +*************** +*** 44,49 **** +--- 44,52 ---- + :call append(line('$'), line('.') - startline) + :call search('^$', 'bc') + :call append(line('$'), line('.') - startline) ++ /two ++ :call search('.', 'c') ++ :call append(line('$'), getline('.')[col('.') - 1:]) + :/^search()/,$w >>test.out + :qa! + ENDTEST +*************** +*** 79,82 **** +--- 82,86 ---- + foobar + + ++ one two + search() +*** ../vim-7.3.876/src/testdir/test14.ok 2013-03-19 15:27:43.000000000 +0100 +--- src/testdir/test14.ok 2013-04-03 20:59:14.000000000 +0200 +*************** +*** 19,21 **** +--- 19,22 ---- + 0 + 1 + 1 ++ two +*** ../vim-7.3.876/src/version.c 2013-04-03 21:11:33.000000000 +0200 +--- src/version.c 2013-04-03 21:12:50.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 877, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +113. You are asked about a bus schedule, you wonder if it is 16 or 32 bits. + + /// 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 /// From 02330313a883beb6c9144ce8fed829d99a8f0d99 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:32 +0200 Subject: [PATCH 216/291] - patchlevel 878 --- 7.3.878 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.3.878 diff --git a/7.3.878 b/7.3.878 new file mode 100644 index 00000000..1669ec40 --- /dev/null +++ b/7.3.878 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.878 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.878 +Problem: 'fileignorecase' is missing in options window and quickref. +Solution: Add the option. +Files: runtime/optwin.vim, runtime/doc/quickref.txt + + +*** ../vim-7.3.877/runtime/optwin.vim 2010-08-15 21:57:20.000000000 +0200 +--- runtime/optwin.vim 2013-04-05 15:35:22.000000000 +0200 +*************** +*** 1042,1047 **** +--- 1035,1044 ---- + call append("$", "wildignore\tlist of patterns to ignore files for file name completion") + call OptionG("wig", &wig) + endif ++ call append("$", "fileignorecase\tignore case when using file names") ++ call BinOptionG("fic", &fic) ++ call append("$", "wildignorecase\tignore case when completing file names") ++ call BinOptionG("wic", &wic) + if has("wildmenu") + call append("$", "wildmenu\tcommand-line completion shows a list of matches") + call BinOptionG("wmnu", &wmnu) +*************** +*** 1340,1342 **** +--- 1339,1343 ---- + let &sc = s:old_sc + let &cpo = s:cpo_save + unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum ++ ++ " vim: ts=8 sw=2 sts=2 +*** ../vim-7.3.877/runtime/doc/quickref.txt 2010-08-15 21:57:17.000000000 +0200 +--- runtime/doc/quickref.txt 2013-04-05 15:36:35.000000000 +0200 +*************** +*** 690,695 **** +--- 691,697 ---- + 'fileencodings' 'fencs' automatically detected character encodings + 'fileformat' 'ff' file format used for file I/O + 'fileformats' 'ffs' automatically detected values for 'fileformat' ++ 'fileignorecase' 'fic' ignore case when using file names + 'filetype' 'ft' type of file, used for autocommands + 'fillchars' 'fcs' characters to use for displaying special items + 'fkmap' 'fk' Farsi keyboard mapping +*************** +*** 934,939 **** +--- 937,943 ---- + 'wildchar' 'wc' command-line character for wildcard expansion + 'wildcharm' 'wcm' like 'wildchar' but also works when mapped + 'wildignore' 'wig' files matching these patterns are not completed ++ 'wildignorecase' 'wic' ignore case when completing file names + 'wildmenu' 'wmnu' use menu for command line completion + 'wildmode' 'wim' mode for 'wildchar' command-line expansion + 'wildoptions' 'wop' specifies how command line completion is done +*** ../vim-7.3.877/src/version.c 2013-04-03 21:14:25.000000000 +0200 +--- src/version.c 2013-04-05 15:37:09.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 878, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +121. You ask for e-mail adresses instead of telephone numbers. + + /// 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 /// From f23d95e4707db295016e3929098f68c46194e517 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:32 +0200 Subject: [PATCH 217/291] - patchlevel 879 --- 7.3.879 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 7.3.879 diff --git a/7.3.879 b/7.3.879 new file mode 100644 index 00000000..bb642dd8 --- /dev/null +++ b/7.3.879 @@ -0,0 +1,97 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.879 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.879 +Problem: When using an ex command in operator pending mode, using Esc to + abort the command still executes the operator. (David Bürgin) +Solution: Clear the operator when the ex command fails. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.3.878/src/normal.c 2013-03-16 14:20:45.000000000 +0100 +--- src/normal.c 2013-04-05 16:54:13.000000000 +0200 +*************** +*** 5418,5423 **** +--- 5418,5424 ---- + cmdarg_T *cap; + { + int old_p_im; ++ int cmd_result; + + #ifdef FEAT_VISUAL + if (VIsual_active) +*************** +*** 5449,5455 **** + old_p_im = p_im; + + /* get a command line and execute it */ +! do_cmdline(NULL, getexline, NULL, + cap->oap->op_type != OP_NOP ? DOCMD_KEEPLINE : 0); + + /* If 'insertmode' changed, enter or exit Insert mode */ +--- 5450,5456 ---- + old_p_im = p_im; + + /* get a command line and execute it */ +! cmd_result = do_cmdline(NULL, getexline, NULL, + cap->oap->op_type != OP_NOP ? DOCMD_KEEPLINE : 0); + + /* If 'insertmode' changed, enter or exit Insert mode */ +*************** +*** 5461,5472 **** + restart_edit = 0; + } + +! /* The start of the operator may have become invalid by the Ex +! * command. */ +! if (cap->oap->op_type != OP_NOP + && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count + || cap->oap->start.col > +! (colnr_T)STRLEN(ml_get(cap->oap->start.lnum)))) + clearopbeep(cap->oap); + } + } +--- 5462,5478 ---- + restart_edit = 0; + } + +! if (cmd_result == FAIL) +! /* The Ex command failed, do not execute the operator. */ +! clearop(cap->oap); +! else if (cap->oap->op_type != OP_NOP + && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count + || cap->oap->start.col > +! (colnr_T)STRLEN(ml_get(cap->oap->start.lnum)) +! || did_emsg +! )) +! /* The start of the operator has become invalid by the Ex command. +! */ + clearopbeep(cap->oap); + } + } +*** ../vim-7.3.878/src/version.c 2013-04-05 15:39:41.000000000 +0200 +--- src/version.c 2013-04-05 16:56:43.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 879, + /**/ + +-- +~ +~ +~ +".signature" 4 lines, 50 characters written + + /// 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 /// From bd0f9e2f6fc17b207147c17f12c17afe4d25fd3d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:33 +0200 Subject: [PATCH 218/291] - patchlevel 880 --- 7.3.880 | 287 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+) create mode 100644 7.3.880 diff --git a/7.3.880 b/7.3.880 new file mode 100644 index 00000000..14a93846 --- /dev/null +++ b/7.3.880 @@ -0,0 +1,287 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.880 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.880 +Problem: When writing viminfo, old history lines may replace lines written + more recently by another Vim instance. +Solution: Mark history entries that were read from viminfo and overwrite + them when merging with the current viminfo. +Files: src/ex_getln.c + + +*** ../vim-7.3.879/src/ex_getln.c 2013-03-19 16:46:59.000000000 +0100 +--- src/ex_getln.c 2013-04-05 18:56:08.000000000 +0200 +*************** +*** 56,61 **** +--- 56,62 ---- + typedef struct hist_entry + { + int hisnum; /* identifying number */ ++ int viminfo; /* when TRUE hisstr comes from viminfo */ + char_u *hisstr; /* actual entry, separator char after the NUL */ + } histentry_T; + +*************** +*** 113,118 **** +--- 114,120 ---- + static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[])); + # ifdef FEAT_CMDHIST + static char_u *get_history_arg __ARGS((expand_T *xp, int idx)); ++ static void clear_hist_entry __ARGS((histentry_T *hisptr)); + # endif + # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) + static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file)); +*************** +*** 5343,5352 **** + if (hisidx[type] < 0) /* there are no entries yet */ + { + for (i = 0; i < newlen; ++i) +! { +! temp[i].hisnum = 0; +! temp[i].hisstr = NULL; +! } + } + else if (newlen > hislen) /* array becomes bigger */ + { +--- 5345,5351 ---- + if (hisidx[type] < 0) /* there are no entries yet */ + { + for (i = 0; i < newlen; ++i) +! clear_hist_entry(&temp[i]); + } + else if (newlen > hislen) /* array becomes bigger */ + { +*************** +*** 5354,5363 **** + temp[i] = history[type][i]; + j = i; + for ( ; i <= newlen - (hislen - hisidx[type]); ++i) +! { +! temp[i].hisnum = 0; +! temp[i].hisstr = NULL; +! } + for ( ; j < hislen; ++i, ++j) + temp[i] = history[type][j]; + } +--- 5353,5359 ---- + temp[i] = history[type][i]; + j = i; + for ( ; i <= newlen - (hislen - hisidx[type]); ++i) +! clear_hist_entry(&temp[i]); + for ( ; j < hislen; ++i, ++j) + temp[i] = history[type][j]; + } +*************** +*** 5385,5390 **** +--- 5381,5395 ---- + } + } + ++ static void ++ clear_hist_entry(hisptr) ++ histentry_T *hisptr; ++ { ++ hisptr->hisnum = 0; ++ hisptr->viminfo = FALSE; ++ hisptr->hisstr = NULL; ++ } ++ + /* + * Check if command line 'str' is already in history. + * If 'move_to_front' is TRUE, matching entry is moved to end of history. +*************** +*** 5433,5440 **** + history[type][last_i] = history[type][i]; + last_i = i; + } +- history[type][i].hisstr = str; + history[type][i].hisnum = ++hisnum[type]; + return TRUE; + } + return FALSE; +--- 5438,5446 ---- + history[type][last_i] = history[type][i]; + last_i = i; + } + history[type][i].hisnum = ++hisnum[type]; ++ history[type][i].viminfo = FALSE; ++ history[type][i].hisstr = str; + return TRUE; + } + return FALSE; +*************** +*** 5498,5505 **** + /* Current line is from the same mapping, remove it */ + hisptr = &history[HIST_SEARCH][hisidx[HIST_SEARCH]]; + vim_free(hisptr->hisstr); +! hisptr->hisstr = NULL; +! hisptr->hisnum = 0; + --hisnum[histype]; + if (--hisidx[HIST_SEARCH] < 0) + hisidx[HIST_SEARCH] = hislen - 1; +--- 5504,5510 ---- + /* Current line is from the same mapping, remove it */ + hisptr = &history[HIST_SEARCH][hisidx[HIST_SEARCH]]; + vim_free(hisptr->hisstr); +! clear_hist_entry(hisptr); + --hisnum[histype]; + if (--hisidx[HIST_SEARCH] < 0) + hisidx[HIST_SEARCH] = hislen - 1; +*************** +*** 5520,5525 **** +--- 5525,5531 ---- + hisptr->hisstr[len + 1] = sep; + + hisptr->hisnum = ++hisnum[histype]; ++ hisptr->viminfo = FALSE; + if (histype == HIST_SEARCH && in_map) + last_maptick = maptick; + } +*************** +*** 5709,5716 **** + for (i = hislen; i--;) + { + vim_free(hisptr->hisstr); +! hisptr->hisnum = 0; +! hisptr++->hisstr = NULL; + } + hisidx[histype] = -1; /* mark history as cleared */ + hisnum[histype] = 0; /* reset identifier counter */ +--- 5715,5721 ---- + for (i = hislen; i--;) + { + vim_free(hisptr->hisstr); +! clear_hist_entry(hisptr); + } + hisidx[histype] = -1; /* mark history as cleared */ + hisnum[histype] = 0; /* reset identifier counter */ +*************** +*** 5755,5770 **** + { + found = TRUE; + vim_free(hisptr->hisstr); +! hisptr->hisstr = NULL; +! hisptr->hisnum = 0; + } + else + { + if (i != last) + { + history[histype][last] = *hisptr; +! hisptr->hisstr = NULL; +! hisptr->hisnum = 0; + } + if (--last < 0) + last += hislen; +--- 5760,5773 ---- + { + found = TRUE; + vim_free(hisptr->hisstr); +! clear_hist_entry(hisptr); + } + else + { + if (i != last) + { + history[histype][last] = *hisptr; +! clear_hist_entry(hisptr); + } + if (--last < 0) + last += hislen; +*************** +*** 5808,5815 **** + history[histype][i] = history[histype][j]; + i = j; + } +! history[histype][i].hisstr = NULL; +! history[histype][i].hisnum = 0; + if (--i < 0) + i += hislen; + hisidx[histype] = i; +--- 5811,5817 ---- + history[histype][i] = history[histype][j]; + i = j; + } +! clear_hist_entry(&history[histype][i]); + if (--i < 0) + i += hislen; + hisidx[histype] = i; +*************** +*** 6043,6054 **** + + for (type = 0; type < HIST_COUNT; ++type) + { +! /* +! * Count the number of empty spaces in the history list. If there are +! * more spaces available than we request, then fill them up. +! */ + for (i = 0, num = 0; i < hislen; i++) +! if (history[type][i].hisstr == NULL) + num++; + len = asklen; + if (num > len) +--- 6045,6055 ---- + + for (type = 0; type < HIST_COUNT; ++type) + { +! /* Count the number of empty spaces in the history list. Entries read +! * from viminfo previously are also considered empty. If there are +! * more spaces available than we request, then fill them up. */ + for (i = 0, num = 0; i < hislen; i++) +! if (history[type][i].hisstr == NULL || history[type][i].viminfo) + num++; + len = asklen; + if (num > len) +*************** +*** 6141,6147 **** + hisidx[type] = hislen - 1; + do + { +! if (history[type][idx].hisstr != NULL) + break; + if (++idx == hislen) + idx = 0; +--- 6142,6149 ---- + hisidx[type] = hislen - 1; + do + { +! if (history[type][idx].hisstr != NULL +! || history[type][idx].viminfo) + break; + if (++idx == hislen) + idx = 0; +*************** +*** 6153,6158 **** +--- 6155,6161 ---- + { + vim_free(history[type][idx].hisstr); + history[type][idx].hisstr = viminfo_history[type][i]; ++ history[type][idx].viminfo = TRUE; + if (--idx < 0) + idx = hislen - 1; + } +*** ../vim-7.3.879/src/version.c 2013-04-05 17:43:10.000000000 +0200 +--- src/version.c 2013-04-05 18:54:11.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 880, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +122. You ask if the Netaholics Anonymous t-shirt you ordered can be + sent to you via e-mail. + + /// 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 /// From 7be4c3d652263d03c1c07198d3a90c75e67cb8c5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:34 +0200 Subject: [PATCH 219/291] - patchlevel 881 --- 7.3.881 | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 7.3.881 diff --git a/7.3.881 b/7.3.881 new file mode 100644 index 00000000..d0ca99b0 --- /dev/null +++ b/7.3.881 @@ -0,0 +1,108 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.881 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.881 +Problem: Python list does not work correctly. +Solution: Fix it and add a test. (Yukihiro Nakadaira) +Files: src/testdir/test86.in, src/testdir/test86.ok, src/if_py_both.h + + +*** ../vim-7.3.880/src/testdir/test86.in 2013-02-20 16:54:24.000000000 +0100 +--- src/testdir/test86.in 2013-04-05 19:18:48.000000000 +0200 +*************** +*** 321,326 **** +--- 321,351 ---- + :py trace_main() + :py sys.settrace(None) + :$put =string(l) ++ :" ++ :" Slice ++ :py ll = vim.bindeval('[0, 1, 2, 3, 4, 5]') ++ :py l = ll[:4] ++ :$put =string(pyeval('l')) ++ :py l = ll[2:] ++ :$put =string(pyeval('l')) ++ :py l = ll[:-4] ++ :$put =string(pyeval('l')) ++ :py l = ll[-2:] ++ :$put =string(pyeval('l')) ++ :py l = ll[2:4] ++ :$put =string(pyeval('l')) ++ :py l = ll[4:2] ++ :$put =string(pyeval('l')) ++ :py l = ll[-4:-2] ++ :$put =string(pyeval('l')) ++ :py l = ll[-2:-4] ++ :$put =string(pyeval('l')) ++ :py l = ll[:] ++ :$put =string(pyeval('l')) ++ :py l = ll[0:6] ++ :$put =string(pyeval('l')) ++ :py l = ll[-10:10] ++ :$put =string(pyeval('l')) + :endfun + :" + :call Test() +*** ../vim-7.3.880/src/testdir/test86.ok 2013-02-20 16:54:24.000000000 +0100 +--- src/testdir/test86.ok 2013-04-05 19:18:48.000000000 +0200 +*************** +*** 65,67 **** +--- 65,78 ---- + vim: Vim(let):E859: + [1] + [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] ++ [0, 1, 2, 3] ++ [2, 3, 4, 5] ++ [0, 1] ++ [4, 5] ++ [2, 3] ++ [] ++ [2, 3] ++ [] ++ [0, 1, 2, 3, 4, 5] ++ [0, 1, 2, 3, 4, 5] ++ [0, 1, 2, 3, 4, 5] +*** ../vim-7.3.880/src/if_py_both.h 2013-02-14 22:11:31.000000000 +0100 +--- src/if_py_both.h 2013-04-05 19:27:46.000000000 +0200 +*************** +*** 1139,1145 **** + + for (i = 0; i < n; ++i) + { +! PyObject *item = ListItem(self, i); + if (item == NULL) + { + Py_DECREF(list); +--- 1139,1145 ---- + + for (i = 0; i < n; ++i) + { +! PyObject *item = ListItem(self, first + i); + if (item == NULL) + { + Py_DECREF(list); +*** ../vim-7.3.880/src/version.c 2013-04-05 18:58:42.000000000 +0200 +--- src/version.c 2013-04-05 19:31:59.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 881, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +123. You ask the car dealer to install an extra cigarette lighter + on your new car to power your notebook. + + /// 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 /// From fa0ab21248b070b66cac0ad855888c525b3bfbb3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:34 +0200 Subject: [PATCH 220/291] - patchlevel 882 --- 7.3.882 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.3.882 diff --git a/7.3.882 b/7.3.882 new file mode 100644 index 00000000..bfc348b4 --- /dev/null +++ b/7.3.882 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.882 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.882 +Problem: CursorHold may trigger after receiving the termresponse. +Solution: Set the did_cursorhold flag. (Hayaki Saito) +Files: src/term.c + + +*** ../vim-7.3.881/src/term.c 2013-03-16 14:33:32.000000000 +0100 +--- src/term.c 2013-04-05 19:49:58.000000000 +0200 +*************** +*** 4137,4142 **** +--- 4137,4145 ---- + char *p = NULL; + + u7_status = U7_GOT; ++ # ifdef FEAT_AUTOCMD ++ did_cursorhold = TRUE; ++ # endif + if (extra == 2) + p = "single"; + else if (extra == 3) +*************** +*** 4153,4158 **** +--- 4156,4164 ---- + if (*T_CRV != NUL && i > 2 + (tp[0] != CSI) && tp[i] == 'c') + { + crv_status = CRV_GOT; ++ # ifdef FEAT_AUTOCMD ++ did_cursorhold = TRUE; ++ # endif + + /* If this code starts with CSI, you can bet that the + * terminal uses 8-bit codes. */ +*** ../vim-7.3.881/src/version.c 2013-04-05 19:32:30.000000000 +0200 +--- src/version.c 2013-04-05 19:46:21.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 882, + /**/ + +-- +Would you care for a drink? I mean, if it were, like, +disabled and you had to look after it? + + /// 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 /// From 90f0bb5dcf30d4a7dd44fe027f259e223e3855b8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:35 +0200 Subject: [PATCH 221/291] - patchlevel 883 --- 7.3.883 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 7.3.883 diff --git a/7.3.883 b/7.3.883 new file mode 100644 index 00000000..984e5d4c --- /dev/null +++ b/7.3.883 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.883 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.883 (after 7.3.880) +Problem: Can't build with some combination of features. +Solution: Adjust #ifdefs. +Files: src/ex_getln.c + + +*** ../vim-7.3.882/src/ex_getln.c 2013-04-05 18:58:41.000000000 +0200 +--- src/ex_getln.c 2013-04-06 13:24:22.000000000 +0200 +*************** +*** 114,126 **** + static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[])); + # ifdef FEAT_CMDHIST + static char_u *get_history_arg __ARGS((expand_T *xp, int idx)); +- static void clear_hist_entry __ARGS((histentry_T *hisptr)); + # endif + # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) + static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file)); + static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file)); + # endif + #endif + + #ifdef FEAT_CMDWIN + static int ex_window __ARGS((void)); +--- 114,128 ---- + static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[])); + # ifdef FEAT_CMDHIST + static char_u *get_history_arg __ARGS((expand_T *xp, int idx)); + # endif + # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) + static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file)); + static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file)); + # endif + #endif ++ #ifdef FEAT_CMDHIST ++ static void clear_hist_entry __ARGS((histentry_T *hisptr)); ++ #endif + + #ifdef FEAT_CMDWIN + static int ex_window __ARGS((void)); +*** ../vim-7.3.882/src/version.c 2013-04-05 19:50:12.000000000 +0200 +--- src/version.c 2013-04-06 14:28:41.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 883, + /**/ + +-- +Why is it called "Windows"? "Gates" would be more appropriate... + + /// 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 /// From a7d73c0395fc7d4fed846f5686a6c5e9c6b345a0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:36 +0200 Subject: [PATCH 222/291] - patchlevel 884 --- 7.3.884 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.3.884 diff --git a/7.3.884 b/7.3.884 new file mode 100644 index 00000000..31d2e7f3 --- /dev/null +++ b/7.3.884 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.884 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.884 +Problem: Compiler warning for variable shadowing another. (John Little) +Solution: Rename the variable. (Christian Brabandt) +Files: src/term.c + + +*** ../vim-7.3.883/src/term.c 2013-04-05 19:50:12.000000000 +0200 +--- src/term.c 2013-04-06 13:27:59.000000000 +0200 +*************** +*** 4134,4151 **** + /* eat it when it has 2 arguments and ends in 'R' */ + if (j == 1 && tp[i] == 'R') + { +! char *p = NULL; + + u7_status = U7_GOT; + # ifdef FEAT_AUTOCMD + did_cursorhold = TRUE; + # endif + if (extra == 2) +! p = "single"; + else if (extra == 3) +! p = "double"; +! if (p != NULL) +! set_option_value((char_u *)"ambw", 0L, (char_u *)p, 0); + key_name[0] = (int)KS_EXTRA; + key_name[1] = (int)KE_IGNORE; + slen = i + 1; +--- 4134,4151 ---- + /* eat it when it has 2 arguments and ends in 'R' */ + if (j == 1 && tp[i] == 'R') + { +! char *aw = NULL; + + u7_status = U7_GOT; + # ifdef FEAT_AUTOCMD + did_cursorhold = TRUE; + # endif + if (extra == 2) +! aw = "single"; + else if (extra == 3) +! aw = "double"; +! if (aw != NULL) +! set_option_value((char_u *)"ambw", 0L, (char_u *)aw, 0); + key_name[0] = (int)KS_EXTRA; + key_name[1] = (int)KE_IGNORE; + slen = i + 1; +*** ../vim-7.3.883/src/version.c 2013-04-06 14:28:56.000000000 +0200 +--- src/version.c 2013-04-06 14:30:05.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 884, + /**/ + +-- +Don't drink and drive. You might hit a bump and spill your beer. + + /// 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 /// From b46193c5cdc90b13bed6c9e802eceb22df9b1f87 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:36 +0200 Subject: [PATCH 223/291] - patchlevel 885 --- 7.3.885 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.3.885 diff --git a/7.3.885 b/7.3.885 new file mode 100644 index 00000000..f7fdbd52 --- /dev/null +++ b/7.3.885 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.885 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.885 +Problem: Double free for list and dict in Lua. (Shougo Matsu) +Solution: Do not unref list and dict. (Yasuhiro Matsumoto) +Files: src/if_lua.c + + +*** ../vim-7.3.884/src/if_lua.c 2013-02-14 22:19:47.000000000 +0100 +--- src/if_lua.c 2013-04-12 11:42:56.000000000 +0200 +*************** +*** 665,677 **** + luaV_type_tostring(list, LUAVIM_LIST) + + static int +- luaV_list_gc (lua_State *L) +- { +- list_unref(luaV_unbox(L, luaV_List, 1)); +- return 0; +- } +- +- static int + luaV_list_len (lua_State *L) + { + list_T *l = luaV_unbox(L, luaV_List, 1); +--- 665,670 ---- +*************** +*** 801,807 **** + + static const luaL_Reg luaV_List_mt[] = { + {"__tostring", luaV_list_tostring}, +- {"__gc", luaV_list_gc}, + {"__len", luaV_list_len}, + {"__call", luaV_list_call}, + {"__index", luaV_list_index}, +--- 794,799 ---- +*************** +*** 830,842 **** + luaV_type_tostring(dict, LUAVIM_DICT) + + static int +- luaV_dict_gc (lua_State *L) +- { +- dict_unref(luaV_unbox(L, luaV_Dict, 1)); +- return 0; +- } +- +- static int + luaV_dict_len (lua_State *L) + { + dict_T *d = luaV_unbox(L, luaV_Dict, 1); +--- 822,827 ---- +*************** +*** 929,935 **** + + static const luaL_Reg luaV_Dict_mt[] = { + {"__tostring", luaV_dict_tostring}, +- {"__gc", luaV_dict_gc}, + {"__len", luaV_dict_len}, + {"__call", luaV_dict_call}, + {"__index", luaV_dict_index}, +--- 914,919 ---- +*** ../vim-7.3.884/src/version.c 2013-04-06 14:30:35.000000000 +0200 +--- src/version.c 2013-04-12 11:44:45.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 885, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +148. You find it easier to dial-up the National Weather Service + Weather/your_town/now.html than to simply look out the window. + + /// 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 /// From 9b9b87f6c555cfde8656741a59c58eb75c9c2def Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:37 +0200 Subject: [PATCH 224/291] - patchlevel 886 --- 7.3.886 | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 7.3.886 diff --git a/7.3.886 b/7.3.886 new file mode 100644 index 00000000..a823507e --- /dev/null +++ b/7.3.886 @@ -0,0 +1,93 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.886 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.886 +Problem: Can't build with multi-byte on Solaris 10. +Solution: Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume) +Files: src/ui.c + + +*** ../vim-7.3.885/src/ui.c 2013-03-13 17:50:20.000000000 +0100 +--- src/ui.c 2013-04-12 12:24:10.000000000 +0200 +*************** +*** 1458,1464 **** + + int + clip_gen_owner_exists(cbd) +! VimClipboard *cbd; + { + #ifdef FEAT_XCLIPBOARD + # ifdef FEAT_GUI_GTK +--- 1458,1464 ---- + + int + clip_gen_owner_exists(cbd) +! VimClipboard *cbd UNUSED; + { + #ifdef FEAT_XCLIPBOARD + # ifdef FEAT_GUI_GTK +*************** +*** 2134,2140 **** + text_prop.encoding = *type; + text_prop.format = *format; + text_prop.nitems = len; +! #ifdef FEAT_MBYTE + if (*type == utf8_atom) + status = Xutf8TextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); +--- 2134,2140 ---- + text_prop.encoding = *type; + text_prop.format = *format; + text_prop.nitems = len; +! #if defined(FEAT_MBYTE) && defined(X_HAVE_UTF8_STRING) + if (*type == utf8_atom) + status = Xutf8TextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); +*************** +*** 2196,2203 **** + default: type = XA_STRING; + } + #ifdef FEAT_MBYTE +! if (type == utf8_atom && !enc_utf8) +! /* Only request utf-8 when 'encoding' is utf8. */ + continue; + #endif + success = MAYBE; +--- 2196,2208 ---- + default: type = XA_STRING; + } + #ifdef FEAT_MBYTE +! if (type == utf8_atom +! # if defined(X_HAVE_UTF8_STRING) +! && !enc_utf8 +! # endif +! ) +! /* Only request utf-8 when 'encoding' is utf8 and +! * Xutf8TextPropertyToTextList is available. */ + continue; + #endif + success = MAYBE; +*** ../vim-7.3.885/src/version.c 2013-04-12 12:18:43.000000000 +0200 +--- src/version.c 2013-04-12 12:25:44.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 886, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +149. You find your computer sexier than your girlfriend + + /// 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 /// From 1e450b9070776e73f63af7ba46e17ebcfe4a040c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:37 +0200 Subject: [PATCH 225/291] - patchlevel 887 --- 7.3.887 | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 7.3.887 diff --git a/7.3.887 b/7.3.887 new file mode 100644 index 00000000..228845f6 --- /dev/null +++ b/7.3.887 @@ -0,0 +1,308 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.887 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.887 +Problem: No tests for Visual mode operators, what 7.3.879 fixes. +Solution: Add a new test file. (David Bürgin) +Files: src/testdir/test94.in, src/testdir/test94.ok, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile + + +*** ../vim-7.3.886/src/testdir/test94.in 2013-04-12 13:44:19.000000000 +0200 +--- src/testdir/test94.in 2013-04-12 13:37:12.000000000 +0200 +*************** +*** 0 **** +--- 1,98 ---- ++ Test for Visual mode and operators ++ ++ Tests for the two kinds of operations: Those executed with Visual mode ++ followed by an operator and those executed via Operator-pending mode. Also ++ part of the test are mappings, counts, and repetition with the . command. ++ ++ Test cases: ++ - Visual modes (v V CTRL-V) followed by an operator; count; repeating ++ - Visual mode maps; count; repeating ++ - Simple ++ - With an Ex command (custom text object) ++ - Operator-pending mode maps ++ - Simple ++ - With Ex command moving the cursor ++ - With Ex command and Visual selection (custom text object) ++ - Patch 7.3.879: Properly abort Ex command in Operator-pending mode ++ ++ STARTTEST ++ :so small.vim ++ :set nocp ++ : ++ :" User functions ++ :function MoveToCap() ++ : call search('\u', 'W') ++ :endfunction ++ :function SelectInCaps() ++ : let [line1, col1] = searchpos('\u', 'bcnW') ++ : let [line2, col2] = searchpos('.\u', 'nW') ++ : call setpos("'<", [0, line1, col1, 0]) ++ : call setpos("'>", [0, line2, col2, 0]) ++ : normal! gv ++ :endfunction ++ :function MoveToEndCount(count) ++ : normal! v:count . e ++ :endfunction ++ : ++ :" Visual modes followed by operator ++ /^apple ++ lvld.l3vd.: ++ /^line 1 ++ Vcnewlinej.j2Vd.: ++ /^xxxx ++ jlc l.l2c----l.: ++ : ++ :" Visual mode maps (movement and text object) ++ :vnoremap W /\u/s-1 ++ :vnoremap iW :call SelectInCaps() ++ /^Kiwi ++ vWcNol.fD2vd.: ++ /^Jambu ++ llviWc-l.l2vdl.: ++ : ++ :" Operator-pending mode maps (movement and text object) ++ :onoremap W /\u/ ++ :onoremap W :call MoveToCap() ++ :onoremap iW :call SelectInCaps() ++ /^Pineapple ++ cW-l.l2.l.: ++ /^Juniper ++ g?\WfD.: ++ /^Lemon ++ yiWPlciWNew: ++ : ++ :" Patch 7.3.879: Properly abort Operator-pending mode for "dv:" etc. ++ /^zzzz ++ dV: dv: :set noma | let v:errmsg = '' ++ d: :set ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed' ++ dv:dV::set noma | let v:errmsg = '' ++ d::set ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok' ++ :/^start:/+2,$w! test.out ++ :q! ++ ENDTEST ++ ++ start: ++ ++ apple banana cherry ++ ++ line 1 line 1 ++ line 2 line 2 ++ line 3 line 3 ++ line 4 line 4 ++ line 5 line 5 ++ line 6 line 6 ++ ++ xxxxxxxxxxxxx ++ xxxxxxxxxxxxx ++ xxxxxxxxxxxxx ++ xxxxxxxxxxxxx ++ ++ KiwiRaspberryDateWatermelonPeach ++ JambuRambutanBananaTangerineMango ++ ++ PineappleQuinceLoganberryOrangeGrapefruitKiwiZ ++ JuniperDurianZ ++ LemonNectarineZ ++ ++ zzzz ++ zzzz +*** ../vim-7.3.886/src/testdir/test94.ok 2013-04-12 13:44:19.000000000 +0200 +--- src/testdir/test94.ok 2013-04-12 13:37:12.000000000 +0200 +*************** +*** 0 **** +--- 1,20 ---- ++ a y ++ ++ newline ++ newline ++ ++ --------x ++ --------x ++ xxxx--------x ++ xxxx--------x ++ ++ NoNoberryach ++ --ago ++ ++ ----Z ++ WhavcreQhevnaZ ++ LemonNewNectarineZ ++ ++ zzz ++ ok ++ ok +*** ../vim-7.3.886/src/testdir/Make_amiga.mak 2013-02-26 17:21:15.000000000 +0100 +--- src/testdir/Make_amiga.mak 2013-04-12 13:39:47.000000000 +0200 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + .SUFFIXES: .in .out + +--- 32,39 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out \ +! test94.out + + .SUFFIXES: .in .out + +*************** +*** 142,144 **** +--- 143,146 ---- + test91.out: test91.in + test92.out: test92.in + test93.out: test93.in ++ test94.out: test94.in +*** ../vim-7.3.886/src/testdir/Make_dos.mak 2013-02-26 17:21:15.000000000 +0100 +--- src/testdir/Make_dos.mak 2013-04-12 13:39:56.000000000 +0200 +*************** +*** 31,37 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + SCRIPTS32 = test50.out test70.out + +--- 31,38 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out \ +! test94.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.886/src/testdir/Make_ming.mak 2013-02-26 17:21:15.000000000 +0100 +--- src/testdir/Make_ming.mak 2013-04-12 13:40:06.000000000 +0200 +*************** +*** 51,57 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + SCRIPTS32 = test50.out test70.out + +--- 51,58 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out \ +! test94.out + + SCRIPTS32 = test50.out test70.out + +*** ../vim-7.3.886/src/testdir/Make_os2.mak 2013-02-26 17:21:15.000000000 +0100 +--- src/testdir/Make_os2.mak 2013-04-12 13:40:13.000000000 +0200 +*************** +*** 32,38 **** + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + .SUFFIXES: .in .out + +--- 32,39 ---- + test71.out test72.out test73.out test74.out test75.out \ + test76.out test77.out test78.out test79.out test80.out \ + test81.out test82.out test83.out test84.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out \ +! test94.out + + .SUFFIXES: .in .out + +*** ../vim-7.3.886/src/testdir/Make_vms.mms 2013-02-26 17:21:15.000000000 +0100 +--- src/testdir/Make_vms.mms 2013-04-12 13:40:24.000000000 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013-02-21 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2013 Apr 12 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 77,83 **** + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ + test82.out test83.out test84.out test88.out test89.out \ +! test90.out test91.out test92.out test93.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +--- 77,83 ---- + test71.out test72.out test74.out test75.out test76.out \ + test77.out test78.out test79.out test80.out test81.out \ + test82.out test83.out test84.out test88.out test89.out \ +! test90.out test91.out test92.out test93.out test94.out + + # Known problems: + # Test 30: a problem around mac format - unknown reason +*** ../vim-7.3.886/src/testdir/Makefile 2013-02-26 17:21:15.000000000 +0100 +--- src/testdir/Makefile 2013-04-12 13:40:32.000000000 +0200 +*************** +*** 28,34 **** + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out + + SCRIPTS_GUI = test16.out + +--- 28,35 ---- + test74.out test75.out test76.out test77.out test78.out \ + test79.out test80.out test81.out test82.out test83.out \ + test84.out test85.out test86.out test87.out test88.out \ +! test89.out test90.out test91.out test92.out test93.out \ +! test94.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.3.886/src/version.c 2013-04-12 12:27:24.000000000 +0200 +--- src/version.c 2013-04-12 13:43:34.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 887, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +153. You find yourself staring at your "inbox" waiting for new e-mail + to arrive. + + /// 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 /// From bc1559fb71ea49bc83c95a4c3ff99a929ae218b0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:38 +0200 Subject: [PATCH 226/291] - patchlevel 888 --- 7.3.888 | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 7.3.888 diff --git a/7.3.888 b/7.3.888 new file mode 100644 index 00000000..6707f8a0 --- /dev/null +++ b/7.3.888 @@ -0,0 +1,150 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.888 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.888 +Problem: Filename completion with 'fileignorecase' does not work for + multi-byte characters. +Solution: Make 'fileignorecase' work properly. (Hirohito Higashi) +Files: src/misc2.c + + +*** ../vim-7.3.887/src/misc2.c 2013-03-19 18:31:45.000000000 +0100 +--- src/misc2.c 2013-04-12 14:15:03.000000000 +0200 +*************** +*** 6099,6150 **** + int maxlen; + { + int i; + const char *s = NULL; + +! for (i = 0; maxlen < 0 || i < maxlen; ++i) + { + /* End of "p": check if "q" also ends or just has a slash. */ +! if (p[i] == NUL) + { +! if (q[i] == NUL) /* full match */ + return 0; + s = q; + break; + } + + /* End of "q": check if "p" just has a slash. */ +! if (q[i] == NUL) + { + s = p; + break; + } + +! if ((p_fic ? TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i]) : p[i] != q[i]) + #ifdef BACKSLASH_IN_FILENAME + /* consider '/' and '\\' to be equal */ +! && !((p[i] == '/' && q[i] == '\\') +! || (p[i] == '\\' && q[i] == '/')) + #endif + ) + { +! if (vim_ispathsep(p[i])) + return -1; +! if (vim_ispathsep(q[i])) + return 1; +! return ((char_u *)p)[i] - ((char_u *)q)[i]; /* no match */ + } + } + if (s == NULL) /* "i" ran into "maxlen" */ + return 0; + + /* ignore a trailing slash, but not "//" or ":/" */ +! if (s[i + 1] == NUL + && i > 0 + && !after_pathsep((char_u *)s, (char_u *)s + i) + #ifdef BACKSLASH_IN_FILENAME +! && (s[i] == '/' || s[i] == '\\') + #else +! && s[i] == '/' + #endif + ) + return 0; /* match with trailing slash */ +--- 6099,6157 ---- + int maxlen; + { + int i; ++ int c1, c2; + const char *s = NULL; + +! for (i = 0; maxlen < 0 || i < maxlen; i += MB_PTR2LEN((char_u *)p + i)) + { ++ c1 = PTR2CHAR((char_u *)p + i); ++ c2 = PTR2CHAR((char_u *)q + i); ++ + /* End of "p": check if "q" also ends or just has a slash. */ +! if (c1 == NUL) + { +! if (c2 == NUL) /* full match */ + return 0; + s = q; + break; + } + + /* End of "q": check if "p" just has a slash. */ +! if (c2 == NUL) + { + s = p; + break; + } + +! if ((p_fic ? MB_TOUPPER(c1) != MB_TOUPPER(c2) : c1 != c2) + #ifdef BACKSLASH_IN_FILENAME + /* consider '/' and '\\' to be equal */ +! && !((c1 == '/' && c2 == '\\') +! || (c1 == '\\' && c2 == '/')) + #endif + ) + { +! if (vim_ispathsep(c1)) + return -1; +! if (vim_ispathsep(c2)) + return 1; +! return p_fic ? MB_TOUPPER(c1) - MB_TOUPPER(c2) +! : c1 - c2; /* no match */ + } + } + if (s == NULL) /* "i" ran into "maxlen" */ + return 0; + ++ c1 = PTR2CHAR((char_u *)s + i); ++ c2 = PTR2CHAR((char_u *)s + i + MB_PTR2LEN((char_u *)s + i)); + /* ignore a trailing slash, but not "//" or ":/" */ +! if (c2 == NUL + && i > 0 + && !after_pathsep((char_u *)s, (char_u *)s + i) + #ifdef BACKSLASH_IN_FILENAME +! && (c1 == '/' || c1 == '\\') + #else +! && c1 == '/' + #endif + ) + return 0; /* match with trailing slash */ +*** ../vim-7.3.887/src/version.c 2013-04-12 13:44:49.000000000 +0200 +--- src/version.c 2013-04-12 14:10:41.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 888, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +155. You forget to eat because you're too busy surfing the net. + + /// 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 /// From ca6833753916270c2d09b3d5577aa32939661f9b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:39 +0200 Subject: [PATCH 227/291] - patchlevel 889 --- 7.3.889 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.3.889 diff --git a/7.3.889 b/7.3.889 new file mode 100644 index 00000000..f63ce355 --- /dev/null +++ b/7.3.889 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.889 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.889 +Problem: Can't build with Ruby 2.0 on a 64 bit system. +Solution: Define rb_fix2int and rb_num2int. (Kohei Suzuki) +Files: src/if_ruby.c + + +*** ../vim-7.3.888/src/if_ruby.c 2013-03-07 15:16:16.000000000 +0100 +--- src/if_ruby.c 2013-04-12 15:25:26.000000000 +0200 +*************** +*** 88,93 **** +--- 88,101 ---- + # define rb_int2big rb_int2big_stub + #endif + ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ ++ && SIZEOF_INT < SIZEOF_LONG ++ /* Ruby 2.0 defines a number of static functions which use rb_fix2int and ++ * rb_num2int if SIZEOF_INT < SIZEOF_LONG (64bit) */ ++ # define rb_fix2int rb_fix2int_stub ++ # define rb_num2int rb_num2int_stub ++ #endif ++ + #include + #ifdef RUBY19_OR_LATER + # include +*************** +*** 352,357 **** +--- 360,376 ---- + { + return dll_rb_int2big(x); + } ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ ++ && SIZEOF_INT < SIZEOF_LONG ++ long rb_fix2int_stub(VALUE x) ++ { ++ return dll_rb_fix2int(x); ++ } ++ long rb_num2int_stub(VALUE x) ++ { ++ return dll_rb_num2int(x); ++ } ++ #endif + #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + VALUE + rb_float_new_in_heap(double d) +*** ../vim-7.3.888/src/version.c 2013-04-12 14:42:35.000000000 +0200 +--- src/version.c 2013-04-12 15:24:15.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 889, + /**/ + +-- +"Hit any key to continue" is very confusing when you have two keyboards. + + /// 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 /// From 20f7953208b27e37689f1acbe27206d636bdbe52 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:39 +0200 Subject: [PATCH 228/291] - patchlevel 890 --- 7.3.890 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 7.3.890 diff --git a/7.3.890 b/7.3.890 new file mode 100644 index 00000000..a7bcbca7 --- /dev/null +++ b/7.3.890 @@ -0,0 +1,60 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.890 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.890 +Problem: Test 79 fails on Windows. (Michael Soyka) +Solution: Add comment below line causing an error. +Files: src/testdir/test79.in + + +*** ../vim-7.3.889/src/testdir/test79.in 2013-03-19 17:42:10.000000000 +0100 +--- src/testdir/test79.in 2013-04-13 11:16:38.000000000 +0200 +*************** +*** 206,216 **** + STARTTEST + :set magic& + :set cpo& +! /^TEST/ + j:s/A./\=submatch(0)/ + j:s/B./\=submatch(0)/ + /^Q$ + :s/Q[^\n]Q/\=submatch(0)."foobar"/ + ENDTEST + + TEST_7: +--- 206,217 ---- + STARTTEST + :set magic& + :set cpo& +! /^TEST_7/ + j:s/A./\=submatch(0)/ + j:s/B./\=submatch(0)/ + /^Q$ + :s/Q[^\n]Q/\=submatch(0)."foobar"/ ++ :" Avoid :s error breaks dotest map on Windows. + ENDTEST + + TEST_7: +*** ../vim-7.3.889/src/version.c 2013-04-14 16:18:52.000000000 +0200 +--- src/version.c 2013-04-14 16:21:14.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 890, + /**/ + +-- +"Hit any key to continue" it said, but nothing happened after F sharp. + + /// 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 /// From 042920f49ff30cb808c13773ac923e1ebd6dd9f1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:40 +0200 Subject: [PATCH 229/291] - patchlevel 891 --- 7.3.891 | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 7.3.891 diff --git a/7.3.891 b/7.3.891 new file mode 100644 index 00000000..456410f4 --- /dev/null +++ b/7.3.891 @@ -0,0 +1,142 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.891 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.891 +Problem: Merging viminfo history doesn't work well. +Solution: Don't stop when one type of history is empty. Don't merge history + when writing viminfo. +Files: src/ex_getln.c + + +*** ../vim-7.3.890/src/ex_getln.c 2013-04-06 14:28:56.000000000 +0200 +--- src/ex_getln.c 2013-04-14 16:25:28.000000000 +0200 +*************** +*** 6130,6136 **** + for (type = 0; type < HIST_COUNT; ++type) + { + if (history[type] == NULL) +! return; + idx = hisidx[type] + viminfo_hisidx[type]; + if (idx >= hislen) + idx -= hislen; +--- 6130,6136 ---- + for (type = 0; type < HIST_COUNT; ++type) + { + if (history[type] == NULL) +! continue; + idx = hisidx[type] + viminfo_hisidx[type]; + if (idx >= hislen) + idx -= hislen; +*************** +*** 6182,6187 **** +--- 6182,6188 ---- + int num_saved; + char_u *p; + int c; ++ int round; + + init_history(); + if (hislen == 0) +*************** +*** 6200,6225 **** + _("Input Line")); + if (num_saved > hislen) + num_saved = hislen; +! i = hisidx[type]; +! if (i >= 0) +! while (num_saved--) +! { +! p = history[type][i].hisstr; +! if (p != NULL) + { +! fputc(hist_type2char(type, TRUE), fp); +! /* For the search history: put the separator in the second +! * column; use a space if there isn't one. */ +! if (type == HIST_SEARCH) + { +! c = p[STRLEN(p) + 1]; +! putc(c == NUL ? ' ' : c, fp); + } +- viminfo_writestring(fp, p); + } +! if (--i < 0) +! i = hislen - 1; +! } + } + } + #endif /* FEAT_VIMINFO */ +--- 6201,6250 ---- + _("Input Line")); + if (num_saved > hislen) + num_saved = hislen; +! +! /* +! * Merge typed and viminfo history: +! * round 1: history of typed commands. +! * round 2: history from recently read viminfo. +! */ +! for (round = 1; round <= 2; ++round) +! { +! i = round == 1 ? hisidx[type] : 0; +! if (i >= 0) +! while (num_saved > 0 +! && !(round == 2 && i >= viminfo_hisidx[type])) + { +! p = round == 1 ? history[type][i].hisstr +! : viminfo_history[type][i]; +! if (p != NULL) + { +! --num_saved; +! fputc(hist_type2char(type, TRUE), fp); +! /* For the search history: put the separator in the +! * second column; use a space if there isn't one. */ +! if (type == HIST_SEARCH) +! { +! c = p[STRLEN(p) + 1]; +! putc(c == NUL ? ' ' : c, fp); +! } +! viminfo_writestring(fp, p); +! } +! if (round == 1) +! { +! /* Decrement index, loop around and stop when back at +! * the start. */ +! if (--i < 0) +! i = hislen - 1; +! if (i == hisidx[type]) +! break; +! } +! else +! { +! /* Increment index. Stop at the end in the while. */ +! ++i; + } + } +! } + } + } + #endif /* FEAT_VIMINFO */ +*** ../vim-7.3.890/src/version.c 2013-04-14 16:21:30.000000000 +0200 +--- src/version.c 2013-04-14 16:23:17.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 891, + /**/ + +-- +"The question of whether computers can think is just like the question +of whether submarines can swim." -- Edsger W. Dijkstra + + /// 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 /// From 7c0976d098455ffea616e52e6ed5aed7e6c43936 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:41 +0200 Subject: [PATCH 230/291] - patchlevel 892 --- 7.3.892 | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 7.3.892 diff --git a/7.3.892 b/7.3.892 new file mode 100644 index 00000000..4031d4df --- /dev/null +++ b/7.3.892 @@ -0,0 +1,295 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.892 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.892 (after 7.3.891) +Problem: Still merging problems for viminfo history. +Solution: Do not merge lines when writing, don't write old viminfo lines. +Files: src/ex_getln.c, src/ex_cmds.c, src/proto/ex_getln.pro + + +*** ../vim-7.3.891/src/ex_getln.c 2013-04-14 16:26:08.000000000 +0200 +--- src/ex_getln.c 2013-04-14 23:12:37.000000000 +0200 +*************** +*** 68,74 **** + + static int hist_char2type __ARGS((int c)); + +! static int in_history __ARGS((int, char_u *, int, int)); + # ifdef FEAT_EVAL + static int calc_hist_idx __ARGS((int histype, int num)); + # endif +--- 68,74 ---- + + static int hist_char2type __ARGS((int c)); + +! static int in_history __ARGS((int, char_u *, int, int, int)); + # ifdef FEAT_EVAL + static int calc_hist_idx __ARGS((int histype, int num)); + # endif +*************** +*** 5397,5407 **** + * If 'move_to_front' is TRUE, matching entry is moved to end of history. + */ + static int +! in_history(type, str, move_to_front, sep) + int type; + char_u *str; + int move_to_front; /* Move the entry to the front if it exists */ + int sep; + { + int i; + int last_i = -1; +--- 5397,5408 ---- + * If 'move_to_front' is TRUE, matching entry is moved to end of history. + */ + static int +! in_history(type, str, move_to_front, sep, writing) + int type; + char_u *str; + int move_to_front; /* Move the entry to the front if it exists */ + int sep; ++ int writing; /* ignore entries read from viminfo */ + { + int i; + int last_i = -1; +*************** +*** 5419,5424 **** +--- 5420,5426 ---- + * well. */ + p = history[type][i].hisstr; + if (STRCMP(str, p) == 0 ++ && !(writing && history[type][i].viminfo) + && (type != HIST_SEARCH || sep == p[STRLEN(p) + 1])) + { + if (!move_to_front) +*************** +*** 5513,5519 **** + } + last_maptick = -1; + } +! if (!in_history(histype, new_entry, TRUE, sep)) + { + if (++hisidx[histype] == hislen) + hisidx[histype] = 0; +--- 5515,5521 ---- + } + last_maptick = -1; + } +! if (!in_history(histype, new_entry, TRUE, sep, FALSE)) + { + if (++hisidx[histype] == hislen) + hisidx[histype] = 0; +*************** +*** 6032,6039 **** + * This allocates history arrays to store the read history lines. + */ + void +! prepare_viminfo_history(asklen) + int asklen; + { + int i; + int num; +--- 6034,6042 ---- + * This allocates history arrays to store the read history lines. + */ + void +! prepare_viminfo_history(asklen, writing) + int asklen; ++ int writing; + { + int i; + int num; +*************** +*** 6041,6047 **** + int len; + + init_history(); +! viminfo_add_at_front = (asklen != 0); + if (asklen > hislen) + asklen = hislen; + +--- 6044,6050 ---- + int len; + + init_history(); +! viminfo_add_at_front = (asklen != 0 && !writing); + if (asklen > hislen) + asklen = hislen; + +*************** +*** 6073,6080 **** + * new. + */ + int +! read_viminfo_history(virp) + vir_T *virp; + { + int type; + long_u len; +--- 6076,6084 ---- + * new. + */ + int +! read_viminfo_history(virp, writing) + vir_T *virp; ++ int writing; + { + int type; + long_u len; +*************** +*** 6090,6096 **** + int sep = (*val == ' ' ? NUL : *val); + + if (!in_history(type, val + (type == HIST_SEARCH), +! viminfo_add_at_front, sep)) + { + /* Need to re-allocate to append the separator byte. */ + len = STRLEN(val); +--- 6094,6100 ---- + int sep = (*val == ' ' ? NUL : *val); + + if (!in_history(type, val + (type == HIST_SEARCH), +! viminfo_add_at_front, sep, writing)) + { + /* Need to re-allocate to append the separator byte. */ + len = STRLEN(val); +*************** +*** 6120,6125 **** +--- 6124,6132 ---- + return viminfo_readline(virp); + } + ++ /* ++ * Finish reading history lines from viminfo. Not used when writing viminfo. ++ */ + void + finish_viminfo_history() + { +*************** +*** 6216,6222 **** + { + p = round == 1 ? history[type][i].hisstr + : viminfo_history[type][i]; +! if (p != NULL) + { + --num_saved; + fputc(hist_type2char(type, TRUE), fp); +--- 6223,6229 ---- + { + p = round == 1 ? history[type][i].hisstr + : viminfo_history[type][i]; +! if (p != NULL && (round == 2 || !history[type][i].viminfo)) + { + --num_saved; + fputc(hist_type2char(type, TRUE), fp); +*************** +*** 6245,6250 **** +--- 6252,6261 ---- + } + } + } ++ for (i = 0; i < viminfo_hisidx[type]; ++i) ++ vim_free(viminfo_history[type][i]); ++ vim_free(viminfo_history[type]); ++ viminfo_history[type] = NULL; + } + } + #endif /* FEAT_VIMINFO */ +*** ../vim-7.3.891/src/ex_cmds.c 2013-03-07 16:41:26.000000000 +0100 +--- src/ex_cmds.c 2013-04-14 23:08:26.000000000 +0200 +*************** +*** 2113,2119 **** + buf_T *buf; + + #ifdef FEAT_CMDHIST +! prepare_viminfo_history(forceit ? 9999 : 0); + #endif + eof = viminfo_readline(virp); + while (!eof && virp->vir_line[0] != '>') +--- 2113,2119 ---- + buf_T *buf; + + #ifdef FEAT_CMDHIST +! prepare_viminfo_history(forceit ? 9999 : 0, writing); + #endif + eof = viminfo_readline(virp); + while (!eof && virp->vir_line[0] != '>') +*************** +*** 2161,2167 **** + case '=': + case '@': + #ifdef FEAT_CMDHIST +! eof = read_viminfo_history(virp); + #else + eof = viminfo_readline(virp); + #endif +--- 2161,2167 ---- + case '=': + case '@': + #ifdef FEAT_CMDHIST +! eof = read_viminfo_history(virp, writing); + #else + eof = viminfo_readline(virp); + #endif +*************** +*** 2182,2188 **** + + #ifdef FEAT_CMDHIST + /* Finish reading history items. */ +! finish_viminfo_history(); + #endif + + /* Change file names to buffer numbers for fmarks. */ +--- 2182,2189 ---- + + #ifdef FEAT_CMDHIST + /* Finish reading history items. */ +! if (!writing) +! finish_viminfo_history(); + #endif + + /* Change file names to buffer numbers for fmarks. */ +*** ../vim-7.3.891/src/proto/ex_getln.pro 2011-05-19 18:26:34.000000000 +0200 +--- src/proto/ex_getln.pro 2013-04-14 23:12:02.000000000 +0200 +*************** +*** 48,55 **** + void remove_key_from_history __ARGS((void)); + int get_list_range __ARGS((char_u **str, int *num1, int *num2)); + void ex_history __ARGS((exarg_T *eap)); +! void prepare_viminfo_history __ARGS((int asklen)); +! int read_viminfo_history __ARGS((vir_T *virp)); + void finish_viminfo_history __ARGS((void)); + void write_viminfo_history __ARGS((FILE *fp)); + void cmd_pchar __ARGS((int c, int offset)); +--- 48,55 ---- + void remove_key_from_history __ARGS((void)); + int get_list_range __ARGS((char_u **str, int *num1, int *num2)); + void ex_history __ARGS((exarg_T *eap)); +! void prepare_viminfo_history __ARGS((int asklen, int writing)); +! int read_viminfo_history __ARGS((vir_T *virp, int writing)); + void finish_viminfo_history __ARGS((void)); + void write_viminfo_history __ARGS((FILE *fp)); + void cmd_pchar __ARGS((int c, int offset)); +*** ../vim-7.3.891/src/version.c 2013-04-14 16:26:08.000000000 +0200 +--- src/version.c 2013-04-14 22:53:04.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 892, + /**/ + +-- +"Hit any key to continue" is a lie. + + /// 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 /// From 520a3cb1179ae0c810ccb1eb62f46e8f6abda83d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:42 +0200 Subject: [PATCH 231/291] - patchlevel 893 --- 7.3.893 | 718 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 718 insertions(+) create mode 100644 7.3.893 diff --git a/7.3.893 b/7.3.893 new file mode 100644 index 00000000..5dd71ba7 --- /dev/null +++ b/7.3.893 @@ -0,0 +1,718 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.893 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.893 +Problem: Crash when using b:, w: or t: after closing the buffer, window or + tabpage. +Solution: Allocate the dictionary instead of having it part of the + buffer/window/tabpage struct. (Yukihiro Nakadaira) +Files: src/buffer.c, src/eval.c, src/fileio.c, src/structs.h, + src/window.c, src/proto/eval.pro + + +*** ../vim-7.3.892/src/buffer.c 2013-03-19 16:46:59.000000000 +0100 +--- src/buffer.c 2013-04-15 12:07:07.000000000 +0200 +*************** +*** 648,653 **** +--- 648,656 ---- + buf_T *buf; + { + free_buffer_stuff(buf, TRUE); ++ #ifdef FEAT_EVAL ++ unref_var_dict(buf->b_vars); ++ #endif + #ifdef FEAT_LUA + lua_buffer_free(buf); + #endif +*************** +*** 689,696 **** + #endif + } + #ifdef FEAT_EVAL +! vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */ +! hash_init(&buf->b_vars.dv_hashtab); + #endif + #ifdef FEAT_USR_CMDS + uc_clear(&buf->b_ucmds); /* clear local user commands */ +--- 692,699 ---- + #endif + } + #ifdef FEAT_EVAL +! vars_clear(&buf->b_vars->dv_hashtab); /* free all internal variables */ +! hash_init(&buf->b_vars->dv_hashtab); + #endif + #ifdef FEAT_USR_CMDS + uc_clear(&buf->b_ucmds); /* clear local user commands */ +*************** +*** 1694,1699 **** +--- 1697,1713 ---- + vim_free(ffname); + return NULL; + } ++ #ifdef FEAT_EVAL ++ /* init b: variables */ ++ buf->b_vars = dict_alloc(); ++ if (buf->b_vars == NULL) ++ { ++ vim_free(ffname); ++ vim_free(buf); ++ return NULL; ++ } ++ init_var_dict(buf->b_vars, &buf->b_bufvar, VAR_SCOPE); ++ #endif + } + + if (ffname != NULL) +*************** +*** 1778,1787 **** + buf->b_wininfo->wi_fpos.lnum = lnum; + buf->b_wininfo->wi_win = curwin; + +- #ifdef FEAT_EVAL +- /* init b: variables */ +- init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE); +- #endif + #ifdef FEAT_SYN_HL + hash_init(&buf->b_s.b_keywtab); + hash_init(&buf->b_s.b_keywtab_ic); +--- 1792,1797 ---- +*** ../vim-7.3.892/src/eval.c 2013-03-19 14:25:50.000000000 +0100 +--- src/eval.c 2013-04-15 12:26:33.000000000 +0200 +*************** +*** 2131,2137 **** + { + char_u numbuf[NUMBUFLEN]; + +! list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:", + TRUE, first); + + sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick); +--- 2131,2137 ---- + { + char_u numbuf[NUMBUFLEN]; + +! list_hashtable_vars(&curbuf->b_vars->dv_hashtab, (char_u *)"b:", + TRUE, first); + + sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick); +*************** +*** 2146,2152 **** + list_win_vars(first) + int *first; + { +! list_hashtable_vars(&curwin->w_vars.dv_hashtab, + (char_u *)"w:", TRUE, first); + } + +--- 2146,2152 ---- + list_win_vars(first) + int *first; + { +! list_hashtable_vars(&curwin->w_vars->dv_hashtab, + (char_u *)"w:", TRUE, first); + } + +*************** +*** 2158,2164 **** + list_tab_vars(first) + int *first; + { +! list_hashtable_vars(&curtab->tp_vars.dv_hashtab, + (char_u *)"t:", TRUE, first); + } + #endif +--- 2158,2164 ---- + list_tab_vars(first) + int *first; + { +! list_hashtable_vars(&curtab->tp_vars->dv_hashtab, + (char_u *)"t:", TRUE, first); + } + #endif +*************** +*** 3948,3954 **** + } + + /* b: variables */ +! ht = &curbuf->b_vars.dv_hashtab; + if (bdone < ht->ht_used) + { + if (bdone++ == 0) +--- 3948,3954 ---- + } + + /* b: variables */ +! ht = &curbuf->b_vars->dv_hashtab; + if (bdone < ht->ht_used) + { + if (bdone++ == 0) +*************** +*** 3966,3972 **** + } + + /* w: variables */ +! ht = &curwin->w_vars.dv_hashtab; + if (wdone < ht->ht_used) + { + if (wdone++ == 0) +--- 3966,3972 ---- + } + + /* w: variables */ +! ht = &curwin->w_vars->dv_hashtab; + if (wdone < ht->ht_used) + { + if (wdone++ == 0) +*************** +*** 3980,3986 **** + + #ifdef FEAT_WINDOWS + /* t: variables */ +! ht = &curtab->tp_vars.dv_hashtab; + if (tdone < ht->ht_used) + { + if (tdone++ == 0) +--- 3980,3986 ---- + + #ifdef FEAT_WINDOWS + /* t: variables */ +! ht = &curtab->tp_vars->dv_hashtab; + if (tdone < ht->ht_used) + { + if (tdone++ == 0) +*************** +*** 6787,6802 **** + + /* buffer-local variables */ + for (buf = firstbuf; buf != NULL; buf = buf->b_next) +! set_ref_in_ht(&buf->b_vars.dv_hashtab, copyID); + + /* window-local variables */ + FOR_ALL_TAB_WINDOWS(tp, wp) +! set_ref_in_ht(&wp->w_vars.dv_hashtab, copyID); + + #ifdef FEAT_WINDOWS + /* tabpage-local variables */ + for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! set_ref_in_ht(&tp->tp_vars.dv_hashtab, copyID); + #endif + + /* global variables */ +--- 6787,6802 ---- + + /* buffer-local variables */ + for (buf = firstbuf; buf != NULL; buf = buf->b_next) +! set_ref_in_item(&buf->b_bufvar.di_tv, copyID); + + /* window-local variables */ + FOR_ALL_TAB_WINDOWS(tp, wp) +! set_ref_in_item(&wp->w_winvar.di_tv, copyID); + + #ifdef FEAT_WINDOWS + /* tabpage-local variables */ + for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! set_ref_in_item(&tp->tp_winvar.di_tv, copyID); + #endif + + /* global variables */ +*************** +*** 11156,11162 **** + * find_var_in_ht(). */ + varname = (char_u *)"b:" + 2; + /* look up the variable */ +! v = find_var_in_ht(&curbuf->b_vars.dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +--- 11156,11162 ---- + * find_var_in_ht(). */ + varname = (char_u *)"b:" + 2; + /* look up the variable */ +! v = find_var_in_ht(&curbuf->b_vars->dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +*************** +*** 11779,11785 **** + if (tp != NULL && varname != NULL) + { + /* look up the variable */ +! v = find_var_in_ht(&tp->tp_vars.dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + else if (argvars[2].v_type != VAR_UNKNOWN) +--- 11779,11785 ---- + if (tp != NULL && varname != NULL) + { + /* look up the variable */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + else if (argvars[2].v_type != VAR_UNKNOWN) +*************** +*** 11935,11941 **** + * find_var_in_ht(). */ + varname = (char_u *)"w:" + 2; + /* look up the variable */ +! v = find_var_in_ht(&win->w_vars.dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +--- 11935,11941 ---- + * find_var_in_ht(). */ + varname = (char_u *)"w:" + 2; + /* look up the variable */ +! v = find_var_in_ht(&win->w_vars->dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +*************** +*** 14333,14339 **** + rettv->v_type = VAR_STRING; + } + +! #ifdef FEAT_MZSCHEME + /* + * "mzeval()" function + */ +--- 14333,14339 ---- + rettv->v_type = VAR_STRING; + } + +! #if defined(FEAT_MZSCHEME) || defined(PROTO) + /* + * "mzeval()" function + */ +*************** +*** 20134,20145 **** + || vim_strchr(name + 2, AUTOLOAD_CHAR) != NULL) + return NULL; + if (*name == 'b') /* buffer variable */ +! return &curbuf->b_vars.dv_hashtab; + if (*name == 'w') /* window variable */ +! return &curwin->w_vars.dv_hashtab; + #ifdef FEAT_WINDOWS + if (*name == 't') /* tab page variable */ +! return &curtab->tp_vars.dv_hashtab; + #endif + if (*name == 'v') /* v: variable */ + return &vimvarht; +--- 20134,20145 ---- + || vim_strchr(name + 2, AUTOLOAD_CHAR) != NULL) + return NULL; + if (*name == 'b') /* buffer variable */ +! return &curbuf->b_vars->dv_hashtab; + if (*name == 'w') /* window variable */ +! return &curwin->w_vars->dv_hashtab; + #ifdef FEAT_WINDOWS + if (*name == 't') /* tab page variable */ +! return &curtab->tp_vars->dv_hashtab; + #endif + if (*name == 'v') /* v: variable */ + return &vimvarht; +*************** +*** 20229,20234 **** +--- 20229,20247 ---- + } + + /* ++ * Unreference a dictionary initialized by init_var_dict(). ++ */ ++ void ++ unref_var_dict(dict) ++ dict_T *dict; ++ { ++ /* Now the dict needs to be freed if no one else is using it, go back to ++ * normal reference counting. */ ++ dict->dv_refcount -= DO_NOT_FREE_CNT - 1; ++ dict_unref(dict); ++ } ++ ++ /* + * Clean up a list of internal variables. + * Frees all allocated variables and the value they contain. + * Clears hashtab "ht", does not free it. +*** ../vim-7.3.892/src/fileio.c 2013-03-19 16:46:59.000000000 +0100 +--- src/fileio.c 2013-04-15 11:52:34.000000000 +0200 +*************** +*** 8955,8962 **** + /* Hmm, original window disappeared. Just use the first one. */ + curwin = firstwin; + # ifdef FEAT_EVAL +! vars_clear(&aucmd_win->w_vars.dv_hashtab); /* free all w: variables */ +! hash_init(&aucmd_win->w_vars.dv_hashtab); /* re-use the hashtab */ + # endif + #else + curwin = aco->save_curwin; +--- 8955,8962 ---- + /* Hmm, original window disappeared. Just use the first one. */ + curwin = firstwin; + # ifdef FEAT_EVAL +! vars_clear(&aucmd_win->w_vars->dv_hashtab); /* free all w: variables */ +! hash_init(&aucmd_win->w_vars->dv_hashtab); /* re-use the hashtab */ + # endif + #else + curwin = aco->save_curwin; +*** ../vim-7.3.892/src/structs.h 2012-07-16 17:31:48.000000000 +0200 +--- src/structs.h 2013-04-15 11:52:34.000000000 +0200 +*************** +*** 1611,1617 **** + + #ifdef FEAT_EVAL + dictitem_T b_bufvar; /* variable for "b:" Dictionary */ +! dict_T b_vars; /* internal variables, local to buffer */ + #endif + + #if defined(FEAT_BEVAL) && defined(FEAT_EVAL) +--- 1611,1617 ---- + + #ifdef FEAT_EVAL + dictitem_T b_bufvar; /* variable for "b:" Dictionary */ +! dict_T *b_vars; /* internal variables, local to buffer */ + #endif + + #if defined(FEAT_BEVAL) && defined(FEAT_EVAL) +*************** +*** 1757,1763 **** + frame_T *(tp_snapshot[SNAP_COUNT]); /* window layout snapshots */ + #ifdef FEAT_EVAL + dictitem_T tp_winvar; /* variable for "t:" Dictionary */ +! dict_T tp_vars; /* internal variables, local to tab page */ + #endif + }; + +--- 1757,1763 ---- + frame_T *(tp_snapshot[SNAP_COUNT]); /* window layout snapshots */ + #ifdef FEAT_EVAL + dictitem_T tp_winvar; /* variable for "t:" Dictionary */ +! dict_T *tp_vars; /* internal variables, local to tab page */ + #endif + }; + +*************** +*** 2080,2086 **** + + #ifdef FEAT_EVAL + dictitem_T w_winvar; /* variable for "w:" Dictionary */ +! dict_T w_vars; /* internal variables, local to window */ + #endif + + #if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP) +--- 2080,2086 ---- + + #ifdef FEAT_EVAL + dictitem_T w_winvar; /* variable for "w:" Dictionary */ +! dict_T *w_vars; /* internal variables, local to window */ + #endif + + #if defined(FEAT_RIGHTLEFT) && defined(FEAT_FKMAP) +*** ../vim-7.3.892/src/window.c 2013-02-06 13:37:58.000000000 +0100 +--- src/window.c 2013-04-15 12:20:09.000000000 +0200 +*************** +*** 3457,3481 **** + alloc_tabpage() + { + tabpage_T *tp; + + tp = (tabpage_T *)alloc_clear((unsigned)sizeof(tabpage_T)); +! if (tp != NULL) + { +! # ifdef FEAT_GUI +! int i; + +! for (i = 0; i < 3; i++) +! tp->tp_prev_which_scrollbars[i] = -1; + # endif + # ifdef FEAT_DIFF +! tp->tp_diff_invalid = TRUE; + # endif +! #ifdef FEAT_EVAL +! /* init t: variables */ +! init_var_dict(&tp->tp_vars, &tp->tp_winvar, VAR_SCOPE); +! #endif +! tp->tp_ch_used = p_ch; +! } + return tp; + } + +--- 3457,3491 ---- + alloc_tabpage() + { + tabpage_T *tp; ++ # ifdef FEAT_GUI ++ int i; ++ # endif ++ + + tp = (tabpage_T *)alloc_clear((unsigned)sizeof(tabpage_T)); +! if (tp == NULL) +! return NULL; +! +! # ifdef FEAT_EVAL +! /* init t: variables */ +! tp->tp_vars = dict_alloc(); +! if (tp->tp_vars == NULL) + { +! vim_free(tp); +! return NULL; +! } +! init_var_dict(tp->tp_vars, &tp->tp_winvar, VAR_SCOPE); +! # endif + +! # ifdef FEAT_GUI +! for (i = 0; i < 3; i++) +! tp->tp_prev_which_scrollbars[i] = -1; + # endif + # ifdef FEAT_DIFF +! tp->tp_diff_invalid = TRUE; + # endif +! tp->tp_ch_used = p_ch; +! + return tp; + } + +*************** +*** 3491,3497 **** + for (idx = 0; idx < SNAP_COUNT; ++idx) + clear_snapshot(tp, idx); + #ifdef FEAT_EVAL +! vars_clear(&tp->tp_vars.dv_hashtab); /* free all t: variables */ + #endif + vim_free(tp); + } +--- 3501,3509 ---- + for (idx = 0; idx < SNAP_COUNT; ++idx) + clear_snapshot(tp, idx); + #ifdef FEAT_EVAL +! vars_clear(&tp->tp_vars->dv_hashtab); /* free all t: variables */ +! hash_init(&tp->tp_vars->dv_hashtab); +! unref_var_dict(tp->tp_vars); + #endif + vim_free(tp); + } +*************** +*** 4363,4433 **** + * allocate window structure and linesizes arrays + */ + new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T)); +! if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL) + { + vim_free(new_wp); +! new_wp = NULL; + } + +! if (new_wp != NULL) + { + #ifdef FEAT_AUTOCMD +! /* Don't execute autocommands while the window is not properly +! * initialized yet. gui_create_scrollbar() may trigger a FocusGained +! * event. */ +! block_autocmds(); + #endif +! /* +! * link the window in the window list +! */ + #ifdef FEAT_WINDOWS +! if (!hidden) +! win_append(after, new_wp); + #endif + #ifdef FEAT_VERTSPLIT +! new_wp->w_wincol = 0; +! new_wp->w_width = Columns; + #endif + +! /* position the display and the cursor at the top of the file. */ +! new_wp->w_topline = 1; + #ifdef FEAT_DIFF +! new_wp->w_topfill = 0; + #endif +! new_wp->w_botline = 2; +! new_wp->w_cursor.lnum = 1; + #ifdef FEAT_SCROLLBIND +! new_wp->w_scbind_pos = 1; + #endif + +! /* We won't calculate w_fraction until resizing the window */ +! new_wp->w_fraction = 0; +! new_wp->w_prev_fraction_row = -1; + + #ifdef FEAT_GUI +! if (gui.in_use) +! { +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT], +! SBAR_LEFT, new_wp); +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT], +! SBAR_RIGHT, new_wp); +! } +! #endif +! #ifdef FEAT_EVAL +! /* init w: variables */ +! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE); + #endif + #ifdef FEAT_FOLDING +! foldInitWin(new_wp); + #endif + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA +! new_wp->w_match_head = NULL; +! new_wp->w_next_match_id = 4; + #endif +- } + return new_wp; + } + +--- 4375,4453 ---- + * allocate window structure and linesizes arrays + */ + new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T)); +! if (new_wp == NULL) +! return NULL; +! +! if (win_alloc_lines(new_wp) == FAIL) + { + vim_free(new_wp); +! return NULL; + } + +! #ifdef FEAT_EVAL +! /* init w: variables */ +! new_wp->w_vars = dict_alloc(); +! if (new_wp->w_vars == NULL) + { ++ win_free_lsize(new_wp); ++ vim_free(new_wp); ++ return NULL; ++ } ++ init_var_dict(new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE); ++ #endif ++ + #ifdef FEAT_AUTOCMD +! /* Don't execute autocommands while the window is not properly +! * initialized yet. gui_create_scrollbar() may trigger a FocusGained +! * event. */ +! block_autocmds(); + #endif +! /* +! * link the window in the window list +! */ + #ifdef FEAT_WINDOWS +! if (!hidden) +! win_append(after, new_wp); + #endif + #ifdef FEAT_VERTSPLIT +! new_wp->w_wincol = 0; +! new_wp->w_width = Columns; + #endif + +! /* position the display and the cursor at the top of the file. */ +! new_wp->w_topline = 1; + #ifdef FEAT_DIFF +! new_wp->w_topfill = 0; + #endif +! new_wp->w_botline = 2; +! new_wp->w_cursor.lnum = 1; + #ifdef FEAT_SCROLLBIND +! new_wp->w_scbind_pos = 1; + #endif + +! /* We won't calculate w_fraction until resizing the window */ +! new_wp->w_fraction = 0; +! new_wp->w_prev_fraction_row = -1; + + #ifdef FEAT_GUI +! if (gui.in_use) +! { +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT], +! SBAR_LEFT, new_wp); +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT], +! SBAR_RIGHT, new_wp); +! } + #endif + #ifdef FEAT_FOLDING +! foldInitWin(new_wp); + #endif + #ifdef FEAT_AUTOCMD +! unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA +! new_wp->w_match_head = NULL; +! new_wp->w_next_match_id = 4; + #endif + return new_wp; + } + +*************** +*** 4488,4494 **** + clear_winopt(&wp->w_allbuf_opt); + + #ifdef FEAT_EVAL +! vars_clear(&wp->w_vars.dv_hashtab); /* free all w: variables */ + #endif + + if (prevwin == wp) +--- 4508,4516 ---- + clear_winopt(&wp->w_allbuf_opt); + + #ifdef FEAT_EVAL +! vars_clear(&wp->w_vars->dv_hashtab); /* free all w: variables */ +! hash_init(&wp->w_vars->dv_hashtab); +! unref_var_dict(wp->w_vars); + #endif + + if (prevwin == wp) +*** ../vim-7.3.892/src/proto/eval.pro 2013-01-30 14:55:35.000000000 +0100 +--- src/proto/eval.pro 2013-04-15 12:26:39.000000000 +0200 +*************** +*** 24,31 **** + int get_spellword __ARGS((list_T *list, char_u **pp)); + typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd)); + int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv)); +- void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe)); + long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe)); + void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe)); + void *save_funccal __ARGS((void)); + void restore_funccal __ARGS((void *vfc)); +--- 24,31 ---- + int get_spellword __ARGS((list_T *list, char_u **pp)); + typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd)); + int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv)); + long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe)); ++ void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe)); + void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe)); + void *save_funccal __ARGS((void)); + void restore_funccal __ARGS((void *vfc)); +*************** +*** 95,100 **** +--- 95,101 ---- + char_u *get_var_value __ARGS((char_u *name)); + void new_script_vars __ARGS((scid_T id)); + void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var, int scope)); ++ void unref_var_dict __ARGS((dict_T *dict)); + void vars_clear __ARGS((hashtab_T *ht)); + void copy_tv __ARGS((typval_T *from, typval_T *to)); + void ex_echo __ARGS((exarg_T *eap)); +*** ../vim-7.3.892/src/version.c 2013-04-14 23:19:32.000000000 +0200 +--- src/version.c 2013-04-15 12:19:17.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 893, + /**/ + +-- +Apathy Error: Don't bother striking any key. + + /// 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 /// From be2e68872fb1a5f2e0bdb530a6a0c0789ece9dab Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:42 +0200 Subject: [PATCH 232/291] - patchlevel 894 --- 7.3.894 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.3.894 diff --git a/7.3.894 b/7.3.894 new file mode 100644 index 00000000..8b435fee --- /dev/null +++ b/7.3.894 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.894 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.894 +Problem: Using wrong RUBY_VER causing Ruby build to break. +Solution: Correct the RUBY_VER value. (Yongwei Wu) +Files: src/bigvim.bat + + +*** ../vim-7.3.893/src/bigvim.bat 2012-08-29 14:18:26.000000000 +0200 +--- src/bigvim.bat 2013-04-15 12:32:08.000000000 +0200 +*************** +*** 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 + +--- 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=19 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.893/src/version.c 2013-04-15 12:27:30.000000000 +0200 +--- src/version.c 2013-04-15 12:34:36.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 894, + /**/ + +-- +Did you ever see a "Hit any key to continue" message in a music piece? + + /// 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 /// From d1aaf17c79160dba71d21e40f33537c3ee3e1faf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:43 +0200 Subject: [PATCH 233/291] - patchlevel 895 --- 7.3.895 | 189 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 7.3.895 diff --git a/7.3.895 b/7.3.895 new file mode 100644 index 00000000..676c972e --- /dev/null +++ b/7.3.895 @@ -0,0 +1,189 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.895 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.895 +Problem: Valgrind error in test 91. (Issue 128) +Solution: Pass scope name to find_var_in_ht(). +Files: src/eval.c + + +*** ../vim-7.3.894/src/eval.c 2013-04-15 12:27:30.000000000 +0200 +--- src/eval.c 2013-04-15 13:00:44.000000000 +0200 +*************** +*** 788,794 **** + static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); + static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf)); + static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp)); +! static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, char_u *varname, int writing)); + static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); + static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); + static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); +--- 788,794 ---- + static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); + static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf)); + static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp)); +! static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing)); + static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); + static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); + static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); +*************** +*** 11150,11162 **** + } + else + { +! if (*varname == NUL) +! /* let getbufvar({nr}, "") return the "b:" dictionary. The +! * scope prefix before the NUL byte is required by +! * find_var_in_ht(). */ +! varname = (char_u *)"b:" + 2; +! /* look up the variable */ +! v = find_var_in_ht(&curbuf->b_vars->dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +--- 11150,11159 ---- + } + else + { +! /* Look up the variable. */ +! /* Let getbufvar({nr}, "") return the "b:" dictionary. */ +! v = find_var_in_ht(&curbuf->b_vars->dv_hashtab, +! 'b', varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +*************** +*** 11779,11785 **** + if (tp != NULL && varname != NULL) + { + /* look up the variable */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + else if (argvars[2].v_type != VAR_UNKNOWN) +--- 11776,11782 ---- + if (tp != NULL && varname != NULL) + { + /* look up the variable */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 0, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + else if (argvars[2].v_type != VAR_UNKNOWN) +*************** +*** 11929,11941 **** + get_option_tv(&varname, rettv, 1); + else + { +! if (*varname == NUL) +! /* let getwinvar({nr}, "") return the "w:" dictionary. The +! * scope prefix before the NUL byte is required by +! * find_var_in_ht(). */ +! varname = (char_u *)"w:" + 2; +! /* look up the variable */ +! v = find_var_in_ht(&win->w_vars->dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +--- 11926,11934 ---- + get_option_tv(&varname, rettv, 1); + else + { +! /* Look up the variable. */ +! /* Let getwinvar({nr}, "") return the "w:" dictionary. */ +! v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +*************** +*** 20041,20056 **** + *htp = ht; + if (ht == NULL) + return NULL; +! return find_var_in_ht(ht, varname, htp != NULL); + } + + /* +! * Find variable "varname" in hashtab "ht". + * Returns NULL if not found. + */ + static dictitem_T * +! find_var_in_ht(ht, varname, writing) + hashtab_T *ht; + char_u *varname; + int writing; + { +--- 20034,20050 ---- + *htp = ht; + if (ht == NULL) + return NULL; +! return find_var_in_ht(ht, *name, varname, htp != NULL); + } + + /* +! * Find variable "varname" in hashtab "ht" with name "htname". + * Returns NULL if not found. + */ + static dictitem_T * +! find_var_in_ht(ht, htname, varname, writing) + hashtab_T *ht; ++ int htname; + char_u *varname; + int writing; + { +*************** +*** 20059,20065 **** + if (*varname == NUL) + { + /* Must be something like "s:", otherwise "ht" would be NULL. */ +! switch (varname[-2]) + { + case 's': return &SCRIPT_SV(current_SID)->sv_var; + case 'g': return &globvars_var; +--- 20053,20059 ---- + if (*varname == NUL) + { + /* Must be something like "s:", otherwise "ht" would be NULL. */ +! switch (htname) + { + case 's': return &SCRIPT_SV(current_SID)->sv_var; + case 'g': return &globvars_var; +*************** +*** 20389,20395 **** + EMSG2(_(e_illvar), name); + return; + } +! v = find_var_in_ht(ht, varname, TRUE); + + if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL)) + return; +--- 20383,20389 ---- + EMSG2(_(e_illvar), name); + return; + } +! v = find_var_in_ht(ht, 0, varname, TRUE); + + if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL)) + return; +*** ../vim-7.3.894/src/version.c 2013-04-15 12:36:14.000000000 +0200 +--- src/version.c 2013-04-15 13:04:54.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 895, + /**/ + +-- + Very funny, Scotty. Now beam down my clothes. + + /// 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 /// From 9785c117e89e9f4d922cde01c6bac5cb1dd9ebda Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:43 +0200 Subject: [PATCH 234/291] - patchlevel 896 --- 7.3.896 | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 7.3.896 diff --git a/7.3.896 b/7.3.896 new file mode 100644 index 00000000..e7f33ccc --- /dev/null +++ b/7.3.896 @@ -0,0 +1,206 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.896 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.896 +Problem: Memory leaks in Lua interface. +Solution: Fix the leaks, add tests. (Yukihiro Nakadaira) +Files: src/testdir/test85.in, src/testdir/test85.ok, src/if_lua.c + + +*** ../vim-7.3.895/src/testdir/test85.in 2012-04-05 16:56:38.000000000 +0200 +--- src/testdir/test85.in 2013-04-15 13:12:43.000000000 +0200 +*************** +*** 33,38 **** +--- 33,81 ---- + :let res = "FAILED" + :endif + :call setline(search("^3"), "circular test " . res) ++ ++ :let l = [] ++ :lua l = vim.eval("l") ++ :lua l:add(123) ++ :lua l:add("abc") ++ :lua l:add(vim.eval("[1, 2, 3]")) ++ :lua l:add(vim.eval("{'a':1, 'b':2, 'c':3}")) ++ :lua l:insert(123) ++ :lua l:insert("abc") ++ :lua l:insert(vim.eval("[1, 2, 3]")) ++ :lua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}")) ++ :lua l[0] = l[0] ++ :lua l[1] = l[1] ++ :lua l[2] = l[2] ++ :lua l[3] = l[3] ++ :lua l[0] = 123 ++ :lua l[1] = "abc" ++ :lua l[2] = vim.eval("[1, 2, 3]") ++ :lua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}") ++ :lua l[3] = nil ++ :lua l[2] = nil ++ :lua l[1] = nil ++ :lua l[0] = nil ++ :lua l = nil ++ :$put =string(l) ++ ++ :let d = {} ++ :lua d = vim.eval("d") ++ :lua d[0] = 123 ++ :lua d[1] = "abc" ++ :lua d[2] = vim.eval("[1, 2, 3]") ++ :lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}") ++ :lua d[4] = d[0] ++ :lua d[5] = d[1] ++ :lua d[6] = d[2] ++ :lua d[7] = d[3] ++ :lua d[3] = nil ++ :lua d[2] = nil ++ :lua d[1] = nil ++ :lua d[0] = nil ++ :lua d = nil ++ :$put =string(d) ++ + :?^1?,$w! test.out + :qa! + ENDTEST +*** ../vim-7.3.895/src/testdir/test85.ok 2012-04-05 16:56:38.000000000 +0200 +--- src/testdir/test85.ok 2013-04-15 13:12:47.000000000 +0200 +*************** +*** 3,5 **** +--- 3,7 ---- + 2 line 2 + dictionary with list OK + circular test OK ++ [123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}] ++ {'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}} +*** ../vim-7.3.895/src/if_lua.c 2013-04-12 12:18:43.000000000 +0200 +--- src/if_lua.c 2013-04-15 13:35:40.000000000 +0200 +*************** +*** 709,716 **** + { + const char *s = lua_tostring(L, 2); + if (strncmp(s, "add", 3) == 0 +! || strncmp(s, "insert", 6) == 0 +! || strncmp(s, "extend", 6) == 0) + { + lua_getmetatable(L, 1); + lua_getfield(L, -1, s); +--- 709,715 ---- + { + const char *s = lua_tostring(L, 2); + if (strncmp(s, "add", 3) == 0 +! || strncmp(s, "insert", 6) == 0) + { + lua_getmetatable(L, 1); + lua_getfield(L, -1, s); +*************** +*** 745,750 **** +--- 744,750 ---- + luaV_totypval(L, 3, &v); + clear_tv(&li->li_tv); + copy_tv(&v, &li->li_tv); ++ clear_tv(&v); + } + return 0; + } +*************** +*** 754,770 **** + { + luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST); + list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis); +! listitem_T *li; + if (l->lv_lock) + luaL_error(L, "list is locked"); +! li = listitem_alloc(); +! if (li != NULL) + { +! typval_T v; +! lua_settop(L, 2); +! luaV_totypval(L, 2, &v); +! list_append_tv(l, &v); + } + lua_settop(L, 1); + return 1; + } +--- 754,770 ---- + { + luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST); + list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis); +! typval_T v; + if (l->lv_lock) + luaL_error(L, "list is locked"); +! lua_settop(L, 2); +! luaV_totypval(L, 2, &v); +! if (list_append_tv(l, &v) == FAIL) + { +! clear_tv(&v); +! luaL_error(L, "Failed to add item to list"); + } ++ clear_tv(&v); + lua_settop(L, 1); + return 1; + } +*************** +*** 787,793 **** + } + lua_settop(L, 2); + luaV_totypval(L, 2, &v); +! list_insert_tv(l, &v, li); + lua_settop(L, 1); + return 1; + } +--- 787,798 ---- + } + lua_settop(L, 2); + luaV_totypval(L, 2, &v); +! if (list_insert_tv(l, &v, li) == FAIL) +! { +! clear_tv(&v); +! luaL_error(L, "Failed to add item to list"); +! } +! clear_tv(&v); + lua_settop(L, 1); + return 1; + } +*************** +*** 908,913 **** +--- 913,919 ---- + typval_T v; + luaV_totypval(L, 3, &v); + copy_tv(&v, &di->di_tv); ++ clear_tv(&v); + } + return 0; + } +*************** +*** 1323,1328 **** +--- 1329,1335 ---- + typval_T *tv = eval_expr((char_u *) luaL_checkstring(L, 1), NULL); + if (tv == NULL) luaL_error(L, "invalid expression"); + luaV_pushtypval(L, tv); ++ free_tv(tv); + return 1; + } + +*** ../vim-7.3.895/src/version.c 2013-04-15 13:06:15.000000000 +0200 +--- src/version.c 2013-04-15 13:48:21.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 896, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +172. You join listservers just for the extra e-mail. + + /// 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 /// From a37a4c9ed70c49119ba2e26fd40610c790496eb0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:44 +0200 Subject: [PATCH 235/291] - patchlevel 897 --- 7.3.897 | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 7.3.897 diff --git a/7.3.897 b/7.3.897 new file mode 100644 index 00000000..ae4813cb --- /dev/null +++ b/7.3.897 @@ -0,0 +1,126 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.897 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.897 +Problem: Configure doesn't always find the shared library. +Solution: Change the configure script. (Ken Takata) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.3.896/src/configure.in 2013-02-26 14:56:24.000000000 +0100 +--- src/configure.in 2013-04-15 14:28:02.000000000 +0200 +*************** +*** 494,510 **** + if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then + vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll" + else +! dnl Determine the SONAME for the current version, but fallback to +! dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found. +! for LUA_SOVER in "${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do +! for i in 0 1 2 3 4 5 6 7 8 9; do +! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${LUA_SOVER}.$i"; then +! LUA_SONAME=".$i" +! break +! fi + done +- vi_cv_dll_name_lua="liblua${LUA_SOVER}$LUA_SONAME" + done + fi + AC_DEFINE(DYNAMIC_LUA) + LUA_LIBS="" +--- 494,519 ---- + if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then + vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll" + else +! multiarch=`dpkg-architecture -qDEB_HOST_MULTIARCH 2> /dev/null` +! if test "X$multiarch" != "X"; then +! lib_multiarch="lib/${multiarch}" +! fi +! dnl Determine the sover for the current version, but fallback to +! dnl liblua${vi_cv_version_lua}.so if no sover-versioned file is found. +! for subdir in "${lib_multiarch}" lib64 lib; do +! if test -z "$subdir"; then +! continue +! fi +! for sover in "${vi_cv_version_lua}.so" "-${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do +! for i in .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 ""; do +! if test -f "${vi_cv_path_lua_pfx}/${subdir}/liblua${sover}$i"; then +! sover2="$i" +! break 3 +! fi +! done + done + done ++ vi_cv_dll_name_lua="liblua${sover}$sover2" + fi + AC_DEFINE(DYNAMIC_LUA) + LUA_LIBS="" +*** ../vim-7.3.896/src/auto/configure 2013-02-26 14:56:24.000000000 +0100 +--- src/auto/configure 2013-04-15 14:28:06.000000000 +0200 +*************** +*** 4737,4751 **** + if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then + vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll" + else +! for LUA_SOVER in "${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do +! for i in 0 1 2 3 4 5 6 7 8 9; do +! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${LUA_SOVER}.$i"; then +! LUA_SONAME=".$i" +! break +! fi + done +- vi_cv_dll_name_lua="liblua${LUA_SOVER}$LUA_SONAME" + done + fi + $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h + +--- 4737,4760 ---- + if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then + vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll" + else +! multiarch=`dpkg-architecture -qDEB_HOST_MULTIARCH 2> /dev/null` +! if test "X$multiarch" != "X"; then +! lib_multiarch="lib/${multiarch}" +! fi +! for subdir in "${lib_multiarch}" lib64 lib; do +! if test -z "$subdir"; then +! continue +! fi +! for sover in "${vi_cv_version_lua}.so" "-${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do +! for i in .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 ""; do +! if test -f "${vi_cv_path_lua_pfx}/${subdir}/liblua${sover}$i"; then +! sover2="$i" +! break 3 +! fi +! done + done + done ++ vi_cv_dll_name_lua="liblua${sover}$sover2" + fi + $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h + +*** ../vim-7.3.896/src/version.c 2013-04-15 13:49:17.000000000 +0200 +--- src/version.c 2013-04-15 14:43:52.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 897, + /**/ + +-- +If Microsoft would build a car... +... the oil, water temperature, and alternator warning lights would +all be replaced by a single "General Protection Fault" warning light. + + /// 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 /// From 4c9a90575b1c6abfb21afae10653578b4fbaef75 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:45 +0200 Subject: [PATCH 236/291] - patchlevel 898 --- 7.3.898 | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 7.3.898 diff --git a/7.3.898 b/7.3.898 new file mode 100644 index 00000000..d2530a55 --- /dev/null +++ b/7.3.898 @@ -0,0 +1,304 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.898 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.898 +Problem: Memory leak reported by valgrind in test 91. +Solution: Only use default argument when needed. +Files: src/eval.c, src/testdir/test91.in, src/testdir/test91.ok + + +*** ../vim-7.3.897/src/eval.c 2013-04-15 13:06:15.000000000 +0200 +--- src/eval.c 2013-04-15 15:09:17.000000000 +0200 +*************** +*** 11120,11139 **** + buf_T *save_curbuf; + char_u *varname; + dictitem_T *v; + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); + ++emsg_off; + buf = get_buf_tv(&argvars[0], FALSE); + +! if (argvars[2].v_type != VAR_UNKNOWN) +! /* set the default value */ +! copy_tv(&argvars[2], rettv); +! else +! { +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; +! } + + if (buf != NULL && varname != NULL) + { +--- 11120,11134 ---- + buf_T *save_curbuf; + char_u *varname; + dictitem_T *v; ++ int done = FALSE; + + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); + ++emsg_off; + buf = get_buf_tv(&argvars[0], FALSE); + +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; + + if (buf != NULL && varname != NULL) + { +*************** +*** 11142,11152 **** + curbuf = buf; + + if (*varname == '&') /* buffer-local-option */ +! get_option_tv(&varname, rettv, TRUE); + else if (STRCMP(varname, "changedtick") == 0) + { + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = curbuf->b_changedtick; + } + else + { +--- 11137,11151 ---- + curbuf = buf; + + if (*varname == '&') /* buffer-local-option */ +! { +! if (get_option_tv(&varname, rettv, TRUE) == OK) +! done = TRUE; +! } + else if (STRCMP(varname, "changedtick") == 0) + { + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = curbuf->b_changedtick; ++ done = TRUE; + } + else + { +*************** +*** 11155,11167 **** +--- 11154,11173 ---- + v = find_var_in_ht(&curbuf->b_vars->dv_hashtab, + 'b', varname, FALSE); + if (v != NULL) ++ { + copy_tv(&v->di_tv, rettv); ++ done = TRUE; ++ } + } + + /* restore previous notion of curbuf */ + curbuf = save_curbuf; + } + ++ if (!done && argvars[2].v_type != VAR_UNKNOWN) ++ /* use the default value */ ++ copy_tv(&argvars[2], rettv); ++ + --emsg_off; + } + +*************** +*** 11767,11772 **** +--- 11773,11779 ---- + tabpage_T *tp; + dictitem_T *v; + char_u *varname; ++ int done = FALSE; + + rettv->v_type = VAR_STRING; + rettv->vval.v_string = NULL; +*************** +*** 11778,11788 **** + /* look up the variable */ + v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 0, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); +! else if (argvars[2].v_type != VAR_UNKNOWN) +! copy_tv(&argvars[2], rettv); + } +! else if (argvars[2].v_type != VAR_UNKNOWN) + copy_tv(&argvars[2], rettv); + } + +--- 11785,11797 ---- + /* look up the variable */ + v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 0, varname, FALSE); + if (v != NULL) ++ { + copy_tv(&v->di_tv, rettv); +! done = TRUE; +! } + } +! +! if (!done && argvars[2].v_type != VAR_UNKNOWN) + copy_tv(&argvars[2], rettv); + } + +*************** +*** 11894,11899 **** +--- 11903,11909 ---- + char_u *varname; + dictitem_T *v; + tabpage_T *tp; ++ int done = FALSE; + + #ifdef FEAT_WINDOWS + if (off == 1) +*************** +*** 11905,11918 **** + varname = get_tv_string_chk(&argvars[off + 1]); + ++emsg_off; + +! if (argvars[off + 2].v_type != VAR_UNKNOWN) +! /* set the default return value */ +! copy_tv(&argvars[off + 2], rettv); +! else +! { +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; +! } + + if (win != NULL && varname != NULL) + { +--- 11915,11922 ---- + varname = get_tv_string_chk(&argvars[off + 1]); + ++emsg_off; + +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = NULL; + + if (win != NULL && varname != NULL) + { +*************** +*** 11923,11936 **** + curbuf = win->w_buffer; + + if (*varname == '&') /* window-local-option */ +! get_option_tv(&varname, rettv, 1); + else + { + /* Look up the variable. */ + /* Let getwinvar({nr}, "") return the "w:" dictionary. */ + v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } + + /* restore previous notion of curwin */ +--- 11927,11946 ---- + curbuf = win->w_buffer; + + if (*varname == '&') /* window-local-option */ +! { +! if (get_option_tv(&varname, rettv, 1) == OK) +! done = TRUE; +! } + else + { + /* Look up the variable. */ + /* Let getwinvar({nr}, "") return the "w:" dictionary. */ + v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', varname, FALSE); + if (v != NULL) ++ { + copy_tv(&v->di_tv, rettv); ++ done = TRUE; ++ } + } + + /* restore previous notion of curwin */ +*************** +*** 11938,11943 **** +--- 11948,11957 ---- + curbuf = curwin->w_buffer; + } + ++ if (!done && argvars[off + 2].v_type != VAR_UNKNOWN) ++ /* use the default return value */ ++ copy_tv(&argvars[off + 2], rettv); ++ + --emsg_off; + } + +*** ../vim-7.3.897/src/testdir/test91.in 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/test91.in 2013-04-15 14:59:31.000000000 +0200 +*************** +*** 4,12 **** + STARTTEST + :so small.vim + :" +! :" test for getbufvar() +! :let b:var_num = 1234 +! :let def_num = 5678 + :$put =string(getbufvar(1, 'var_num')) + :$put =string(getbufvar(1, 'var_num', def_num)) + :$put =string(getbufvar(1, '')) +--- 4,13 ---- + STARTTEST + :so small.vim + :" +! :" Test for getbufvar() +! :" Use strings to test for memory leaks. +! :let b:var_num = '1234' +! :let def_num = '5678' + :$put =string(getbufvar(1, 'var_num')) + :$put =string(getbufvar(1, 'var_num', def_num)) + :$put =string(getbufvar(1, '')) +*** ../vim-7.3.897/src/testdir/test91.ok 2013-02-20 21:11:14.000000000 +0100 +--- src/testdir/test91.ok 2013-04-15 15:02:45.000000000 +0200 +*************** +*** 1,13 **** + start: +! 1234 +! 1234 +! {'var_num': 1234} +! {'var_num': 1234} +! 5678 + {} + {} + '' +! 5678 + 0 + 0 + 'Dance' +--- 1,13 ---- + start: +! '1234' +! '1234' +! {'var_num': '1234'} +! {'var_num': '1234'} +! '5678' + {} + {} + '' +! '5678' + 0 + 0 + 'Dance' +*** ../vim-7.3.897/src/version.c 2013-04-15 14:44:53.000000000 +0200 +--- src/version.c 2013-04-15 15:14:22.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 898, + /**/ + +-- +If Apple would build a car... +... it would be powered by the sun, be reliable, five times +as fast and twice as easy to drive; but would only run on +five percent of the roads. + + /// 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 /// From 368259d1647cfe6551dc4a533cc8e89774c86176 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:45 +0200 Subject: [PATCH 237/291] - patchlevel 899 --- 7.3.899 | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 7.3.899 diff --git a/7.3.899 b/7.3.899 new file mode 100644 index 00000000..46fceb79 --- /dev/null +++ b/7.3.899 @@ -0,0 +1,67 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.899 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.899 +Problem: #if indents are off. +Solution: Fix the indents. +Files: src/os_unix.c + + +*** ../vim-7.3.898/src/os_unix.c 2013-03-21 22:53:45.000000000 +0100 +--- src/os_unix.c 2013-04-15 15:28:01.000000000 +0200 +*************** +*** 3493,3505 **** + * 4 = Windows Cross Hair + * 5 = Windows UP Arrow + */ +! #ifdef JSBTERM_MOUSE_NONADVANCED /* Disables full feedback of pointer movements */ + out_str_nf((char_u *)IF_EB("\033[0~ZwLMRK1Q\033\\", + ESC_STR "[0~ZwLMRK1Q" ESC_STR "\\")); +! #else + out_str_nf((char_u *)IF_EB("\033[0~ZwLMRK+1Q\033\\", + ESC_STR "[0~ZwLMRK+1Q" ESC_STR "\\")); +! #endif + ison = TRUE; + } + else +--- 3493,3506 ---- + * 4 = Windows Cross Hair + * 5 = Windows UP Arrow + */ +! # ifdef JSBTERM_MOUSE_NONADVANCED +! /* Disables full feedback of pointer movements */ + out_str_nf((char_u *)IF_EB("\033[0~ZwLMRK1Q\033\\", + ESC_STR "[0~ZwLMRK1Q" ESC_STR "\\")); +! # else + out_str_nf((char_u *)IF_EB("\033[0~ZwLMRK+1Q\033\\", + ESC_STR "[0~ZwLMRK+1Q" ESC_STR "\\")); +! # endif + ison = TRUE; + } + else +*** ../vim-7.3.898/src/version.c 2013-04-15 15:15:31.000000000 +0200 +--- src/version.c 2013-04-15 15:31:43.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 899, + /**/ + +-- +If Microsoft would build a car... +... Occasionally, executing a maneuver such as a left turn +would cause your car to shut down and refuse to restart, in +which case you would have to reinstall the engine. + + /// 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 /// From 3a74ebae0207dd4c5065feb688978855d88fc462 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:46 +0200 Subject: [PATCH 238/291] - patchlevel 900 --- 7.3.900 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.3.900 diff --git a/7.3.900 b/7.3.900 new file mode 100644 index 00000000..e19e0f23 --- /dev/null +++ b/7.3.900 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.900 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.900 +Problem: Not obvious that some mouse features are mutual-exclusive. +Solution: Add a comment. +Files: src/feature.h + + +*** ../vim-7.3.899/src/feature.h 2013-02-26 14:56:24.000000000 +0100 +--- src/feature.h 2013-04-15 15:29:17.000000000 +0200 +*************** +*** 1088,1093 **** +--- 1088,1100 ---- + # endif + #endif + ++ /* ++ * Note: Only one of the following may be defined: ++ * FEAT_MOUSE_GPM ++ * FEAT_SYSMOUSE ++ * FEAT_MOUSE_JSB ++ * FEAT_MOUSE_PTERM ++ */ + #if defined(FEAT_NORMAL) && defined(HAVE_GPM) + # define FEAT_MOUSE_GPM + #endif +*** ../vim-7.3.899/src/version.c 2013-04-15 15:32:20.000000000 +0200 +--- src/version.c 2013-04-15 15:39:10.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 900, + /**/ + +-- +If Microsoft would build a car... +... Occasionally your car would die on the freeway for no +reason. You would have to pull over to the side of the road, +close all of the car windows, shut it off, restart it, and +reopen the windows before you could continue. For some reason +you would simply accept this. + + /// 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 /// From 48b30d5d00c90ea5d0eb61d1248a92b786a7101c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:46 +0200 Subject: [PATCH 239/291] - patchlevel 901 --- 7.3.901 | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 7.3.901 diff --git a/7.3.901 b/7.3.901 new file mode 100644 index 00000000..b3ddf886 --- /dev/null +++ b/7.3.901 @@ -0,0 +1,95 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.901 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.901 +Problem: Outdated comment, ugly condition. +Solution: Update a few comments, break line. +Files: src/getchar.c, src/misc1.c, src/undo.c + + +*** ../vim-7.3.900/src/getchar.c 2013-03-16 21:42:12.000000000 +0100 +--- src/getchar.c 2013-04-12 15:01:39.000000000 +0200 +*************** +*** 444,450 **** + typebuf.tb_off = MAXMAPLEN; + typebuf.tb_len = 0; + } +! else /* remove mapped characters only */ + { + typebuf.tb_off += typebuf.tb_maplen; + typebuf.tb_len -= typebuf.tb_maplen; +--- 444,450 ---- + typebuf.tb_off = MAXMAPLEN; + typebuf.tb_len = 0; + } +! else /* remove mapped characters at the start only */ + { + typebuf.tb_off += typebuf.tb_maplen; + typebuf.tb_len -= typebuf.tb_maplen; +*** ../vim-7.3.900/src/misc1.c 2013-03-19 18:31:45.000000000 +0100 +--- src/misc1.c 2013-03-19 20:43:48.000000000 +0100 +*************** +*** 5054,5060 **** + int cx = NUL; + int cy = NUL; + +- /* TODO: multi-byte characters. */ + while (len > 0) + { + cx = PTR2CHAR(px); +--- 5054,5059 ---- +*** ../vim-7.3.900/src/undo.c 2012-08-23 12:58:56.000000000 +0200 +--- src/undo.c 2012-12-12 16:00:19.000000000 +0100 +*************** +*** 216,221 **** +--- 216,222 ---- + + /* + * Save the current line for both the "u" and "U" command. ++ * Careful: may trigger autocommands that reload the buffer. + * Returns OK or FAIL. + */ + int +*************** +*** 238,245 **** + if (undo_off) + return OK; + +! if (top > curbuf->b_ml.ml_line_count || +! top >= bot || bot > curbuf->b_ml.ml_line_count + 1) + return FALSE; /* rely on caller to do error messages */ + + if (top + 2 == bot) +--- 239,247 ---- + if (undo_off) + return OK; + +! if (top > curbuf->b_ml.ml_line_count +! || top >= bot +! || bot > curbuf->b_ml.ml_line_count + 1) + return FALSE; /* rely on caller to do error messages */ + + if (top + 2 == bot) +*** ../vim-7.3.900/src/version.c 2013-04-15 15:40:08.000000000 +0200 +--- src/version.c 2013-04-15 15:46:37.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 901, + /**/ + +-- +The CIA drives around in cars with the "Intel inside" logo. + + /// 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 /// From 8247408c843674fe3acd5dc871284dad3aca1cee Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:47 +0200 Subject: [PATCH 240/291] - patchlevel 902 --- 7.3.902 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.3.902 diff --git a/7.3.902 b/7.3.902 new file mode 100644 index 00000000..4fd627ba --- /dev/null +++ b/7.3.902 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.902 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.902 +Problem: When deleting last buffer in other tab the tabline is not updated. +Solution: Set the redraw_tabline flag. (Yukihiro Nakadaira) +Files: src/window.c + + +*** ../vim-7.3.901/src/window.c 2013-04-15 12:27:30.000000000 +0200 +--- src/window.c 2013-04-15 15:52:46.000000000 +0200 +*************** +*** 2070,2075 **** +--- 2070,2076 ---- + + --RedrawingDisabled; + ++ redraw_tabline = TRUE; + if (h != tabline_height()) + shell_new_rows(); + } +*** ../vim-7.3.901/src/version.c 2013-04-15 15:47:07.000000000 +0200 +--- src/version.c 2013-04-15 15:54:42.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 902, + /**/ + +-- +If Microsoft would build a car... +... The airbag system would ask "are you SURE?" before deploying. + + /// 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 /// From 82f2388acc625ee1f66e6c41ad4989d967fece69 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:48 +0200 Subject: [PATCH 241/291] - patchlevel 903 --- 7.3.903 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 7.3.903 diff --git a/7.3.903 b/7.3.903 new file mode 100644 index 00000000..42858619 --- /dev/null +++ b/7.3.903 @@ -0,0 +1,60 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.903 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.903 (after 7.3.892) +Problem: Crash on exit writing viminfo. (Ron Aaron) +Solution: Check for the history to be empty. +Files: src/ex_getln.c + + +*** ../vim-7.3.902/src/ex_getln.c 2013-04-14 23:19:32.000000000 +0200 +--- src/ex_getln.c 2013-04-15 16:13:56.000000000 +0200 +*************** +*** 6216,6222 **** + */ + for (round = 1; round <= 2; ++round) + { +! i = round == 1 ? hisidx[type] : 0; + if (i >= 0) + while (num_saved > 0 + && !(round == 2 && i >= viminfo_hisidx[type])) +--- 6216,6230 ---- + */ + for (round = 1; round <= 2; ++round) + { +! if (round == 1) +! /* start at newest entry, somewhere in the list */ +! i = hisidx[type]; +! else if (viminfo_hisidx[type] > 0) +! /* start at newest entry, first in the list */ +! i = 0; +! else +! /* empty list */ +! i = -1; + if (i >= 0) + while (num_saved > 0 + && !(round == 2 && i >= viminfo_hisidx[type])) +*** ../vim-7.3.902/src/version.c 2013-04-15 15:55:15.000000000 +0200 +--- src/version.c 2013-04-15 16:11:08.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 903, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +176. You lie, even to user-friends, about how long you were online yesterday. + + /// 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 /// From 410624c31ae7b73a69b8f2c63c75676fb0b92265 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Apr 2013 17:02:49 +0200 Subject: [PATCH 242/291] - patchlevel 903 --- README.patches | 81 ++++++++++++++++++++++++ vim.spec | 167 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 247 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index d50252b1..a82d9d62 100644 --- a/README.patches +++ b/README.patches @@ -854,3 +854,84 @@ Individual patches for Vim 7.3: 3295 7.3.820 errors when building with small features and Lua, Perl or Ruby 2199 7.3.821 build with OLE and Cygwin is broken 4013 7.3.822 (after 7.3.799) crash when accessing freed buffer + 2051 7.3.823 (after 7.3.821) building with Cygwin: '-lsupc++' is not needed + 1566 7.3.824 can redefine builtin functions + 4540 7.3.825 with Python errors are not always clear + 3807 7.3.826 list of features in :version output is hard to read + 3112 7.3.827 (after 7.3.825) Python tests fail + 4780 7.3.828 mappings are not aware of wildmenu mode + 2664 7.3.829 'showmatch' shows wrong match and may scroll the screen + 2841 7.3.830 :mksession confuses bytes and characters when placing cursor + 20653 7.3.831 clumsy to handle the situation that a variable does not exist + 1830 7.3.832 compiler warning + 2985 7.3.833 In the terminal scroll wheel always scrolls the active window + 2556 7.3.834 Ruby 2.0 has a few API changes + 1755 7.3.835 "xxd -i" fails on an empty file + 59985 7.3.836 clipboard does not work on Win32 when compiled with Cygwin + 2221 7.3.837 empty lines in :version output when 'columns' is 320 + 11082 7.3.838 (after 7.3.830) insufficient testing for mksession + 2012 7.3.839 some files missing in the list of distributed files + 1652 7.3.840 "\@ 1 line + 1630 7.3.854 after BS in insert mode completion current entry is wrong + 1831 7.3.855 compiler warnings + 8587 7.3.856 system() garbles multi-byte clipboard contents + 2763 7.3.857 QuitPre autocommand event does not trigger for :qa and :wq + 4120 7.3.858 "gv" selects the wrong area after some operators + 9955 7.3.859 'ambiwidth' must be set by the user + 2602 7.3.860 in --remote-expr try/catch does not work + 4494 7.3.861 ":setlocal number" clears global value of 'relativenumber' + 5831 7.3.862 dragging the status line can be slow + 3025 7.3.863 (after 7.3.859) 'ambiwidth' detection for ANSI terminal + 1516 7.3.864 (after 7.3.862) can't build without the mouse feature + 2015 7.3.865 (after 7.3.862) mouse position can be wrong + 4745 7.3.866 not serving the X selection during system() isn't nice + 9641 7.3.867 matchparen does not update match when using auto-indenting + 2567 7.3.868 empty line at hit-return prompt with few lines of text + 11112 7.3.869 bufwinnr() matches buffers in other tabs + 6562 7.3.870 compiler warnings when using MingW 4.5.3 + 2741 7.3.871 search('^$', 'c') does not use empty match under the cursor + 14914 7.3.872 on some systems file name case is always ignored + 5967 7.3.873 cannot easily use :s to make title case + 3480 7.3.874 comparing file names does not handle multi-byte chars properly + 1865 7.3.875 (after 7.3.866) build problem with a combination of features + 2182 7.3.876 #if indents are off + 3069 7.3.877 (after 7.3.871) forward searching with search() is broken + 3124 7.3.878 'fileignorecase' is missing in options window and quickref + 2792 7.3.879 aborting an ex command does not abort a pending operator + 7907 7.3.880 new viminfo history lines may be replacd with old lines + 2849 7.3.881 Python list does not work correctly + 1714 7.3.882 CursorHold may trigger after receiving the termresponse + 2350 7.3.883 (after 7.3.880) can't build with some combination of features + 2150 7.3.884 compiler warning for variable shadowing another + 2408 7.3.885 double free for list and dict in Lua + 2567 7.3.886 can't build with multi-byte on Solaris 10 + 9601 7.3.887 no tests for Visual mode operators, what 7.3.879 fixes + 3933 7.3.888 filename completion with 'fic' does not work for multi-byte + 2040 7.3.889 can't build with Ruby 2.0 on a 64 bit system + 1563 7.3.890 test 79 fails on Windows + 3761 7.3.891 merging viminfo history doesn't work well + 7984 7.3.892 (after 7.3.891) still merging problems for viminfo history + 19606 7.3.893 crash when using b:, w: or t: after closing the buffer etc. + 2219 7.3.894 using wrong RUBY_VER causing Ruby build to break + 5927 7.3.895 valgrind error in test 91 + 5208 7.3.896 memory leaks in Lua interface + 4487 7.3.897 configure doesn't always find the shared library + 7367 7.3.898 memory leak reported by valgrind in test 91 + 2116 7.3.899 #if indents are off + 1639 7.3.900 not obvious that some mouse features are mutual-exclusive + 2748 7.3.901 outdated comment, ugly condition + 1345 7.3.902 tabline not updated when deleting last buffer in other tab + 1827 7.3.903 (after 7.3.892) crash on exit writing viminfo diff --git a/vim.spec b/vim.spec index a29ca949..dcc04fbb 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 822 +%define patchlevel 903 Summary: The VIM editor URL: http://www.vim.org/ @@ -879,6 +879,87 @@ Patch819: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.819 Patch820: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.820 Patch821: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.821 Patch822: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.822 +Patch823: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.823 +Patch824: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.824 +Patch825: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.825 +Patch826: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.826 +Patch827: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.827 +Patch828: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.828 +Patch829: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.829 +Patch830: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.830 +Patch831: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.831 +Patch832: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.832 +Patch833: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.833 +Patch834: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.834 +Patch835: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.835 +Patch836: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.836 +Patch837: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.837 +Patch838: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.838 +Patch839: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.839 +Patch840: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.840 +Patch841: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.841 +Patch842: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.842 +Patch843: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.843 +Patch844: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.844 +Patch845: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.845 +Patch846: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.846 +Patch847: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.847 +Patch848: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.848 +Patch849: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.849 +Patch850: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.850 +Patch851: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.851 +Patch852: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.852 +Patch853: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.853 +Patch854: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.854 +Patch855: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.855 +Patch856: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.856 +Patch857: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.857 +Patch858: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.858 +Patch859: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.859 +Patch860: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.860 +Patch861: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.861 +Patch862: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.862 +Patch863: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.863 +Patch864: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.864 +Patch865: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.865 +Patch866: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.866 +Patch867: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.867 +Patch868: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.868 +Patch869: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.869 +Patch870: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.870 +Patch871: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.871 +Patch872: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.872 +Patch873: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.873 +Patch874: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.874 +Patch875: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.875 +Patch876: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.876 +Patch877: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.877 +Patch878: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.878 +Patch879: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.879 +Patch880: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.880 +Patch881: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.881 +Patch882: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.882 +Patch883: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.883 +Patch884: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.884 +Patch885: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.885 +Patch886: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.886 +Patch887: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.887 +Patch888: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.888 +Patch889: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.889 +Patch890: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.890 +Patch891: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.891 +Patch892: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.892 +Patch893: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.893 +Patch894: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.894 +Patch895: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.895 +Patch896: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.896 +Patch897: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.897 +Patch898: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.898 +Patch899: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.899 +Patch900: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.900 +Patch901: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.901 +Patch902: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.902 +Patch903: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.903 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1847,6 +1928,87 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch820 -p0 %patch821 -p0 %patch822 -p0 +%patch823 -p0 +%patch824 -p0 +%patch825 -p0 +%patch826 -p0 +%patch827 -p0 +%patch828 -p0 +%patch829 -p0 +%patch830 -p0 +%patch831 -p0 +%patch832 -p0 +%patch833 -p0 +%patch834 -p0 +%patch835 -p0 +%patch836 -p0 +%patch837 -p0 +%patch838 -p0 +%patch839 -p0 +%patch840 -p0 +%patch841 -p0 +%patch842 -p0 +%patch843 -p0 +%patch844 -p0 +%patch845 -p0 +%patch846 -p0 +%patch847 -p0 +%patch848 -p0 +%patch849 -p0 +%patch850 -p0 +%patch851 -p0 +%patch852 -p0 +%patch853 -p0 +%patch854 -p0 +%patch855 -p0 +%patch856 -p0 +%patch857 -p0 +%patch858 -p0 +%patch859 -p0 +%patch860 -p0 +%patch861 -p0 +%patch862 -p0 +%patch863 -p0 +%patch864 -p0 +%patch865 -p0 +%patch866 -p0 +%patch867 -p0 +%patch868 -p0 +%patch869 -p0 +%patch870 -p0 +%patch871 -p0 +%patch872 -p0 +%patch873 -p0 +%patch874 -p0 +%patch875 -p0 +%patch876 -p0 +%patch877 -p0 +%patch878 -p0 +%patch879 -p0 +%patch880 -p0 +%patch881 -p0 +%patch882 -p0 +%patch883 -p0 +%patch884 -p0 +%patch885 -p0 +%patch886 -p0 +%patch887 -p0 +%patch888 -p0 +%patch889 -p0 +%patch890 -p0 +%patch891 -p0 +%patch892 -p0 +%patch893 -p0 +%patch894 -p0 +%patch895 -p0 +%patch896 -p0 +%patch897 -p0 +%patch898 -p0 +%patch899 -p0 +%patch900 -p0 +%patch901 -p0 +%patch902 -p0 +%patch903 -p0 # install spell files @@ -2322,6 +2484,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Apr 15 2013 Karsten Hopp 7.3.903-1 +- patchlevel 903 + * Mon Feb 18 2013 Karsten Hopp 7.3.822-1 - patchlevel 822 From 931a877b9784e77c0a10b91bead69aba83397727 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 19 Apr 2013 13:13:36 +0200 Subject: [PATCH 243/291] upstream patch was broken, re-commit --- 7.3.838 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/7.3.838 b/7.3.838 index 02ad2ae2..7ecfc00c 100644 --- a/7.3.838 +++ b/7.3.838 @@ -207,9 +207,9 @@ Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + four leadinG spaces + two consecutive tabs + two tabs in one line -+ one … multibyteCharacter -+ a “b†two multiByte characters -+ “câ€Â1€ three mulTibyte characters ++ one … multibyteCharacter ++ a “b†two multiByte characters ++ “câ€1€ three mulTibyte characters *** ../vim-7.3.837/src/testdir/test92.ok 2013-02-26 17:20:44.000000000 +0100 --- src/testdir/test92.ok 2013-02-26 17:13:48.000000000 +0100 *************** From 64f562360e1106bec413c7dead25355ed91f5d24 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 19 Apr 2013 13:35:16 +0200 Subject: [PATCH 244/291] drop crv patch update 7.3.838 patch, it was broken upstream --- vim-7.0-crv.patch | 10 ---------- vim.spec | 6 ++++-- 2 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 vim-7.0-crv.patch diff --git a/vim-7.0-crv.patch b/vim-7.0-crv.patch deleted file mode 100644 index 416c64ee..00000000 --- a/vim-7.0-crv.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- vim70aa/src/term.c.orig 2006-03-14 15:40:15.000000000 +0100 -+++ vim70aa/src/term.c 2006-03-14 15:43:54.000000000 +0100 -@@ -1284,7 +1284,6 @@ - {(int)KS_CWS, "[%dCWS%d]"}, - {(int)KS_CWP, "[%dCWP%d]"}, - # endif -- {(int)KS_CRV, "[CRV]"}, - {K_UP, "[KU]"}, - {K_DOWN, "[KD]"}, - {K_LEFT, "[KL]"}, diff --git a/vim.spec b/vim.spec index dcc04fbb..2279e412 100644 --- a/vim.spec +++ b/vim.spec @@ -46,7 +46,6 @@ Source16: nl.po Patch2002: vim-7.0-fixkeys.patch Patch2003: vim-6.2-specsyntax.patch -Patch2004: vim-7.0-crv.patch %if %{withhunspell} Patch2011: vim-7.0-hunspell.patch BuildRequires: hunspell-devel @@ -1097,7 +1096,6 @@ vim-common package. chmod -x runtime/tools/mve.awk %patch2002 -p1 %patch2003 -p1 -%patch2004 -p1 %if %{withhunspell} %patch2011 -p1 %endif @@ -2484,6 +2482,10 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Apr 19 2013 Karsten Hopp 7.3.903-1 +- drop crv patch +- update 7.3.838 patch, it was broken upstream + * Mon Apr 15 2013 Karsten Hopp 7.3.903-1 - patchlevel 903 From 19713298dbff96e7d5206e9de8dcd33501d8d1d3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 16:55:12 +0200 Subject: [PATCH 245/291] fix ruby version check --- vim-7.3-rubyversion.patch | 15 +++++++++++++++ vim.spec | 5 +++++ 2 files changed, 20 insertions(+) create mode 100644 vim-7.3-rubyversion.patch diff --git a/vim-7.3-rubyversion.patch b/vim-7.3-rubyversion.patch new file mode 100644 index 00000000..114b8a7c --- /dev/null +++ b/vim-7.3-rubyversion.patch @@ -0,0 +1,15 @@ +diff -up vim73/src/configure.in.rubyversion vim73/src/configure.in +--- vim73/src/configure.in.rubyversion 2013-05-08 16:21:11.067927960 +0200 ++++ vim73/src/configure.in 2013-05-08 16:31:05.854534820 +0200 +@@ -1490,7 +1490,10 @@ if test "$enable_rubyinterp" = "yes" -o + if test -d "$rubyhdrdir/$rubyarch"; then + RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch" + fi +- rubyversion=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['ruby_version']].gsub(/\./, '')[[0,2]]"` ++ rubymajor=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['MAJOR']]"` ++ rubyminor=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['MINOR']]"` ++ rubyversion="$rubymajor$rubyminor" ++ # rubyversion=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['ruby_version']].gsub(/\./, '')[[0,2]]"` + RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion" + rubylibs=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['LIBS']]"` + if test "X$rubylibs" != "X"; then diff --git a/vim.spec b/vim.spec index 2279e412..ecb493e0 100644 --- a/vim.spec +++ b/vim.spec @@ -971,6 +971,7 @@ Patch3010: vim-7.0-specedit.patch Patch3011: vim72-rh514717.patch Patch3012: vim-7.3-bug816848.patch Patch3013: vim-7.3-manpage-typo-668894-675480.patch +Patch3014: vim-7.3-rubyversion.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel ncurses-devel gettext perl-devel @@ -2025,6 +2026,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch3011 -p1 %patch3012 -p1 %patch3013 -p1 +%patch3014 -p1 %build cp -f %{SOURCE5} . @@ -2482,6 +2484,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed May 08 2013 Karsten Hopp 7.3.903-1 +- fix ruby version check + * Fri Apr 19 2013 Karsten Hopp 7.3.903-1 - drop crv patch - update 7.3.838 patch, it was broken upstream From 941e2a84b90ea95dcb3bc327e661831be331347d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:34 +0200 Subject: [PATCH 246/291] - patchlevel 904 --- 7.3.904 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.3.904 diff --git a/7.3.904 b/7.3.904 new file mode 100644 index 00000000..a41b4699 --- /dev/null +++ b/7.3.904 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.904 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.904 (after 7.3.893) +Problem: Using memory freed by the garbage collector. +Solution: Mark items in aucmd_win as used. +Files: src/eval.c + + +*** ../vim-7.3.903/src/eval.c 2013-04-15 15:15:31.000000000 +0200 +--- src/eval.c 2013-04-15 18:20:35.000000000 +0200 +*************** +*** 6792,6797 **** +--- 6792,6801 ---- + /* window-local variables */ + FOR_ALL_TAB_WINDOWS(tp, wp) + set_ref_in_item(&wp->w_winvar.di_tv, copyID); ++ #ifdef FEAT_AUTOCMD ++ if (aucmd_win != NULL) ++ set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID); ++ #endif + + #ifdef FEAT_WINDOWS + /* tabpage-local variables */ +*** ../vim-7.3.903/src/version.c 2013-04-15 16:14:15.000000000 +0200 +--- src/version.c 2013-04-15 18:21:49.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 904, + /**/ + +-- +Rule #1: Don't give somebody a tool that he's going to hurt himself with. + + /// 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 /// From cd294e6dd5d5d29fb72c2e13be5c87e332728302 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:35 +0200 Subject: [PATCH 247/291] - patchlevel 905 --- 7.3.905 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.3.905 diff --git a/7.3.905 b/7.3.905 new file mode 100644 index 00000000..60ff5283 --- /dev/null +++ b/7.3.905 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.905 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.905 (after 7.3.903) +Problem: Crash when writing viminfo. (Ron Aaron) +Solution: Prevent freed history info to be used. +Files: src/ex_getln.c + + +*** ../vim-7.3.904/src/ex_getln.c 2013-04-15 16:14:15.000000000 +0200 +--- src/ex_getln.c 2013-04-15 22:12:33.000000000 +0200 +*************** +*** 6264,6269 **** +--- 6264,6270 ---- + vim_free(viminfo_history[type][i]); + vim_free(viminfo_history[type]); + viminfo_history[type] = NULL; ++ viminfo_hisidx[type] = 0; + } + } + #endif /* FEAT_VIMINFO */ +*** ../vim-7.3.904/src/version.c 2013-04-15 18:25:55.000000000 +0200 +--- src/version.c 2013-04-15 22:19:03.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 905, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +180. You maintain more than six e-mail addresses. + + /// 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 /// From 5352e010270f03c380c87ad2edb7c8a80a3c3dc8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:36 +0200 Subject: [PATCH 248/291] - patchlevel 906 --- 7.3.906 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.3.906 diff --git a/7.3.906 b/7.3.906 new file mode 100644 index 00000000..84950319 --- /dev/null +++ b/7.3.906 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.906 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.906 +Problem: The "sleep .2" for running tests does not work on Solaris. +Solution: Fall back to using "sleep 1". (Laurent Blume) +Files: src/testdir/Makefile + + +*** ../vim-7.3.905/src/testdir/Makefile 2013-04-12 13:44:49.000000000 +0200 +--- src/testdir/Makefile 2013-04-21 13:06:20.000000000 +0200 +*************** +*** 69,76 **** + .in.out: + -rm -rf $*.failed test.ok $(RM_ON_RUN) + cp $*.ok test.ok +! # Sleep a moment to avoid that the xterm title is messed up +! @-sleep .2 + -$(RUN_VIM) $*.in + + # For flaky tests retry one time. +--- 69,78 ---- + .in.out: + -rm -rf $*.failed test.ok $(RM_ON_RUN) + cp $*.ok test.ok +! # Sleep a moment to avoid that the xterm title is messed up. +! # 200 msec is sufficient, but only modern sleep supports a fraction of +! # a second, fall back to a second if it fails. +! @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" + -$(RUN_VIM) $*.in + + # For flaky tests retry one time. +*** ../vim-7.3.905/src/version.c 2013-04-15 22:22:48.000000000 +0200 +--- src/version.c 2013-04-24 12:54:57.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 906, + /**/ + +-- +Don't be humble ... you're not that great. + -- Golda Meir + + /// 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 /// From c3bbd5fac5ea358c503bb067cf79c3360c9a7367 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:37 +0200 Subject: [PATCH 249/291] - patchlevel 907 --- 7.3.907 | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 7.3.907 diff --git a/7.3.907 b/7.3.907 new file mode 100644 index 00000000..28d42347 --- /dev/null +++ b/7.3.907 @@ -0,0 +1,162 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.907 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.907 +Problem: Python uses IndexError when a dict key is not found. +Solution: Use KeyError instead. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.ok, src/testdir/test87.ok + + +*** ../vim-7.3.906/src/if_py_both.h 2013-04-05 19:32:30.000000000 +0200 +--- src/if_py_both.h 2013-04-24 13:00:01.000000000 +0200 +*************** +*** 861,867 **** + + if (di == NULL) + { +! PyErr_SetString(PyExc_IndexError, _("no such key in dictionary")); + return NULL; + } + +--- 861,867 ---- + + if (di == NULL) + { +! PyErr_SetString(PyExc_KeyError, _("no such key in dictionary")); + return NULL; + } + +*** ../vim-7.3.906/src/if_python3.c 2013-02-20 16:09:35.000000000 +0100 +--- src/if_python3.c 2013-04-24 13:00:01.000000000 +0200 +*************** +*** 327,338 **** +--- 327,340 ---- + /* Imported exception objects */ + static PyObject *p3imp_PyExc_AttributeError; + static PyObject *p3imp_PyExc_IndexError; ++ static PyObject *p3imp_PyExc_KeyError; + static PyObject *p3imp_PyExc_KeyboardInterrupt; + static PyObject *p3imp_PyExc_TypeError; + static PyObject *p3imp_PyExc_ValueError; + + # define PyExc_AttributeError p3imp_PyExc_AttributeError + # define PyExc_IndexError p3imp_PyExc_IndexError ++ # define PyExc_KeyError p3imp_PyExc_KeyError + # define PyExc_KeyboardInterrupt p3imp_PyExc_KeyboardInterrupt + # define PyExc_TypeError p3imp_PyExc_TypeError + # define PyExc_ValueError p3imp_PyExc_ValueError +*************** +*** 567,577 **** +--- 569,581 ---- + PyObject *exdict = PyModule_GetDict(exmod); + p3imp_PyExc_AttributeError = PyDict_GetItemString(exdict, "AttributeError"); + p3imp_PyExc_IndexError = PyDict_GetItemString(exdict, "IndexError"); ++ p3imp_PyExc_KeyError = PyDict_GetItemString(exdict, "KeyError"); + p3imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt"); + p3imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError"); + p3imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError"); + Py_XINCREF(p3imp_PyExc_AttributeError); + Py_XINCREF(p3imp_PyExc_IndexError); ++ Py_XINCREF(p3imp_PyExc_KeyError); + Py_XINCREF(p3imp_PyExc_KeyboardInterrupt); + Py_XINCREF(p3imp_PyExc_TypeError); + Py_XINCREF(p3imp_PyExc_ValueError); +*** ../vim-7.3.906/src/if_python.c 2013-02-20 16:09:35.000000000 +0100 +--- src/if_python.c 2013-04-24 13:00:01.000000000 +0200 +*************** +*** 348,359 **** +--- 348,361 ---- + /* Imported exception objects */ + static PyObject *imp_PyExc_AttributeError; + static PyObject *imp_PyExc_IndexError; ++ static PyObject *imp_PyExc_KeyError; + static PyObject *imp_PyExc_KeyboardInterrupt; + static PyObject *imp_PyExc_TypeError; + static PyObject *imp_PyExc_ValueError; + + # define PyExc_AttributeError imp_PyExc_AttributeError + # define PyExc_IndexError imp_PyExc_IndexError ++ # define PyExc_KeyError imp_PyExc_KeyError + # define PyExc_KeyboardInterrupt imp_PyExc_KeyboardInterrupt + # define PyExc_TypeError imp_PyExc_TypeError + # define PyExc_ValueError imp_PyExc_ValueError +*************** +*** 579,589 **** +--- 581,593 ---- + PyObject *exdict = PyModule_GetDict(exmod); + imp_PyExc_AttributeError = PyDict_GetItemString(exdict, "AttributeError"); + imp_PyExc_IndexError = PyDict_GetItemString(exdict, "IndexError"); ++ imp_PyExc_KeyError = PyDict_GetItemString(exdict, "KeyError"); + imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt"); + imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError"); + imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError"); + Py_XINCREF(imp_PyExc_AttributeError); + Py_XINCREF(imp_PyExc_IndexError); ++ Py_XINCREF(imp_PyExc_KeyError); + Py_XINCREF(imp_PyExc_KeyboardInterrupt); + Py_XINCREF(imp_PyExc_TypeError); + Py_XINCREF(imp_PyExc_ValueError); +*** ../vim-7.3.906/src/testdir/test86.ok 2013-04-05 19:32:30.000000000 +0200 +--- src/testdir/test86.ok 2013-04-24 13:00:01.000000000 +0200 +*************** +*** 38,44 **** + Vim(python):E725: + Vim(python):E117: + [0.0, 0.0] +! IndexError + TypeError + TypeError + ValueError +--- 38,44 ---- + Vim(python):E725: + Vim(python):E117: + [0.0, 0.0] +! KeyError + TypeError + TypeError + ValueError +*** ../vim-7.3.906/src/testdir/test87.ok 2013-02-20 16:54:24.000000000 +0100 +--- src/testdir/test87.ok 2013-04-24 13:00:01.000000000 +0200 +*************** +*** 38,44 **** + Vim(py3):E725: + Vim(py3):E117: + [0.0, 0.0] +! IndexError + TypeError + TypeError + ValueError +--- 38,44 ---- + Vim(py3):E725: + Vim(py3):E117: + [0.0, 0.0] +! KeyError + TypeError + TypeError + ValueError +*** ../vim-7.3.906/src/version.c 2013-04-24 12:56:13.000000000 +0200 +--- src/version.c 2013-04-24 13:00:13.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 907, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +219. Your spouse has his or her lawyer deliver the divorce papers... + via e-mail. + + /// 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 /// From 6d927fab3270f7bab8a22752e2ff27fb30f2fce0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:38 +0200 Subject: [PATCH 250/291] - patchlevel 908 --- 7.3.908 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.3.908 diff --git a/7.3.908 b/7.3.908 new file mode 100644 index 00000000..1b71dca1 --- /dev/null +++ b/7.3.908 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.908 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.908 +Problem: Possible crash when using a list in Python. +Solution: Return early if the list is NULL. (ZyX) +Files: src/if_py_both.h + + +*** ../vim-7.3.907/src/if_py_both.h 2013-04-24 13:04:21.000000000 +0200 +--- src/if_py_both.h 2013-04-24 13:10:20.000000000 +0200 +*************** +*** 738,743 **** +--- 738,745 ---- + tv->vval.v_dict = d; + + list = PyMapping_Items(obj); ++ if (list == NULL) ++ return -1; + lsize = PyList_Size(list); + while (lsize--) + { +*** ../vim-7.3.907/src/version.c 2013-04-24 13:04:21.000000000 +0200 +--- src/version.c 2013-04-24 13:09:30.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 908, + /**/ + +-- +How do I set the laser printer to stun? + + /// 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 /// From 869996d5209160d6ab1e2e9c015d7861be863432 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:39 +0200 Subject: [PATCH 251/291] - patchlevel 909 --- 7.3.909 | 2129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2129 insertions(+) create mode 100644 7.3.909 diff --git a/7.3.909 b/7.3.909 new file mode 100644 index 00000000..1dbf4530 --- /dev/null +++ b/7.3.909 @@ -0,0 +1,2129 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.909 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.909 +Problem: Duplicate Python code. +Solution: Move more items to if_py_both.h. (ZyX) Also avoid compiler + warnings for missing initializers. +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + + +*** ../vim-7.3.908/src/if_py_both.h 2013-04-24 13:10:35.000000000 +0200 +--- src/if_py_both.h 2013-04-24 13:26:54.000000000 +0200 +*************** +*** 542,547 **** +--- 542,555 ---- + * Buffer list object - Implementation + */ + ++ typedef struct ++ { ++ PyObject_HEAD ++ } BufListObject; ++ ++ static PyTypeObject BufListType; ++ static PySequenceMethods WinListAsSeq; ++ + static PyInt + BufListLength(PyObject *self UNUSED) + { +*************** +*** 578,583 **** +--- 586,596 ---- + win_T *win; + } WindowObject; + ++ static struct PyMethodDef WindowMethods[] = { ++ /* name, function, calling, documentation */ ++ { NULL, NULL, 0, NULL } ++ }; ++ + static int ConvertFromPyObject(PyObject *, typval_T *); + static int _ConvertFromPyObject(PyObject *, typval_T *, PyObject *); + +*************** +*** 642,647 **** +--- 655,670 ---- + pylinkedlist_T ref; + } DictionaryObject; + ++ static PyInt DictionaryAssItem(PyObject *, PyObject *, PyObject *); ++ static PyInt DictionaryLength(PyObject *); ++ static PyObject *DictionaryItem(PyObject *, PyObject *); ++ ++ static PyMappingMethods DictionaryAsMapping = { ++ (lenfunc) DictionaryLength, ++ (binaryfunc) DictionaryItem, ++ (objobjargproc) DictionaryAssItem, ++ }; ++ + static PyObject * + DictionaryNew(dict_T *dict) + { +*************** +*** 658,663 **** +--- 681,697 ---- + return (PyObject *)(self); + } + ++ static void ++ DictionaryDestructor(PyObject *self) ++ { ++ DictionaryObject *this = ((DictionaryObject *) (self)); ++ ++ pyll_remove(&this->ref, &lastdict); ++ dict_unref(this->dict); ++ ++ DESTRUCTOR_FINISH(self); ++ } ++ + static int + pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) + { +*************** +*** 804,812 **** + return 0; + } + +! static PyInt +! DictionarySetattr(DictionaryObject *self, char *name, PyObject *val) + { + if (val == NULL) + { + PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); +--- 838,848 ---- + return 0; + } + +! static int +! DictionarySetattr(PyObject *self, char *name, PyObject *val) + { ++ DictionaryObject *this = (DictionaryObject *)(self); ++ + if (val == NULL) + { + PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); +*************** +*** 815,821 **** + + if (strcmp(name, "locked") == 0) + { +! if (self->dict->dv_lock == VAR_FIXED) + { + PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed dictionary")); + return -1; +--- 851,857 ---- + + if (strcmp(name, "locked") == 0) + { +! if (this->dict->dv_lock == VAR_FIXED) + { + PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed dictionary")); + return -1; +*************** +*** 829,837 **** + } + + if (val == Py_True) +! self->dict->dv_lock = VAR_LOCKED; + else +! self->dict->dv_lock = 0; + } + return 0; + } +--- 865,873 ---- + } + + if (val == Py_True) +! this->dict->dv_lock = VAR_LOCKED; + else +! this->dict->dv_lock = 0; + } + return 0; + } +*************** +*** 963,968 **** +--- 999,1006 ---- + }; + + static PyTypeObject ListType; ++ static PySequenceMethods ListAsSeq; ++ static PyMappingMethods ListAsMapping; + + typedef struct + { +*************** +*** 987,992 **** +--- 1025,1041 ---- + return (PyObject *)(self); + } + ++ static void ++ ListDestructor(PyObject *self) ++ { ++ ListObject *this = (ListObject *)(self); ++ ++ pyll_remove(&this->ref, &lastlist); ++ list_unref(this->list); ++ ++ DESTRUCTOR_FINISH(self); ++ } ++ + static int + list_py_concat(list_T *l, PyObject *obj, PyObject *lookupDict) + { +*************** +*** 1307,1314 **** + } + + static int +! ListSetattr(ListObject *self, char *name, PyObject *val) + { + if (val == NULL) + { + PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); +--- 1356,1365 ---- + } + + static int +! ListSetattr(PyObject *self, char *name, PyObject *val) + { ++ ListObject *this = (ListObject *)(self); ++ + if (val == NULL) + { + PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); +*************** +*** 1317,1323 **** + + if (strcmp(name, "locked") == 0) + { +! if (self->list->lv_lock == VAR_FIXED) + { + PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed list")); + return -1; +--- 1368,1374 ---- + + if (strcmp(name, "locked") == 0) + { +! if (this->list->lv_lock == VAR_FIXED) + { + PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed list")); + return -1; +*************** +*** 1331,1339 **** + } + + if (val == Py_True) +! self->list->lv_lock = VAR_LOCKED; + else +! self->list->lv_lock = 0; + } + return 0; + } +--- 1382,1390 ---- + } + + if (val == Py_True) +! this->list->lv_lock = VAR_LOCKED; + else +! this->list->lv_lock = 0; + } + return 0; + } +*************** +*** 1376,1381 **** +--- 1427,1443 ---- + return (PyObject *)(self); + } + ++ static void ++ FunctionDestructor(PyObject *self) ++ { ++ FunctionObject *this = (FunctionObject *) (self); ++ ++ func_unref(this->name); ++ PyMem_Del(this->name); ++ ++ DESTRUCTOR_FINISH(self); ++ } ++ + static PyObject * + FunctionCall(PyObject *self, PyObject *argsObject, PyObject *kwargs) + { +*************** +*** 1451,1456 **** +--- 1513,1557 ---- + + static int WindowSetattr(PyObject *, char *, PyObject *); + static PyObject *WindowRepr(PyObject *); ++ static PyTypeObject WindowType; ++ ++ static PyObject * ++ WindowAttr(WindowObject *this, char *name) ++ { ++ if (strcmp(name, "buffer") == 0) ++ return (PyObject *)BufferNew(this->win->w_buffer); ++ else if (strcmp(name, "cursor") == 0) ++ { ++ pos_T *pos = &this->win->w_cursor; ++ ++ return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col)); ++ } ++ else if (strcmp(name, "height") == 0) ++ return Py_BuildValue("l", (long)(this->win->w_height)); ++ #ifdef FEAT_VERTSPLIT ++ else if (strcmp(name, "width") == 0) ++ return Py_BuildValue("l", (long)(W_WIDTH(this->win))); ++ #endif ++ else if (strcmp(name,"__members__") == 0) ++ return Py_BuildValue("[sss]", "buffer", "cursor", "height"); ++ else ++ return NULL; ++ } ++ ++ static void ++ WindowDestructor(PyObject *self) ++ { ++ WindowObject *this = (WindowObject *)(self); ++ ++ if (this->win && this->win != INVALID_WINDOW_VALUE) ++ #if PY_MAJOR_VERSION >= 3 ++ this->win->w_python3_ref = NULL; ++ #else ++ this->win->w_python_ref = NULL; ++ #endif ++ ++ DESTRUCTOR_FINISH(self); ++ } + + static int + WindowSetattr(PyObject *self, char *name, PyObject *val) +*************** +*** 1579,1584 **** +--- 1680,1694 ---- + /* + * Window list object - Implementation + */ ++ ++ typedef struct ++ { ++ PyObject_HEAD ++ } WinListObject; ++ ++ static PyTypeObject WinListType; ++ static PySequenceMethods BufListAsSeq; ++ + static PyInt + WinListLength(PyObject *self UNUSED) + { +*************** +*** 2310,2319 **** + return Py_None; + } + +! +! /* Buffer object - Definitions + */ + + typedef struct + { + PyObject_HEAD +--- 2420,2430 ---- + return Py_None; + } + +! /* Range object - Definitions + */ + ++ static PyTypeObject RangeType; ++ + typedef struct + { + PyObject_HEAD +*************** +*** 2322,2327 **** +--- 2433,2442 ---- + PyInt end; + } RangeObject; + ++ static void RangeDestructor(PyObject *); ++ static PySequenceMethods RangeAsSeq; ++ static PyMappingMethods RangeAsMapping; ++ + static PyObject * + RangeNew(buf_T *buf, PyInt start, PyInt end) + { +*************** +*** 2346,2351 **** +--- 2461,2506 ---- + return (PyObject *)(self); + } + ++ static void ++ RangeDestructor(PyObject *self) ++ { ++ Py_DECREF(((RangeObject *)(self))->buf); ++ DESTRUCTOR_FINISH(self); ++ } ++ ++ static PyTypeObject BufferType; ++ static PyObject *BufferRepr(PyObject *); ++ static PySequenceMethods BufferAsSeq; ++ static PyMappingMethods BufferAsMapping; ++ ++ static void ++ BufferDestructor(PyObject *self) ++ { ++ BufferObject *this = (BufferObject *)(self); ++ ++ if (this->buf && this->buf != INVALID_BUFFER_VALUE) ++ #if PY_MAJOR_VERSION >= 3 ++ this->buf->b_python3_ref = NULL; ++ #else ++ this->buf->b_python_ref = NULL; ++ #endif ++ ++ DESTRUCTOR_FINISH(self); ++ } ++ ++ static PyObject * ++ BufferAttr(BufferObject *this, char *name) ++ { ++ if (strcmp(name, "name") == 0) ++ return Py_BuildValue("s", this->buf->b_ffname); ++ else if (strcmp(name, "number") == 0) ++ return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); ++ else if (strcmp(name,"__members__") == 0) ++ return Py_BuildValue("[ss]", "name", "number"); ++ else ++ return NULL; ++ } ++ + static PyObject * + BufferAppend(PyObject *self, PyObject *args) + { +*************** +*** 2409,2414 **** +--- 2564,2598 ---- + return RangeNew(((BufferObject *)(self))->buf, start, end); + } + ++ static PyObject * ++ BufferRepr(PyObject *self) ++ { ++ static char repr[100]; ++ BufferObject *this = (BufferObject *)(self); ++ ++ if (this->buf == INVALID_BUFFER_VALUE) ++ { ++ vim_snprintf(repr, 100, _(""), (self)); ++ return PyString_FromString(repr); ++ } ++ else ++ { ++ char *name = (char *)this->buf->b_fname; ++ PyInt len; ++ ++ if (name == NULL) ++ name = ""; ++ len = strlen(name); ++ ++ if (len > 35) ++ name = name + (35 - len); ++ ++ vim_snprintf(repr, 100, "", len > 35 ? "..." : "", name); ++ ++ return PyString_FromString(repr); ++ } ++ } ++ + static struct PyMethodDef BufferMethods[] = { + /* name, function, calling, documentation */ + {"append", BufferAppend, 1, "Append data to Vim buffer" }, +*************** +*** 2497,2502 **** +--- 2681,2729 ---- + { NULL, NULL, 0, NULL } + }; + ++ /* Current items object - Implementation ++ */ ++ ++ static PyInt RangeStart; ++ static PyInt RangeEnd; ++ ++ static PyObject * ++ CurrentGetattr(PyObject *self UNUSED, char *name) ++ { ++ if (strcmp(name, "buffer") == 0) ++ return (PyObject *)BufferNew(curbuf); ++ else if (strcmp(name, "window") == 0) ++ return (PyObject *)WindowNew(curwin); ++ else if (strcmp(name, "line") == 0) ++ return GetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum); ++ else if (strcmp(name, "range") == 0) ++ return RangeNew(curbuf, RangeStart, RangeEnd); ++ else if (strcmp(name,"__members__") == 0) ++ return Py_BuildValue("[ssss]", "buffer", "window", "line", "range"); ++ else ++ { ++ PyErr_SetString(PyExc_AttributeError, name); ++ return NULL; ++ } ++ } ++ ++ static int ++ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *value) ++ { ++ if (strcmp(name, "line") == 0) ++ { ++ if (SetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum, value, NULL) == FAIL) ++ return -1; ++ ++ return 0; ++ } ++ else ++ { ++ PyErr_SetString(PyExc_AttributeError, name); ++ return -1; ++ } ++ } ++ + static void + set_ref_in_py(const int copyID) + { +*************** +*** 2770,2772 **** +--- 2997,3165 ---- + return NULL; + } + } ++ ++ typedef struct ++ { ++ PyObject_HEAD ++ } CurrentObject; ++ static PyTypeObject CurrentType; ++ ++ static void ++ init_structs(void) ++ { ++ vim_memset(&OutputType, 0, sizeof(OutputType)); ++ OutputType.tp_name = "vim.message"; ++ OutputType.tp_basicsize = sizeof(OutputObject); ++ OutputType.tp_flags = Py_TPFLAGS_DEFAULT; ++ OutputType.tp_doc = "vim message object"; ++ OutputType.tp_methods = OutputMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ OutputType.tp_getattro = OutputGetattro; ++ OutputType.tp_setattro = OutputSetattro; ++ OutputType.tp_alloc = call_PyType_GenericAlloc; ++ OutputType.tp_new = call_PyType_GenericNew; ++ OutputType.tp_free = call_PyObject_Free; ++ #else ++ OutputType.tp_getattr = OutputGetattr; ++ OutputType.tp_setattr = OutputSetattr; ++ #endif ++ ++ vim_memset(&BufferType, 0, sizeof(BufferType)); ++ BufferType.tp_name = "vim.buffer"; ++ BufferType.tp_basicsize = sizeof(BufferType); ++ BufferType.tp_dealloc = BufferDestructor; ++ BufferType.tp_repr = BufferRepr; ++ BufferType.tp_as_sequence = &BufferAsSeq; ++ BufferType.tp_as_mapping = &BufferAsMapping; ++ BufferType.tp_flags = Py_TPFLAGS_DEFAULT; ++ BufferType.tp_doc = "vim buffer object"; ++ BufferType.tp_methods = BufferMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ BufferType.tp_getattro = BufferGetattro; ++ BufferType.tp_alloc = call_PyType_GenericAlloc; ++ BufferType.tp_new = call_PyType_GenericNew; ++ BufferType.tp_free = call_PyObject_Free; ++ #else ++ BufferType.tp_getattr = BufferGetattr; ++ #endif ++ ++ vim_memset(&WindowType, 0, sizeof(WindowType)); ++ WindowType.tp_name = "vim.window"; ++ WindowType.tp_basicsize = sizeof(WindowObject); ++ WindowType.tp_dealloc = WindowDestructor; ++ WindowType.tp_repr = WindowRepr; ++ WindowType.tp_flags = Py_TPFLAGS_DEFAULT; ++ WindowType.tp_doc = "vim Window object"; ++ WindowType.tp_methods = WindowMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ WindowType.tp_getattro = WindowGetattro; ++ WindowType.tp_setattro = WindowSetattro; ++ WindowType.tp_alloc = call_PyType_GenericAlloc; ++ WindowType.tp_new = call_PyType_GenericNew; ++ WindowType.tp_free = call_PyObject_Free; ++ #else ++ WindowType.tp_getattr = WindowGetattr; ++ WindowType.tp_setattr = WindowSetattr; ++ #endif ++ ++ vim_memset(&BufListType, 0, sizeof(BufListType)); ++ BufListType.tp_name = "vim.bufferlist"; ++ BufListType.tp_basicsize = sizeof(BufListObject); ++ BufListType.tp_as_sequence = &BufListAsSeq; ++ BufListType.tp_flags = Py_TPFLAGS_DEFAULT; ++ BufferType.tp_doc = "vim buffer list"; ++ ++ vim_memset(&WinListType, 0, sizeof(WinListType)); ++ WinListType.tp_name = "vim.windowlist"; ++ WinListType.tp_basicsize = sizeof(WinListType); ++ WinListType.tp_as_sequence = &WinListAsSeq; ++ WinListType.tp_flags = Py_TPFLAGS_DEFAULT; ++ WinListType.tp_doc = "vim window list"; ++ ++ vim_memset(&RangeType, 0, sizeof(RangeType)); ++ RangeType.tp_name = "vim.range"; ++ RangeType.tp_basicsize = sizeof(RangeObject); ++ RangeType.tp_dealloc = RangeDestructor; ++ RangeType.tp_repr = RangeRepr; ++ RangeType.tp_as_sequence = &RangeAsSeq; ++ RangeType.tp_as_mapping = &RangeAsMapping; ++ RangeType.tp_flags = Py_TPFLAGS_DEFAULT; ++ RangeType.tp_doc = "vim Range object"; ++ RangeType.tp_methods = RangeMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ RangeType.tp_getattro = RangeGetattro; ++ RangeType.tp_alloc = call_PyType_GenericAlloc; ++ RangeType.tp_new = call_PyType_GenericNew; ++ RangeType.tp_free = call_PyObject_Free; ++ #else ++ RangeType.tp_getattr = RangeGetattr; ++ #endif ++ ++ vim_memset(&CurrentType, 0, sizeof(CurrentType)); ++ CurrentType.tp_name = "vim.currentdata"; ++ CurrentType.tp_basicsize = sizeof(CurrentObject); ++ CurrentType.tp_flags = Py_TPFLAGS_DEFAULT; ++ CurrentType.tp_doc = "vim current object"; ++ #if PY_MAJOR_VERSION >= 3 ++ CurrentType.tp_getattro = CurrentGetattro; ++ CurrentType.tp_setattro = CurrentSetattro; ++ #else ++ CurrentType.tp_getattr = CurrentGetattr; ++ CurrentType.tp_setattr = CurrentSetattr; ++ #endif ++ ++ vim_memset(&DictionaryType, 0, sizeof(DictionaryType)); ++ DictionaryType.tp_name = "vim.dictionary"; ++ DictionaryType.tp_basicsize = sizeof(DictionaryObject); ++ DictionaryType.tp_dealloc = DictionaryDestructor; ++ DictionaryType.tp_as_mapping = &DictionaryAsMapping; ++ DictionaryType.tp_flags = Py_TPFLAGS_DEFAULT; ++ DictionaryType.tp_doc = "dictionary pushing modifications to vim structure"; ++ DictionaryType.tp_methods = DictionaryMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ DictionaryType.tp_getattro = DictionaryGetattro; ++ DictionaryType.tp_setattro = DictionarySetattro; ++ #else ++ DictionaryType.tp_getattr = DictionaryGetattr; ++ DictionaryType.tp_setattr = DictionarySetattr; ++ #endif ++ ++ vim_memset(&ListType, 0, sizeof(ListType)); ++ ListType.tp_name = "vim.list"; ++ ListType.tp_dealloc = ListDestructor; ++ ListType.tp_basicsize = sizeof(ListObject); ++ ListType.tp_as_sequence = &ListAsSeq; ++ ListType.tp_as_mapping = &ListAsMapping; ++ ListType.tp_flags = Py_TPFLAGS_DEFAULT; ++ ListType.tp_doc = "list pushing modifications to vim structure"; ++ ListType.tp_methods = ListMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ ListType.tp_getattro = ListGetattro; ++ ListType.tp_setattro = ListSetattro; ++ #else ++ ListType.tp_getattr = ListGetattr; ++ ListType.tp_setattr = ListSetattr; ++ #endif ++ ++ vim_memset(&FunctionType, 0, sizeof(FunctionType)); ++ FunctionType.tp_name = "vim.list"; ++ FunctionType.tp_basicsize = sizeof(FunctionObject); ++ FunctionType.tp_dealloc = FunctionDestructor; ++ FunctionType.tp_call = FunctionCall; ++ FunctionType.tp_flags = Py_TPFLAGS_DEFAULT; ++ FunctionType.tp_doc = "object that calls vim function"; ++ FunctionType.tp_methods = FunctionMethods; ++ #if PY_MAJOR_VERSION >= 3 ++ FunctionType.tp_getattro = FunctionGetattro; ++ #else ++ FunctionType.tp_getattr = FunctionGetattr; ++ #endif ++ ++ #if PY_MAJOR_VERSION >= 3 ++ vim_memset(&vimmodule, 0, sizeof(vimmodule)); ++ vimmodule.m_name = "vim"; ++ vimmodule.m_doc = "Vim Python interface\n"; ++ vimmodule.m_size = -1; ++ vimmodule.m_methods = VimMethods; ++ #endif ++ } +*** ../vim-7.3.908/src/if_python3.c 2013-04-24 13:04:21.000000000 +0200 +--- src/if_python3.c 2013-04-24 13:26:54.000000000 +0200 +*************** +*** 91,96 **** +--- 91,97 ---- + #define PyInt_Check(obj) PyLong_Check(obj) + #define PyInt_FromLong(i) PyLong_FromLong(i) + #define PyInt_AsLong(obj) PyLong_AsLong(obj) ++ #define Py_ssize_t_fmt "n" + + #if defined(DYNAMIC_PYTHON3) || defined(PROTO) + +*************** +*** 588,595 **** + static PyObject *LineToString(const char *); + static PyObject *BufferDir(PyObject *, PyObject *); + +- static PyTypeObject RangeType; +- + static int py3initialised = 0; + + #define PYINITIALISED py3initialised +--- 589,594 ---- +*************** +*** 620,636 **** + if (bytes != NULL) \ + Py_XDECREF(bytes); + +! /* +! * Include the code shared with if_python.c +! */ +! #include "if_py_both.h" +! +! #define GET_ATTR_STRING(name, nameobj) \ +! char *name = ""; \ +! if (PyUnicode_Check(nameobj)) \ +! name = _PyUnicode_AsString(nameobj) +! +! #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0) + + static void + call_PyObject_Free(void *p) +--- 619,625 ---- + if (bytes != NULL) \ + Py_XDECREF(bytes); + +! #define DESTRUCTOR_FINISH(self) Py_TYPE(self)->tp_free((PyObject*)self); + + static void + call_PyObject_Free(void *p) +*************** +*** 654,666 **** + return PyType_GenericAlloc(type,nitems); + } + + /****************************************************** + * Internal function prototypes. + */ + +- static Py_ssize_t RangeStart; +- static Py_ssize_t RangeEnd; +- + static PyObject *globals; + + static int PythonIO_Init(void); +--- 643,680 ---- + return PyType_GenericAlloc(type,nitems); + } + ++ static PyObject *OutputGetattro(PyObject *, PyObject *); ++ static int OutputSetattro(PyObject *, PyObject *, PyObject *); ++ static PyObject *BufferGetattro(PyObject *, PyObject *); ++ static PyObject *WindowGetattro(PyObject *, PyObject *); ++ static int WindowSetattro(PyObject *, PyObject *, PyObject *); ++ static PyObject *RangeGetattro(PyObject *, PyObject *); ++ static PyObject *CurrentGetattro(PyObject *, PyObject *); ++ static int CurrentSetattro(PyObject *, PyObject *, PyObject *); ++ static PyObject *DictionaryGetattro(PyObject *, PyObject *); ++ static int DictionarySetattro(PyObject *, PyObject *, PyObject *); ++ static PyObject *ListGetattro(PyObject *, PyObject *); ++ static int ListSetattro(PyObject *, PyObject *, PyObject *); ++ static PyObject *FunctionGetattro(PyObject *, PyObject *); ++ ++ static struct PyModuleDef vimmodule; ++ ++ /* ++ * Include the code shared with if_python.c ++ */ ++ #include "if_py_both.h" ++ ++ #define GET_ATTR_STRING(name, nameobj) \ ++ char *name = ""; \ ++ if (PyUnicode_Check(nameobj)) \ ++ name = _PyUnicode_AsString(nameobj) ++ ++ #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0) ++ + /****************************************************** + * Internal function prototypes. + */ + + static PyObject *globals; + + static int PythonIO_Init(void); +*************** +*** 1046,1052 **** + 0, /* sq_inplace_repeat */ + }; + +! PyMappingMethods BufferAsMapping = { + /* mp_length */ (lenfunc)BufferLength, + /* mp_subscript */ (binaryfunc)BufferSubscript, + /* mp_ass_subscript */ (objobjargproc)BufferAsSubscript, +--- 1060,1066 ---- + 0, /* sq_inplace_repeat */ + }; + +! static PyMappingMethods BufferAsMapping = { + /* mp_length */ (lenfunc)BufferLength, + /* mp_subscript */ (binaryfunc)BufferSubscript, + /* mp_ass_subscript */ (objobjargproc)BufferAsSubscript, +*************** +*** 1056,1063 **** + /* Buffer object - Definitions + */ + +- static PyTypeObject BufferType; +- + static PyObject * + BufferNew(buf_T *buf) + { +--- 1070,1075 ---- +*************** +*** 1094,1124 **** + return (PyObject *)(self); + } + +- static void +- BufferDestructor(PyObject *self) +- { +- BufferObject *this = (BufferObject *)(self); +- +- if (this->buf && this->buf != INVALID_BUFFER_VALUE) +- this->buf->b_python3_ref = NULL; +- +- Py_TYPE(self)->tp_free((PyObject*)self); +- } +- + static PyObject * + BufferGetattro(PyObject *self, PyObject*nameobj) + { +! BufferObject *this = (BufferObject *)(self); + + GET_ATTR_STRING(name, nameobj); + +! if (CheckBuffer(this)) + return NULL; + +! if (strcmp(name, "name") == 0) +! return Py_BuildValue("s", this->buf->b_ffname); +! else if (strcmp(name, "number") == 0) +! return Py_BuildValue("n", this->buf->b_fnum); + else + return PyObject_GenericGetAttr(self, nameobj); + } +--- 1106,1124 ---- + return (PyObject *)(self); + } + + static PyObject * + BufferGetattro(PyObject *self, PyObject*nameobj) + { +! PyObject *r; + + GET_ATTR_STRING(name, nameobj); + +! if (CheckBuffer((BufferObject *)(self))) + return NULL; + +! r = BufferAttr((BufferObject *)(self), name); +! if (r || PyErr_Occurred()) +! return r; + else + return PyObject_GenericGetAttr(self, nameobj); + } +*************** +*** 1130,1164 **** + "append", "mark", "range"); + } + +- static PyObject * +- BufferRepr(PyObject *self) +- { +- static char repr[100]; +- BufferObject *this = (BufferObject *)(self); +- +- if (this->buf == INVALID_BUFFER_VALUE) +- { +- vim_snprintf(repr, 100, _(""), (self)); +- return PyUnicode_FromString(repr); +- } +- else +- { +- char *name = (char *)this->buf->b_fname; +- Py_ssize_t len; +- +- if (name == NULL) +- name = ""; +- len = strlen(name); +- +- if (len > 35) +- name = name + (35 - len); +- +- vim_snprintf(repr, 100, "", len > 35 ? "..." : "", name); +- +- return PyUnicode_FromString(repr); +- } +- } +- + /******************/ + + static Py_ssize_t +--- 1130,1135 ---- +*************** +*** 1255,1261 **** + 0, /* sq_inplace_repeat */ + }; + +! PyMappingMethods RangeAsMapping = { + /* mp_length */ (lenfunc)RangeLength, + /* mp_subscript */ (binaryfunc)RangeSubscript, + /* mp_ass_subscript */ (objobjargproc)RangeAsSubscript, +--- 1226,1232 ---- + 0, /* sq_inplace_repeat */ + }; + +! static PyMappingMethods RangeAsMapping = { + /* mp_length */ (lenfunc)RangeLength, + /* mp_subscript */ (binaryfunc)RangeSubscript, + /* mp_ass_subscript */ (objobjargproc)RangeAsSubscript, +*************** +*** 1264,1276 **** + /* Line range object - Implementation + */ + +- static void +- RangeDestructor(PyObject *self) +- { +- Py_DECREF(((RangeObject *)(self))->buf); +- Py_TYPE(self)->tp_free((PyObject*)self); +- } +- + static PyObject * + RangeGetattro(PyObject *self, PyObject *nameobj) + { +--- 1235,1240 ---- +*************** +*** 1358,1372 **** + } + } + +- + /* Buffer list object - Definitions + */ + +- typedef struct +- { +- PyObject_HEAD +- } BufListObject; +- + static PySequenceMethods BufListAsSeq = { + (lenfunc) BufListLength, /* sq_length, len(x) */ + (binaryfunc) 0, /* sq_concat, x+y */ +--- 1322,1330 ---- +*************** +*** 1380,1397 **** + 0, /* sq_inplace_repeat */ + }; + +- static PyTypeObject BufListType; +- +- /* Window object - Definitions +- */ +- +- static struct PyMethodDef WindowMethods[] = { +- /* name, function, calling, documentation */ +- { NULL, NULL, 0, NULL } +- }; +- +- static PyTypeObject WindowType; +- + /* Window object - Implementation + */ + +--- 1338,1343 ---- +*************** +*** 1429,1471 **** + return (PyObject *)(self); + } + +- static void +- WindowDestructor(PyObject *self) +- { +- WindowObject *this = (WindowObject *)(self); +- +- if (this->win && this->win != INVALID_WINDOW_VALUE) +- this->win->w_python3_ref = NULL; +- +- Py_TYPE(self)->tp_free((PyObject*)self); +- } +- + static PyObject * + WindowGetattro(PyObject *self, PyObject *nameobj) + { +! WindowObject *this = (WindowObject *)(self); + + GET_ATTR_STRING(name, nameobj); + +! if (CheckWindow(this)) + return NULL; + +! if (strcmp(name, "buffer") == 0) +! return (PyObject *)BufferNew(this->win->w_buffer); +! else if (strcmp(name, "cursor") == 0) +! { +! pos_T *pos = &this->win->w_cursor; +! +! return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col)); +! } +! else if (strcmp(name, "height") == 0) +! return Py_BuildValue("l", (long)(this->win->w_height)); +! #ifdef FEAT_VERTSPLIT +! else if (strcmp(name, "width") == 0) +! return Py_BuildValue("l", (long)(W_WIDTH(this->win))); +! #endif +! else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sss]", "buffer", "cursor", "height"); + else + return PyObject_GenericGetAttr(self, nameobj); + } +--- 1375,1393 ---- + return (PyObject *)(self); + } + + static PyObject * + WindowGetattro(PyObject *self, PyObject *nameobj) + { +! PyObject *r; + + GET_ATTR_STRING(name, nameobj); + +! if (CheckWindow((WindowObject *)(self))) + return NULL; + +! r = WindowAttr((WindowObject *)(self), name); +! if (r || PyErr_Occurred()) +! return r; + else + return PyObject_GenericGetAttr(self, nameobj); + } +*************** +*** 1481,1492 **** + /* Window list object - Definitions + */ + +- typedef struct +- { +- PyObject_HEAD +- } +- WinListObject; +- + static PySequenceMethods WinListAsSeq = { + (lenfunc) WinListLength, /* sq_length, len(x) */ + (binaryfunc) 0, /* sq_concat, x+y */ +--- 1403,1408 ---- +*************** +*** 1500,1560 **** + 0, /* sq_inplace_repeat */ + }; + +- static PyTypeObject WinListType; +- +- /* Current items object - Definitions +- */ +- +- typedef struct +- { +- PyObject_HEAD +- } CurrentObject; +- +- static PyTypeObject CurrentType; +- + /* Current items object - Implementation + */ + static PyObject * +! CurrentGetattro(PyObject *self UNUSED, PyObject *nameobj) + { + GET_ATTR_STRING(name, nameobj); +! +! if (strcmp(name, "buffer") == 0) +! return (PyObject *)BufferNew(curbuf); +! else if (strcmp(name, "window") == 0) +! return (PyObject *)WindowNew(curwin); +! else if (strcmp(name, "line") == 0) +! return GetBufferLine(curbuf, (Py_ssize_t)curwin->w_cursor.lnum); +! else if (strcmp(name, "range") == 0) +! return RangeNew(curbuf, RangeStart, RangeEnd); +! else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssss]", "buffer", "window", "line", "range"); +! else +! { +! PyErr_SetString(PyExc_AttributeError, name); +! return NULL; +! } + } + + static int +! CurrentSetattro(PyObject *self UNUSED, PyObject *nameobj, PyObject *value) + { +! char *name = ""; +! if (PyUnicode_Check(nameobj)) +! name = _PyUnicode_AsString(nameobj); +! +! if (strcmp(name, "line") == 0) +! { +! if (SetBufferLine(curbuf, (Py_ssize_t)curwin->w_cursor.lnum, value, NULL) == FAIL) +! return -1; +! +! return 0; +! } +! else +! { +! PyErr_SetString(PyExc_AttributeError, name); +! return -1; +! } + } + + /* Dictionary object - Definitions +--- 1416,1435 ---- + 0, /* sq_inplace_repeat */ + }; + + /* Current items object - Implementation + */ + static PyObject * +! CurrentGetattro(PyObject *self, PyObject *nameobj) + { + GET_ATTR_STRING(name, nameobj); +! return CurrentGetattr(self, name); + } + + static int +! CurrentSetattro(PyObject *self, PyObject *nameobj, PyObject *value) + { +! GET_ATTR_STRING(name, nameobj); +! return CurrentSetattr(self, name, value); + } + + /* Dictionary object - Definitions +*************** +*** 1562,1573 **** + + static PyInt DictionaryLength(PyObject *); + +- static PyMappingMethods DictionaryAsMapping = { +- /* mp_length */ (lenfunc) DictionaryLength, +- /* mp_subscript */ (binaryfunc) DictionaryItem, +- /* mp_ass_subscript */ (objobjargproc) DictionaryAssItem, +- }; +- + static PyObject * + DictionaryGetattro(PyObject *self, PyObject *nameobj) + { +--- 1437,1442 ---- +*************** +*** 1587,1606 **** + DictionarySetattro(PyObject *self, PyObject *nameobj, PyObject *val) + { + GET_ATTR_STRING(name, nameobj); +! return DictionarySetattr((DictionaryObject *) self, name, val); +! } +! +! static PyTypeObject DictionaryType; +! +! static void +! DictionaryDestructor(PyObject *self) +! { +! DictionaryObject *this = (DictionaryObject *)(self); +! +! pyll_remove(&this->ref, &lastdict); +! dict_unref(this->dict); +! +! Py_TYPE(self)->tp_free((PyObject*)self); + } + + /* List object - Definitions +--- 1456,1462 ---- + DictionarySetattro(PyObject *self, PyObject *nameobj, PyObject *val) + { + GET_ATTR_STRING(name, nameobj); +! return DictionarySetattr(self, name, val); + } + + /* List object - Definitions +*************** +*** 1631,1638 **** + /* mp_ass_subscript */ (objobjargproc) ListAsSubscript, + }; + +- static PyTypeObject ListType; +- + static PyObject * + ListSubscript(PyObject *self, PyObject* idxObject) + { +--- 1487,1492 ---- +*************** +*** 1696,1729 **** + ListSetattro(PyObject *self, PyObject *nameobj, PyObject *val) + { + GET_ATTR_STRING(name, nameobj); +! return ListSetattr((ListObject *) self, name, val); +! } +! +! static void +! ListDestructor(PyObject *self) +! { +! ListObject *this = (ListObject *)(self); +! +! pyll_remove(&this->ref, &lastlist); +! list_unref(this->list); +! +! Py_TYPE(self)->tp_free((PyObject*)self); + } + + /* Function object - Definitions + */ + +- static void +- FunctionDestructor(PyObject *self) +- { +- FunctionObject *this = (FunctionObject *) (self); +- +- func_unref(this->name); +- PyMem_Del(this->name); +- +- Py_TYPE(self)->tp_free((PyObject*)self); +- } +- + static PyObject * + FunctionGetattro(PyObject *self, PyObject *nameobj) + { +--- 1550,1561 ---- + ListSetattro(PyObject *self, PyObject *nameobj, PyObject *val) + { + GET_ATTR_STRING(name, nameobj); +! return ListSetattr(self, name, val); + } + + /* Function object - Definitions + */ + + static PyObject * + FunctionGetattro(PyObject *self, PyObject *nameobj) + { +*************** +*** 1779,1788 **** + PyObject_HEAD_INIT(&CurrentType) + }; + +- PyDoc_STRVAR(vim_module_doc,"vim python interface\n"); +- +- static struct PyModuleDef vimmodule; +- + static PyObject * + Py3Init_vim(void) + { +--- 1611,1616 ---- +*************** +*** 1898,2021 **** + { + set_ref_in_py(copyID); + } +- +- static void +- init_structs(void) +- { +- vim_memset(&OutputType, 0, sizeof(OutputType)); +- OutputType.tp_name = "vim.message"; +- OutputType.tp_basicsize = sizeof(OutputObject); +- OutputType.tp_getattro = OutputGetattro; +- OutputType.tp_setattro = OutputSetattro; +- OutputType.tp_flags = Py_TPFLAGS_DEFAULT; +- OutputType.tp_doc = "vim message object"; +- OutputType.tp_methods = OutputMethods; +- OutputType.tp_alloc = call_PyType_GenericAlloc; +- OutputType.tp_new = call_PyType_GenericNew; +- OutputType.tp_free = call_PyObject_Free; +- +- vim_memset(&BufferType, 0, sizeof(BufferType)); +- BufferType.tp_name = "vim.buffer"; +- BufferType.tp_basicsize = sizeof(BufferType); +- BufferType.tp_dealloc = BufferDestructor; +- BufferType.tp_repr = BufferRepr; +- BufferType.tp_as_sequence = &BufferAsSeq; +- BufferType.tp_as_mapping = &BufferAsMapping; +- BufferType.tp_getattro = BufferGetattro; +- BufferType.tp_flags = Py_TPFLAGS_DEFAULT; +- BufferType.tp_doc = "vim buffer object"; +- BufferType.tp_methods = BufferMethods; +- BufferType.tp_alloc = call_PyType_GenericAlloc; +- BufferType.tp_new = call_PyType_GenericNew; +- BufferType.tp_free = call_PyObject_Free; +- +- vim_memset(&WindowType, 0, sizeof(WindowType)); +- WindowType.tp_name = "vim.window"; +- WindowType.tp_basicsize = sizeof(WindowObject); +- WindowType.tp_dealloc = WindowDestructor; +- WindowType.tp_repr = WindowRepr; +- WindowType.tp_getattro = WindowGetattro; +- WindowType.tp_setattro = WindowSetattro; +- WindowType.tp_flags = Py_TPFLAGS_DEFAULT; +- WindowType.tp_doc = "vim Window object"; +- WindowType.tp_methods = WindowMethods; +- WindowType.tp_alloc = call_PyType_GenericAlloc; +- WindowType.tp_new = call_PyType_GenericNew; +- WindowType.tp_free = call_PyObject_Free; +- +- vim_memset(&BufListType, 0, sizeof(BufListType)); +- BufListType.tp_name = "vim.bufferlist"; +- BufListType.tp_basicsize = sizeof(BufListObject); +- BufListType.tp_as_sequence = &BufListAsSeq; +- BufListType.tp_flags = Py_TPFLAGS_DEFAULT; +- BufferType.tp_doc = "vim buffer list"; +- +- vim_memset(&WinListType, 0, sizeof(WinListType)); +- WinListType.tp_name = "vim.windowlist"; +- WinListType.tp_basicsize = sizeof(WinListType); +- WinListType.tp_as_sequence = &WinListAsSeq; +- WinListType.tp_flags = Py_TPFLAGS_DEFAULT; +- WinListType.tp_doc = "vim window list"; +- +- vim_memset(&RangeType, 0, sizeof(RangeType)); +- RangeType.tp_name = "vim.range"; +- RangeType.tp_basicsize = sizeof(RangeObject); +- RangeType.tp_dealloc = RangeDestructor; +- RangeType.tp_repr = RangeRepr; +- RangeType.tp_as_sequence = &RangeAsSeq; +- RangeType.tp_as_mapping = &RangeAsMapping; +- RangeType.tp_getattro = RangeGetattro; +- RangeType.tp_flags = Py_TPFLAGS_DEFAULT; +- RangeType.tp_doc = "vim Range object"; +- RangeType.tp_methods = RangeMethods; +- RangeType.tp_alloc = call_PyType_GenericAlloc; +- RangeType.tp_new = call_PyType_GenericNew; +- RangeType.tp_free = call_PyObject_Free; +- +- vim_memset(&CurrentType, 0, sizeof(CurrentType)); +- CurrentType.tp_name = "vim.currentdata"; +- CurrentType.tp_basicsize = sizeof(CurrentObject); +- CurrentType.tp_getattro = CurrentGetattro; +- CurrentType.tp_setattro = CurrentSetattro; +- CurrentType.tp_flags = Py_TPFLAGS_DEFAULT; +- CurrentType.tp_doc = "vim current object"; +- +- vim_memset(&DictionaryType, 0, sizeof(DictionaryType)); +- DictionaryType.tp_name = "vim.dictionary"; +- DictionaryType.tp_basicsize = sizeof(DictionaryObject); +- DictionaryType.tp_getattro = DictionaryGetattro; +- DictionaryType.tp_setattro = DictionarySetattro; +- DictionaryType.tp_dealloc = DictionaryDestructor; +- DictionaryType.tp_as_mapping = &DictionaryAsMapping; +- DictionaryType.tp_flags = Py_TPFLAGS_DEFAULT; +- DictionaryType.tp_doc = "dictionary pushing modifications to vim structure"; +- DictionaryType.tp_methods = DictionaryMethods; +- +- vim_memset(&ListType, 0, sizeof(ListType)); +- ListType.tp_name = "vim.list"; +- ListType.tp_dealloc = ListDestructor; +- ListType.tp_basicsize = sizeof(ListObject); +- ListType.tp_getattro = ListGetattro; +- ListType.tp_setattro = ListSetattro; +- ListType.tp_as_sequence = &ListAsSeq; +- ListType.tp_as_mapping = &ListAsMapping; +- ListType.tp_flags = Py_TPFLAGS_DEFAULT; +- ListType.tp_doc = "list pushing modifications to vim structure"; +- ListType.tp_methods = ListMethods; +- +- vim_memset(&FunctionType, 0, sizeof(FunctionType)); +- FunctionType.tp_name = "vim.list"; +- FunctionType.tp_basicsize = sizeof(FunctionObject); +- FunctionType.tp_getattro = FunctionGetattro; +- FunctionType.tp_dealloc = FunctionDestructor; +- FunctionType.tp_call = FunctionCall; +- FunctionType.tp_flags = Py_TPFLAGS_DEFAULT; +- FunctionType.tp_doc = "object that calls vim function"; +- FunctionType.tp_methods = FunctionMethods; +- +- vim_memset(&vimmodule, 0, sizeof(vimmodule)); +- vimmodule.m_name = "vim"; +- vimmodule.m_doc = vim_module_doc; +- vimmodule.m_size = -1; +- vimmodule.m_methods = VimMethods; +- } +--- 1726,1728 ---- +*** ../vim-7.3.908/src/if_python.c 2013-04-24 13:04:21.000000000 +0200 +--- src/if_python.c 2013-04-24 13:35:06.000000000 +0200 +*************** +*** 87,92 **** +--- 87,93 ---- + # define Py_ssize_t_fmt "n" + #else + # define PyInt int ++ # define lenfunc inquiry + # define PyInquiry inquiry + # define PyIntArgFunc intargfunc + # define PyIntIntArgFunc intintargfunc +*************** +*** 600,607 **** + static PyObject *DictionaryNew(dict_T *); + static PyObject *LineToString(const char *); + +- static PyTypeObject RangeType; +- + static int initialised = 0; + #define PYINITIALISED initialised + +--- 601,606 ---- +*************** +*** 617,622 **** +--- 616,631 ---- + #define DICTKEY_UNREF + #define DICTKEY_DECL + ++ #define DESTRUCTOR_FINISH(self) Py_DECREF(self); ++ ++ static PyObject *OutputGetattr(PyObject *, char *); ++ static PyObject *BufferGetattr(PyObject *, char *); ++ static PyObject *WindowGetattr(PyObject *, char *); ++ static PyObject *RangeGetattr(PyObject *, char *); ++ static PyObject *DictionaryGetattr(PyObject *, char*); ++ static PyObject *ListGetattr(PyObject *, char *); ++ static PyObject *FunctionGetattr(PyObject *, char *); ++ + /* + * Include the code shared with if_python3.c + */ +*************** +*** 627,635 **** + * Internal function prototypes. + */ + +- static PyInt RangeStart; +- static PyInt RangeEnd; +- + static PyObject *globals; + + static void PythonIO_Flush(void); +--- 636,641 ---- +*************** +*** 1003,1021 **** + + #define WindowType_Check(obj) ((obj)->ob_type == &WindowType) + +- static void WindowDestructor(PyObject *); +- static PyObject *WindowGetattr(PyObject *, char *); +- + /* Buffer type - Implementation functions + * -------------------------------------- + */ + + #define BufferType_Check(obj) ((obj)->ob_type == &BufferType) + +- static void BufferDestructor(PyObject *); +- static PyObject *BufferGetattr(PyObject *, char *); +- static PyObject *BufferRepr(PyObject *); +- + static PyInt BufferLength(PyObject *); + static PyObject *BufferItem(PyObject *, PyInt); + static PyObject *BufferSlice(PyObject *, PyInt, PyInt); +--- 1009,1020 ---- +*************** +*** 1035,1043 **** + * ----------------------------------------------- + */ + +- static PyObject *CurrentGetattr(PyObject *, char *); +- static int CurrentSetattr(PyObject *, char *, PyObject *); +- + static PySequenceMethods BufferAsSeq = { + (PyInquiry) BufferLength, /* sq_length, len(x) */ + (binaryfunc) 0, /* BufferConcat, sq_concat, x+y */ +--- 1034,1039 ---- +*************** +*** 1045,1074 **** + (PyIntArgFunc) BufferItem, /* sq_item, x[i] */ + (PyIntIntArgFunc) BufferSlice, /* sq_slice, x[i:j] */ + (PyIntObjArgProc) BufferAssItem, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) BufferAssSlice, /* sq_ass_slice, x[i:j]=v */ +! }; +! +! static PyTypeObject BufferType = { +! PyObject_HEAD_INIT(0) +! 0, +! "buffer", +! sizeof(BufferObject), + 0, +! +! (destructor) BufferDestructor, /* tp_dealloc, refcount==0 */ +! (printfunc) 0, /* tp_print, print x */ +! (getattrfunc) BufferGetattr, /* tp_getattr, x.attr */ +! (setattrfunc) 0, /* tp_setattr, x.attr=v */ +! (cmpfunc) 0, /* tp_compare, x>y */ +! (reprfunc) BufferRepr, /* tp_repr, `x`, print x */ +! +! 0, /* as number */ +! &BufferAsSeq, /* as sequence */ +! 0, /* as mapping */ +! +! (hashfunc) 0, /* tp_hash, dict(x) */ +! (ternaryfunc) 0, /* tp_call, x() */ +! (reprfunc) 0, /* tp_str, str(x) */ + }; + + /* Buffer object - Implementation +--- 1041,1052 ---- + (PyIntArgFunc) BufferItem, /* sq_item, x[i] */ + (PyIntIntArgFunc) BufferSlice, /* sq_slice, x[i:j] */ + (PyIntObjArgProc) BufferAssItem, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) BufferAssSlice, /* sq_ass_slice, x[i:j]=v */ +! (objobjproc) 0, +! #if PY_MAJOR_VERSION >= 2 +! (binaryfunc) 0, + 0, +! #endif + }; + + /* Buffer object - Implementation +*************** +*** 1110,1173 **** + return (PyObject *)(self); + } + +- static void +- BufferDestructor(PyObject *self) +- { +- BufferObject *this = (BufferObject *)(self); +- +- if (this->buf && this->buf != INVALID_BUFFER_VALUE) +- this->buf->b_python_ref = NULL; +- +- Py_DECREF(self); +- } +- + static PyObject * + BufferGetattr(PyObject *self, char *name) + { +! BufferObject *this = (BufferObject *)(self); + +! if (CheckBuffer(this)) + return NULL; + +! if (strcmp(name, "name") == 0) +! return Py_BuildValue("s", this->buf->b_ffname); +! else if (strcmp(name, "number") == 0) +! return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); +! else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ss]", "name", "number"); + else + return Py_FindMethod(BufferMethods, self, name); + } + +- static PyObject * +- BufferRepr(PyObject *self) +- { +- static char repr[100]; +- BufferObject *this = (BufferObject *)(self); +- +- if (this->buf == INVALID_BUFFER_VALUE) +- { +- vim_snprintf(repr, 100, _(""), (self)); +- return PyString_FromString(repr); +- } +- else +- { +- char *name = (char *)this->buf->b_fname; +- PyInt len; +- +- if (name == NULL) +- name = ""; +- len = strlen(name); +- +- if (len > 35) +- name = name + (35 - len); +- +- vim_snprintf(repr, 100, "", len > 35 ? "..." : "", name); +- +- return PyString_FromString(repr); +- } +- } +- + /******************/ + + static PyInt +--- 1088,1108 ---- + return (PyObject *)(self); + } + + static PyObject * + BufferGetattr(PyObject *self, char *name) + { +! PyObject *r; + +! if (CheckBuffer((BufferObject *)(self))) + return NULL; + +! r = BufferAttr((BufferObject *)(self), name); +! if (r || PyErr_Occurred()) +! return r; + else + return Py_FindMethod(BufferMethods, self, name); + } + + /******************/ + + static PyInt +*************** +*** 1211,1235 **** + } + + static PySequenceMethods RangeAsSeq = { +! (PyInquiry) RangeLength, /* sq_length, len(x) */ +! (binaryfunc) 0, /* RangeConcat, */ /* sq_concat, x+y */ +! (PyIntArgFunc) 0, /* RangeRepeat, */ /* sq_repeat, x*n */ +! (PyIntArgFunc) RangeItem, /* sq_item, x[i] */ +! (PyIntIntArgFunc) RangeSlice, /* sq_slice, x[i:j] */ +! (PyIntObjArgProc) RangeAssItem, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) RangeAssSlice, /* sq_ass_slice, x[i:j]=v */ + }; + + /* Line range object - Implementation + */ + +- static void +- RangeDestructor(PyObject *self) +- { +- Py_DECREF(((RangeObject *)(self))->buf); +- Py_DECREF(self); +- } +- + static PyObject * + RangeGetattr(PyObject *self, char *name) + { +--- 1146,1168 ---- + } + + static PySequenceMethods RangeAsSeq = { +! (PyInquiry) RangeLength, /* sq_length, len(x) */ +! (binaryfunc) 0, /* RangeConcat, */ /* sq_concat, x+y */ +! (PyIntArgFunc) 0, /* RangeRepeat, */ /* sq_repeat, x*n */ +! (PyIntArgFunc) RangeItem, /* sq_item, x[i] */ +! (PyIntIntArgFunc) RangeSlice, /* sq_slice, x[i:j] */ +! (PyIntObjArgProc) RangeAssItem, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) RangeAssSlice, /* sq_ass_slice, x[i:j]=v */ +! (objobjproc) 0, +! #if PY_MAJOR_VERSION >= 2 +! (binaryfunc) 0, +! 0, +! #endif + }; + + /* Line range object - Implementation + */ + + static PyObject * + RangeGetattr(PyObject *self, char *name) + { +*************** +*** 1264,1274 **** + /* Buffer list object - Definitions + */ + +- typedef struct +- { +- PyObject_HEAD +- } BufListObject; +- + static PySequenceMethods BufListAsSeq = { + (PyInquiry) BufListLength, /* sq_length, len(x) */ + (binaryfunc) 0, /* sq_concat, x+y */ +--- 1197,1202 ---- +*************** +*** 1276,1336 **** + (PyIntArgFunc) BufListItem, /* sq_item, x[i] */ + (PyIntIntArgFunc) 0, /* sq_slice, x[i:j] */ + (PyIntObjArgProc) 0, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) 0, /* sq_ass_slice, x[i:j]=v */ +! }; +! +! static PyTypeObject BufListType = { +! PyObject_HEAD_INIT(0) +! 0, +! "buffer list", +! sizeof(BufListObject), +! 0, +! +! (destructor) 0, /* tp_dealloc, refcount==0 */ +! (printfunc) 0, /* tp_print, print x */ +! (getattrfunc) 0, /* tp_getattr, x.attr */ +! (setattrfunc) 0, /* tp_setattr, x.attr=v */ +! (cmpfunc) 0, /* tp_compare, x>y */ +! (reprfunc) 0, /* tp_repr, `x`, print x */ +! +! 0, /* as number */ +! &BufListAsSeq, /* as sequence */ +! 0, /* as mapping */ +! +! (hashfunc) 0, /* tp_hash, dict(x) */ +! (ternaryfunc) 0, /* tp_call, x() */ +! (reprfunc) 0, /* tp_str, str(x) */ +! }; +! +! /* Window object - Definitions +! */ +! +! static struct PyMethodDef WindowMethods[] = { +! /* name, function, calling, documentation */ +! { NULL, NULL, 0, NULL } +! }; +! +! static PyTypeObject WindowType = { +! PyObject_HEAD_INIT(0) +! 0, +! "window", +! sizeof(WindowObject), + 0, +! +! (destructor) WindowDestructor, /* tp_dealloc, refcount==0 */ +! (printfunc) 0, /* tp_print, print x */ +! (getattrfunc) WindowGetattr, /* tp_getattr, x.attr */ +! (setattrfunc) WindowSetattr, /* tp_setattr, x.attr=v */ +! (cmpfunc) 0, /* tp_compare, x>y */ +! (reprfunc) WindowRepr, /* tp_repr, `x`, print x */ +! +! 0, /* as number */ +! 0, /* as sequence */ +! 0, /* as mapping */ +! +! (hashfunc) 0, /* tp_hash, dict(x) */ +! (ternaryfunc) 0, /* tp_call, x() */ +! (reprfunc) 0, /* tp_str, str(x) */ + }; + + /* Window object - Implementation +--- 1204,1215 ---- + (PyIntArgFunc) BufListItem, /* sq_item, x[i] */ + (PyIntIntArgFunc) 0, /* sq_slice, x[i:j] */ + (PyIntObjArgProc) 0, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) 0, /* sq_ass_slice, x[i:j]=v */ +! (objobjproc) 0, +! #if PY_MAJOR_VERSION >= 2 +! (binaryfunc) 0, + 0, +! #endif + }; + + /* Window object - Implementation +*************** +*** 1370,1410 **** + return (PyObject *)(self); + } + +- static void +- WindowDestructor(PyObject *self) +- { +- WindowObject *this = (WindowObject *)(self); +- +- if (this->win && this->win != INVALID_WINDOW_VALUE) +- this->win->w_python_ref = NULL; +- +- Py_DECREF(self); +- } +- + static PyObject * + WindowGetattr(PyObject *self, char *name) + { +! WindowObject *this = (WindowObject *)(self); + +! if (CheckWindow(this)) + return NULL; + +! if (strcmp(name, "buffer") == 0) +! return (PyObject *)BufferNew(this->win->w_buffer); +! else if (strcmp(name, "cursor") == 0) +! { +! pos_T *pos = &this->win->w_cursor; +! +! return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col)); +! } +! else if (strcmp(name, "height") == 0) +! return Py_BuildValue("l", (long)(this->win->w_height)); +! #ifdef FEAT_VERTSPLIT +! else if (strcmp(name, "width") == 0) +! return Py_BuildValue("l", (long)(W_WIDTH(this->win))); +! #endif +! else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sss]", "buffer", "cursor", "height"); + else + return Py_FindMethod(WindowMethods, self, name); + } +--- 1249,1265 ---- + return (PyObject *)(self); + } + + static PyObject * + WindowGetattr(PyObject *self, char *name) + { +! PyObject *r; + +! if (CheckWindow((WindowObject *)(self))) + return NULL; + +! r = WindowAttr((WindowObject *)(self), name); +! if (r || PyErr_Occurred()) +! return r; + else + return Py_FindMethod(WindowMethods, self, name); + } +*************** +*** 1412,1423 **** + /* Window list object - Definitions + */ + +- typedef struct +- { +- PyObject_HEAD +- } +- WinListObject; +- + static PySequenceMethods WinListAsSeq = { + (PyInquiry) WinListLength, /* sq_length, len(x) */ + (binaryfunc) 0, /* sq_concat, x+y */ +--- 1267,1272 ---- +*************** +*** 1425,1526 **** + (PyIntArgFunc) WinListItem, /* sq_item, x[i] */ + (PyIntIntArgFunc) 0, /* sq_slice, x[i:j] */ + (PyIntObjArgProc) 0, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) 0, /* sq_ass_slice, x[i:j]=v */ +! }; +! +! static PyTypeObject WinListType = { +! PyObject_HEAD_INIT(0) +! 0, +! "window list", +! sizeof(WinListObject), +! 0, +! +! (destructor) 0, /* tp_dealloc, refcount==0 */ +! (printfunc) 0, /* tp_print, print x */ +! (getattrfunc) 0, /* tp_getattr, x.attr */ +! (setattrfunc) 0, /* tp_setattr, x.attr=v */ +! (cmpfunc) 0, /* tp_compare, x>y */ +! (reprfunc) 0, /* tp_repr, `x`, print x */ +! +! 0, /* as number */ +! &WinListAsSeq, /* as sequence */ +! 0, /* as mapping */ +! +! (hashfunc) 0, /* tp_hash, dict(x) */ +! (ternaryfunc) 0, /* tp_call, x() */ +! (reprfunc) 0, /* tp_str, str(x) */ +! }; +! +! /* Current items object - Definitions +! */ +! +! typedef struct +! { +! PyObject_HEAD +! } CurrentObject; +! +! static PyTypeObject CurrentType = { +! PyObject_HEAD_INIT(0) +! 0, +! "current data", +! sizeof(CurrentObject), + 0, +! +! (destructor) 0, /* tp_dealloc, refcount==0 */ +! (printfunc) 0, /* tp_print, print x */ +! (getattrfunc) CurrentGetattr, /* tp_getattr, x.attr */ +! (setattrfunc) CurrentSetattr, /* tp_setattr, x.attr=v */ +! (cmpfunc) 0, /* tp_compare, x>y */ +! (reprfunc) 0, /* tp_repr, `x`, print x */ +! +! 0, /* as number */ +! 0, /* as sequence */ +! 0, /* as mapping */ +! +! (hashfunc) 0, /* tp_hash, dict(x) */ +! (ternaryfunc) 0, /* tp_call, x() */ +! (reprfunc) 0, /* tp_str, str(x) */ + }; + +- /* Current items object - Implementation +- */ +- static PyObject * +- CurrentGetattr(PyObject *self UNUSED, char *name) +- { +- if (strcmp(name, "buffer") == 0) +- return (PyObject *)BufferNew(curbuf); +- else if (strcmp(name, "window") == 0) +- return (PyObject *)WindowNew(curwin); +- else if (strcmp(name, "line") == 0) +- return GetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum); +- else if (strcmp(name, "range") == 0) +- return RangeNew(curbuf, RangeStart, RangeEnd); +- else if (strcmp(name,"__members__") == 0) +- return Py_BuildValue("[ssss]", "buffer", "window", "line", "range"); +- else +- { +- PyErr_SetString(PyExc_AttributeError, name); +- return NULL; +- } +- } +- +- static int +- CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *value) +- { +- if (strcmp(name, "line") == 0) +- { +- if (SetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum, value, NULL) == FAIL) +- return -1; +- +- return 0; +- } +- else +- { +- PyErr_SetString(PyExc_AttributeError, name); +- return -1; +- } +- } +- + /* External interface + */ + +--- 1274,1287 ---- + (PyIntArgFunc) WinListItem, /* sq_item, x[i] */ + (PyIntIntArgFunc) 0, /* sq_slice, x[i:j] */ + (PyIntObjArgProc) 0, /* sq_ass_item, x[i]=v */ +! (PyIntIntObjArgProc) 0, /* sq_ass_slice, x[i:j]=v */ +! (objobjproc) 0, +! #if PY_MAJOR_VERSION >= 2 +! (binaryfunc) 0, + 0, +! #endif + }; + + /* External interface + */ + +*************** +*** 1642,1690 **** + return result; + } + +- static void DictionaryDestructor(PyObject *); +- static PyObject *DictionaryGetattr(PyObject *, char*); +- +- static PyMappingMethods DictionaryAsMapping = { +- (PyInquiry) DictionaryLength, +- (binaryfunc) DictionaryItem, +- (objobjargproc) DictionaryAssItem, +- }; +- +- static PyTypeObject DictionaryType = { +- PyObject_HEAD_INIT(0) +- 0, +- "vimdictionary", +- sizeof(DictionaryObject), +- 0, +- +- (destructor) DictionaryDestructor, +- (printfunc) 0, +- (getattrfunc) DictionaryGetattr, +- (setattrfunc) DictionarySetattr, +- (cmpfunc) 0, +- (reprfunc) 0, +- +- 0, /* as number */ +- 0, /* as sequence */ +- &DictionaryAsMapping, /* as mapping */ +- +- (hashfunc) 0, +- (ternaryfunc) 0, +- (reprfunc) 0, +- }; +- +- static void +- DictionaryDestructor(PyObject *self) +- { +- DictionaryObject *this = ((DictionaryObject *) (self)); +- +- pyll_remove(&this->ref, &lastdict); +- dict_unref(this->dict); +- +- Py_DECREF(self); +- } +- + static PyObject * + DictionaryGetattr(PyObject *self, char *name) + { +--- 1403,1408 ---- +*************** +*** 1698,1706 **** + return Py_FindMethod(DictionaryMethods, self, name); + } + +- static void ListDestructor(PyObject *); +- static PyObject *ListGetattr(PyObject *, char *); +- + static PySequenceMethods ListAsSeq = { + (PyInquiry) ListLength, + (binaryfunc) 0, +--- 1416,1421 ---- +*************** +*** 1716,1755 **** + #endif + }; + +- static PyTypeObject ListType = { +- PyObject_HEAD_INIT(0) +- 0, +- "vimlist", +- sizeof(ListObject), +- 0, +- +- (destructor) ListDestructor, +- (printfunc) 0, +- (getattrfunc) ListGetattr, +- (setattrfunc) ListSetattr, +- (cmpfunc) 0, +- (reprfunc) 0, +- +- 0, /* as number */ +- &ListAsSeq, /* as sequence */ +- 0, /* as mapping */ +- +- (hashfunc) 0, +- (ternaryfunc) 0, +- (reprfunc) 0, +- }; +- +- static void +- ListDestructor(PyObject *self) +- { +- ListObject *this = ((ListObject *) (self)); +- +- pyll_remove(&this->ref, &lastlist); +- list_unref(this->list); +- +- Py_DECREF(self); +- } +- + static PyObject * + ListGetattr(PyObject *self, char *name) + { +--- 1431,1436 ---- +*************** +*** 1759,1801 **** + return Py_FindMethod(ListMethods, self, name); + } + +- static void FunctionDestructor(PyObject *); +- static PyObject *FunctionGetattr(PyObject *, char *); +- +- static PyTypeObject FunctionType = { +- PyObject_HEAD_INIT(0) +- 0, +- "vimfunction", +- sizeof(FunctionObject), +- 0, +- +- (destructor) FunctionDestructor, +- (printfunc) 0, +- (getattrfunc) FunctionGetattr, +- (setattrfunc) 0, +- (cmpfunc) 0, +- (reprfunc) 0, +- +- 0, /* as number */ +- 0, /* as sequence */ +- 0, /* as mapping */ +- +- (hashfunc) 0, +- (ternaryfunc) FunctionCall, +- (reprfunc) 0, +- }; +- +- static void +- FunctionDestructor(PyObject *self) +- { +- FunctionObject *this = (FunctionObject *) (self); +- +- func_unref(this->name); +- PyMem_Del(this->name); +- +- Py_DECREF(self); +- } +- + static PyObject * + FunctionGetattr(PyObject *self, char *name) + { +--- 1440,1445 ---- +*************** +*** 1839,1859 **** + { + set_ref_in_py(copyID); + } +- +- static void +- init_structs(void) +- { +- vim_memset(&OutputType, 0, sizeof(OutputType)); +- OutputType.tp_name = "message"; +- OutputType.tp_basicsize = sizeof(OutputObject); +- OutputType.tp_getattr = OutputGetattr; +- OutputType.tp_setattr = OutputSetattr; +- +- vim_memset(&RangeType, 0, sizeof(RangeType)); +- RangeType.tp_name = "range"; +- RangeType.tp_basicsize = sizeof(RangeObject); +- RangeType.tp_dealloc = RangeDestructor; +- RangeType.tp_getattr = RangeGetattr; +- RangeType.tp_repr = RangeRepr; +- RangeType.tp_as_sequence = &RangeAsSeq; +- } +--- 1483,1485 ---- +*** ../vim-7.3.908/src/version.c 2013-04-24 13:10:35.000000000 +0200 +--- src/version.c 2013-04-24 13:27:49.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 909, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +221. Your wife melts your keyboard in the oven. + + /// 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 /// From 6ae0d6211526b7c636fba6e0b98ac144bf10ba7f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:39 +0200 Subject: [PATCH 252/291] - patchlevel 910 --- 7.3.910 | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 7.3.910 diff --git a/7.3.910 b/7.3.910 new file mode 100644 index 00000000..ae8deb5d --- /dev/null +++ b/7.3.910 @@ -0,0 +1,119 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.910 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.910 +Problem: Python code in #ifdef branches with only minor differences. +Solution: Merge the #ifdef branches. (ZyX) +Files: src/if_py_both.h, src/if_python.c + + +*** ../vim-7.3.909/src/if_py_both.h 2013-04-24 13:39:11.000000000 +0200 +--- src/if_py_both.h 2013-04-24 13:42:30.000000000 +0200 +*************** +*** 2853,2859 **** + tv->v_type = VAR_FUNC; + func_ref(tv->vval.v_string); + } +- #if PY_MAJOR_VERSION >= 3 + else if (PyBytes_Check(obj)) + { + char_u *result; +--- 2853,2858 ---- +*************** +*** 2873,2902 **** + PyObject *bytes; + char_u *result; + +- bytes = PyString_AsBytes(obj); +- if (bytes == NULL) +- return -1; +- +- if(PyString_AsStringAndSize(bytes, (char **) &result, NULL) == -1) +- return -1; +- if (result == NULL) +- return -1; +- +- if (set_string_copy(result, tv) == -1) +- { +- Py_XDECREF(bytes); +- return -1; +- } +- Py_XDECREF(bytes); +- +- tv->v_type = VAR_STRING; +- } +- #else +- else if (PyUnicode_Check(obj)) +- { +- PyObject *bytes; +- char_u *result; +- + bytes = PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL); + if (bytes == NULL) + return -1; +--- 2872,2877 ---- +*************** +*** 2915,2934 **** + + tv->v_type = VAR_STRING; + } +! else if (PyString_Check(obj)) +! { +! char_u *result; +! +! if(PyString_AsStringAndSize(obj, (char **) &result, NULL) == -1) +! return -1; +! if (result == NULL) +! return -1; +! +! if (set_string_copy(result, tv) == -1) +! return -1; +! +! tv->v_type = VAR_STRING; +! } + else if (PyInt_Check(obj)) + { + tv->v_type = VAR_NUMBER; +--- 2890,2896 ---- + + tv->v_type = VAR_STRING; + } +! #if PY_MAJOR_VERSION < 3 + else if (PyInt_Check(obj)) + { + tv->v_type = VAR_NUMBER; +*** ../vim-7.3.909/src/if_python.c 2013-04-24 13:39:11.000000000 +0200 +--- src/if_python.c 2013-04-24 13:42:30.000000000 +0200 +*************** +*** 59,64 **** +--- 59,65 ---- + static void init_structs(void); + + #define PyBytes_FromString PyString_FromString ++ #define PyBytes_Check PyString_Check + + /* No-op conversion functions, use with care! */ + #define PyString_AsBytes(obj) (obj) +*** ../vim-7.3.909/src/version.c 2013-04-24 13:39:11.000000000 +0200 +--- src/version.c 2013-04-24 13:43:51.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 910, + /**/ + +-- +Your fault: core dumped + + /// 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 /// From f0cc65e5e1db7440d29efca10f32edda543c5ade Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:40 +0200 Subject: [PATCH 253/291] - patchlevel 911 --- 7.3.911 | 343 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 7.3.911 diff --git a/7.3.911 b/7.3.911 new file mode 100644 index 00000000..9143ceea --- /dev/null +++ b/7.3.911 @@ -0,0 +1,343 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.911 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.911 +Problem: Python: Access to Vim variables is not so easy. +Solution: Define vim.vars and vim.vvars. (ZyX) +Files: runtime/doc/if_pyth.txt, src/eval.c, src/globals.h, + src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + + +*** ../vim-7.3.910/runtime/doc/if_pyth.txt 2012-09-21 14:00:05.000000000 +0200 +--- runtime/doc/if_pyth.txt 2013-04-24 13:54:23.000000000 +0200 +*************** +*** 54,61 **** + EOF + endfunction + < +! Note: Python is very sensitive to the indenting. Also make sure the "class" +! line and "EOF" do not have any indent. + + *:pyfile* *:pyf* + :[range]pyf[ile] {file} +--- 54,61 ---- + EOF + endfunction + < +! Note: Python is very sensitive to the indenting. Make sure the "class" line +! and "EOF" do not have any indent. + + *:pyfile* *:pyf* + :[range]pyf[ile] {file} +*************** +*** 165,171 **** + Value Meaning ~ + zero Variable is not locked + vim.VAR_LOCKED Variable is locked, but can be unlocked +! vim.VAR_FIXED Variable is locked and can’t be unlocked + integer constants. If variable is not fixed, you can do + `var.locked=True` to lock it and `var.locked=False` to unlock. + There is no recursive locking like |:lockvar|! does. There is also +--- 165,171 ---- + Value Meaning ~ + zero Variable is not locked + vim.VAR_LOCKED Variable is locked, but can be unlocked +! vim.VAR_FIXED Variable is locked and can't be unlocked + integer constants. If variable is not fixed, you can do + `var.locked=True` to lock it and `var.locked=False` to unlock. + There is no recursive locking like |:lockvar|! does. There is also +*************** +*** 237,242 **** +--- 237,247 ---- + "current range". A range is a bit like a buffer, but with all access + restricted to a subset of lines. See |python-range| for more details. + ++ vim.vars *python-vars* ++ vim.vvars *python-vvars* ++ Dictionary-like objects holding dictionaries with global (|g:|) and ++ vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`, ++ but faster. + + Output from Python *python-output* + Vim displays all Python code output in the Vim message area. Normal +*************** +*** 307,312 **** +--- 312,318 ---- + :py n = len(b) # number of lines + :py (row,col) = b.mark('a') # named mark + :py r = b.range(1,5) # a sub-range of the buffer ++ :py b.vars["foo"] = "bar" # assign b:foo variable + + ============================================================================== + 4. Range objects *python-range* +*************** +*** 354,359 **** +--- 360,368 ---- + This is a tuple, (row,col). + height (read-write) The window height, in rows + width (read-write) The window width, in columns ++ vars (read-only) The window |w:| variables. Attribute is ++ unassignable, but you can change window ++ variables this way + The height attribute is writable only if the screen is split horizontally. + The width attribute is writable only if the screen is split vertically. + +*************** +*** 385,391 **** + + *:py3* *:python3* + The |:py3| and |:python3| commands work similar to |:python|. A simple check +! if the `:py3` command is wrong: > + :py3 print("Hello") + < *:py3file* + The |:py3file| command works similar to |:pyfile|. +--- 394,400 ---- + + *:py3* *:python3* + The |:py3| and |:python3| commands work similar to |:python|. A simple check +! if the `:py3` command is working: > + :py3 print("Hello") + < *:py3file* + The |:py3file| command works similar to |:pyfile|. +*** ../vim-7.3.910/src/eval.c 2013-04-15 18:25:55.000000000 +0200 +--- src/eval.c 2013-04-24 14:02:45.000000000 +0200 +*************** +*** 113,124 **** + static char *e_nofunc = N_("E130: Unknown function: %s"); + static char *e_illvar = N_("E461: Illegal variable name: %s"); + +! /* +! * All user-defined global variables are stored in dictionary "globvardict". +! * "globvars_var" is the variable that is used for "g:". +! */ +! static dict_T globvardict; +! static dictitem_T globvars_var; + #define globvarht globvardict.dv_hashtab + + /* +--- 113,119 ---- + static char *e_nofunc = N_("E130: Unknown function: %s"); + static char *e_illvar = N_("E461: Illegal variable name: %s"); + +! static dictitem_T globvars_var; /* variable used for g: */ + #define globvarht globvardict.dv_hashtab + + /* +*************** +*** 370,381 **** + #define vv_list vv_di.di_tv.vval.v_list + #define vv_tv vv_di.di_tv + +! /* +! * The v: variables are stored in dictionary "vimvardict". +! * "vimvars_var" is the variable that is used for the "l:" scope. +! */ +! static dict_T vimvardict; +! static dictitem_T vimvars_var; + #define vimvarht vimvardict.dv_hashtab + + static void prepare_vimvar __ARGS((int idx, typval_T *save_tv)); +--- 365,371 ---- + #define vv_list vv_di.di_tv.vval.v_list + #define vv_tv vv_di.di_tv + +! static dictitem_T vimvars_var; /* variable used for v: */ + #define vimvarht vimvardict.dv_hashtab + + static void prepare_vimvar __ARGS((int idx, typval_T *save_tv)); +*** ../vim-7.3.910/src/globals.h 2013-03-19 13:33:18.000000000 +0100 +--- src/globals.h 2013-04-24 13:57:51.000000000 +0200 +*************** +*** 180,185 **** +--- 180,187 ---- + EXTERN int emsg_severe INIT(= FALSE); /* use message of next of several + emsg() calls for throw */ + EXTERN int did_endif INIT(= FALSE); /* just had ":endif" */ ++ EXTERN dict_T vimvardict; /* Dictionary with v: variables */ ++ EXTERN dict_T globvardict; /* Dictionary with g: variables */ + #endif + EXTERN int did_emsg; /* set by emsg() when the message + is displayed or thrown */ +*** ../vim-7.3.910/src/if_py_both.h 2013-04-24 13:47:36.000000000 +0200 +--- src/if_py_both.h 2013-04-24 13:54:23.000000000 +0200 +*************** +*** 1532,1539 **** + else if (strcmp(name, "width") == 0) + return Py_BuildValue("l", (long)(W_WIDTH(this->win))); + #endif + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sss]", "buffer", "cursor", "height"); + else + return NULL; + } +--- 1532,1541 ---- + else if (strcmp(name, "width") == 0) + return Py_BuildValue("l", (long)(W_WIDTH(this->win))); + #endif ++ else if (strcmp(name, "vars") == 0) ++ return DictionaryNew(this->win->w_vars); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssss]", "buffer", "cursor", "height", "vars"); + else + return NULL; + } +*************** +*** 2495,2502 **** + return Py_BuildValue("s", this->buf->b_ffname); + else if (strcmp(name, "number") == 0) + return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ss]", "name", "number"); + else + return NULL; + } +--- 2497,2506 ---- + return Py_BuildValue("s", this->buf->b_ffname); + else if (strcmp(name, "number") == 0) + return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); ++ else if (strcmp(name, "vars") == 0) ++ return DictionaryNew(this->buf->b_vars); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sss]", "name", "number", "vars"); + else + return NULL; + } +*** ../vim-7.3.910/src/if_python3.c 2013-04-24 13:39:11.000000000 +0200 +--- src/if_python3.c 2013-04-24 13:54:23.000000000 +0200 +*************** +*** 1647,1652 **** +--- 1647,1655 ---- + Py_INCREF((PyObject *)(void *)&TheWindowList); + PyModule_AddObject(mod, "windows", (PyObject *)(void *)&TheWindowList); + ++ PyModule_AddObject(mod, "vars", DictionaryNew(&globvardict)); ++ PyModule_AddObject(mod, "vvars", DictionaryNew(&vimvardict)); ++ + #define ADD_INT_CONSTANT(name, value) \ + tmp = PyLong_FromLong(value); \ + Py_INCREF(tmp); \ +*** ../vim-7.3.910/src/if_python.c 2013-04-24 13:47:36.000000000 +0200 +--- src/if_python.c 2013-04-24 13:54:33.000000000 +0200 +*************** +*** 1330,1335 **** +--- 1330,1336 ---- + { + PyObject *mod; + PyObject *dict; ++ PyObject *tmp; + /* The special value is removed from sys.path in Python_Init(). */ + static char *(argv[2]) = {"/must>not&exist/foo", NULL}; + +*************** +*** 1353,1358 **** +--- 1354,1365 ---- + PyDict_SetItemString(dict, "buffers", (PyObject *)(void *)&TheBufferList); + PyDict_SetItemString(dict, "current", (PyObject *)(void *)&TheCurrent); + PyDict_SetItemString(dict, "windows", (PyObject *)(void *)&TheWindowList); ++ tmp = DictionaryNew(&globvardict); ++ PyDict_SetItemString(dict, "vars", tmp); ++ Py_DECREF(tmp); ++ tmp = DictionaryNew(&vimvardict); ++ PyDict_SetItemString(dict, "vvars", tmp); ++ Py_DECREF(tmp); + PyDict_SetItemString(dict, "VAR_LOCKED", PyInt_FromLong(VAR_LOCKED)); + PyDict_SetItemString(dict, "VAR_FIXED", PyInt_FromLong(VAR_FIXED)); + PyDict_SetItemString(dict, "VAR_SCOPE", PyInt_FromLong(VAR_SCOPE)); +*** ../vim-7.3.910/src/testdir/test86.in 2013-04-05 19:32:30.000000000 +0200 +--- src/testdir/test86.in 2013-04-24 13:54:33.000000000 +0200 +*************** +*** 346,351 **** +--- 346,364 ---- + :$put =string(pyeval('l')) + :py l = ll[-10:10] + :$put =string(pyeval('l')) ++ :" ++ :" Vars ++ :let g:foo = 'bac' ++ :let w:abc = 'def' ++ :let b:baz = 'bar' ++ :try ++ : throw "Abc" ++ :catch ++ : put =pyeval('vim.vvars[''exception'']') ++ :endtry ++ :put =pyeval('vim.vars[''foo'']') ++ :put =pyeval('vim.current.window.vars[''abc'']') ++ :put =pyeval('vim.current.buffer.vars[''baz'']') + :endfun + :" + :call Test() +*** ../vim-7.3.910/src/testdir/test86.ok 2013-04-24 13:04:21.000000000 +0200 +--- src/testdir/test86.ok 2013-04-24 13:54:33.000000000 +0200 +*************** +*** 76,78 **** +--- 76,82 ---- + [0, 1, 2, 3, 4, 5] + [0, 1, 2, 3, 4, 5] + [0, 1, 2, 3, 4, 5] ++ Abc ++ bac ++ def ++ bar +*** ../vim-7.3.910/src/testdir/test87.in 2013-02-13 14:17:00.000000000 +0100 +--- src/testdir/test87.in 2013-04-24 13:54:33.000000000 +0200 +*************** +*** 315,320 **** +--- 315,333 ---- + :py3 trace_main() + :py3 sys.settrace(None) + :$put =string(l) ++ :" ++ :" Vars ++ :let g:foo = 'bac' ++ :let w:abc = 'def' ++ :let b:baz = 'bar' ++ :try ++ : throw "Abc" ++ :catch ++ : put =py3eval('vim.vvars[''exception'']') ++ :endtry ++ :put =py3eval('vim.vars[''foo'']') ++ :put =py3eval('vim.current.window.vars[''abc'']') ++ :put =py3eval('vim.current.buffer.vars[''baz'']') + :endfun + :" + :call Test() +*** ../vim-7.3.910/src/testdir/test87.ok 2013-04-24 13:04:21.000000000 +0200 +--- src/testdir/test87.ok 2013-04-24 13:54:33.000000000 +0200 +*************** +*** 65,67 **** +--- 65,71 ---- + vim: Vim(let):E861: + [1] + [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] ++ Abc ++ bac ++ def ++ bar +*** ../vim-7.3.910/src/version.c 2013-04-24 13:47:36.000000000 +0200 +--- src/version.c 2013-04-24 13:54:00.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 911, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +222. You send more than 20 personal e-mails a day. + + /// 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 /// From 7095faa838a327eff9c558ca6cad46e8f9f1d131 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:41 +0200 Subject: [PATCH 254/291] - patchlevel 912 --- 7.3.912 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.3.912 diff --git a/7.3.912 b/7.3.912 new file mode 100644 index 00000000..8a7ed929 --- /dev/null +++ b/7.3.912 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.912 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.912 +Problem: Typing a ":" command at the hit-enter dialog does not work if the + "file changed" dialog happens next. +Solution: Check for changed files before giving the hit-enter dialog. +Files: src/message.c + + +*** ../vim-7.3.911/src/message.c 2013-03-19 13:56:03.000000000 +0100 +--- src/message.c 2013-04-24 15:01:31.000000000 +0200 +*************** +*** 939,944 **** +--- 939,950 ---- + #ifdef USE_ON_FLY_SCROLL + dont_scroll = TRUE; /* disallow scrolling here */ + #endif ++ /* Avoid the sequence that the user types ":" at the hit-return prompt ++ * to start an Ex command, but the file-changed dialog gets in the ++ * way. */ ++ if (need_check_timestamps) ++ check_timestamps(FALSE); ++ + hit_return_msg(); + + do +*** ../vim-7.3.911/src/version.c 2013-04-24 14:06:42.000000000 +0200 +--- src/version.c 2013-04-24 15:04:30.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 912, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +224. You set up your own Web page. You set up a Web page for each + of your kids... and your pets. + + /// 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 /// From caf0207af03aa8166fc1776ed42174e7c6e505e7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:42 +0200 Subject: [PATCH 255/291] - patchlevel 913 --- 7.3.913 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.3.913 diff --git a/7.3.913 b/7.3.913 new file mode 100644 index 00000000..721959ae --- /dev/null +++ b/7.3.913 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.913 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.913 (after 7.3.905) +Problem: Still a crash when writing viminfo. +Solution: Add checks for NULL pointers. (Ron Aaron) +Files: src/ex_getln.c + + +*** ../vim-7.3.912/src/ex_getln.c 2013-04-15 22:22:48.000000000 +0200 +--- src/ex_getln.c 2013-04-24 15:35:22.000000000 +0200 +*************** +*** 6177,6182 **** +--- 6177,6183 ---- + } + vim_free(viminfo_history[type]); + viminfo_history[type] = NULL; ++ viminfo_hisidx[type] = 0; + } + } + +*************** +*** 6230,6235 **** +--- 6231,6237 ---- + && !(round == 2 && i >= viminfo_hisidx[type])) + { + p = round == 1 ? history[type][i].hisstr ++ : viminfo_history[type] == NULL ? NULL + : viminfo_history[type][i]; + if (p != NULL && (round == 2 || !history[type][i].viminfo)) + { +*************** +*** 6261,6267 **** + } + } + for (i = 0; i < viminfo_hisidx[type]; ++i) +! vim_free(viminfo_history[type][i]); + vim_free(viminfo_history[type]); + viminfo_history[type] = NULL; + viminfo_hisidx[type] = 0; +--- 6263,6270 ---- + } + } + for (i = 0; i < viminfo_hisidx[type]; ++i) +! if (viminfo_history[type] != NULL) +! vim_free(viminfo_history[type][i]); + vim_free(viminfo_history[type]); + viminfo_history[type] = NULL; + viminfo_hisidx[type] = 0; +*** ../vim-7.3.912/src/version.c 2013-04-24 15:12:27.000000000 +0200 +--- src/version.c 2013-04-24 15:38:22.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 913, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +225. You sign up for free subscriptions for all the computer magazines + + /// 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 /// From 3ec334214878af569d72b9ae0fe365212a67a2af Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:42 +0200 Subject: [PATCH 256/291] - patchlevel 914 --- 7.3.914 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.3.914 diff --git a/7.3.914 b/7.3.914 new file mode 100644 index 00000000..e7cc58fd --- /dev/null +++ b/7.3.914 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.914 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.914 +Problem: ~/.viminfo is messed up when running tests. +Solution: Set the viminfo filename. +Files: src/testdir/test89.in, src/testdir/test94.in + + +*** ../vim-7.3.913/src/testdir/test89.in 2013-03-13 20:42:28.000000000 +0100 +--- src/testdir/test89.in 2013-04-24 15:42:05.000000000 +0200 +*************** +*** 2,8 **** + + STARTTEST + :so small.vim +! :set hidden nocp nu rnu + :redir @a | set nu? rnu? | redir END + :e! xx + :redir @b | set nu? rnu? | redir END +--- 2,8 ---- + + STARTTEST + :so small.vim +! :set hidden nocp nu rnu viminfo+=nviminfo + :redir @a | set nu? rnu? | redir END + :e! xx + :redir @b | set nu? rnu? | redir END +*** ../vim-7.3.913/src/testdir/test94.in 2013-04-12 13:44:49.000000000 +0200 +--- src/testdir/test94.in 2013-04-24 15:43:10.000000000 +0200 +*************** +*** 17,23 **** + + STARTTEST + :so small.vim +! :set nocp + : + :" User functions + :function MoveToCap() +--- 17,23 ---- + + STARTTEST + :so small.vim +! :set nocp viminfo+=nviminfo + : + :" User functions + :function MoveToCap() +*** ../vim-7.3.913/src/version.c 2013-04-24 15:39:06.000000000 +0200 +--- src/version.c 2013-04-24 15:44:19.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 914, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +226. You sit down at the computer right after dinner and your spouse + says "See you in the morning." + + /// 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 /// From cf1ebe13d2242cd568c6f45b4fe4e7860ddd8af6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:43 +0200 Subject: [PATCH 257/291] - patchlevel 915 --- 7.3.915 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.3.915 diff --git a/7.3.915 b/7.3.915 new file mode 100644 index 00000000..da1f12e8 --- /dev/null +++ b/7.3.915 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.915 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.915 +Problem: When reading a file with encoding conversion fails at the end the + next encoding in 'fencs' is not used. +Solution: Retry with another encoding when possible. (Taro Muraoka) +Files: src/fileio.c + + +*** ../vim-7.3.914/src/fileio.c 2013-04-15 12:27:30.000000000 +0200 +--- src/fileio.c 2013-04-24 16:16:28.000000000 +0200 +*************** +*** 1380,1385 **** +--- 1380,1387 ---- + # endif + ) + { ++ if (can_retry) ++ goto rewind_retry; + if (conv_error == 0) + conv_error = curbuf->b_ml.ml_line_count + - linecnt + 1; +*** ../vim-7.3.914/src/version.c 2013-04-24 15:47:11.000000000 +0200 +--- src/version.c 2013-04-24 16:18:48.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 915, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +227. You sleep next to your monitor. Or on top of it. + + /// 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 /// From 6588f1bd9bd41af8ce0157298eafec8f47780ff4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:44 +0200 Subject: [PATCH 258/291] - patchlevel 916 --- 7.3.916 | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 7.3.916 diff --git a/7.3.916 b/7.3.916 new file mode 100644 index 00000000..3ed5ec15 --- /dev/null +++ b/7.3.916 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.916 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.916 +Problem: Using freed memory when pasting with the mouse (Issue 130). +Solution: Get the byte value early. (hint by Dominique Pelle) +Files: src/buffer.c + + +*** ../vim-7.3.915/src/buffer.c 2013-04-15 12:27:30.000000000 +0200 +--- src/buffer.c 2013-04-24 16:45:38.000000000 +0200 +*************** +*** 3506,3512 **** + char_u *p; + char_u *s; + char_u *t; +! char_u *linecont; + #ifdef FEAT_EVAL + win_T *o_curwin; + buf_T *o_curbuf; +--- 3506,3512 ---- + char_u *p; + char_u *s; + char_u *t; +! int byteval; + #ifdef FEAT_EVAL + win_T *o_curwin; + buf_T *o_curbuf; +*************** +*** 3573,3584 **** + fillchar = '-'; + #endif + +! /* +! * Get line & check if empty (cursorpos will show "0-1"). +! * If inversion is possible we use it. Else '=' characters are used. +! */ +! linecont = ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE); +! empty_line = (*linecont == NUL); + + groupdepth = 0; + p = out; +--- 3573,3593 ---- + fillchar = '-'; + #endif + +! /* Get line & check if empty (cursorpos will show "0-1"). Note that +! * p will become invalid when getting another buffer line. */ +! p = ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE); +! empty_line = (*p == NUL); +! +! /* Get the byte value now, in case we need it below. This is more +! * efficient than making a copy of the line. */ +! if (wp->w_cursor.col > (colnr_T)STRLEN(p)) +! byteval = 0; +! else +! #ifdef FEAT_MBYTE +! byteval = (*mb_ptr2char)(p + wp->w_cursor.col); +! #else +! byteval = p[wp->w_cursor.col]; +! #endif + + groupdepth = 0; + p = out; +*************** +*** 3956,3971 **** + case STL_BYTEVAL_X: + base = 'X'; + case STL_BYTEVAL: +! if (wp->w_cursor.col > (colnr_T)STRLEN(linecont)) +! num = 0; +! else +! { +! #ifdef FEAT_MBYTE +! num = (*mb_ptr2char)(linecont + wp->w_cursor.col); +! #else +! num = linecont[wp->w_cursor.col]; +! #endif +! } + if (num == NL) + num = 0; + else if (num == CAR && get_fileformat(wp->w_buffer) == EOL_MAC) +--- 3965,3971 ---- + case STL_BYTEVAL_X: + base = 'X'; + case STL_BYTEVAL: +! num = byteval; + if (num == NL) + num = 0; + else if (num == CAR && get_fileformat(wp->w_buffer) == EOL_MAC) +*** ../vim-7.3.915/src/version.c 2013-04-24 16:33:58.000000000 +0200 +--- src/version.c 2013-04-24 16:51:24.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 916, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +228. You spend Saturday night making the counter on your home page + pass that 2000 mark. + + /// 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 /// From 49f701409065f06670988d199dd44e4deee0ed9f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:45 +0200 Subject: [PATCH 259/291] - patchlevel 917 --- 7.3.917 | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 7.3.917 diff --git a/7.3.917 b/7.3.917 new file mode 100644 index 00000000..00ed2f6e --- /dev/null +++ b/7.3.917 @@ -0,0 +1,85 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.917 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.917 +Problem: When a path ends in a backslash appending a comma has the wrong + effect. +Solution: Replace a trailing backslash with a slash. (Nazri Ramliy) +Files: src/misc1.c, src/testdir/test73.in, src/testdir/test73.ok + + +*** ../vim-7.3.916/src/misc1.c 2013-04-15 15:47:07.000000000 +0200 +--- src/misc1.c 2013-04-24 17:25:45.000000000 +0200 +*************** +*** 10135,10140 **** +--- 10135,10149 ---- + + if (ga_grow(gap, 1) == FAIL) + break; ++ ++ # if defined(MSWIN) || defined(MSDOS) ++ /* Avoid the path ending in a backslash, it fails when a comma is ++ * appended. */ ++ len = STRLEN(buf); ++ if (buf[len - 1] == '\\') ++ buf[len - 1] = '/'; ++ # endif ++ + p = vim_strsave(buf); + if (p == NULL) + break; +*** ../vim-7.3.916/src/testdir/test73.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test73.in 2013-04-24 17:22:14.000000000 +0200 +*************** +*** 158,163 **** +--- 158,173 ---- + :" Find the file containing 'E.T.' in the Xfind/in/path directory + :find file + :exec "w >>" . test_out ++ :" ++ :" Test that completion works when path=.,, ++ :" ++ :set path=.,, ++ :" Open Jimmy Hoffa file ++ :e in/file.txt ++ :exec "w >>" . test_out ++ :" Search for the file containing Holy Grail in same directory as in/path.txt ++ :find stu ++ :exec "w >>" . test_out + :q + :exec "cd " . cwd + :call DeleteDirectory("Xfind") +*** ../vim-7.3.916/src/testdir/test73.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test73.ok 2013-04-24 17:22:28.000000000 +0200 +*************** +*** 17,19 **** +--- 17,21 ---- + Voyager 2 + Jimmy Hoffa + E.T. ++ Jimmy Hoffa ++ Another Holy Grail +*** ../vim-7.3.916/src/version.c 2013-04-24 16:52:28.000000000 +0200 +--- src/version.c 2013-04-24 17:27:55.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 917, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +229. You spend so much time thinking what to add on this list. + + /// 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 /// From ab36fcc69fb6f9faf86c53c9c99ba7f5c52da3eb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:46 +0200 Subject: [PATCH 260/291] - patchlevel 918 --- 7.3.918 | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 7.3.918 diff --git a/7.3.918 b/7.3.918 new file mode 100644 index 00000000..4367b65a --- /dev/null +++ b/7.3.918 @@ -0,0 +1,80 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.918 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.918 +Problem: Repeating an Ex command after using a Visual motion does not work. +Solution: Check for an Ex command being used. (David Bürgin) +Files: src/normal.c + + +*** ../vim-7.3.917/src/normal.c 2013-04-05 17:43:10.000000000 +0200 +--- src/normal.c 2013-04-24 18:12:43.000000000 +0200 +*************** +*** 1504,1514 **** + } + #endif + +! /* only redo yank when 'y' flag is in 'cpoptions' */ +! /* never redo "zf" (define fold) */ + if ((vim_strchr(p_cpo, CPO_YANK) != NULL || oap->op_type != OP_YANK) + #ifdef FEAT_VISUAL +! && (!VIsual_active || oap->motion_force) + #endif + && cap->cmdchar != 'D' + #ifdef FEAT_FOLDING +--- 1504,1517 ---- + } + #endif + +! /* Only redo yank when 'y' flag is in 'cpoptions'. */ +! /* Never redo "zf" (define fold). */ + if ((vim_strchr(p_cpo, CPO_YANK) != NULL || oap->op_type != OP_YANK) + #ifdef FEAT_VISUAL +! && ((!VIsual_active || oap->motion_force) +! /* Also redo Operator-pending Visual mode mappings */ +! || (VIsual_active && cap->cmdchar == ':' +! && oap->op_type != OP_COLON)) + #endif + && cap->cmdchar != 'D' + #ifdef FEAT_FOLDING +*************** +*** 1797,1803 **** + prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar, + get_op_char(oap->op_type), + get_extra_op_char(oap->op_type)); +! else + prep_redo(oap->regname, 0L, NUL, 'v', + get_op_char(oap->op_type), + get_extra_op_char(oap->op_type), +--- 1800,1806 ---- + prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar, + get_op_char(oap->op_type), + get_extra_op_char(oap->op_type)); +! else if (cap->cmdchar != ':') + prep_redo(oap->regname, 0L, NUL, 'v', + get_op_char(oap->op_type), + get_extra_op_char(oap->op_type), +*** ../vim-7.3.917/src/version.c 2013-04-24 17:34:15.000000000 +0200 +--- src/version.c 2013-04-24 18:34:03.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 918, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +230. You spend your Friday nights typing away at your keyboard + + /// 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 /// From 09ca1af1c018fd044eac4541e367a980655ca528 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:46 +0200 Subject: [PATCH 261/291] - patchlevel 919 --- 7.3.919 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.3.919 diff --git a/7.3.919 b/7.3.919 new file mode 100644 index 00000000..f179985c --- /dev/null +++ b/7.3.919 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.919 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.919 (after 7.3.788) +Problem: An empty nl.po file does not work with an old msgfmt. +Solution: Put a single # in the file. (Laurent Blume) +Files: src/po/Makefile + + +*** ../vim-7.3.918/src/po/Makefile 2013-01-30 12:50:50.000000000 +0100 +--- src/po/Makefile 2013-04-27 14:04:45.000000000 +0200 +*************** +*** 176,184 **** + + converted: $(MOCONVERTED) + +! # nl.po was added later, if it does not exist use an empty file. + nl.po: +! touch nl.po + + # Norwegian/Bokmal: "nb" is an alias for "no". + # Copying the file is not efficient, but I don't know of another way to make +--- 176,185 ---- + + converted: $(MOCONVERTED) + +! # nl.po was added later, if it does not exist use a file with just a # in it +! # (an empty file doesn't work with old msgfmt). + nl.po: +! @( echo \# > nl.po ) + + # Norwegian/Bokmal: "nb" is an alias for "no". + # Copying the file is not efficient, but I don't know of another way to make +*** ../vim-7.3.918/src/version.c 2013-04-24 18:34:40.000000000 +0200 +--- src/version.c 2013-05-04 03:30:05.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 919, + /**/ + +-- +God made the integers; all else is the work of Man. + -- Kronecker + + /// 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 /// From 84de59d8a6e9a3bbcfa84b5b377437970864efd7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:47 +0200 Subject: [PATCH 262/291] - patchlevel 920 --- 7.3.920 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.3.920 diff --git a/7.3.920 b/7.3.920 new file mode 100644 index 00000000..d1f50ba8 --- /dev/null +++ b/7.3.920 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.920 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.920 +Problem: Compiler warning for size_t to int. +Solution: Add a type cast. (Mike Williams) +Files: src/misc1.c + + +*** ../vim-7.3.919/src/misc1.c 2013-04-24 17:34:15.000000000 +0200 +--- src/misc1.c 2013-04-29 22:33:49.000000000 +0200 +*************** +*** 10139,10145 **** + # if defined(MSWIN) || defined(MSDOS) + /* Avoid the path ending in a backslash, it fails when a comma is + * appended. */ +! len = STRLEN(buf); + if (buf[len - 1] == '\\') + buf[len - 1] = '/'; + # endif +--- 10139,10145 ---- + # if defined(MSWIN) || defined(MSDOS) + /* Avoid the path ending in a backslash, it fails when a comma is + * appended. */ +! len = (int)STRLEN(buf); + if (buf[len - 1] == '\\') + buf[len - 1] = '/'; + # endif +*** ../vim-7.3.919/src/version.c 2013-05-04 03:37:03.000000000 +0200 +--- src/version.c 2013-05-04 03:39:44.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 920, + /**/ + +-- +Women are probably the main cause of free software starvation. + + /// 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 /// From 1c0c4366fa1af3ed4fdc85f86c1e7fe9c31da114 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:48 +0200 Subject: [PATCH 263/291] - patchlevel 921 --- 7.3.921 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.3.921 diff --git a/7.3.921 b/7.3.921 new file mode 100644 index 00000000..d95108ee --- /dev/null +++ b/7.3.921 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.921 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.921 (after 7.3.697) +Problem: Trying to create a fontset handle when 'guifontset' is not set. +Solution: Add curly braces around the code block. (Max Kirillov) +Files: src/syntax.c + + +*** ../vim-7.3.920/src/syntax.c 2013-01-23 15:53:08.000000000 +0100 +--- src/syntax.c 2013-05-02 03:51:38.000000000 +0200 +*************** +*** 8082,8087 **** +--- 8082,8088 ---- + || do_tooltip + # endif + ) ++ { + if (free_font) + gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset); + HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0 +*************** +*** 8092,8097 **** +--- 8093,8099 ---- + || do_tooltip + # endif + ); ++ } + if (HL_TABLE()[idx].sg_fontset != NOFONTSET) + { + /* If it worked and it's the Normal group, use it as the normal +*** ../vim-7.3.920/src/version.c 2013-05-04 03:40:22.000000000 +0200 +--- src/version.c 2013-05-04 03:41:40.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 921, + /**/ + +-- +Edison's greatest achievement came in 1879, when he invented the +electric company. Edison's design was a brilliant adaptation of the +simple electrical circuit: the electric company sends electricity +through a wire to a customer, then immediately gets the electricity +back through another wire + + /// 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 /// From c075bf3c43d037a1bebff07347270c5c878f7a6e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:49 +0200 Subject: [PATCH 264/291] - patchlevel 922 --- 7.3.922 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.3.922 diff --git a/7.3.922 b/7.3.922 new file mode 100644 index 00000000..8b78ca0a --- /dev/null +++ b/7.3.922 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.922 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.922 +Problem: No test for what 7.3.918 fixes. +Solution: Add a test. (David Bürgin) +Files: src/testdir/test94.in, src/testdir/test94.ok + + +*** ../vim-7.3.921/src/testdir/test94.in 2013-04-24 15:47:11.000000000 +0200 +--- src/testdir/test94.in 2013-05-04 04:03:02.000000000 +0200 +*************** +*** 30,38 **** + : call setpos("'>", [0, line2, col2, 0]) + : normal! gv + :endfunction +- :function MoveToEndCount(count) +- : normal! v:count . e +- :endfunction + : + :" Visual modes followed by operator + /^apple +--- 30,35 ---- +*************** +*** 59,65 **** + /^Juniper + g?\WfD.: + /^Lemon +! yiWPlciWNew: + : + :" Patch 7.3.879: Properly abort Operator-pending mode for "dv:" etc. + /^zzzz +--- 56,62 ---- + /^Juniper + g?\WfD.: + /^Lemon +! yiWPlciWNewfr.: + : + :" Patch 7.3.879: Properly abort Operator-pending mode for "dv:" etc. + /^zzzz +*** ../vim-7.3.921/src/testdir/test94.ok 2013-04-12 13:44:49.000000000 +0200 +--- src/testdir/test94.ok 2013-05-04 04:06:46.000000000 +0200 +*************** +*** 13,19 **** + + ----Z + WhavcreQhevnaZ +! LemonNewNectarineZ + + zzz + ok +--- 13,19 ---- + + ----Z + WhavcreQhevnaZ +! LemonNewNewZ + + zzz + ok +*** ../vim-7.3.921/src/version.c 2013-05-04 03:42:30.000000000 +0200 +--- src/version.c 2013-05-04 04:07:08.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 922, + /**/ + +-- +This sentence is not sure that it exists, but if it does, it will +certainly consider the possibility that other sentences exist. + + /// 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 /// From a6f6165bb38f544660c58ee9c21ea481e7a477cb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:50 +0200 Subject: [PATCH 265/291] - patchlevel 923 --- 7.3.923 | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 7.3.923 diff --git a/7.3.923 b/7.3.923 new file mode 100644 index 00000000..c506b6bb --- /dev/null +++ b/7.3.923 @@ -0,0 +1,82 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.923 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.923 +Problem: Check for X11 header files fails on Solaris. +Solution: Only use -Werror for gcc. (Laurent Blume) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.3.922/src/configure.in 2013-04-15 14:44:53.000000000 +0200 +--- src/configure.in 2013-05-04 04:34:46.000000000 +0200 +*************** +*** 1751,1757 **** + dnl Check that the X11 header files don't use implicit declarations + AC_MSG_CHECKING(if X11 header files implicitly declare return values) + cflags_save=$CFLAGS +! CFLAGS="$CFLAGS $X_CFLAGS -Werror" + AC_TRY_COMPILE([#include ], , + AC_MSG_RESULT(no), + CFLAGS="$CFLAGS -Wno-implicit-int" +--- 1751,1762 ---- + dnl Check that the X11 header files don't use implicit declarations + AC_MSG_CHECKING(if X11 header files implicitly declare return values) + cflags_save=$CFLAGS +! dnl -Werror is GCC only, others like Solaris Studio might not like it +! if test "$GCC" = yes; then +! CFLAGS="$CFLAGS $X_CFLAGS -Werror" +! else +! CFLAGS="$CFLAGS $X_CFLAGS" +! fi + AC_TRY_COMPILE([#include ], , + AC_MSG_RESULT(no), + CFLAGS="$CFLAGS -Wno-implicit-int" +*** ../vim-7.3.922/src/auto/configure 2013-04-15 14:44:53.000000000 +0200 +--- src/auto/configure 2013-05-04 04:34:50.000000000 +0200 +*************** +*** 7656,7662 **** + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if X11 header files implicitly declare return values" >&5 + $as_echo_n "checking if X11 header files implicitly declare return values... " >&6; } + cflags_save=$CFLAGS +! CFLAGS="$CFLAGS $X_CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include +--- 7656,7666 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if X11 header files implicitly declare return values" >&5 + $as_echo_n "checking if X11 header files implicitly declare return values... " >&6; } + cflags_save=$CFLAGS +! if test "$GCC" = yes; then +! CFLAGS="$CFLAGS $X_CFLAGS -Werror" +! else +! CFLAGS="$CFLAGS $X_CFLAGS" +! fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include +*** ../vim-7.3.922/src/version.c 2013-05-04 04:11:01.000000000 +0200 +--- src/version.c 2013-05-04 04:39:13.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 923, + /**/ + +-- +GALAHAD: Camelot ... +LAUNCELOT: Camelot ... +GAWAIN: It's only a model. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 5ddb5105f6a62157713038a8c9a7779f50e124c4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:50 +0200 Subject: [PATCH 266/291] - patchlevel 924 --- 7.3.924 | 1628 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1628 insertions(+) create mode 100644 7.3.924 diff --git a/7.3.924 b/7.3.924 new file mode 100644 index 00000000..c743c3ef --- /dev/null +++ b/7.3.924 @@ -0,0 +1,1628 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.924 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.924 +Problem: Python interface can't easily access options. +Solution: Add vim.options, vim.window.options and vim.buffer.options. (ZyX) +Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h, + src/if_python.c, src/if_python3.c, src/option.c, + src/proto/eval.pro, src/proto/option.pro, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok, src/vim.h + + +*** ../vim-7.3.923/runtime/doc/if_pyth.txt 2013-04-24 14:06:42.000000000 +0200 +--- runtime/doc/if_pyth.txt 2013-05-06 03:39:13.000000000 +0200 +*************** +*** 243,248 **** +--- 243,260 ---- + vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`, + but faster. + ++ vim.options *python-options* ++ Object partly supporting mapping protocol (supports setting and ++ getting items) providing a read-write access to global options. ++ Note: unlike |:set| this provides access only to global options. You ++ cannot use this object to obtain or set local options' values or ++ access local-only options in any fashion. Raises KeyError if no global ++ option with such name exists (i.e. does not raise KeyError for ++ |global-local| options and global only options, but does for window- ++ and buffer-local ones). Use |python-buffer| objects to access to ++ buffer-local options and |python-window| objects to access to ++ window-local options. ++ + Output from Python *python-output* + Vim displays all Python code output in the Vim message area. Normal + output appears as information messages, and error output appears as +*************** +*** 283,288 **** +--- 295,311 ---- + line numbers, which start from 1. This is particularly relevant when dealing + with marks (see below) which use vim line numbers. + ++ The buffer object attributes are: ++ b.vars Dictionary-like object used to access ++ |buffer-variable|s. ++ b.options Mapping object (supports item getting, setting and ++ deleting) that provides access to buffer-local options ++ and buffer-local values of |global-local| options. Use ++ |python-window|.options if option is window-local, ++ this object will raise KeyError. If option is ++ |global-local| and local value is missing getting it ++ will return None. ++ + The buffer object methods are: + b.append(str) Append a line to the buffer + b.append(str, nr) Idem, below line "nr" +*************** +*** 313,318 **** +--- 336,343 ---- + :py (row,col) = b.mark('a') # named mark + :py r = b.range(1,5) # a sub-range of the buffer + :py b.vars["foo"] = "bar" # assign b:foo variable ++ :py b.options["ff"] = "dos" # set fileformat ++ :py del b.options["ar"] # same as :set autoread< + + ============================================================================== + 4. Range objects *python-range* +*************** +*** 363,368 **** +--- 388,401 ---- + vars (read-only) The window |w:| variables. Attribute is + unassignable, but you can change window + variables this way ++ options (read-only) The window-local options. Attribute is ++ unassignable, but you can change window ++ options this way. Provides access only to ++ window-local options, for buffer-local use ++ |python-buffer| and for global ones use ++ |python-options|. If option is |global-local| ++ and local value is missing getting it will ++ return None. + The height attribute is writable only if the screen is split horizontally. + The width attribute is writable only if the screen is split vertically. + +*** ../vim-7.3.923/src/eval.c 2013-04-24 14:06:42.000000000 +0200 +--- src/eval.c 2013-05-06 03:42:00.000000000 +0200 +*************** +*** 16643,16651 **** +--- 16643,16690 ---- + setwinvar(argvars, rettv, 0); + } + ++ int ++ switch_win(save_curwin, save_curtab, win, tp) ++ win_T **save_curwin; ++ tabpage_T **save_curtab; ++ win_T *win; ++ tabpage_T *tp; ++ { ++ #ifdef FEAT_WINDOWS ++ /* set curwin to be our win, temporarily */ ++ *save_curwin = curwin; ++ *save_curtab = curtab; ++ goto_tabpage_tp(tp, TRUE); ++ if (!win_valid(win)) ++ return FAIL; ++ curwin = win; ++ curbuf = curwin->w_buffer; ++ #endif ++ return OK; ++ } ++ ++ void ++ restore_win(save_curwin, save_curtab) ++ win_T *save_curwin; ++ tabpage_T *save_curtab; ++ { ++ #ifdef FEAT_WINDOWS ++ /* Restore current tabpage and window, if still valid (autocomands can ++ * make them invalid). */ ++ if (valid_tabpage(save_curtab)) ++ goto_tabpage_tp(save_curtab, TRUE); ++ if (win_valid(save_curwin)) ++ { ++ curwin = save_curwin; ++ curbuf = curwin->w_buffer; ++ } ++ #endif ++ } ++ + /* + * "setwinvar()" and "settabwinvar()" functions + */ ++ + static void + setwinvar(argvars, rettv, off) + typval_T *argvars; +*************** +*** 16678,16691 **** + if (win != NULL && varname != NULL && varp != NULL) + { + #ifdef FEAT_WINDOWS +! /* set curwin to be our win, temporarily */ +! save_curwin = curwin; +! save_curtab = curtab; +! goto_tabpage_tp(tp, TRUE); +! if (!win_valid(win)) + return; +- curwin = win; +- curbuf = curwin->w_buffer; + #endif + + if (*varname == '&') +--- 16717,16724 ---- + if (win != NULL && varname != NULL && varp != NULL) + { + #ifdef FEAT_WINDOWS +! if (switch_win(&save_curwin, &save_curtab, win, tp) == FAIL) + return; + #endif + + if (*varname == '&') +*************** +*** 16713,16727 **** + } + + #ifdef FEAT_WINDOWS +! /* Restore current tabpage and window, if still valid (autocomands can +! * make them invalid). */ +! if (valid_tabpage(save_curtab)) +! goto_tabpage_tp(save_curtab, TRUE); +! if (win_valid(save_curwin)) +! { +! curwin = save_curwin; +! curbuf = curwin->w_buffer; +! } + #endif + } + } +--- 16746,16752 ---- + } + + #ifdef FEAT_WINDOWS +! restore_win(save_curwin, save_curtab); + #endif + } + } +*** ../vim-7.3.923/src/if_py_both.h 2013-04-24 14:06:42.000000000 +0200 +--- src/if_py_both.h 2013-05-06 03:47:38.000000000 +0200 +*************** +*** 1497,1502 **** +--- 1497,1775 ---- + { NULL, NULL, 0, NULL } + }; + ++ /* ++ * Options object ++ */ ++ ++ static PyTypeObject OptionsType; ++ ++ typedef int (*checkfun)(void *); ++ ++ typedef struct ++ { ++ PyObject_HEAD ++ int opt_type; ++ void *from; ++ checkfun Check; ++ PyObject *fromObj; ++ } OptionsObject; ++ ++ static PyObject * ++ OptionsItem(OptionsObject *this, PyObject *keyObject) ++ { ++ char_u *key; ++ int flags; ++ long numval; ++ char_u *stringval; ++ ++ if (this->Check(this->from)) ++ return NULL; ++ ++ DICTKEY_DECL ++ ++ DICTKEY_GET_NOTEMPTY(NULL) ++ ++ flags = get_option_value_strict(key, &numval, &stringval, ++ this->opt_type, this->from); ++ ++ DICTKEY_UNREF ++ ++ if (flags == 0) ++ { ++ PyErr_SetString(PyExc_KeyError, "Option does not exist in given scope"); ++ return NULL; ++ } ++ ++ if (flags & SOPT_UNSET) ++ { ++ Py_INCREF(Py_None); ++ return Py_None; ++ } ++ else if (flags & SOPT_BOOL) ++ { ++ PyObject *r; ++ r = numval ? Py_True : Py_False; ++ Py_INCREF(r); ++ return r; ++ } ++ else if (flags & SOPT_NUM) ++ return PyInt_FromLong(numval); ++ else if (flags & SOPT_STRING) ++ { ++ if (stringval) ++ return PyBytes_FromString((char *) stringval); ++ else ++ { ++ PyErr_SetString(PyExc_ValueError, "Unable to get option value"); ++ return NULL; ++ } ++ } ++ else ++ { ++ PyErr_SetVim("Internal error: unknown option type. Should not happen"); ++ return NULL; ++ } ++ } ++ ++ static int ++ set_option_value_for(key, numval, stringval, opt_flags, opt_type, from) ++ char_u *key; ++ int numval; ++ char_u *stringval; ++ int opt_flags; ++ int opt_type; ++ void *from; ++ { ++ win_T *save_curwin; ++ tabpage_T *save_curtab; ++ aco_save_T aco; ++ int r = 0; ++ ++ switch (opt_type) ++ { ++ case SREQ_WIN: ++ if (switch_win(&save_curwin, &save_curtab, (win_T *) from, curtab) ++ == FAIL) ++ { ++ PyErr_SetVim("Problem while switching windows."); ++ return -1; ++ } ++ set_option_value(key, numval, stringval, opt_flags); ++ restore_win(save_curwin, save_curtab); ++ break; ++ case SREQ_BUF: ++ aucmd_prepbuf(&aco, (buf_T *) from); ++ set_option_value(key, numval, stringval, opt_flags); ++ aucmd_restbuf(&aco); ++ break; ++ case SREQ_GLOBAL: ++ set_option_value(key, numval, stringval, opt_flags); ++ break; ++ } ++ return r; ++ } ++ ++ static int ++ OptionsAssItem(OptionsObject *this, PyObject *keyObject, PyObject *valObject) ++ { ++ char_u *key; ++ int flags; ++ int opt_flags; ++ int r = 0; ++ ++ if (this->Check(this->from)) ++ return -1; ++ ++ DICTKEY_DECL ++ ++ DICTKEY_GET_NOTEMPTY(-1) ++ ++ flags = get_option_value_strict(key, NULL, NULL, ++ this->opt_type, this->from); ++ ++ DICTKEY_UNREF ++ ++ if (flags == 0) ++ { ++ PyErr_SetString(PyExc_KeyError, "Option does not exist in given scope"); ++ return -1; ++ } ++ ++ if (valObject == NULL) ++ { ++ if (this->opt_type == SREQ_GLOBAL) ++ { ++ PyErr_SetString(PyExc_ValueError, "Unable to unset global option"); ++ return -1; ++ } ++ else if (!(flags & SOPT_GLOBAL)) ++ { ++ PyErr_SetString(PyExc_ValueError, "Unable to unset option without " ++ "global value"); ++ return -1; ++ } ++ else ++ { ++ unset_global_local_option(key, this->from); ++ return 0; ++ } ++ } ++ ++ opt_flags = (this->opt_type ? OPT_LOCAL : OPT_GLOBAL); ++ ++ if (flags & SOPT_BOOL) ++ { ++ if (!PyBool_Check(valObject)) ++ { ++ PyErr_SetString(PyExc_ValueError, "Object must be boolean"); ++ return -1; ++ } ++ ++ r = set_option_value_for(key, (valObject == Py_True), NULL, opt_flags, ++ this->opt_type, this->from); ++ } ++ else if (flags & SOPT_NUM) ++ { ++ int val; ++ ++ #if PY_MAJOR_VERSION < 3 ++ if (PyInt_Check(valObject)) ++ val = PyInt_AsLong(valObject); ++ else ++ #endif ++ if (PyLong_Check(valObject)) ++ val = PyLong_AsLong(valObject); ++ else ++ { ++ PyErr_SetString(PyExc_ValueError, "Object must be integer"); ++ return -1; ++ } ++ ++ r = set_option_value_for(key, val, NULL, opt_flags, ++ this->opt_type, this->from); ++ } ++ else ++ { ++ char_u *val; ++ if (PyBytes_Check(valObject)) ++ { ++ ++ if (PyString_AsStringAndSize(valObject, (char **) &val, NULL) == -1) ++ return -1; ++ if (val == NULL) ++ return -1; ++ ++ val = vim_strsave(val); ++ } ++ else if (PyUnicode_Check(valObject)) ++ { ++ PyObject *bytes; ++ ++ bytes = PyUnicode_AsEncodedString(valObject, (char *)ENC_OPT, NULL); ++ if (bytes == NULL) ++ return -1; ++ ++ if(PyString_AsStringAndSize(bytes, (char **) &val, NULL) == -1) ++ return -1; ++ if (val == NULL) ++ return -1; ++ ++ val = vim_strsave(val); ++ Py_XDECREF(bytes); ++ } ++ else ++ { ++ PyErr_SetString(PyExc_ValueError, "Object must be string"); ++ return -1; ++ } ++ ++ r = set_option_value_for(key, 0, val, opt_flags, ++ this->opt_type, this->from); ++ vim_free(val); ++ } ++ ++ return r; ++ } ++ ++ static int ++ dummy_check(void *arg UNUSED) ++ { ++ return 0; ++ } ++ ++ static PyObject * ++ OptionsNew(int opt_type, void *from, checkfun Check, PyObject *fromObj) ++ { ++ OptionsObject *self; ++ ++ self = PyObject_NEW(OptionsObject, &OptionsType); ++ if (self == NULL) ++ return NULL; ++ ++ self->opt_type = opt_type; ++ self->from = from; ++ self->Check = Check; ++ self->fromObj = fromObj; ++ if (fromObj) ++ Py_INCREF(fromObj); ++ ++ return (PyObject *)(self); ++ } ++ ++ static void ++ OptionsDestructor(PyObject *self) ++ { ++ if (((OptionsObject *)(self))->fromObj) ++ Py_DECREF(((OptionsObject *)(self))->fromObj); ++ DESTRUCTOR_FINISH(self); ++ } ++ ++ static PyMappingMethods OptionsAsMapping = { ++ (lenfunc) NULL, ++ (binaryfunc) OptionsItem, ++ (objobjargproc) OptionsAssItem, ++ }; ++ + #define INVALID_WINDOW_VALUE ((win_T *)(-1)) + + static int +*************** +*** 1534,1541 **** + #endif + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->win->w_vars); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssss]", "buffer", "cursor", "height", "vars"); + else + return NULL; + } +--- 1807,1818 ---- + #endif + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->win->w_vars); ++ else if (strcmp(name, "options") == 0) ++ return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, ++ (PyObject *) this); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sssss]", "buffer", "cursor", "height", "vars", +! "options"); + else + return NULL; + } +*************** +*** 2499,2506 **** + return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->buf->b_vars); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sss]", "name", "number", "vars"); + else + return NULL; + } +--- 2776,2786 ---- + return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->buf->b_vars); ++ else if (strcmp(name, "options") == 0) ++ return OptionsNew(SREQ_BUF, this->buf, (checkfun) CheckBuffer, ++ (PyObject *) this); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssss]", "name", "number", "vars", "options"); + else + return NULL; + } +*************** +*** 3121,3126 **** +--- 3401,3414 ---- + FunctionType.tp_getattr = FunctionGetattr; + #endif + ++ vim_memset(&OptionsType, 0, sizeof(OptionsType)); ++ OptionsType.tp_name = "vim.options"; ++ OptionsType.tp_basicsize = sizeof(OptionsObject); ++ OptionsType.tp_flags = Py_TPFLAGS_DEFAULT; ++ OptionsType.tp_doc = "object for manipulating options"; ++ OptionsType.tp_as_mapping = &OptionsAsMapping; ++ OptionsType.tp_dealloc = OptionsDestructor; ++ + #if PY_MAJOR_VERSION >= 3 + vim_memset(&vimmodule, 0, sizeof(vimmodule)); + vimmodule.m_name = "vim"; +*** ../vim-7.3.923/src/if_python.c 2013-04-24 14:06:42.000000000 +0200 +--- src/if_python.c 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 1341,1346 **** +--- 1341,1347 ---- + PyType_Ready(&BufListType); + PyType_Ready(&WinListType); + PyType_Ready(&CurrentType); ++ PyType_Ready(&OptionsType); + + /* Set sys.argv[] to avoid a crash in warn(). */ + PySys_SetArgv(1, argv); +*************** +*** 1360,1365 **** +--- 1361,1369 ---- + tmp = DictionaryNew(&vimvardict); + PyDict_SetItemString(dict, "vvars", tmp); + Py_DECREF(tmp); ++ tmp = OptionsNew(SREQ_GLOBAL, NULL, dummy_check, NULL); ++ PyDict_SetItemString(dict, "options", tmp); ++ Py_DECREF(tmp); + PyDict_SetItemString(dict, "VAR_LOCKED", PyInt_FromLong(VAR_LOCKED)); + PyDict_SetItemString(dict, "VAR_FIXED", PyInt_FromLong(VAR_FIXED)); + PyDict_SetItemString(dict, "VAR_SCOPE", PyInt_FromLong(VAR_SCOPE)); +*** ../vim-7.3.923/src/if_python3.c 2013-04-24 14:06:42.000000000 +0200 +--- src/if_python3.c 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 1628,1633 **** +--- 1628,1634 ---- + PyType_Ready(&DictionaryType); + PyType_Ready(&ListType); + PyType_Ready(&FunctionType); ++ PyType_Ready(&OptionsType); + + /* Set sys.argv[] to avoid a crash in warn(). */ + PySys_SetArgv(1, argv); +*************** +*** 1649,1654 **** +--- 1650,1657 ---- + + PyModule_AddObject(mod, "vars", DictionaryNew(&globvardict)); + PyModule_AddObject(mod, "vvars", DictionaryNew(&vimvardict)); ++ PyModule_AddObject(mod, "options", ++ OptionsNew(SREQ_GLOBAL, NULL, dummy_check, NULL)); + + #define ADD_INT_CONSTANT(name, value) \ + tmp = PyLong_FromLong(value); \ +*** ../vim-7.3.923/src/option.c 2013-03-19 16:46:59.000000000 +0100 +--- src/option.c 2013-05-06 03:47:31.000000000 +0200 +*************** +*** 8820,8825 **** +--- 8820,8963 ---- + } + #endif + ++ #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) ++ /* ++ * Returns the option attributes and its value. Unlike the above function it ++ * will return either global value or local value of the option depending on ++ * what was requested, but it will never return global value if it was ++ * requested to return local one and vice versa. Neither it will return ++ * buffer-local value if it was requested to return window-local one. ++ * ++ * Pretends that option is absent if it is not present in the requested scope ++ * (i.e. has no global, window-local or buffer-local value depending on ++ * opt_type). Uses ++ * ++ * Returned flags: ++ * 0 hidden or unknown option ++ * see SOPT_* in vim.h for other flags ++ * ++ * Possible opt_type values: see SREQ_* in vim.h ++ */ ++ int ++ get_option_value_strict(name, numval, stringval, opt_type, from) ++ char_u *name; ++ long *numval; ++ char_u **stringval; /* NULL when only obtaining attributes */ ++ int opt_type; ++ void *from; ++ { ++ int opt_idx; ++ char_u *varp; ++ struct vimoption *p; ++ int r = 0; ++ ++ opt_idx = findoption(name); ++ if (opt_idx < 0) ++ return 0; ++ ++ p = &(options[opt_idx]); ++ ++ /* Hidden option */ ++ if (p->var == NULL) ++ return 0; ++ ++ if (p->flags & P_BOOL) ++ r |= SOPT_BOOL; ++ else if (p->flags & P_NUM) ++ r |= SOPT_NUM; ++ else if (p->flags & P_STRING) ++ r |= SOPT_STRING; ++ ++ if (p->indir == PV_NONE) ++ { ++ if (opt_type == SREQ_GLOBAL) ++ r |= SOPT_GLOBAL; ++ else ++ return 0; /* Did not request global-only option */ ++ } ++ else ++ { ++ if (p->indir & PV_BOTH) ++ r |= SOPT_GLOBAL; ++ else if (opt_type == SREQ_GLOBAL) ++ return 0; /* Requested global option */ ++ ++ if (p->indir & PV_WIN) ++ { ++ if (opt_type == SREQ_BUF) ++ return 0; /* Did not request window-local option */ ++ else ++ r |= SOPT_WIN; ++ } ++ else if (p->indir & PV_BUF) ++ { ++ if (opt_type == SREQ_WIN) ++ return 0; /* Did not request buffer-local option */ ++ else ++ r |= SOPT_BUF; ++ } ++ } ++ ++ if (stringval == NULL) ++ return r; ++ ++ if (opt_type == SREQ_GLOBAL) ++ varp = p->var; ++ else ++ { ++ if (opt_type == SREQ_BUF) ++ { ++ /* Special case: 'modified' is b_changed, but we also want to ++ * consider it set when 'ff' or 'fenc' changed. */ ++ if (p->indir == PV_MOD) ++ { ++ *numval = bufIsChanged((buf_T *) from); ++ varp = NULL; ++ } ++ #ifdef FEAT_CRYPT ++ else if (p->indir == PV_KEY) ++ { ++ /* never return the value of the crypt key */ ++ *stringval = NULL; ++ varp = NULL; ++ } ++ #endif ++ else ++ { ++ aco_save_T aco; ++ aucmd_prepbuf(&aco, (buf_T *) from); ++ varp = get_varp(p); ++ aucmd_restbuf(&aco); ++ } ++ } ++ else if (opt_type == SREQ_WIN) ++ { ++ win_T *save_curwin; ++ save_curwin = curwin; ++ curwin = (win_T *) from; ++ curbuf = curwin->w_buffer; ++ varp = get_varp(p); ++ curwin = save_curwin; ++ curbuf = curwin->w_buffer; ++ } ++ if (varp == p->var) ++ return (r | SOPT_UNSET); ++ } ++ ++ if (varp != NULL) ++ { ++ if (p->flags & P_STRING) ++ *stringval = vim_strsave(*(char_u **)(varp)); ++ else if (p->flags & P_NUM) ++ *numval = *(long *) varp; ++ else ++ *numval = *(int *)varp; ++ } ++ ++ return r; ++ } ++ #endif ++ + /* + * Set the value of option "name". + * Use "string" for string options, use "number" for other options. +*************** +*** 9557,9562 **** +--- 9695,9781 ---- + } + + /* ++ * Unset local option value, similar to ":set opt<". ++ */ ++ ++ void ++ unset_global_local_option(name, from) ++ char_u *name; ++ void *from; ++ { ++ struct vimoption *p; ++ int opt_idx; ++ ++ buf_T *buf = (buf_T *) from; ++ win_T *win = (win_T *) from; ++ ++ opt_idx = findoption(name); ++ p = &(options[opt_idx]); ++ ++ switch ((int)p->indir) ++ { ++ /* global option with local value: use local value if it's been set */ ++ case PV_EP: ++ *buf->b_p_ep = NUL; ++ break; ++ case PV_KP: ++ *buf->b_p_kp = NUL; ++ break; ++ case PV_PATH: ++ *buf->b_p_path = NUL; ++ break; ++ case PV_AR: ++ buf->b_p_ar = -1; ++ break; ++ case PV_TAGS: ++ *buf->b_p_tags = NUL; ++ break; ++ #ifdef FEAT_FIND_ID ++ case PV_DEF: ++ *buf->b_p_def = NUL; ++ break; ++ case PV_INC: ++ *buf->b_p_inc = NUL; ++ break; ++ #endif ++ #ifdef FEAT_INS_EXPAND ++ case PV_DICT: ++ *buf->b_p_dict = NUL; ++ break; ++ case PV_TSR: ++ *buf->b_p_tsr = NUL; ++ break; ++ #endif ++ #ifdef FEAT_QUICKFIX ++ case PV_EFM: ++ *buf->b_p_efm = NUL; ++ break; ++ case PV_GP: ++ *buf->b_p_gp = NUL; ++ break; ++ case PV_MP: ++ *buf->b_p_mp = NUL; ++ break; ++ #endif ++ #if defined(FEAT_BEVAL) && defined(FEAT_EVAL) ++ case PV_BEXPR: ++ *buf->b_p_bexpr = NUL; ++ break; ++ #endif ++ #if defined(FEAT_CRYPT) ++ case PV_CM: ++ *buf->b_p_cm = NUL; ++ break; ++ #endif ++ #ifdef FEAT_STL_OPT ++ case PV_STL: ++ *win->w_p_stl = NUL; ++ break; ++ #endif ++ } ++ } ++ ++ /* + * Get pointer to option variable, depending on local or global scope. + */ + static char_u * +*** ../vim-7.3.923/src/proto/eval.pro 2013-04-15 12:27:30.000000000 +0200 +--- src/proto/eval.pro 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 125,128 **** +--- 125,130 ---- + void ex_oldfiles __ARGS((exarg_T *eap)); + int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); + char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); ++ int switch_win __ARGS((win_T **, tabpage_T **, win_T *, tabpage_T *)); ++ void restore_win __ARGS((win_T *, tabpage_T *)); + /* vim: set ft=c : */ +*** ../vim-7.3.923/src/proto/option.pro 2013-01-17 17:01:57.000000000 +0100 +--- src/proto/option.pro 2013-05-06 03:47:07.000000000 +0200 +*************** +*** 22,27 **** +--- 22,28 ---- + char_u *check_colorcolumn __ARGS((win_T *wp)); + char_u *check_stl_option __ARGS((char_u *s)); + int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags)); ++ int get_option_value_strict __ARGS((char_u *name, long *numval, char_u **stringval, int opt_type, void *from)); + void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags)); + char_u *get_term_code __ARGS((char_u *tname)); + char_u *get_highlight_default __ARGS((void)); +*************** +*** 33,38 **** +--- 34,40 ---- + void free_one_termoption __ARGS((char_u *var)); + void set_term_defaults __ARGS((void)); + void comp_col __ARGS((void)); ++ void unset_global_local_option __ARGS((char_u *name, void *from)); + char_u *get_equalprg __ARGS((void)); + void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to)); + void copy_winopt __ARGS((winopt_T *from, winopt_T *to)); +*** ../vim-7.3.923/src/testdir/test86.in 2013-04-24 14:06:42.000000000 +0200 +--- src/testdir/test86.in 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 359,364 **** +--- 359,483 ---- + :put =pyeval('vim.vars[''foo'']') + :put =pyeval('vim.current.window.vars[''abc'']') + :put =pyeval('vim.current.buffer.vars[''baz'']') ++ :" ++ :" Options ++ :" paste: boolean, global ++ :" previewheight number, global ++ :" operatorfunc: string, global ++ :" number: boolean, window-local ++ :" numberwidth: number, window-local ++ :" colorcolumn: string, window-local ++ :" statusline: string, window-local/global ++ :" autoindent: boolean, buffer-local ++ :" iminsert: number, buffer-local ++ :" omnifunc: string, buffer-local ++ :" preserveindent: boolean, buffer-local/global ++ :" path: string, buffer-local/global ++ :let g:bufs=[bufnr('%')] ++ :new ++ :let g:bufs+=[bufnr('%')] ++ :vnew ++ :let g:bufs+=[bufnr('%')] ++ :wincmd j ++ :vnew ++ :let g:bufs+=[bufnr('%')] ++ :wincmd l ++ :fun RecVars(opt) ++ : let gval =string(eval('&g:'.a:opt)) ++ : let wvals=join(map(range(1, 4), 'v:val.":".string(getwinvar(v:val, "&".a:opt))')) ++ : let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:val, "&".a:opt))')) ++ : put =' G: '.gval ++ : put =' W: '.wvals ++ : put =' B: '.wvals ++ :endfun ++ py << EOF ++ def e(s, g=globals(), l=locals()): ++ try: ++ exec(s, g, l) ++ except Exception as e: ++ vim.command('throw ' + repr(e.__class__.__name__)) ++ ++ def ev(s, g=globals(), l=locals()): ++ try: ++ return eval(s, g, l) ++ except Exception as e: ++ vim.command('throw ' + repr(e.__class__.__name__)) ++ return 0 ++ EOF ++ :function E(s) ++ : python e(vim.eval('a:s')) ++ :endfunction ++ :function Ev(s) ++ : return pyeval('ev(vim.eval("a:s"))') ++ :endfunction ++ :py gopts1=vim.options ++ :py wopts1=vim.windows[2].options ++ :py wopts2=vim.windows[0].options ++ :py wopts3=vim.windows[1].options ++ :py bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options ++ :py bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options ++ :py bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options ++ :let lst=[] ++ :let lst+=[['paste', 1, 0, 1, 2, 1, 1, 0 ]] ++ :let lst+=[['previewheight', 5, 1, 6, 'a', 0, 1, 0 ]] ++ :let lst+=[['operatorfunc', 'A', 'B', 'C', 2, 0, 1, 0 ]] ++ :let lst+=[['number', 0, 1, 1, 0, 1, 0, 1 ]] ++ :let lst+=[['numberwidth', 2, 3, 5, -100, 0, 0, 1 ]] ++ :let lst+=[['colorcolumn', '+1', '+2', '+3', 'abc', 0, 0, 1 ]] ++ :let lst+=[['statusline', '1', '2', '4', 0, 0, 1, 1 ]] ++ :let lst+=[['autoindent', 0, 1, 1, 2, 1, 0, 2 ]] ++ :let lst+=[['iminsert', 0, 2, 1, 3, 0, 0, 2 ]] ++ :let lst+=[['omnifunc', 'A', 'B', 'C', 1, 0, 0, 2 ]] ++ :let lst+=[['preserveindent', 0, 1, 1, 2, 1, 1, 2 ]] ++ :let lst+=[['path', '.,,', ',,', '.', 0, 0, 1, 2 ]] ++ :for [oname, oval1, oval2, oval3, invval, bool, global, local] in lst ++ : py oname=vim.eval('oname') ++ : py oval1=vim.bindeval('oval1') ++ : py oval2=vim.bindeval('oval2') ++ : py oval3=vim.bindeval('oval3') ++ : if invval is 0 || invval is 1 ++ : py invval=bool(vim.bindeval('invval')) ++ : else ++ : py invval=vim.bindeval('invval') ++ : endif ++ : if bool ++ : py oval1=bool(oval1) ++ : py oval2=bool(oval2) ++ : py oval3=bool(oval3) ++ : endif ++ : put ='>>> '.oname ++ : for v in ['gopts1', 'wopts1', 'bopts1'] ++ : try ++ : put =' p/'.v.': '.Ev('repr('.v.'['''.oname.'''])') ++ : catch ++ : put =' p/'.v.'! '.v:exception ++ : endtry ++ : try ++ : call E(v.'["'.oname.'"]=invval') ++ : catch ++ : put =' inv: '.string(invval).'! '.v:exception ++ : endtry ++ : for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[:-2].'3']) ++ : let val=substitute(vv, '^.opts', 'oval', '') ++ : try ++ : call E(vv.'["'.oname.'"]='.val) ++ : catch ++ : put =' '.vv.'! '.v:exception ++ : endtry ++ : endfor ++ : endfor ++ : call RecVars(oname) ++ : for v in ['wopts3', 'bopts3'] ++ : try ++ : call E('del '.v.'["'.oname.'"]') ++ : catch ++ : put =' del '.v.'! '.v:exception ++ : endtry ++ : endfor ++ : call RecVars(oname) ++ endtry ++ :endfor ++ :only + :endfun + :" + :call Test() +*** ../vim-7.3.923/src/testdir/test86.ok 2013-04-24 14:06:42.000000000 +0200 +--- src/testdir/test86.ok 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 80,82 **** +--- 80,308 ---- + bac + def + bar ++ >>> paste ++ p/gopts1: False ++ inv: 2! ValueError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1! KeyError ++ inv: 2! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 1 ++ W: 1:1 2:1 3:1 4:1 ++ B: 1:1 2:1 3:1 4:1 ++ del wopts3! KeyError ++ del bopts3! KeyError ++ G: 1 ++ W: 1:1 2:1 3:1 4:1 ++ B: 1:1 2:1 3:1 4:1 ++ >>> previewheight ++ p/gopts1: 12 ++ inv: 'a'! ValueError ++ p/wopts1! KeyError ++ inv: 'a'! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1! KeyError ++ inv: 'a'! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 5 ++ W: 1:5 2:5 3:5 4:5 ++ B: 1:5 2:5 3:5 4:5 ++ del wopts3! KeyError ++ del bopts3! KeyError ++ G: 5 ++ W: 1:5 2:5 3:5 4:5 ++ B: 1:5 2:5 3:5 4:5 ++ >>> operatorfunc ++ p/gopts1: '' ++ inv: 2! ValueError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1! KeyError ++ inv: 2! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 'A' ++ W: 1:'A' 2:'A' 3:'A' 4:'A' ++ B: 1:'A' 2:'A' 3:'A' 4:'A' ++ del wopts3! KeyError ++ del bopts3! KeyError ++ G: 'A' ++ W: 1:'A' 2:'A' 3:'A' 4:'A' ++ B: 1:'A' 2:'A' 3:'A' 4:'A' ++ >>> number ++ p/gopts1! KeyError ++ inv: 0! KeyError ++ gopts1! KeyError ++ p/wopts1: False ++ p/bopts1! KeyError ++ inv: 0! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ del wopts3! ValueError ++ del bopts3! KeyError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ >>> numberwidth ++ p/gopts1! KeyError ++ inv: -100! KeyError ++ gopts1! KeyError ++ p/wopts1: 8 ++ p/bopts1! KeyError ++ inv: -100! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 8 ++ W: 1:3 2:5 3:2 4:8 ++ B: 1:3 2:5 3:2 4:8 ++ del wopts3! ValueError ++ del bopts3! KeyError ++ G: 8 ++ W: 1:3 2:5 3:2 4:8 ++ B: 1:3 2:5 3:2 4:8 ++ >>> colorcolumn ++ p/gopts1! KeyError ++ inv: 'abc'! KeyError ++ gopts1! KeyError ++ p/wopts1: '' ++ p/bopts1! KeyError ++ inv: 'abc'! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: '' ++ W: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ B: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ del wopts3! ValueError ++ del bopts3! KeyError ++ G: '' ++ W: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ B: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ >>> statusline ++ p/gopts1: '' ++ inv: 0! ValueError ++ p/wopts1: None ++ inv: 0! ValueError ++ p/bopts1! KeyError ++ inv: 0! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: '1' ++ W: 1:'2' 2:'4' 3:'1' 4:'1' ++ B: 1:'2' 2:'4' 3:'1' 4:'1' ++ del bopts3! KeyError ++ G: '1' ++ W: 1:'2' 2:'1' 3:'1' 4:'1' ++ B: 1:'2' 2:'1' 3:'1' 4:'1' ++ >>> autoindent ++ p/gopts1! KeyError ++ inv: 2! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: False ++ inv: 2! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ >>> iminsert ++ p/gopts1! KeyError ++ inv: 3! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 3! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: 2 ++ G: 1 ++ W: 1:2 2:1 3:0 4:2 ++ B: 1:2 2:1 3:0 4:2 ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: 1 ++ W: 1:2 2:1 3:0 4:2 ++ B: 1:2 2:1 3:0 4:2 ++ >>> omnifunc ++ p/gopts1! KeyError ++ inv: 1! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 1! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: '' ++ inv: 1! ValueError ++ G: '' ++ W: 1:'B' 2:'C' 3:'A' 4:'' ++ B: 1:'B' 2:'C' 3:'A' 4:'' ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: '' ++ W: 1:'B' 2:'C' 3:'A' 4:'' ++ B: 1:'B' 2:'C' 3:'A' 4:'' ++ >>> preserveindent ++ p/gopts1! KeyError ++ inv: 2! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: False ++ inv: 2! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ >>> path ++ p/gopts1: '.,/usr/include,,' ++ inv: 0! ValueError ++ p/wopts1! KeyError ++ inv: 0! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: None ++ inv: 0! ValueError ++ G: '.,,' ++ W: 1:',,' 2:'.' 3:'.,,' 4:'.,,' ++ B: 1:',,' 2:'.' 3:'.,,' 4:'.,,' ++ del wopts3! KeyError ++ G: '.,,' ++ W: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' ++ B: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' +*** ../vim-7.3.923/src/testdir/test87.in 2013-04-24 14:06:42.000000000 +0200 +--- src/testdir/test87.in 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 328,333 **** +--- 328,452 ---- + :put =py3eval('vim.vars[''foo'']') + :put =py3eval('vim.current.window.vars[''abc'']') + :put =py3eval('vim.current.buffer.vars[''baz'']') ++ :" ++ :" Options ++ :" paste: boolean, global ++ :" previewheight number, global ++ :" operatorfunc: string, global ++ :" number: boolean, window-local ++ :" numberwidth: number, window-local ++ :" colorcolumn: string, window-local ++ :" statusline: string, window-local/global ++ :" autoindent: boolean, buffer-local ++ :" iminsert: number, buffer-local ++ :" omnifunc: string, buffer-local ++ :" preserveindent: boolean, buffer-local/global ++ :" path: string, buffer-local/global ++ :let g:bufs=[bufnr('%')] ++ :new ++ :let g:bufs+=[bufnr('%')] ++ :vnew ++ :let g:bufs+=[bufnr('%')] ++ :wincmd j ++ :vnew ++ :let g:bufs+=[bufnr('%')] ++ :wincmd l ++ :fun RecVars(opt) ++ : let gval =string(eval('&g:'.a:opt)) ++ : let wvals=join(map(range(1, 4), 'v:val.":".string(getwinvar(v:val, "&".a:opt))')) ++ : let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:val, "&".a:opt))')) ++ : put =' G: '.gval ++ : put =' W: '.wvals ++ : put =' B: '.wvals ++ :endfun ++ py3 << EOF ++ def e(s, g=globals(), l=locals()): ++ try: ++ exec(s, g, l) ++ except Exception as e: ++ vim.command('throw ' + repr(e.__class__.__name__)) ++ ++ def ev(s, g=globals(), l=locals()): ++ try: ++ return eval(s, g, l) ++ except Exception as e: ++ vim.command('throw ' + repr(e.__class__.__name__)) ++ return 0 ++ EOF ++ :function E(s) ++ : python3 e(vim.eval('a:s')) ++ :endfunction ++ :function Ev(s) ++ : return py3eval('ev(vim.eval("a:s"))') ++ :endfunction ++ :py3 gopts1=vim.options ++ :py3 wopts1=vim.windows[2].options ++ :py3 wopts2=vim.windows[0].options ++ :py3 wopts3=vim.windows[1].options ++ :py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options ++ :py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options ++ :py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options ++ :let lst=[] ++ :let lst+=[['paste', 1, 0, 1, 2, 1, 1, 0 ]] ++ :let lst+=[['previewheight', 5, 1, 6, 'a', 0, 1, 0 ]] ++ :let lst+=[['operatorfunc', 'A', 'B', 'C', 2, 0, 1, 0 ]] ++ :let lst+=[['number', 0, 1, 1, 0, 1, 0, 1 ]] ++ :let lst+=[['numberwidth', 2, 3, 5, -100, 0, 0, 1 ]] ++ :let lst+=[['colorcolumn', '+1', '+2', '+3', 'abc', 0, 0, 1 ]] ++ :let lst+=[['statusline', '1', '2', '4', 0, 0, 1, 1 ]] ++ :let lst+=[['autoindent', 0, 1, 1, 2, 1, 0, 2 ]] ++ :let lst+=[['iminsert', 0, 2, 1, 3, 0, 0, 2 ]] ++ :let lst+=[['omnifunc', 'A', 'B', 'C', 1, 0, 0, 2 ]] ++ :let lst+=[['preserveindent', 0, 1, 1, 2, 1, 1, 2 ]] ++ :let lst+=[['path', '.,,', ',,', '.', 0, 0, 1, 2 ]] ++ :for [oname, oval1, oval2, oval3, invval, bool, global, local] in lst ++ : py3 oname=vim.eval('oname') ++ : py3 oval1=vim.bindeval('oval1') ++ : py3 oval2=vim.bindeval('oval2') ++ : py3 oval3=vim.bindeval('oval3') ++ : if invval is 0 || invval is 1 ++ : py3 invval=bool(vim.bindeval('invval')) ++ : else ++ : py3 invval=vim.bindeval('invval') ++ : endif ++ : if bool ++ : py3 oval1=bool(oval1) ++ : py3 oval2=bool(oval2) ++ : py3 oval3=bool(oval3) ++ : endif ++ : put ='>>> '.oname ++ : for v in ['gopts1', 'wopts1', 'bopts1'] ++ : try ++ : put =' p/'.v.': '.Ev('repr('.v.'['''.oname.'''])') ++ : catch ++ : put =' p/'.v.'! '.v:exception ++ : endtry ++ : try ++ : call E(v.'["'.oname.'"]=invval') ++ : catch ++ : put =' inv: '.string(invval).'! '.v:exception ++ : endtry ++ : for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[:-2].'3']) ++ : let val=substitute(vv, '^.opts', 'oval', '') ++ : try ++ : call E(vv.'["'.oname.'"]='.val) ++ : catch ++ : put =' '.vv.'! '.v:exception ++ : endtry ++ : endfor ++ : endfor ++ : call RecVars(oname) ++ : for v in ['wopts3', 'bopts3'] ++ : try ++ : call E('del '.v.'["'.oname.'"]') ++ : catch ++ : put =' del '.v.'! '.v:exception ++ : endtry ++ : endfor ++ : call RecVars(oname) ++ endtry ++ :endfor ++ :only + :endfun + :" + :call Test() +*** ../vim-7.3.923/src/testdir/test87.ok 2013-04-24 14:06:42.000000000 +0200 +--- src/testdir/test87.ok 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 69,71 **** +--- 69,297 ---- + bac + def + bar ++ >>> paste ++ p/gopts1: False ++ inv: 2! ValueError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1! KeyError ++ inv: 2! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 1 ++ W: 1:1 2:1 3:1 4:1 ++ B: 1:1 2:1 3:1 4:1 ++ del wopts3! KeyError ++ del bopts3! KeyError ++ G: 1 ++ W: 1:1 2:1 3:1 4:1 ++ B: 1:1 2:1 3:1 4:1 ++ >>> previewheight ++ p/gopts1: 12 ++ inv: 'a'! ValueError ++ p/wopts1! KeyError ++ inv: 'a'! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1! KeyError ++ inv: 'a'! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 5 ++ W: 1:5 2:5 3:5 4:5 ++ B: 1:5 2:5 3:5 4:5 ++ del wopts3! KeyError ++ del bopts3! KeyError ++ G: 5 ++ W: 1:5 2:5 3:5 4:5 ++ B: 1:5 2:5 3:5 4:5 ++ >>> operatorfunc ++ p/gopts1: b'' ++ inv: 2! ValueError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1! KeyError ++ inv: 2! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 'A' ++ W: 1:'A' 2:'A' 3:'A' 4:'A' ++ B: 1:'A' 2:'A' 3:'A' 4:'A' ++ del wopts3! KeyError ++ del bopts3! KeyError ++ G: 'A' ++ W: 1:'A' 2:'A' 3:'A' 4:'A' ++ B: 1:'A' 2:'A' 3:'A' 4:'A' ++ >>> number ++ p/gopts1! KeyError ++ inv: 0! KeyError ++ gopts1! KeyError ++ p/wopts1: False ++ p/bopts1! KeyError ++ inv: 0! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ del wopts3! ValueError ++ del bopts3! KeyError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ >>> numberwidth ++ p/gopts1! KeyError ++ inv: -100! KeyError ++ gopts1! KeyError ++ p/wopts1: 8 ++ p/bopts1! KeyError ++ inv: -100! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: 8 ++ W: 1:3 2:5 3:2 4:8 ++ B: 1:3 2:5 3:2 4:8 ++ del wopts3! ValueError ++ del bopts3! KeyError ++ G: 8 ++ W: 1:3 2:5 3:2 4:8 ++ B: 1:3 2:5 3:2 4:8 ++ >>> colorcolumn ++ p/gopts1! KeyError ++ inv: 'abc'! KeyError ++ gopts1! KeyError ++ p/wopts1: b'' ++ p/bopts1! KeyError ++ inv: 'abc'! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: '' ++ W: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ B: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ del wopts3! ValueError ++ del bopts3! KeyError ++ G: '' ++ W: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ B: 1:'+2' 2:'+3' 3:'+1' 4:'' ++ >>> statusline ++ p/gopts1: b'' ++ inv: 0! ValueError ++ p/wopts1: None ++ inv: 0! ValueError ++ p/bopts1! KeyError ++ inv: 0! KeyError ++ bopts1! KeyError ++ bopts2! KeyError ++ bopts3! KeyError ++ G: '1' ++ W: 1:'2' 2:'4' 3:'1' 4:'1' ++ B: 1:'2' 2:'4' 3:'1' 4:'1' ++ del bopts3! KeyError ++ G: '1' ++ W: 1:'2' 2:'1' 3:'1' 4:'1' ++ B: 1:'2' 2:'1' 3:'1' 4:'1' ++ >>> autoindent ++ p/gopts1! KeyError ++ inv: 2! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: False ++ inv: 2! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ >>> iminsert ++ p/gopts1! KeyError ++ inv: 3! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 3! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: 2 ++ G: 1 ++ W: 1:2 2:1 3:0 4:2 ++ B: 1:2 2:1 3:0 4:2 ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: 1 ++ W: 1:2 2:1 3:0 4:2 ++ B: 1:2 2:1 3:0 4:2 ++ >>> omnifunc ++ p/gopts1! KeyError ++ inv: 1! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 1! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: b'' ++ inv: 1! ValueError ++ G: '' ++ W: 1:'B' 2:'C' 3:'A' 4:'' ++ B: 1:'B' 2:'C' 3:'A' 4:'' ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: '' ++ W: 1:'B' 2:'C' 3:'A' 4:'' ++ B: 1:'B' 2:'C' 3:'A' 4:'' ++ >>> preserveindent ++ p/gopts1! KeyError ++ inv: 2! KeyError ++ gopts1! KeyError ++ p/wopts1! KeyError ++ inv: 2! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: False ++ inv: 2! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ del wopts3! KeyError ++ del bopts3! ValueError ++ G: 0 ++ W: 1:1 2:1 3:0 4:0 ++ B: 1:1 2:1 3:0 4:0 ++ >>> path ++ p/gopts1: b'.,/usr/include,,' ++ inv: 0! ValueError ++ p/wopts1! KeyError ++ inv: 0! KeyError ++ wopts1! KeyError ++ wopts2! KeyError ++ wopts3! KeyError ++ p/bopts1: None ++ inv: 0! ValueError ++ G: '.,,' ++ W: 1:',,' 2:'.' 3:'.,,' 4:'.,,' ++ B: 1:',,' 2:'.' 3:'.,,' 4:'.,,' ++ del wopts3! KeyError ++ G: '.,,' ++ W: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' ++ B: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' +*** ../vim-7.3.923/src/vim.h 2013-03-19 16:46:59.000000000 +0100 +--- src/vim.h 2013-05-06 03:36:46.000000000 +0200 +*************** +*** 2230,2233 **** +--- 2230,2246 ---- + #define FILEINFO_READ_FAIL 2 /* CreateFile() failed */ + #define FILEINFO_INFO_FAIL 3 /* GetFileInformationByHandle() failed */ + ++ /* Return value from get_option_value_strict */ ++ #define SOPT_BOOL 0x01 /* Boolean option */ ++ #define SOPT_NUM 0x02 /* Number option */ ++ #define SOPT_STRING 0x04 /* String option */ ++ #define SOPT_GLOBAL 0x08 /* Option has global value */ ++ #define SOPT_WIN 0x10 /* Option has window-local value */ ++ #define SOPT_BUF 0x20 /* Option has buffer-local value */ ++ #define SOPT_UNSET 0x40 /* Option does not have local value set */ ++ ++ #define SREQ_GLOBAL 0 /* Request global option */ ++ #define SREQ_WIN 1 /* Request window-local option */ ++ #define SREQ_BUF 2 /* Request buffer-local option */ ++ + #endif /* VIM__H */ +*** ../vim-7.3.923/src/version.c 2013-05-04 04:40:06.000000000 +0200 +--- src/version.c 2013-05-06 03:38:06.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 924, + /**/ + +-- +ARTHUR: (as the MAN next to him is squashed by a sheep) Knights! Run away! + Midst echoing shouts of "run away" the KNIGHTS retreat to cover with the odd + cow or goose hitting them still. The KNIGHTS crouch down under cover. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 9ecdde217dac2ca36b581b0c96cf20e446712fb9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:51 +0200 Subject: [PATCH 267/291] - patchlevel 925 --- 7.3.925 | 2899 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2899 insertions(+) create mode 100644 7.3.925 diff --git a/7.3.925 b/7.3.925 new file mode 100644 index 00000000..a7a0b5a3 --- /dev/null +++ b/7.3.925 @@ -0,0 +1,2899 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.925 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.925 +Problem: Typos in source files. +Solution: Fix the typos. (Ken Takata) +Files: runtime/plugin/matchparen.vim, runtime/tools/vim_vs_net.cmd, + src/GvimExt/gvimext.cpp, src/INSTALLvms.txt, src/Make_cyg.mak, + src/Make_mvc.mak, src/Make_sas.mak, src/Make_vms.mms, + src/Make_w16.mak, src/Makefile, src/VisVim/OleAut.cpp, + src/VisVim/README_VisVim.txt, src/auto/configure, src/buffer.c, + src/configure.in, src/diff.c, src/dosinst.c, src/edit.c, + src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, + src/farsi.c, src/feature.h, src/fileio.c, src/glbl_ime.cpp, + src/gui.c, src/gui_athena.c, src/gui_beval.c, src/gui_gtk_x11.c, + src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w16.c, + src/gui_w32.c, src/gui_w48.c, src/gui_xmebw.c, src/gui_xmebwp.h, + src/hardcopy.c, src/if_cscope.c, src/if_mzsch.c, src/if_ole.cpp, + src/if_perl.xs, src/if_py_both.h, src/if_python.c, + src/if_python3.c, src/if_ruby.c, src/main.aap, src/mbyte.c, + src/memfile.c, src/memline.c, src/misc1.c, src/misc2.c, + src/nbdebug.c, src/normal.c, src/ops.c, src/os_amiga.c, + src/os_mac.h, src/os_msdos.c, src/os_mswin.c, src/os_win16.h, + src/os_win32.c, src/os_win32.h, src/quickfix.c, src/screen.c, + src/search.c, src/spell.c, src/structs.h, src/syntax.c, + src/window.c, vimtutor.com + + +*** ../vim-7.3.924/runtime/plugin/matchparen.vim 2013-03-19 13:33:18.000000000 +0100 +--- runtime/plugin/matchparen.vim 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 5,11 **** + " Exit quickly when: + " - this plugin was already loaded (or disabled) + " - when 'compatible' is set +! " - the "CursorMoved" autocmd event is not availble. + if exists("g:loaded_matchparen") || &cp || !exists("##CursorMoved") + finish + endif +--- 5,11 ---- + " Exit quickly when: + " - this plugin was already loaded (or disabled) + " - when 'compatible' is set +! " - the "CursorMoved" autocmd event is not available. + if exists("g:loaded_matchparen") || &cp || !exists("##CursorMoved") + finish + endif +*** ../vim-7.3.924/runtime/tools/vim_vs_net.cmd 2010-08-15 21:57:12.000000000 +0200 +--- runtime/tools/vim_vs_net.cmd 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 7,18 **** + @rem Arguments - +$(CurLine) $(ItemPath) + @rem Init Dir - Empty + @rem +! @rem Coutesy of Brian Sturk + @rem + @rem --remote-silent +%1 is a command +954, move ahead 954 lines + @rem --remote-silent %2 full path to file + @rem In Vim +! @rem :h --remote-silent for mor details + @rem + @rem --servername VS_NET + @rem This will create a new instance of vim called VS_NET. So if you +--- 7,18 ---- + @rem Arguments - +$(CurLine) $(ItemPath) + @rem Init Dir - Empty + @rem +! @rem Courtesy of Brian Sturk + @rem + @rem --remote-silent +%1 is a command +954, move ahead 954 lines + @rem --remote-silent %2 full path to file + @rem In Vim +! @rem :h --remote-silent for more details + @rem + @rem --servername VS_NET + @rem This will create a new instance of vim called VS_NET. So if you +*** ../vim-7.3.924/src/GvimExt/gvimext.cpp 2011-08-10 16:31:18.000000000 +0200 +--- src/GvimExt/gvimext.cpp 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 527,533 **** + // + // PARAMETERS: + // pIDFolder - Specifies the parent folder +! // pDataObj - Spefifies the set of items selected in that folder. + // hRegKey - Specifies the type of the focused item in the selection. + // + // RETURN VALUE: +--- 527,533 ---- + // + // PARAMETERS: + // pIDFolder - Specifies the parent folder +! // pDataObj - Specifies the set of items selected in that folder. + // hRegKey - Specifies the type of the focused item in the selection. + // + // RETURN VALUE: +*** ../vim-7.3.924/src/INSTALLvms.txt 2010-08-15 21:57:25.000000000 +0200 +--- src/INSTALLvms.txt 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 330,336 **** + Also VMS_JACKETS.EXE from OpenVMS Porting Library. + + Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm +! complier directives that is not compatible with "standard" VMS usage, + therefore other external features might fail as PERL, PYTHON and TCL + support. + +--- 330,336 ---- + Also VMS_JACKETS.EXE from OpenVMS Porting Library. + + Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm +! compiler directives that is not compatible with "standard" VMS usage, + therefore other external features might fail as PERL, PYTHON and TCL + support. + +*** ../vim-7.3.924/src/Make_cyg.mak 2013-03-07 15:16:16.000000000 +0100 +--- src/Make_cyg.mak 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1,6 **** + # + # Makefile for VIM on Win32, using Cygnus gcc +! # Last updated by Dan Sharp. Last Change: 2013 Feb 17 + # + # Also read INSTALLpc.txt! + # +--- 1,6 ---- + # + # Makefile for VIM on Win32, using Cygnus gcc +! # Last updated by Dan Sharp. Last Change: 2013 Apr 22 + # + # Also read INSTALLpc.txt! + # +*************** +*** 48,54 **** + # USEDLL no or yes: set to yes to use the Runtime library DLL (no) + # For USEDLL=yes the cygwin1.dll is required to run Vim. + # For "no" the mingw-gcc-g++ package or the mingw64-i686-gcc-g++ +! # package is required to complie Vim. Or set CC to gcc-3 and add + # -L/lib/w32api to EXTRA_LIBS. + # POSTSCRIPT no or yes: set to yes for PostScript printing (no) + # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG) +--- 48,54 ---- + # USEDLL no or yes: set to yes to use the Runtime library DLL (no) + # For USEDLL=yes the cygwin1.dll is required to run Vim. + # For "no" the mingw-gcc-g++ package or the mingw64-i686-gcc-g++ +! # package is required to compile Vim. Or set CC to gcc-3 and add + # -L/lib/w32api to EXTRA_LIBS. + # POSTSCRIPT no or yes: set to yes for PostScript printing (no) + # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG) +*** ../vim-7.3.924/src/Make_mvc.mak 2013-02-26 14:56:24.000000000 +0100 +--- src/Make_mvc.mak 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 418,424 **** + !endif + !endif + +! # Abort bulding VIM if version of VC is unrecognised. + !ifndef MSVCVER + !message *** ERROR + !message Cannot determine Visual C version being used. If you are using the +--- 418,424 ---- + !endif + !endif + +! # Abort building VIM if version of VC is unrecognised. + !ifndef MSVCVER + !message *** ERROR + !message Cannot determine Visual C version being used. If you are using the +*** ../vim-7.3.924/src/Make_sas.mak 2010-08-15 21:57:27.000000000 +0200 +--- src/Make_sas.mak 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 251,257 **** + + # generate GlobalSymbolTable, which speeds up the compile time. + # +! # A preprocessing stage is used to work arounda bug in the GST generator, in + # that it does not handle nested makefiles properly in this stage. + # Ignore error message for not producing any code (105). + $(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h +--- 251,257 ---- + + # generate GlobalSymbolTable, which speeds up the compile time. + # +! # A preprocessing stage is used to work around a bug in the GST generator, in + # that it does not handle nested makefiles properly in this stage. + # Ignore error message for not producing any code (105). + $(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h +*************** +*** 283,289 **** + .c.pro: + $(CC) $(CFLAGS) GPFILE=proto/$*.pro $(PROPT) $*.c + +! # dependancies + blowfish.o: blowfish.c + proto/blowfish.pro: blowfish.c + buffer.o: buffer.c +--- 283,289 ---- + .c.pro: + $(CC) $(CFLAGS) GPFILE=proto/$*.pro $(PROPT) $*.c + +! # dependencies + blowfish.o: blowfish.c + proto/blowfish.pro: blowfish.c + buffer.o: buffer.c +*** ../vim-7.3.924/src/Make_vms.mms 2010-08-15 21:57:32.000000000 +0200 +--- src/Make_vms.mms 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 34,40 **** + # SMALL - Few features enabled, as basic as possible + # NORMAL - A default selection of features enabled + # BIG - Many features enabled, as rich as possible. (default) +! # HUGE - All possible featues enabled. + # Please select one of these alternatives above. + MODEL = HUGE + +--- 34,40 ---- + # SMALL - Few features enabled, as basic as possible + # NORMAL - A default selection of features enabled + # BIG - Many features enabled, as rich as possible. (default) +! # HUGE - All possible features enabled. + # Please select one of these alternatives above. + MODEL = HUGE + +*************** +*** 55,61 **** + # Comment out if you want the compiler version with :ver command. + # NOTE: This part can make some complications if you're using some + # predefined symbols/flags for your compiler. If does, just leave behind +! # the comment varialbe CCVER. + CCVER = YES + + # Uncomment if want a debug version. Resulting executable is DVIM.EXE +--- 55,61 ---- + # Comment out if you want the compiler version with :ver command. + # NOTE: This part can make some complications if you're using some + # predefined symbols/flags for your compiler. If does, just leave behind +! # the comment variable CCVER. + CCVER = YES + + # Uncomment if want a debug version. Resulting executable is DVIM.EXE +*** ../vim-7.3.924/src/Make_w16.mak 2013-02-26 14:56:24.000000000 +0100 +--- src/Make_w16.mak 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 4,10 **** + # ************************************************************* + # * WARNING! + # * This was originally produced by the IDE, but has since been +! # * modifed to make it work properly. Adjust with care! + # * In particular, leave LinkerLocalOptsAtW16_gvim16dexe alone + # * unless you are a guru. + # ************************************************************* +--- 4,10 ---- + # ************************************************************* + # * WARNING! + # * This was originally produced by the IDE, but has since been +! # * modified to make it work properly. Adjust with care! + # * In particular, leave LinkerLocalOptsAtW16_gvim16dexe alone + # * unless you are a guru. + # ************************************************************* +*** ../vim-7.3.924/src/Makefile 2013-02-26 14:56:24.000000000 +0100 +--- src/Makefile 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 200,206 **** + #Solaris 2.5 (sun4m) cc (SC4.0) +X11R6 +GUI (CDE) 4.6b (E) Andrew Large + #Solaris 2.5 cc +X11 +GUI Athena 4.2 (9) Sonia Heimann + #Solaris 2.5 gcc 2.5.6 +X11 Motif 5.0m (R) Ant. Colombo +! #Solaris 2.6 gcc 2.8.1 ncursus 5.3 (G) Larry W. Virden + #Solaris with -lthread 5.5 (W) K. Nagano + #Solaris gcc (b) Riccardo + #SunOS 4.1.x +X11 -GUI 5.1b (J) Bram Moolenaar +--- 200,206 ---- + #Solaris 2.5 (sun4m) cc (SC4.0) +X11R6 +GUI (CDE) 4.6b (E) Andrew Large + #Solaris 2.5 cc +X11 +GUI Athena 4.2 (9) Sonia Heimann + #Solaris 2.5 gcc 2.5.6 +X11 Motif 5.0m (R) Ant. Colombo +! #Solaris 2.6 gcc 2.8.1 ncurses 5.3 (G) Larry W. Virden + #Solaris with -lthread 5.5 (W) K. Nagano + #Solaris gcc (b) Riccardo + #SunOS 4.1.x +X11 -GUI 5.1b (J) Bram Moolenaar +*************** +*** 231,238 **** + # (D) Uncomment lines below for QNX + # (E) You might want to use termlib instead of termcap, see below. + # (F) See below for instructions. +! # (G) Using ncursus version 4.2 has reported to cause a crash. Use the +! # Sun cursus library instead. + # (H) See line for EXTRA_LIBS below. + # (I) SINIX-N 5.42 and 5.43 need some EXTRA_LIBS. Also for Reliant-Unix. + # (J) If you get undefined symbols, see below for a solution. +--- 231,238 ---- + # (D) Uncomment lines below for QNX + # (E) You might want to use termlib instead of termcap, see below. + # (F) See below for instructions. +! # (G) Using ncurses version 4.2 has reported to cause a crash. Use the +! # Sun curses library instead. + # (H) See line for EXTRA_LIBS below. + # (I) SINIX-N 5.42 and 5.43 need some EXTRA_LIBS. Also for Reliant-Unix. + # (J) If you get undefined symbols, see below for a solution. +*************** +*** 402,408 **** + # to the command line. If you see strange flags during compilation, check in + # auto/config.mk where they come from. If it's PERL_CFLAGS, try commenting + # the next line. +! # When you get an error for a missing "perl.exp" file, try creating an emtpy + # one: "touch perl.exp". + # This requires at least "small" features, "tiny" doesn't work. + #CONF_OPT_PERL = --enable-perlinterp +--- 402,408 ---- + # to the command line. If you see strange flags during compilation, check in + # auto/config.mk where they come from. If it's PERL_CFLAGS, try commenting + # the next line. +! # When you get an error for a missing "perl.exp" file, try creating an empty + # one: "touch perl.exp". + # This requires at least "small" features, "tiny" doesn't work. + #CONF_OPT_PERL = --enable-perlinterp +*************** +*** 601,607 **** + # Might not work with GUI or Perl. + # For unknown reasons adding "-lc" fixes a linking problem with some versions + # of GCC. That's probably a bug in the "-pg" implementation. +! # After running Vim see the profile result with: gmon vim gmon.out | vim - + # Need to recompile everything after changing this: "make clean" "make". + #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING + #PROFILE_LIBS = -pg +--- 601,607 ---- + # Might not work with GUI or Perl. + # For unknown reasons adding "-lc" fixes a linking problem with some versions + # of GCC. That's probably a bug in the "-pg" implementation. +! # After running Vim see the profile result with: gprof vim gmon.out | vim - + # Need to recompile everything after changing this: "make clean" "make". + #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING + #PROFILE_LIBS = -pg +*************** +*** 1294,1300 **** + ### prototype headers are ignored due to -DPROTO, system + ### headers #include <...> are ignored if we use the -MM option, as + ### e.g. provided by gcc-cpp. +! ### Include FEAT_GUI to get gependency on gui.h + ### Need to change "-I /" to "-isystem /" for GCC 3.x. + CPP_DEPEND = $(CC) -I$(srcdir) -M$(CPP_MM) \ + `echo "$(DEPEND_CFLAGS)" $(DEPEND_CFLAGS_FILTER)` +--- 1294,1300 ---- + ### prototype headers are ignored due to -DPROTO, system + ### headers #include <...> are ignored if we use the -MM option, as + ### e.g. provided by gcc-cpp. +! ### Include FEAT_GUI to get dependency on gui.h + ### Need to change "-I /" to "-isystem /" for GCC 3.x. + CPP_DEPEND = $(CC) -I$(srcdir) -M$(CPP_MM) \ + `echo "$(DEPEND_CFLAGS)" $(DEPEND_CFLAGS_FILTER)` +*************** +*** 1717,1723 **** + + + # Link the target for normal use or debugging. +! # A shell script is used to try linking without unneccesary libraries. + $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h + $(CCC) version.c -o objects/version.o + @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \ +--- 1717,1723 ---- + + + # Link the target for normal use or debugging. +! # A shell script is used to try linking without unnecessary libraries. + $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h + $(CCC) version.c -o objects/version.o + @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \ +*************** +*** 1837,1844 **** + # + # This will produce a lot of garbage on your screen, including a few error + # messages. Don't worry about that. +! # If there is a real error, there will be a difference between "test.out" and +! # a "test99.ok" file. + # If everything is alright, the final message will be "ALL DONE". If not you + # get "TEST FAILURE". + # +--- 1837,1844 ---- + # + # This will produce a lot of garbage on your screen, including a few error + # messages. Don't worry about that. +! # If there is a real error, there will be a difference between "testXX.out" and +! # a "testXX.ok" file. + # If everything is alright, the final message will be "ALL DONE". If not you + # get "TEST FAILURE". + # +*************** +*** 2779,2787 **** + mv gui_mac.rsrc.rsrcfork $(RESDIR)/$(VIMNAME).rsrc + + # po/Make_osx.pl says something about generating a Mac message file +! # for Ukrananian. Would somebody using Mac OS X in Ukranian + # *really* be upset that Carbon Vim was not localised in +! # Ukranian? + # + #bundle-language: bundle-dir po/Make_osx.pl + # cd po && perl Make_osx.pl --outdir ../$(RESDIR) $(MULTILANG) +--- 2779,2787 ---- + mv gui_mac.rsrc.rsrcfork $(RESDIR)/$(VIMNAME).rsrc + + # po/Make_osx.pl says something about generating a Mac message file +! # for Ukrainian. Would somebody using Mac OS X in Ukrainian + # *really* be upset that Carbon Vim was not localised in +! # Ukrainian? + # + #bundle-language: bundle-dir po/Make_osx.pl + # cd po && perl Make_osx.pl --outdir ../$(RESDIR) $(MULTILANG) +*** ../vim-7.3.924/src/VisVim/OleAut.cpp 2010-08-15 21:57:27.000000000 +0200 +--- src/VisVim/OleAut.cpp 2013-05-06 04:04:07.000000000 +0200 +*************** +*** 654,660 **** + } + + char Buf[256]; +! sprintf (Buf, "An OLE error occured:\r\nCode = %s\r\nResult = %lx.", + (char*) ErrName, m_hResult); + MessageBox (NULL, Buf, "OLE Error", MB_OK); + } +--- 654,660 ---- + } + + char Buf[256]; +! sprintf (Buf, "An OLE error occurred:\r\nCode = %s\r\nResult = %lx.", + (char*) ErrName, m_hResult); + MessageBox (NULL, Buf, "OLE Error", MB_OK); + } +*** ../vim-7.3.924/src/VisVim/README_VisVim.txt 2010-08-15 21:57:27.000000000 +0200 +--- src/VisVim/README_VisVim.txt 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 17,28 **** + VisVim is based upon VisEmacs by Christopher Payne + (Copyright (C) Christopher Payne 1997). + +! Author: Heiko Erhardt + Based upon: VisEmacs by Christopher Payne + Version: 1.0 + Created: 23 Oct 1997 + Date: 23 Oct 1997 + + VisVim is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) +--- 17,32 ---- + VisVim is based upon VisEmacs by Christopher Payne + (Copyright (C) Christopher Payne 1997). + +! Author: Heiko Erhardt + Based upon: VisEmacs by Christopher Payne + Version: 1.0 + Created: 23 Oct 1997 + Date: 23 Oct 1997 + ++ VisVim was originally GNU GPL licensed, as stated below. On March 21 2012 ++ Heiko Erhardt declared this work to be relicensed under the Vim license, as ++ stated in ../../runtime/doc/uganda.txt (or ":help uganda" in Vim). ++ + VisVim is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) +*************** +*** 216,222 **** + 2. Close Visual Studio. + 3. Delete VisVim.dll or move it somewhere it can't be found. + 4. Run Visual Studio. +! 5. Tools -> Cursomize ->Add-ins and Macro-Files. + 6. A message appears: + ".../VisVim.dll" "This add-in no longer exists. It will + no longer be displayed." +--- 220,226 ---- + 2. Close Visual Studio. + 3. Delete VisVim.dll or move it somewhere it can't be found. + 4. Run Visual Studio. +! 5. Tools -> Customize ->Add-ins and Macro-Files. + 6. A message appears: + ".../VisVim.dll" "This add-in no longer exists. It will + no longer be displayed." +*************** +*** 294,300 **** + P8 Execute :tag command in Vim for word under cursor in DevStudio + + P7 Controlling the Visual Studio Debugger from inside Vim +! See message above. Also a 'Debug' highligh group and a + command to highlight a certain line would be necessary. + + P6 Provide an option to open the current file in VisVim in +--- 298,304 ---- + P8 Execute :tag command in Vim for word under cursor in DevStudio + + P7 Controlling the Visual Studio Debugger from inside Vim +! See message above. Also a 'Debug' highlight group and a + command to highlight a certain line would be necessary. + + P6 Provide an option to open the current file in VisVim in +*************** +*** 318,322 **** + Have fun! + + Heiko Erhardt +! Heiko.Erhardt@munich.netsurf.de + +--- 322,326 ---- + Have fun! + + Heiko Erhardt +! heiko.erhardt@gmx.net + +*** ../vim-7.3.924/src/auto/configure 2013-05-04 04:40:06.000000000 +0200 +--- src/auto/configure 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 5831,5837 **** + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first pyhton version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, char *prefix) +--- 5831,5837 ---- + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first python version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, char *prefix) +*************** +*** 5897,5903 **** + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first pyhton version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix) +--- 5897,5903 ---- + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first python version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix) +*************** +*** 10593,10599 **** + _ACEOF + + if test "x$vim_cv_tty_mode" = "x" ; then +! as_fn_error "It seems you're cross compiling and have 'vim_cv_tty_group' set, please also set the environment variable 'vim_cv_tty_mode' to the correct mode (propably 0620)" "$LINENO" 5 + else + $as_echo "#define PTYMODE 0620" >>confdefs.h + +--- 10593,10599 ---- + _ACEOF + + if test "x$vim_cv_tty_mode" = "x" ; then +! as_fn_error "It seems you're cross compiling and have 'vim_cv_tty_group' set, please also set the environment variable 'vim_cv_tty_mode' to the correct mode (probably 0620)" "$LINENO" 5 + else + $as_echo "#define PTYMODE 0620" >>confdefs.h + +*** ../vim-7.3.924/src/buffer.c 2013-04-24 16:52:28.000000000 +0200 +--- src/buffer.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 2005,2011 **** + * "buf" if one exists */ + if (swb_flags & SWB_USEOPEN) + wp = buf_jump_open_win(buf); +! /* If 'switchbuf' contians "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if (wp == NULL && (swb_flags & SWB_USETAB)) + wp = buf_jump_open_tab(buf); +--- 2005,2011 ---- + * "buf" if one exists */ + if (swb_flags & SWB_USEOPEN) + wp = buf_jump_open_win(buf); +! /* If 'switchbuf' contains "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if (wp == NULL && (swb_flags & SWB_USETAB)) + wp = buf_jump_open_tab(buf); +*** ../vim-7.3.924/src/configure.in 2013-05-04 04:40:06.000000000 +0200 +--- src/configure.in 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 306,312 **** + AC_SUBST(line_break) + + if test "$cf_cv_ebcdic" = "yes"; then +! dnl If we have EBCDIC we most likley have z/OS Unix, let's test it! + AC_MSG_CHECKING(for z/OS Unix) + case `uname` in + OS/390) zOSUnix="yes"; +--- 306,312 ---- + AC_SUBST(line_break) + + if test "$cf_cv_ebcdic" = "yes"; then +! dnl If we have EBCDIC we most likely have z/OS Unix, let's test it! + AC_MSG_CHECKING(for z/OS Unix) + case `uname` in + OS/390) zOSUnix="yes"; +*************** +*** 1228,1234 **** + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first pyhton version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, char *prefix) +--- 1228,1234 ---- + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first python version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, char *prefix) +*************** +*** 1274,1280 **** + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first pyhton version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix) +--- 1274,1280 ---- + /* If this program fails, then RTLD_GLOBAL is needed. + * RTLD_GLOBAL will be used and then it is not possible to + * have both python versions enabled in the same vim instance. +! * Only the first python version used will be switched on. + */ + + int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix) +*************** +*** 3002,3008 **** + if test "x$vim_cv_tty_group" != "xworld" ; then + AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group) + if test "x$vim_cv_tty_mode" = "x" ; then +! AC_MSG_ERROR([It seems you're cross compiling and have 'vim_cv_tty_group' set, please also set the environment variable 'vim_cv_tty_mode' to the correct mode (propably 0620)]) + else + AC_DEFINE(PTYMODE, 0620) + fi +--- 3002,3008 ---- + if test "x$vim_cv_tty_group" != "xworld" ; then + AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group) + if test "x$vim_cv_tty_mode" = "x" ; then +! AC_MSG_ERROR([It seems you're cross compiling and have 'vim_cv_tty_group' set, please also set the environment variable 'vim_cv_tty_mode' to the correct mode (probably 0620)]) + else + AC_DEFINE(PTYMODE, 0620) + fi +*** ../vim-7.3.924/src/diff.c 2013-03-19 14:25:50.000000000 +0100 +--- src/diff.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1110,1116 **** + } + + /* +! * Set options to show difs for the current window. + */ + void + ex_diffthis(eap) +--- 1110,1116 ---- + } + + /* +! * Set options to show diffs for the current window. + */ + void + ex_diffthis(eap) +*** ../vim-7.3.924/src/dosinst.c 2013-02-13 14:36:39.000000000 +0100 +--- src/dosinst.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1609,1615 **** + + /* + * Only add the choice for the open-with menu entry when gvim.exe was found +! * and and regedit.exe exist. + */ + static void + init_openwith_choice(void) +--- 1609,1615 ---- + + /* + * Only add the choice for the open-with menu entry when gvim.exe was found +! * and regedit.exe exist. + */ + static void + init_openwith_choice(void) +*** ../vim-7.3.924/src/edit.c 2013-03-19 16:46:59.000000000 +0100 +--- src/edit.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1418,1424 **** + + normalchar: + /* +! * Insert a nomal character. + */ + #ifdef FEAT_AUTOCMD + if (!p_paste) +--- 1418,1424 ---- + + normalchar: + /* +! * Insert a normal character. + */ + #ifdef FEAT_AUTOCMD + if (!p_paste) +*************** +*** 7162,7168 **** + /* + * Count each sequence of folded lines as one logical line. + */ +! /* go to the the start of the current fold */ + (void)hasFolding(lnum, &lnum, NULL); + + while (n--) +--- 7162,7168 ---- + /* + * Count each sequence of folded lines as one logical line. + */ +! /* go to the start of the current fold */ + (void)hasFolding(lnum, &lnum, NULL); + + while (n--) +*************** +*** 7213,7219 **** + (void)hasFolding(lnum, NULL, &lnum); + #endif + /* This fails if the cursor is already in the last line or would move +! * beyound the last line and '-' is in 'cpoptions' */ + if (lnum >= curbuf->b_ml.ml_line_count + || (lnum + n > curbuf->b_ml.ml_line_count + && vim_strchr(p_cpo, CPO_MINUS) != NULL)) +--- 7213,7219 ---- + (void)hasFolding(lnum, NULL, &lnum); + #endif + /* This fails if the cursor is already in the last line or would move +! * beyond the last line and '-' is in 'cpoptions' */ + if (lnum >= curbuf->b_ml.ml_line_count + || (lnum + n > curbuf->b_ml.ml_line_count + && vim_strchr(p_cpo, CPO_MINUS) != NULL)) +*************** +*** 7715,7721 **** + /* + * return TRUE if 'cinkeys' contains the key "keytyped", + * when == '*': Only if key is preceded with '*' (indent before insert) +! * when == '!': Only if key is prededed with '!' (don't insert) + * when == ' ': Only if key is not preceded with '*'(indent afterwards) + * + * "keytyped" can have a few special values: +--- 7715,7721 ---- + /* + * return TRUE if 'cinkeys' contains the key "keytyped", + * when == '*': Only if key is preceded with '*' (indent before insert) +! * when == '!': Only if key is preceded with '!' (don't insert) + * when == ' ': Only if key is not preceded with '*'(indent afterwards) + * + * "keytyped" can have a few special values: +*************** +*** 8541,8547 **** + #endif + + /* +! * key in Insert mode: toggle insert/remplace mode. + */ + static void + ins_insert(replaceState) +--- 8541,8547 ---- + #endif + + /* +! * key in Insert mode: toggle insert/replace mode. + */ + static void + ins_insert(replaceState) +*** ../vim-7.3.924/src/eval.c 2013-05-06 03:52:44.000000000 +0200 +--- src/eval.c 2013-05-06 04:07:45.000000000 +0200 +*************** +*** 16669,16675 **** + tabpage_T *save_curtab; + { + #ifdef FEAT_WINDOWS +! /* Restore current tabpage and window, if still valid (autocomands can + * make them invalid). */ + if (valid_tabpage(save_curtab)) + goto_tabpage_tp(save_curtab, TRUE); +--- 16669,16675 ---- + tabpage_T *save_curtab; + { + #ifdef FEAT_WINDOWS +! /* Restore current tabpage and window, if still valid (autocommands can + * make them invalid). */ + if (valid_tabpage(save_curtab)) + goto_tabpage_tp(save_curtab, TRUE); +*** ../vim-7.3.924/src/ex_cmds2.c 2013-03-19 16:46:59.000000000 +0100 +--- src/ex_cmds2.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 2851,2857 **** + EMSG(_(e_argreq)); + + else if (eap != NULL && eap->forceit) +! /* ":source!": read Normal mdoe commands + * Need to execute the commands directly. This is required at least + * for: + * - ":g" command busy +--- 2851,2857 ---- + EMSG(_(e_argreq)); + + else if (eap != NULL && eap->forceit) +! /* ":source!": read Normal mode commands + * Need to execute the commands directly. This is required at least + * for: + * - ":g" command busy +*** ../vim-7.3.924/src/ex_docmd.c 2013-03-19 14:25:50.000000000 +0100 +--- src/ex_docmd.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1093,1099 **** + msg_didany = FALSE; /* no output yet */ + msg_start(); + msg_scroll = TRUE; /* put messages below each other */ +! ++no_wait_return; /* dont wait for return until finished */ + ++RedrawingDisabled; + did_inc = TRUE; + } +--- 1093,1099 ---- + msg_didany = FALSE; /* no output yet */ + msg_start(); + msg_scroll = TRUE; /* put messages below each other */ +! ++no_wait_return; /* don't wait for return until finished */ + ++RedrawingDisabled; + did_inc = TRUE; + } +*************** +*** 1298,1304 **** + && !(did_emsg + #ifdef FEAT_EVAL + /* Keep going when inside try/catch, so that the error can be +! * dealth with, except when it is a syntax error, it may cause + * the :endtry to be missed. */ + && (cstack.cs_trylevel == 0 || did_emsg_syntax) + #endif +--- 1298,1304 ---- + && !(did_emsg + #ifdef FEAT_EVAL + /* Keep going when inside try/catch, so that the error can be +! * deal with, except when it is a syntax error, it may cause + * the :endtry to be missed. */ + && (cstack.cs_trylevel == 0 || did_emsg_syntax) + #endif +*************** +*** 10982,10988 **** + *p = '/'; + } + +! /* escapse special characters */ + p = vim_strsave_fnameescape(sname, FALSE); + vim_free(sname); + if (p == NULL) +--- 10982,10988 ---- + *p = '/'; + } + +! /* escape special characters */ + p = vim_strsave_fnameescape(sname, FALSE); + vim_free(sname); + if (p == NULL) +*** ../vim-7.3.924/src/ex_eval.c 2010-08-15 21:57:25.000000000 +0200 +--- src/ex_eval.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 44,50 **** + * executed. Otherwise, errors and/or interrupts are converted into catchable + * exceptions (did_throw additionally set), which terminate the script only if + * not caught. For user exceptions, only did_throw is set. (Note: got_int can +! * be set asyncronously afterwards by a SIGINT, so did_throw && got_int is not + * a reliant test that the exception currently being thrown is an interrupt + * exception. Similarly, did_emsg can be set afterwards on an error in an + * (unskipped) conditional command inside an inactive conditional, so did_throw +--- 44,50 ---- + * executed. Otherwise, errors and/or interrupts are converted into catchable + * exceptions (did_throw additionally set), which terminate the script only if + * not caught. For user exceptions, only did_throw is set. (Note: got_int can +! * be set asynchronously afterwards by a SIGINT, so did_throw && got_int is not + * a reliant test that the exception currently being thrown is an interrupt + * exception. Similarly, did_emsg can be set afterwards on an error in an + * (unskipped) conditional command inside an inactive conditional, so did_throw +*************** +*** 2091,2101 **** + * Values used for "searched_cond" are (CSF_WHILE | CSF_FOR) or CSF_TRY or 0, + * the latter meaning the innermost try conditional not in its finally clause. + * "inclusive" tells whether the conditional searched for should be made +! * inactive itself (a try conditional not in its finally claused possibly find + * before is always made inactive). If "inclusive" is TRUE and + * "searched_cond" is CSF_TRY|CSF_SILENT, the saved former value of + * "emsg_silent", if reset when the try conditional finally reached was +! * entered, is restored (unsed by ex_endtry()). This is normally done only + * when such a try conditional is left. + */ + int +--- 2091,2101 ---- + * Values used for "searched_cond" are (CSF_WHILE | CSF_FOR) or CSF_TRY or 0, + * the latter meaning the innermost try conditional not in its finally clause. + * "inclusive" tells whether the conditional searched for should be made +! * inactive itself (a try conditional not in its finally clause possibly find + * before is always made inactive). If "inclusive" is TRUE and + * "searched_cond" is CSF_TRY|CSF_SILENT, the saved former value of + * "emsg_silent", if reset when the try conditional finally reached was +! * entered, is restored (used by ex_endtry()). This is normally done only + * when such a try conditional is left. + */ + int +*** ../vim-7.3.924/src/farsi.c 2012-07-16 17:26:18.000000000 +0200 +--- src/farsi.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1841,1847 **** + } + + /* +! * Convert the Farsi VIM into Farsi 3342 standad. + */ + void + conv_to_pstd() +--- 1841,1847 ---- + } + + /* +! * Convert the Farsi VIM into Farsi 3342 standard. + */ + void + conv_to_pstd() +*** ../vim-7.3.924/src/feature.h 2013-04-15 15:40:08.000000000 +0200 +--- src/feature.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1007,1013 **** + + /* + * MODIFIED_BY Name of who modified Vim. Required when distributing +! * a modifed version of Vim. + * Also from the "--with-modified-by" configure argument. + */ + /* #define MODIFIED_BY "John Doe" */ +--- 1007,1013 ---- + + /* + * MODIFIED_BY Name of who modified Vim. Required when distributing +! * a modified version of Vim. + * Also from the "--with-modified-by" configure argument. + */ + /* #define MODIFIED_BY "John Doe" */ +*** ../vim-7.3.924/src/fileio.c 2013-04-24 16:33:58.000000000 +0200 +--- src/fileio.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 3279,3285 **** + overwriting = FALSE; + + if (exiting) +! settmode(TMODE_COOK); /* when exiting allow typahead now */ + + ++no_wait_return; /* don't wait for return yet */ + +--- 3279,3285 ---- + overwriting = FALSE; + + if (exiting) +! settmode(TMODE_COOK); /* when exiting allow typeahead now */ + + ++no_wait_return; /* don't wait for return yet */ + +*************** +*** 3303,3309 **** + int empty_memline = (buf->b_ml.ml_mfp == NULL); + + /* +! * Apply PRE aucocommands. + * Set curbuf to the buffer to be written. + * Careful: The autocommands may call buf_write() recursively! + */ +--- 3303,3309 ---- + int empty_memline = (buf->b_ml.ml_mfp == NULL); + + /* +! * Apply PRE autocommands. + * Set curbuf to the buffer to be written. + * Careful: The autocommands may call buf_write() recursively! + */ +*************** +*** 8866,8872 **** + else + { + /* There is no window for "buf", use "aucmd_win". To minimize the side +! * effects, insert it in a the current tab page. + * Anything related to a window (e.g., setting folds) may have + * unexpected results. */ + aco->use_aucmd_win = TRUE; +--- 8866,8872 ---- + else + { + /* There is no window for "buf", use "aucmd_win". To minimize the side +! * effects, insert it in the current tab page. + * Anything related to a window (e.g., setting folds) may have + * unexpected results. */ + aco->use_aucmd_win = TRUE; +*** ../vim-7.3.924/src/glbl_ime.cpp 2010-08-15 21:57:27.000000000 +0200 +--- src/glbl_ime.cpp 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 156,162 **** + } + + /* +! * Set position of IME compotision window. + * + * You have to call this before starting composition. If once composition + * started, this can take no effect until that composition have finished. So +--- 156,162 ---- + } + + /* +! * Set position of IME composition window. + * + * You have to call this before starting composition. If once composition + * started, this can take no effect until that composition have finished. So +*** ../vim-7.3.924/src/gui.c 2013-04-03 21:11:33.000000000 +0200 +--- src/gui.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 826,832 **** + #endif + + /* +! * Set the font. "font_list" is a a comma separated list of font names. The + * first font name that works is used. If none is found, use the default + * font. + * If "fontset" is TRUE, the "font_list" is used as one name for the fontset. +--- 826,832 ---- + #endif + + /* +! * Set the font. "font_list" is a comma separated list of font names. The + * first font name that works is used. If none is found, use the default + * font. + * If "fontset" is TRUE, the "font_list" is used as one name for the fontset. +*************** +*** 2376,2382 **** + { + int start; /* index of bytes to be drawn */ + int cells; /* cellwidth of bytes to be drawn */ +! int thislen; /* length of bytes to be drawin */ + int cn; /* cellwidth of current char */ + int i; /* index of current char */ + int c; /* current char value */ +--- 2376,2382 ---- + { + int start; /* index of bytes to be drawn */ + int cells; /* cellwidth of bytes to be drawn */ +! int thislen; /* length of bytes to be drawn */ + int cn; /* cellwidth of current char */ + int i; /* index of current char */ + int c; /* current char value */ +*************** +*** 3886,3892 **** + gui.dragged_sb = SBAR_NONE; + #ifdef FEAT_GUI_GTK + /* Keep the "dragged_wp" value until after the scrolling, for when the +! * moust button is released. GTK2 doesn't send the button-up event. */ + gui.dragged_wp = NULL; + #endif + } +--- 3886,3892 ---- + gui.dragged_sb = SBAR_NONE; + #ifdef FEAT_GUI_GTK + /* Keep the "dragged_wp" value until after the scrolling, for when the +! * mouse button is released. GTK2 doesn't send the button-up event. */ + gui.dragged_wp = NULL; + #endif + } +*** ../vim-7.3.924/src/gui_athena.c 2011-01-17 20:08:03.000000000 +0100 +--- src/gui_athena.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 519,525 **** + &color[TOP_SHADOW].pixel, + &color[HIGHLIGHT].pixel); + +! /* Setup the color subsititution table */ + attrs.valuemask = XpmColorSymbols; + attrs.colorsymbols = color; + attrs.numsymbols = 5; +--- 519,525 ---- + &color[TOP_SHADOW].pixel, + &color[HIGHLIGHT].pixel); + +! /* Setup the color substitution table */ + attrs.valuemask = XpmColorSymbols; + attrs.colorsymbols = color; + attrs.numsymbols = 5; +*** ../vim-7.3.924/src/gui_beval.c 2012-10-21 00:58:34.000000000 +0200 +--- src/gui_beval.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 726,732 **** + BalloonEval *beval; + XEvent *event; + { +! Position distance; /* a measure of how much the ponter moved */ + Position delta; /* used to compute distance */ + + switch (event->type) +--- 726,732 ---- + BalloonEval *beval; + XEvent *event; + { +! Position distance; /* a measure of how much the pointer moved */ + Position delta; /* used to compute distance */ + + switch (event->type) +*** ../vim-7.3.924/src/gui_gtk_x11.c 2013-03-13 17:50:20.000000000 +0100 +--- src/gui_gtk_x11.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1257,1263 **** + } + } + +! /* Chop off any traiing NUL bytes. OpenOffice sends these. */ + while (len > 0 && text[len - 1] == NUL) + --len; + +--- 1257,1263 ---- + } + } + +! /* Chop off any trailing NUL bytes. OpenOffice sends these. */ + while (len > 0 && text[len - 1] == NUL) + --len; + +*** ../vim-7.3.924/src/gui_mac.c 2012-11-20 17:18:56.000000000 +0100 +--- src/gui_mac.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 41,47 **** + #define USE_AEVENT /* Enable AEVENT */ + #undef USE_OFFSETED_WINDOW /* Debugging feature: start Vim window OFFSETed */ + +! /* Compile as CodeWarior External Editor */ + #if defined(FEAT_CW_EDITOR) && !defined(USE_AEVENT) + # define USE_AEVENT /* Need Apple Event Support */ + #endif +--- 41,47 ---- + #define USE_AEVENT /* Enable AEVENT */ + #undef USE_OFFSETED_WINDOW /* Debugging feature: start Vim window OFFSETed */ + +! /* Compile as CodeWarrior External Editor */ + #if defined(FEAT_CW_EDITOR) && !defined(USE_AEVENT) + # define USE_AEVENT /* Need Apple Event Support */ + #endif +*************** +*** 1478,1484 **** + /* + * gui_mac_get_menu_item_index + * +! * Returns the index inside the menu wher + */ + short /* Should we return MenuItemIndex? */ + gui_mac_get_menu_item_index(vimmenu_T *pMenu) +--- 1478,1484 ---- + /* + * gui_mac_get_menu_item_index + * +! * Returns the index inside the menu where + */ + short /* Should we return MenuItemIndex? */ + gui_mac_get_menu_item_index(vimmenu_T *pMenu) +*************** +*** 1693,1699 **** + + if (theControl != NUL) + { +! /* We hit a scollbar */ + + if (thePortion != kControlIndicatorPart) + { +--- 1693,1699 ---- + + if (theControl != NUL) + { +! /* We hit a scrollbar */ + + if (thePortion != kControlIndicatorPart) + { +*************** +*** 2630,2636 **** + { + /* Handle the menu CntxMenuID, CntxMenuItem */ + /* The submenu can be handle directly by gui_mac_handle_menu */ +! /* But what about the current menu, is the meny changed by ContextualMenuSelect */ + gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem); + } + else if (CntxMenuID == kCMShowHelpSelected) +--- 2630,2636 ---- + { + /* Handle the menu CntxMenuID, CntxMenuItem */ + /* The submenu can be handle directly by gui_mac_handle_menu */ +! /* But what about the current menu, is the many changed by ContextualMenuSelect */ + gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem); + } + else if (CntxMenuID == kCMShowHelpSelected) +*************** +*** 5356,5362 **** + char_u *initdir, + char_u *filter) + { +! /* TODO: Add Ammon's safety checl (Dany) */ + NavReplyRecord reply; + char_u *fname = NULL; + char_u **fnames = NULL; +--- 5356,5362 ---- + char_u *initdir, + char_u *filter) + { +! /* TODO: Add Ammon's safety check (Dany) */ + NavReplyRecord reply; + char_u *fname = NULL; + char_u **fnames = NULL; +*************** +*** 5704,5710 **** + + /* Resize the button to fit its name */ + width = StringWidth(name) + 2 * dfltButtonEdge; +! /* Limite the size of any button to an acceptable value. */ + /* TODO: Should be based on the message width */ + if (width > maxButtonWidth) + width = maxButtonWidth; +--- 5704,5710 ---- + + /* Resize the button to fit its name */ + width = StringWidth(name) + 2 * dfltButtonEdge; +! /* Limit the size of any button to an acceptable value. */ + /* TODO: Should be based on the message width */ + if (width > maxButtonWidth) + width = maxButtonWidth; +*************** +*** 5887,5893 **** + /* Free the modal filterProc */ + DisposeRoutineDescriptor(dialogUPP); + +! /* Get ride of th edialog (free memory) */ + DisposeDialog(theDialog); + + return itemHit; +--- 5887,5893 ---- + /* Free the modal filterProc */ + DisposeRoutineDescriptor(dialogUPP); + +! /* Get ride of the dialog (free memory) */ + DisposeDialog(theDialog); + + return itemHit; +*************** +*** 5967,5975 **** + /* New way */ + + /* +! * Get first devoice with one button. +! * This will probably be the standad mouse +! * startat head of cursor dev list + * + */ + +--- 5967,5975 ---- + /* New way */ + + /* +! * Get first device with one button. +! * This will probably be the standard mouse +! * start at head of cursor dev list + * + */ + +*************** +*** 6151,6157 **** + } + + /* +! * Convert a FSSpec to a fuill path + */ + + char_u *FullPathFromFSSpec_save(FSSpec file) +--- 6151,6157 ---- + } + + /* +! * Convert a FSSpec to a full path + */ + + char_u *FullPathFromFSSpec_save(FSSpec file) +*************** +*** 6215,6222 **** + + #ifdef USE_UNIXFILENAME + /* +! * The function used here are available in Carbon, but +! * do nothing une MacOS 8 and 9 + */ + if (error == fnfErr) + { +--- 6215,6222 ---- + + #ifdef USE_UNIXFILENAME + /* +! * The functions used here are available in Carbon, but do nothing on +! * MacOS 8 and 9. + */ + if (error == fnfErr) + { +*************** +*** 6544,6550 **** + + // when the tabline is hidden, vim doesn't call update_tabline(). When + // the tabline is shown again, show_tabline() is called before update_tabline(), +! // and because of this, the tab labels and vims internal tabs are out of sync + // for a very short time. to prevent inconsistent state, we store the labels + // of the tabs, not pointers to the tabs (which are invalid for a short time). + static CFStringRef *tabLabels = NULL; +--- 6544,6550 ---- + + // when the tabline is hidden, vim doesn't call update_tabline(). When + // the tabline is shown again, show_tabline() is called before update_tabline(), +! // and because of this, the tab labels and vim's internal tabs are out of sync + // for a very short time. to prevent inconsistent state, we store the labels + // of the tabs, not pointers to the tabs (which are invalid for a short time). + static CFStringRef *tabLabels = NULL; +*************** +*** 6578,6584 **** + + // assert(property == kTabsColumn); // why is this violated?? + +! // changeValue is true if we have a modifieable list and data was changed. + // In our case, it's always false. + // (that is: if (changeValue) updateInternalData(); else return + // internalData(); +--- 6578,6584 ---- + + // assert(property == kTabsColumn); // why is this violated?? + +! // changeValue is true if we have a modifiable list and data was changed. + // In our case, it's always false. + // (that is: if (changeValue) updateInternalData(); else return + // internalData(); +*** ../vim-7.3.924/src/gui_motif.c 2011-01-17 20:08:03.000000000 +0100 +--- src/gui_motif.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1344,1350 **** + else + { + /* Without shadows one can't sense whatever the button has been +! * pressed or not! However we wan't to save a bit of space... + * Need the highlightThickness to see the focus. + */ + XtSetArg(args[n], XmNhighlightThickness, 1); n++; +--- 1344,1350 ---- + else + { + /* Without shadows one can't sense whatever the button has been +! * pressed or not! However we want to save a bit of space... + * Need the highlightThickness to see the focus. + */ + XtSetArg(args[n], XmNhighlightThickness, 1); n++; +*************** +*** 3205,3211 **** + # ifdef FEAT_FOOTER + /* + * The next toolbar enter/leave callbacks should really do balloon help. But +! * I have to use footer help for backwards compatability. Hopefully both will + * get implemented and the user will have a choice. + */ + static void +--- 3205,3211 ---- + # ifdef FEAT_FOOTER + /* + * The next toolbar enter/leave callbacks should really do balloon help. But +! * I have to use footer help for backwards compatibility. Hopefully both will + * get implemented and the user will have a choice. + */ + static void +*** ../vim-7.3.924/src/gui_photon.c 2012-11-20 16:53:34.000000000 +0100 +--- src/gui_photon.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 61,67 **** + static PhPoint_t gui_ph_raw_offset; + static PtWidget_t *gui_ph_timer_cursor; /* handle cursor blinking */ + static PtWidget_t *gui_ph_timer_timeout; /* used in gui_mch_wait_for_chars */ +! static short is_timeout; /* Has the timeout occured? */ + + /* + * This is set inside the mouse callback for a right mouse +--- 61,67 ---- + static PhPoint_t gui_ph_raw_offset; + static PtWidget_t *gui_ph_timer_cursor; /* handle cursor blinking */ + static PtWidget_t *gui_ph_timer_timeout; /* used in gui_mch_wait_for_chars */ +! static short is_timeout; /* Has the timeout occurred? */ + + /* + * This is set inside the mouse callback for a right mouse +*************** +*** 1156,1162 **** + PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0); + + #ifdef USE_PANEL_GROUP +! /* Put in a temprary place holder title */ + PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1); + + gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args); +--- 1156,1162 ---- + PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0); + + #ifdef USE_PANEL_GROUP +! /* Put in a temporary place holder title */ + PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1); + + gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args); +*************** +*** 1527,1533 **** + /* There is one less separator than buttons, so bump up the button count */ + button_count = 1; + +! /* Count string length and number of seperators */ + for (str = buttons; *str; str++) + { + len++; +--- 1527,1533 ---- + /* There is one less separator than buttons, so bump up the button count */ + button_count = 1; + +! /* Count string length and number of separators */ + for (str = buttons; *str; str++) + { + len++; +*** ../vim-7.3.924/src/gui_w16.c 2012-11-20 16:53:34.000000000 +0100 +--- src/gui_w16.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 511,517 **** + workarea_rect.right = GetSystemMetrics(SM_CXSCREEN); + workarea_rect.bottom = GetSystemMetrics(SM_CYFULLSCREEN); + +! /* get current posision of our window */ + wndpl.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(s_hwnd, &wndpl); + if (wndpl.showCmd == SW_SHOWNORMAL) +--- 511,517 ---- + workarea_rect.right = GetSystemMetrics(SM_CXSCREEN); + workarea_rect.bottom = GetSystemMetrics(SM_CYFULLSCREEN); + +! /* get current position of our window */ + wndpl.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(s_hwnd, &wndpl); + if (wndpl.showCmd == SW_SHOWNORMAL) +*************** +*** 1161,1167 **** + return -1; + + /* +! * make a copy of 'buttons' to fiddle with it. complier grizzles because + * vim_strsave() doesn't take a const arg (why not?), so cast away the + * const. + */ +--- 1161,1167 ---- + return -1; + + /* +! * make a copy of 'buttons' to fiddle with it. compiler grizzles because + * vim_strsave() doesn't take a const arg (why not?), so cast away the + * const. + */ +*** ../vim-7.3.924/src/gui_w32.c 2013-03-19 14:48:25.000000000 +0100 +--- src/gui_w32.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1258,1264 **** + + #ifdef FEAT_NETBEANS_INTG + { +! /* stolen from gui_x11.x */ + int arg; + + for (arg = 1; arg < *argc; arg++) +--- 1258,1264 ---- + + #ifdef FEAT_NETBEANS_INTG + { +! /* stolen from gui_x11.c */ + int arg; + + for (arg = 1; arg < *argc; arg++) +*************** +*** 1676,1682 **** + * used by the taskbar or appbars. */ + get_work_area(&workarea_rect); + +! /* Get current posision of our window. Note that the .left and .top are + * relative to the work area. */ + wndpl.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(s_hwnd, &wndpl); +--- 1676,1682 ---- + * used by the taskbar or appbars. */ + get_work_area(&workarea_rect); + +! /* Get current position of our window. Note that the .left and .top are + * relative to the work area. */ + wndpl.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(s_hwnd, &wndpl); +*************** +*** 3100,3106 **** + return -1; + + /* +! * make a copy of 'buttons' to fiddle with it. complier grizzles because + * vim_strsave() doesn't take a const arg (why not?), so cast away the + * const. + */ +--- 3100,3106 ---- + return -1; + + /* +! * make a copy of 'buttons' to fiddle with it. compiler grizzles because + * vim_strsave() doesn't take a const arg (why not?), so cast away the + * const. + */ +*************** +*** 4391,4397 **** + } + + sign.hImage = NULL; +! ext = signfile + STRLEN(signfile) - 4; /* get extention */ + if (ext > signfile) + { + int do_load = 1; +--- 4391,4397 ---- + } + + sign.hImage = NULL; +! ext = signfile + STRLEN(signfile) - 4; /* get extension */ + if (ext > signfile) + { + int do_load = 1; +*** ../vim-7.3.924/src/gui_w48.c 2013-03-19 14:48:25.000000000 +0100 +--- src/gui_w48.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1222,1228 **** + + /* When side scroll bar is unshown, the size of window will change. + * then, the text area move left or right. thus client rect should be +! * forcely redraw. (Yasuhiro Matsumoto) */ + if (oldx != x || oldy != y) + { + InvalidateRect(s_hwnd, NULL, FALSE); +--- 1222,1228 ---- + + /* When side scroll bar is unshown, the size of window will change. + * then, the text area move left or right. thus client rect should be +! * forcedly redrawn. (Yasuhiro Matsumoto) */ + if (oldx != x || oldy != y) + { + InvalidateRect(s_hwnd, NULL, FALSE); +*** ../vim-7.3.924/src/gui_xmebw.c 2012-06-29 13:19:23.000000000 +0200 +--- src/gui_xmebw.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 345,351 **** + &eb->primitive.top_shadow_color, + &eb->primitive.highlight_color); + +! /* Setup color subsititution table. */ + color[0].pixel = eb->core.background_pixel; + color[1].pixel = eb->core.background_pixel; + color[2].pixel = eb->core.background_pixel; +--- 345,351 ---- + &eb->primitive.top_shadow_color, + &eb->primitive.highlight_color); + +! /* Setup color substitution table. */ + color[0].pixel = eb->core.background_pixel; + color[1].pixel = eb->core.background_pixel; + color[2].pixel = eb->core.background_pixel; +*************** +*** 919,926 **** + } + + /* +! * Plase note that we manipulate the width only in case of push buttons not +! * used in the context of a menu pane. + */ + if (Lab_IsMenupane(newtb)) + { +--- 919,926 ---- + } + + /* +! * Please note that we manipulate the width only in case of push buttons +! * not used in the context of a menu pane. + */ + if (Lab_IsMenupane(newtb)) + { +*************** +*** 1006,1012 **** + XmString str; + set_pixmap(eb); + +! /* FIXME: this is not the perfect way to deal with menues, which do not + * have any string set right now. */ + str = XmStringCreateLocalized(""); + XtVaSetValues((Widget) eb, XmNlabelString, str, NULL); +--- 1006,1012 ---- + XmString str; + set_pixmap(eb); + +! /* FIXME: this is not the perfect way to deal with menus, which do not + * have any string set right now. */ + str = XmStringCreateLocalized(""); + XtVaSetValues((Widget) eb, XmNlabelString, str, NULL); +*** ../vim-7.3.924/src/gui_xmebwp.h 2010-08-15 21:57:27.000000000 +0200 +--- src/gui_xmebwp.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 26,32 **** + + + /* +! * EnahncedButton class structure. + */ + typedef struct _XmEnhancedButtonClassPart + { +--- 26,32 ---- + + + /* +! * EnhancedButton class structure. + */ + typedef struct _XmEnhancedButtonClassPart + { +*************** +*** 49,55 **** + extern XmEnhancedButtonClassRec xmEnhancedButtonClassRec; + + /* +! * EnahncedButton instance record. + */ + typedef struct _XmEnhancedButtonPart + { +--- 49,55 ---- + extern XmEnhancedButtonClassRec xmEnhancedButtonClassRec; + + /* +! * EnhancedButton instance record. + */ + typedef struct _XmEnhancedButtonPart + { +*** ../vim-7.3.924/src/hardcopy.c 2011-04-11 21:35:03.000000000 +0200 +--- src/hardcopy.c 2013-05-06 04:00:47.000000000 +0200 +*************** +*** 2186,2192 **** + if (num_copies > 1) + { + prt_write_string(" numcopies("); +! /* Note: no space wanted so dont use prt_write_int() */ + sprintf((char *)prt_line_buffer, "%d", num_copies); + prt_write_file(prt_line_buffer); + prt_write_string(")"); +--- 2186,2192 ---- + if (num_copies > 1) + { + prt_write_string(" numcopies("); +! /* Note: no space wanted so don't use prt_write_int() */ + sprintf((char *)prt_line_buffer, "%d", num_copies); + prt_write_file(prt_line_buffer); + prt_write_string(")"); +*** ../vim-7.3.924/src/if_cscope.c 2011-06-12 21:24:56.000000000 +0200 +--- src/if_cscope.c 2013-05-06 03:58:29.000000000 +0200 +*************** +*** 1192,1200 **** + if (nummatches == NULL) + return FALSE; + +! /* send query to all open connections, then count the total number +! * of matches so we can alloc matchesp all in one swell foop +! */ + for (i = 0; i < csinfo_size; i++) + nummatches[i] = 0; + totmatches = 0; +--- 1192,1199 ---- + if (nummatches == NULL) + return FALSE; + +! /* Send query to all open connections, then count the total number +! * of matches so we can alloc all in one swell foop. */ + for (i = 0; i < csinfo_size; i++) + nummatches[i] = 0; + totmatches = 0; +*** ../vim-7.3.924/src/if_mzsch.c 2013-01-31 21:09:10.000000000 +0100 +--- src/if_mzsch.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 3053,3059 **** + status = FAIL; + else + { +! /* add the value in advance to allow handling of self-referencial + * data structures */ + typval_T *visited_tv = (typval_T *)alloc(sizeof(typval_T)); + copy_tv(tv, visited_tv); +--- 3053,3059 ---- + status = FAIL; + else + { +! /* add the value in advance to allow handling of self-referential + * data structures */ + typval_T *visited_tv = (typval_T *)alloc(sizeof(typval_T)); + copy_tv(tv, visited_tv); +*************** +*** 3088,3094 **** + if (status == FAIL) + break; + } +! /* impoper list not terminated with null + * need to handle the last element */ + if (status == OK && !SCHEME_NULLP(curr)) + { +--- 3088,3094 ---- + if (status == FAIL) + break; + } +! /* improper list not terminated with null + * need to handle the last element */ + if (status == OK && !SCHEME_NULLP(curr)) + { +*************** +*** 3136,3142 **** + { + if (((Scheme_Hash_Table *) obj)->vals[i] != NULL) + { +! /* generate item for `diplay'ed Scheme key */ + dictitem_T *item = dictitem_alloc((char_u *)string_to_line( + ((Scheme_Hash_Table *) obj)->keys[i])); + /* convert Scheme val to Vim and add it to the dict */ +--- 3136,3142 ---- + { + if (((Scheme_Hash_Table *) obj)->vals[i] != NULL) + { +! /* generate item for `display'ed Scheme key */ + dictitem_T *item = dictitem_alloc((char_u *)string_to_line( + ((Scheme_Hash_Table *) obj)->keys[i])); + /* convert Scheme val to Vim and add it to the dict */ +*** ../vim-7.3.924/src/if_ole.cpp 2010-08-15 21:57:32.000000000 +0200 +--- src/if_ole.cpp 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 645,651 **** + CoTaskMemFree(wGUID); + } + +! // Delete a key and all of its descendents + static void RecursiveDeleteKey(HKEY hKeyParent, const char *child) + { + // Open the child +--- 645,651 ---- + CoTaskMemFree(wGUID); + } + +! // Delete a key and all of its descendants + static void RecursiveDeleteKey(HKEY hKeyParent, const char *child) + { + // Open the child +*************** +*** 655,661 **** + if (result != ERROR_SUCCESS) + return; + +! // Enumerate all of the decendents of this child + FILETIME time; + char buffer[1024]; + DWORD size = 1024; +--- 655,661 ---- + if (result != ERROR_SUCCESS) + return; + +! // Enumerate all of the descendants of this child + FILETIME time; + char buffer[1024]; + DWORD size = 1024; +*************** +*** 663,669 **** + while (RegEnumKeyEx(hKeyChild, 0, buffer, &size, NULL, + NULL, NULL, &time) == S_OK) + { +! // Delete the decendents of this child + RecursiveDeleteKey(hKeyChild, buffer); + size = 256; + } +--- 663,669 ---- + while (RegEnumKeyEx(hKeyChild, 0, buffer, &size, NULL, + NULL, NULL, &time) == S_OK) + { +! // Delete the descendants of this child + RecursiveDeleteKey(hKeyChild, buffer); + size = 256; + } +*** ../vim-7.3.924/src/if_perl.xs 2013-03-19 14:25:50.000000000 +0100 +--- src/if_perl.xs 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 657,663 **** + + /* + * perl_win_free +! * Remove all refences to the window to be destroyed + */ + void + perl_win_free(wp) +--- 657,663 ---- + + /* + * perl_win_free +! * Remove all references to the window to be destroyed + */ + void + perl_win_free(wp) +*** ../vim-7.3.924/src/if_py_both.h 2013-05-06 03:52:44.000000000 +0200 +--- src/if_py_both.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 2160,2166 **** + static int + SetBufferLine(buf_T *buf, PyInt n, PyObject *line, PyInt *len_change) + { +! /* First of all, we check the thpe of the supplied Python object. + * There are three cases: + * 1. NULL, or None - this is a deletion. + * 2. A string - this is a replacement. +--- 2160,2166 ---- + static int + SetBufferLine(buf_T *buf, PyInt n, PyObject *line, PyInt *len_change) + { +! /* First of all, we check the type of the supplied Python object. + * There are three cases: + * 1. NULL, or None - this is a deletion. + * 2. A string - this is a replacement. +*************** +*** 2251,2257 **** + static int + SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change) + { +! /* First of all, we check the thpe of the supplied Python object. + * There are three cases: + * 1. NULL, or None - this is a deletion. + * 2. A list - this is a replacement. +--- 2251,2257 ---- + static int + SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change) + { +! /* First of all, we check the type of the supplied Python object. + * There are three cases: + * 1. NULL, or None - this is a deletion. + * 2. A list - this is a replacement. +*************** +*** 2428,2434 **** + } + } + +! /* Insert a number of lines into the specified buffer after the specifed line. + * The line number is in Vim format (1-based). The lines to be inserted are + * given as a Python list of string objects or as a single string. The lines + * to be added are checked for validity and correct format. Errors are +--- 2428,2434 ---- + } + } + +! /* Insert a number of lines into the specified buffer after the specified line. + * The line number is in Vim format (1-based). The lines to be inserted are + * given as a Python list of string objects or as a single string. The lines + * to be added are checked for validity and correct format. Errors are +*************** +*** 2819,2825 **** + return NULL; + } + +! /* Ckeck for keyboard interrupt */ + if (VimErrorCheck()) + return NULL; + +--- 2819,2825 ---- + return NULL; + } + +! /* Check for keyboard interrupt */ + if (VimErrorCheck()) + return NULL; + +*** ../vim-7.3.924/src/if_python.c 2013-05-06 03:52:44.000000000 +0200 +--- src/if_python.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 773,779 **** + + /* Remove the element from sys.path that was added because of our + * argv[0] value in PythonMod_Init(). Previously we used an empty +! * string, but dependinding on the OS we then get an empty entry or + * the current directory in sys.path. */ + PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); + +--- 773,779 ---- + + /* Remove the element from sys.path that was added because of our + * argv[0] value in PythonMod_Init(). Previously we used an empty +! * string, but depending on the OS we then get an empty entry or + * the current directory in sys.path. */ + PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); + +*** ../vim-7.3.924/src/if_python3.c 2013-05-06 03:52:44.000000000 +0200 +--- src/if_python3.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 766,772 **** + + /* Remove the element from sys.path that was added because of our + * argv[0] value in Py3Init_vim(). Previously we used an empty +! * string, but dependinding on the OS we then get an empty entry or + * the current directory in sys.path. + * Only after vim has been imported, the element does exist in + * sys.path. +--- 766,772 ---- + + /* Remove the element from sys.path that was added because of our + * argv[0] value in Py3Init_vim(). Previously we used an empty +! * string, but depending on the OS we then get an empty entry or + * the current directory in sys.path. + * Only after vim has been imported, the element does exist in + * sys.path. +*** ../vim-7.3.924/src/if_ruby.c 2013-04-14 16:18:52.000000000 +0200 +--- src/if_ruby.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 113,119 **** + #endif + + /* +! * Backward compatiblity for Ruby 1.8 and earlier. + * Ruby 1.9 does not provide STR2CSTR, instead StringValuePtr is provided. + * Ruby 1.9 does not provide RXXX(s)->len and RXXX(s)->ptr, instead + * RXXX_LEN(s) and RXXX_PTR(s) are provided. +--- 113,119 ---- + #endif + + /* +! * Backward compatibility for Ruby 1.8 and earlier. + * Ruby 1.9 does not provide STR2CSTR, instead StringValuePtr is provided. + * Ruby 1.9 does not provide RXXX(s)->len and RXXX(s)->ptr, instead + * RXXX_LEN(s) and RXXX_PTR(s) are provided. +*************** +*** 1333,1339 **** + rb_global_variable(&objtbl); + + /* The Vim module used to be called "VIM", but "Vim" is better. Make an +! * alias "VIM" for backwards compatiblity. */ + mVIM = rb_define_module("Vim"); + rb_define_const(rb_cObject, "VIM", mVIM); + rb_define_const(mVIM, "VERSION_MAJOR", INT2NUM(VIM_VERSION_MAJOR)); +--- 1333,1339 ---- + rb_global_variable(&objtbl); + + /* The Vim module used to be called "VIM", but "Vim" is better. Make an +! * alias "VIM" for backwards compatibility. */ + mVIM = rb_define_module("Vim"); + rb_define_const(rb_cObject, "VIM", mVIM); + rb_define_const(mVIM, "VERSION_MAJOR", INT2NUM(VIM_VERSION_MAJOR)); +*** ../vim-7.3.924/src/main.aap 2010-08-15 21:57:28.000000000 +0200 +--- src/main.aap 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1213,1221 **** + :move gui_mac.rsrc.rsrcfork $(RESDIR)/$(VIMNAME).rsrc + + # po/Make_osx.pl says something about generating a Mac message file +! # for Ukrananian. Would somebody using Mac OS X in Ukranian + # *really* be upset that Carbon Vim was not localised in +! # Ukranian? + # + #bundle-language: bundle-dir po/Make_osx.pl + # cd po && perl Make_osx.pl --outdir ../$(RESDIR) $(MULTILANG) +--- 1213,1221 ---- + :move gui_mac.rsrc.rsrcfork $(RESDIR)/$(VIMNAME).rsrc + + # po/Make_osx.pl says something about generating a Mac message file +! # for Ukrainian. Would somebody using Mac OS X in Ukrainian + # *really* be upset that Carbon Vim was not localised in +! # Ukrainian? + # + #bundle-language: bundle-dir po/Make_osx.pl + # cd po && perl Make_osx.pl --outdir ../$(RESDIR) $(MULTILANG) +*** ../vim-7.3.924/src/mbyte.c 2013-02-26 14:56:24.000000000 +0100 +--- src/mbyte.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 903,909 **** + { + switch (enc_dbcs) + { +! /* please add classfy routine for your language in here */ + + case DBCS_JPNU: /* ? */ + case DBCS_JPN: +--- 903,909 ---- + { + switch (enc_dbcs) + { +! /* please add classify routine for your language in here */ + + case DBCS_JPNU: /* ? */ + case DBCS_JPN: +*************** +*** 1003,1009 **** + * 26 : Box Drawings + * 27 : Unit Symbols + * 28 : Circled/Parenthesized Letter +! * 29 : Hirigana/Katakana + * 30 : Cyrillic Letter + */ + +--- 1003,1009 ---- + * 26 : Box Drawings + * 27 : Unit Symbols + * 28 : Circled/Parenthesized Letter +! * 29 : Hiragana/Katakana + * 30 : Cyrillic Letter + */ + +*************** +*** 1054,1060 **** + return 28; + case 0xAA: + case 0xAB: +! /* Hirigana/Katakana */ + return 29; + case 0xAC: + /* Cyrillic Letter */ +--- 1054,1060 ---- + return 28; + case 0xAA: + case 0xAB: +! /* Hiragana/Katakana */ + return 29; + case 0xAC: + /* Cyrillic Letter */ +*************** +*** 4599,4605 **** + } + + /* The thing which setting "preedit_start_col" to MAXCOL means that +! * "preedit_start_col" will be set forcely when calling + * preedit_changed_cb() next time. + * "preedit_start_col" should not reset with MAXCOL on this part. Vim + * is simulating the preediting by using add_to_input_str(). when +--- 4599,4605 ---- + } + + /* The thing which setting "preedit_start_col" to MAXCOL means that +! * "preedit_start_col" will be set forcedly when calling + * preedit_changed_cb() next time. + * "preedit_start_col" should not reset with MAXCOL on this part. Vim + * is simulating the preediting by using add_to_input_str(). when +*** ../vim-7.3.924/src/memfile.c 2011-05-10 16:41:13.000000000 +0200 +--- src/memfile.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 628,634 **** + * sync from the system itself). + */ + # if defined(__EMX__) +! error "Dont use fsync with EMX! Read emxdoc.doc or emxfix01.doc for info." + # endif + if (STRCMP(p_sws, "fsync") == 0) + { +--- 628,634 ---- + * sync from the system itself). + */ + # if defined(__EMX__) +! error "Don't use fsync with EMX! Read emxdoc.doc or emxfix01.doc for info." + # endif + if (STRCMP(p_sws, "fsync") == 0) + { +*************** +*** 1075,1081 **** + if (nr > mfp->mf_infile_count) /* beyond end of file */ + { + nr = mfp->mf_infile_count; +! hp2 = mf_find_hash(mfp, nr); /* NULL catched below */ + } + else + hp2 = hp; +--- 1075,1081 ---- + if (nr > mfp->mf_infile_count) /* beyond end of file */ + { + nr = mfp->mf_infile_count; +! hp2 = mf_find_hash(mfp, nr); /* NULL caught below */ + } + else + hp2 = hp; +*************** +*** 1184,1190 **** + { + new_bnum = freep->bh_bnum; + /* +! * If the page count of the free block was larger, recude it. + * If the page count matches, remove the block from the free list + */ + if (freep->bh_page_count > page_count) +--- 1184,1190 ---- + { + new_bnum = freep->bh_bnum; + /* +! * If the page count of the free block was larger, reduce it. + * If the page count matches, remove the block from the free list + */ + if (freep->bh_page_count > page_count) +*************** +*** 1309,1315 **** + mf_set_ffname(mfp); + #if defined(MSDOS) || defined(MSWIN) + /* +! * A ":!cd e:xxx" may change the directory without us knowning, use the + * full pathname always. Careful: This frees fname! + */ + mf_fullname(mfp); +--- 1309,1315 ---- + mf_set_ffname(mfp); + #if defined(MSDOS) || defined(MSWIN) + /* +! * A ":!cd e:xxx" may change the directory without us knowing, use the + * full pathname always. Careful: This frees fname! + */ + mf_fullname(mfp); +*** ../vim-7.3.924/src/memline.c 2012-10-03 18:24:55.000000000 +0200 +--- src/memline.c 2013-05-06 04:01:02.000000000 +0200 +*************** +*** 3141,3147 **** + ) + set_keep_msg((char_u *)_(no_lines_msg), 0); + +! /* FEAT_BYTEOFF already handled in there, dont worry 'bout it below */ + i = ml_replace((linenr_T)1, (char_u *)"", TRUE); + buf->b_ml.ml_flags |= ML_EMPTY; + +--- 3141,3147 ---- + ) + set_keep_msg((char_u *)_(no_lines_msg), 0); + +! /* FEAT_BYTEOFF already handled in there, don't worry 'bout it below */ + i = ml_replace((linenr_T)1, (char_u *)"", TRUE); + buf->b_ml.ml_flags |= ML_EMPTY; + +*** ../vim-7.3.924/src/misc1.c 2013-05-04 03:40:22.000000000 +0200 +--- src/misc1.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1654,1660 **** + if (vim_iswhite(string[0])) + { + if (i == 0 || !vim_iswhite(line[i - 1])) +! continue; /* missing shite space */ + while (vim_iswhite(string[0])) + ++string; + } +--- 1654,1660 ---- + if (vim_iswhite(string[0])) + { + if (i == 0 || !vim_iswhite(line[i - 1])) +! continue; /* missing white space */ + while (vim_iswhite(string[0])) + ++string; + } +*** ../vim-7.3.924/src/misc2.c 2013-04-12 14:42:35.000000000 +0200 +--- src/misc2.c 2013-05-06 03:59:29.000000000 +0200 +*************** +*** 2907,2913 **** + int modifiers = *modp; + + #ifdef MACOS +! /* Command-key really special, No fancynest */ + if (!(modifiers & MOD_MASK_CMD)) + #endif + if ((modifiers & MOD_MASK_SHIFT) && ASCII_ISALPHA(key)) +--- 2907,2913 ---- + int modifiers = *modp; + + #ifdef MACOS +! /* Command-key really special, no fancynest */ + if (!(modifiers & MOD_MASK_CMD)) + #endif + if ((modifiers & MOD_MASK_SHIFT) && ASCII_ISALPHA(key)) +*************** +*** 2934,2940 **** + key = K_ZERO; + } + #ifdef MACOS +! /* Command-key really special, No fancynest */ + if (!(modifiers & MOD_MASK_CMD)) + #endif + if ((modifiers & MOD_MASK_ALT) && key < 0x80 +--- 2934,2940 ---- + key = K_ZERO; + } + #ifdef MACOS +! /* Command-key really special, no fancynest */ + if (!(modifiers & MOD_MASK_CMD)) + #endif + if ((modifiers & MOD_MASK_ALT) && key < 0x80 +*** ../vim-7.3.924/src/nbdebug.c 2010-08-15 21:57:29.000000000 +0200 +--- src/nbdebug.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 17,23 **** + * debugging startup problems because gvim will be started automatically from + * netbeans and cannot be run directly from a debugger. The only way to debug + * a gvim started by netbeans is by attaching a debugger to it. Without this +! * tool all starup code will have completed before you can get the pid and + * attach. + * + * The second tool is a log tool. +--- 17,23 ---- + * debugging startup problems because gvim will be started automatically from + * netbeans and cannot be run directly from a debugger. The only way to debug + * a gvim started by netbeans is by attaching a debugger to it. Without this +! * tool all startup code will have completed before you can get the pid and + * attach. + * + * The second tool is a log tool. +*** ../vim-7.3.924/src/normal.c 2013-04-24 18:34:40.000000000 +0200 +--- src/normal.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 2513,2519 **** + + #ifndef FEAT_VISUAL + /* +! * ALT is only used for starging/extending Visual mode. + */ + if ((mod_mask & MOD_MASK_ALT)) + return FALSE; +--- 2513,2519 ---- + + #ifndef FEAT_VISUAL + /* +! * ALT is only used for starting/extending Visual mode. + */ + if ((mod_mask & MOD_MASK_ALT)) + return FALSE; +*************** +*** 5084,5090 **** + } + break; + +! /* "zE": erease all folds */ + case 'E': if (foldmethodIsManual(curwin)) + { + clearFolding(curwin); +--- 5084,5090 ---- + } + break; + +! /* "zE": erase all folds */ + case 'E': if (foldmethodIsManual(curwin)) + { + clearFolding(curwin); +*************** +*** 7465,7471 **** + static char_u trans[] = "YyDdCcxdXdAAIIrr"; + + /* Uppercase means linewise, except in block mode, then "D" deletes till +! * the end of the line, and "C" replaces til EOL */ + if (isupper(cap->cmdchar)) + { + if (VIsual_mode != Ctrl_V) +--- 7465,7471 ---- + static char_u trans[] = "YyDdCcxdXdAAIIrr"; + + /* Uppercase means linewise, except in block mode, then "D" deletes till +! * the end of the line, and "C" replaces till EOL */ + if (isupper(cap->cmdchar)) + { + if (VIsual_mode != Ctrl_V) +*************** +*** 8804,8810 **** + * at first, but it's really more what we mean when we say + * 'cw'. + * Another strangeness: When standing on the end of a word +! * "ce" will change until the end of the next wordt, but "cw" + * will change only one character! This is done by setting + * flag. + */ +--- 8804,8810 ---- + * at first, but it's really more what we mean when we say + * 'cw'. + * Another strangeness: When standing on the end of a word +! * "ce" will change until the end of the next word, but "cw" + * will change only one character! This is done by setting + * flag. + */ +*************** +*** 9150,9156 **** + { + int save_State = State; + +! /* Pretent Insert mode here to allow the cursor on the + * character past the end of the line */ + State = INSERT; + coladvance((colnr_T)MAXCOL); +--- 9150,9156 ---- + { + int save_State = State; + +! /* Pretend Insert mode here to allow the cursor on the + * character past the end of the line */ + State = INSERT; + coladvance((colnr_T)MAXCOL); +*************** +*** 9189,9195 **** + { + int save_State = State; + +! /* Pretent Insert mode here to allow the cursor on the + * character past the end of the line */ + State = INSERT; + coladvance(getviscol()); +--- 9189,9195 ---- + { + int save_State = State; + +! /* Pretend Insert mode here to allow the cursor on the + * character past the end of the line */ + State = INSERT; + coladvance(getviscol()); +*** ../vim-7.3.924/src/ops.c 2013-03-13 17:50:20.000000000 +0100 +--- src/ops.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 398,404 **** + #ifdef FEAT_RIGHTLEFT + int old_p_ri = p_ri; + +! p_ri = 0; /* don't want revins in ident */ + #endif + + State = INSERT; /* don't want REPLACE for State */ +--- 398,404 ---- + #ifdef FEAT_RIGHTLEFT + int old_p_ri = p_ri; + +! p_ri = 0; /* don't want revins in indent */ + #endif + + State = INSERT; /* don't want REPLACE for State */ +*** ../vim-7.3.924/src/os_amiga.c 2012-11-20 16:53:34.000000000 +0100 +--- src/os_amiga.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 118,124 **** + } + + /* +! * mch_inchar(): low level input funcion. + * Get a characters from the keyboard. + * If time == 0 do not wait for characters. + * If time == n wait a short time for characters. +--- 118,124 ---- + } + + /* +! * mch_inchar(): low level input function. + * Get a characters from the keyboard. + * If time == 0 do not wait for characters. + * If time == n wait a short time for characters. +*** ../vim-7.3.924/src/os_mac.h 2010-08-15 21:57:32.000000000 +0200 +--- src/os_mac.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 45,51 **** + /* Get stat.h or something similar. Comment: How come some OS get in in vim.h */ + # include + /* && defined(HAVE_CURSE) */ +! /* The curses.h from MacOS X provides by default some BACKWARD compatibilty + * definition which can cause us problem later on. So we undefine a few of them. */ + # include + # undef reg +--- 45,51 ---- + /* Get stat.h or something similar. Comment: How come some OS get in in vim.h */ + # include + /* && defined(HAVE_CURSE) */ +! /* The curses.h from MacOS X provides by default some BACKWARD compatibility + * definition which can cause us problem later on. So we undefine a few of them. */ + # include + # undef reg +*** ../vim-7.3.924/src/os_msdos.c 2012-11-20 16:53:34.000000000 +0100 +--- src/os_msdos.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 702,708 **** + * If Vim should work over the serial line after a 'ctty com1' we must use + * kbhit() and getch(). (jw) + * Usually kbhit() is not used, because then CTRL-C and CTRL-P +! * will be catched by DOS (mool). + * + * return TRUE if a character is available, FALSE otherwise + */ +--- 702,708 ---- + * If Vim should work over the serial line after a 'ctty com1' we must use + * kbhit() and getch(). (jw) + * Usually kbhit() is not used, because then CTRL-C and CTRL-P +! * will be caught by DOS (mool). + * + * return TRUE if a character is available, FALSE otherwise + */ +*************** +*** 971,977 **** + } + + /* +! * mch_inchar(): low level input funcion. + * Get a characters from the keyboard. + * If time == 0 do not wait for characters. + * If time == n wait a short time for characters. +--- 971,977 ---- + } + + /* +! * mch_inchar(): low level input function. + * Get a characters from the keyboard. + * If time == 0 do not wait for characters. + * If time == n wait a short time for characters. +*************** +*** 993,999 **** + + /* + * if we got a ctrl-C when we were busy, there will be a "^C" somewhere +! * on the sceen, so we need to redisplay it. + */ + if (delayed_redraw) + { +--- 993,999 ---- + + /* + * if we got a ctrl-C when we were busy, there will be a "^C" somewhere +! * on the screen, so we need to redisplay it. + */ + if (delayed_redraw) + { +*************** +*** 1745,1751 **** + mch_setmouse(int on) + { + mouse_active = on; +! mouse_hidden = TRUE; /* dont show it until moved */ + } + #endif + +--- 1745,1751 ---- + mch_setmouse(int on) + { + mouse_active = on; +! mouse_hidden = TRUE; /* don't show it until moved */ + } + #endif + +*************** +*** 2438,2444 **** + long start_time; + int tick_count; + +! /* int 02xf, AX = 0x1701 attempts to open the Windows clipboard. Upon + * return from the interrupt, if AX is non-zero, the clipboard was + * successfully opened. If AX is zero, the clipboard could not be opened + * because it is currently in use by another process. +--- 2438,2444 ---- + long start_time; + int tick_count; + +! /* int 0x2f, AX = 0x1701 attempts to open the Windows clipboard. Upon + * return from the interrupt, if AX is non-zero, the clipboard was + * successfully opened. If AX is zero, the clipboard could not be opened + * because it is currently in use by another process. +*************** +*** 2533,2539 **** + { + __dpmi_regs dpmi_regs; + +! /* int 02xf, AX = 0x1702 attempts to empty the Windows clipboard. Upon + * return from the interrupt, if AX == 0, the clipboard could not be + * emptied (for some reason). + */ +--- 2533,2539 ---- + { + __dpmi_regs dpmi_regs; + +! /* int 0x2f, AX = 0x1702 attempts to empty the Windows clipboard. Upon + * return from the interrupt, if AX == 0, the clipboard could not be + * emptied (for some reason). + */ +*************** +*** 2616,2622 **** + case CF_TEXT: /* Windows text */ + case CF_OEMTEXT: /* DOS (OEM) text */ + +! /* int 02xf, AX = 0x1704 returns the number of bytes of data currently + * on the Windows clipboard, for the specified format. Upon return + * from the interrupt, DX:AX = the number of bytes, rounded up to the + * nearest multiple of 32. +--- 2616,2622 ---- + case CF_TEXT: /* Windows text */ + case CF_OEMTEXT: /* DOS (OEM) text */ + +! /* int 0x2f, AX = 0x1704 returns the number of bytes of data currently + * on the Windows clipboard, for the specified format. Upon return + * from the interrupt, DX:AX = the number of bytes, rounded up to the + * nearest multiple of 32. +*************** +*** 2820,2826 **** + clip_data_size); /* how many bytes to copy */ + + /* Send data from the DOS transfer buffer to the Windows clipboard. +! * int 02xf, AX = 0x1703 sends SI:CX bytes of data from the buffer + * at ES:BX, to the clipboard. + */ + dpmi_regs.x.ax = 0x1703; /* send clipboard data */ +--- 2820,2826 ---- + clip_data_size); /* how many bytes to copy */ + + /* Send data from the DOS transfer buffer to the Windows clipboard. +! * int 0x2f, AX = 0x1703 sends SI:CX bytes of data from the buffer + * at ES:BX, to the clipboard. + */ + dpmi_regs.x.ax = 0x1703; /* send clipboard data */ +*** ../vim-7.3.924/src/os_mswin.c 2013-03-19 14:48:25.000000000 +0100 +--- src/os_mswin.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1794,1800 **** + * + * So we create a hidden window, and arrange to destroy it on exit. + */ +! HWND message_window = 0; /* window that's handling messsages */ + + #define VIM_CLASSNAME "VIM_MESSAGES" + #define VIM_CLASSNAME_LEN (sizeof(VIM_CLASSNAME) - 1) +--- 1794,1800 ---- + * + * So we create a hidden window, and arrange to destroy it on exit. + */ +! HWND message_window = 0; /* window that's handling messages */ + + #define VIM_CLASSNAME "VIM_MESSAGES" + #define VIM_CLASSNAME_LEN (sizeof(VIM_CLASSNAME) - 1) +*************** +*** 1857,1863 **** + + static int save_reply(HWND server, char_u *reply, int expr); + +! /*s + * The window procedure for the hidden message window. + * It handles callback messages and notifications from servers. + * In order to process these messages, it is necessary to run a +--- 1857,1863 ---- + + static int save_reply(HWND server, char_u *reply, int expr); + +! /* + * The window procedure for the hidden message window. + * It handles callback messages and notifications from servers. + * In order to process these messages, it is necessary to run a +*************** +*** 2603,2609 **** + + ReleaseDC(hwnd, hdc); + +! /* If we couldn't find a useable font, return failure */ + if (n == 1) + return FAIL; + +--- 2603,2609 ---- + + ReleaseDC(hwnd, hdc); + +! /* If we couldn't find a usable font, return failure */ + if (n == 1) + return FAIL; + +*** ../vim-7.3.924/src/os_win16.h 2012-11-20 16:53:34.000000000 +0100 +--- src/os_win16.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 50,56 **** + #endif + + /* toupper() is not really broken, but it's very slow. Probably because of +! * using unicde characters on Windows NT */ + #define BROKEN_TOUPPER + + #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ +--- 50,56 ---- + #endif + + /* toupper() is not really broken, but it's very slow. Probably because of +! * using unicode characters on Windows NT */ + #define BROKEN_TOUPPER + + #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ +*** ../vim-7.3.924/src/os_win32.c 2013-03-19 14:48:25.000000000 +0100 +--- src/os_win32.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 161,167 **** + + #ifndef PROTO + +! /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE + LRESULT (WINAPI *pDispatchMessage)(CONST MSG *) = DispatchMessage; + BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage; +--- 161,167 ---- + + #ifndef PROTO + +! /* Enable common dialogs input unicode from IME if possible. */ + #ifdef FEAT_MBYTE + LRESULT (WINAPI *pDispatchMessage)(CONST MSG *) = DispatchMessage; + BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage; +*************** +*** 1032,1038 **** + DWORD dwLR = (pmer->dwButtonState & LEFT_RIGHT); + + /* if either left or right button only is pressed, see if the +! * the next mouse event has both of them pressed */ + if (dwLR == LEFT || dwLR == RIGHT) + { + for (;;) +--- 1032,1038 ---- + DWORD dwLR = (pmer->dwButtonState & LEFT_RIGHT); + + /* if either left or right button only is pressed, see if the +! * next mouse event has both of them pressed */ + if (dwLR == LEFT || dwLR == RIGHT) + { + for (;;) +*** ../vim-7.3.924/src/os_win32.h 2013-03-19 14:48:25.000000000 +0100 +--- src/os_win32.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 201,207 **** + + #ifndef PROTO + +! /* Enable common dialogs input unicode from IME if posible. */ + #ifdef FEAT_MBYTE + /* The variables are defined in os_win32.c. */ + extern LRESULT (WINAPI *pDispatchMessage)(CONST MSG *); +--- 201,207 ---- + + #ifndef PROTO + +! /* Enable common dialogs input unicode from IME if possible. */ + #ifdef FEAT_MBYTE + /* The variables are defined in os_win32.c. */ + extern LRESULT (WINAPI *pDispatchMessage)(CONST MSG *); +*** ../vim-7.3.924/src/quickfix.c 2013-03-07 16:32:49.000000000 +0100 +--- src/quickfix.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 3235,3241 **** + mch_dirname(dirname_start, MAXPATHL); + + #ifdef FEAT_AUTOCMD +! /* Remeber the value of qf_start, so that we can check for autocommands + * changing the current quickfix list. */ + cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start; + #endif +--- 3235,3241 ---- + mch_dirname(dirname_start, MAXPATHL); + + #ifdef FEAT_AUTOCMD +! /* Remember the value of qf_start, so that we can check for autocommands + * changing the current quickfix list. */ + cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start; + #endif +*** ../vim-7.3.924/src/screen.c 2013-02-13 12:15:59.000000000 +0100 +--- src/screen.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 4044,4050 **** + + /* If a double-width char doesn't fit at the left side display + * a '<' in the first column. Don't do this for unprintable +! * charactes. */ + if (n_skip > 0 && mb_l > 1 && n_extra == 0) + { + n_extra = 1; +--- 4044,4050 ---- + + /* If a double-width char doesn't fit at the left side display + * a '<' in the first column. Don't do this for unprintable +! * characters. */ + if (n_skip > 0 && mb_l > 1 && n_extra == 0) + { + n_extra = 1; +*** ../vim-7.3.924/src/search.c 2013-04-03 21:14:25.000000000 +0200 +--- src/search.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 73,79 **** + { + char_u *pat; /* the pattern (in allocated memory) or NULL */ + int magic; /* magicness of the pattern */ +! int no_scs; /* no smarcase for this pattern */ + struct soffset off; + }; + +--- 73,79 ---- + { + char_u *pat; /* the pattern (in allocated memory) or NULL */ + int magic; /* magicness of the pattern */ +! int no_scs; /* no smartcase for this pattern */ + struct soffset off; + }; + +*************** +*** 3546,3552 **** + + /* + * Find block under the cursor, cursor at end. +! * "what" and "other" are two matching parenthesis/paren/etc. + */ + int + current_block(oap, count, include, what, other) +--- 3546,3552 ---- + + /* + * Find block under the cursor, cursor at end. +! * "what" and "other" are two matching parenthesis/brace/etc. + */ + int + current_block(oap, count, include, what, other) +*** ../vim-7.3.924/src/spell.c 2012-06-29 12:57:03.000000000 +0200 +--- src/spell.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 4228,4234 **** + ga_init2(&ga, sizeof(langp_T), 2); + clear_midword(wp); + +! /* Make a copy of 'spellang', the SpellFileMissing autocommands may change + * it under our fingers. */ + spl_copy = vim_strsave(wp->w_s->b_p_spl); + if (spl_copy == NULL) +--- 4228,4234 ---- + ga_init2(&ga, sizeof(langp_T), 2); + clear_midword(wp); + +! /* Make a copy of 'spelllang', the SpellFileMissing autocommands may change + * it under our fingers. */ + spl_copy = vim_strsave(wp->w_s->b_p_spl); + if (spl_copy == NULL) +*************** +*** 7645,7651 **** + + /* Compress both trees. Either they both have many nodes, which makes + * compression useful, or one of them is small, which means +! * compression goes fast. But when filling the souldfold word tree + * there is no keep-case tree. */ + wordtree_compress(spin, spin->si_foldroot); + if (affixID >= 0) +--- 7645,7651 ---- + + /* Compress both trees. Either they both have many nodes, which makes + * compression useful, or one of them is small, which means +! * compression goes fast. But when filling the soundfold word tree + * there is no keep-case tree. */ + wordtree_compress(spin, spin->si_foldroot); + if (affixID >= 0) +*************** +*** 8671,8677 **** + unsigned words_done = 0; + int wordcount[MAXWLEN]; + +! /* We use si_foldroot for the souldfolded trie. */ + spin->si_foldroot = wordtree_alloc(spin); + if (spin->si_foldroot == NULL) + return FAIL; +--- 8671,8677 ---- + unsigned words_done = 0; + int wordcount[MAXWLEN]; + +! /* We use si_foldroot for the soundfolded trie. */ + spin->si_foldroot = wordtree_alloc(spin); + if (spin->si_foldroot == NULL) + return FAIL; +*************** +*** 13019,13025 **** + + /* + * Combine the list of suggestions in su->su_ga and su->su_sga. +! * They are intwined. + */ + static void + score_combine(su) +--- 13019,13025 ---- + + /* + * Combine the list of suggestions in su->su_ga and su->su_sga. +! * They are entwined. + */ + static void + score_combine(su) +*************** +*** 13457,13463 **** + + /* Add a small penalty for changing the first letter from + * lower to upper case. Helps for "tath" -> "Kath", which is +! * less common thatn "tath" -> "path". Don't do it when the + * letter is the same, that has already been counted. */ + gc = PTR2CHAR(p); + if (SPELL_ISUPPER(gc)) +--- 13457,13463 ---- + + /* Add a small penalty for changing the first letter from + * lower to upper case. Helps for "tath" -> "Kath", which is +! * less common than "tath" -> "path". Don't do it when the + * letter is the same, that has already been counted. */ + gc = PTR2CHAR(p); + if (SPELL_ISUPPER(gc)) +*** ../vim-7.3.924/src/structs.h 2013-04-15 12:27:30.000000000 +0200 +--- src/structs.h 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 1215,1221 **** + #ifdef FEAT_SYN_HL + hashtab_T b_keywtab; /* syntax keywords hash table */ + hashtab_T b_keywtab_ic; /* idem, ignore case */ +! int b_syn_error; /* TRUE when error occured in HL */ + int b_syn_ic; /* ignore case for :syn cmds */ + int b_syn_spell; /* SYNSPL_ values */ + garray_T b_syn_patterns; /* table for syntax patterns */ +--- 1215,1221 ---- + #ifdef FEAT_SYN_HL + hashtab_T b_keywtab; /* syntax keywords hash table */ + hashtab_T b_keywtab_ic; /* idem, ignore case */ +! int b_syn_error; /* TRUE when error occurred in HL */ + int b_syn_ic; /* ignore case for :syn cmds */ + int b_syn_spell; /* SYNSPL_ values */ + garray_T b_syn_patterns; /* table for syntax patterns */ +*** ../vim-7.3.924/src/syntax.c 2013-05-04 03:42:30.000000000 +0200 +--- src/syntax.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 6069,6075 **** + static int depth = 0; + int r; + +! /* If spp has a "containedin" list and "cur_si" is in it, return TRUE. */ + if (cur_si != NULL && ssp->cont_in_list != NULL + && !(cur_si->si_flags & HL_MATCH)) + { +--- 6069,6075 ---- + static int depth = 0; + int r; + +! /* If ssp has a "containedin" list and "cur_si" is in it, return TRUE. */ + if (cur_si != NULL && ssp->cont_in_list != NULL + && !(cur_si->si_flags & HL_MATCH)) + { +*** ../vim-7.3.924/src/window.c 2013-04-15 15:55:15.000000000 +0200 +--- src/window.c 2013-05-06 04:06:04.000000000 +0200 +*************** +*** 3687,3693 **** + + /* + * Prepare for leaving the current tab page. +! * When autocomands change "curtab" we don't leave the tab page and return + * FAIL. + * Careful: When OK is returned need to get a new tab page very very soon! + */ +--- 3687,3693 ---- + + /* + * Prepare for leaving the current tab page. +! * When autocommands change "curtab" we don't leave the tab page and return + * FAIL. + * Careful: When OK is returned need to get a new tab page very very soon! + */ +*** ../vim-7.3.924/vimtutor.com 2010-08-15 21:57:32.000000000 +0200 +--- vimtutor.com 2013-05-06 04:04:07.000000000 +0200 +*************** +*** 30,36 **** + $ ! + $ if f$search ("vim:vim.exe") .eqs. "" + $ then +! $ write sys$error "Error - Can't run tutoral. VIM not found." + $ exit + $ endif + $ ! +--- 30,36 ---- + $ ! + $ if f$search ("vim:vim.exe") .eqs. "" + $ then +! $ write sys$error "Error - Can't run tutorial. VIM not found." + $ exit + $ endif + $ ! +*** ../vim-7.3.924/src/version.c 2013-05-06 03:52:44.000000000 +0200 +--- src/version.c 2013-05-06 04:03:10.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 925, + /**/ + +-- + A KNIGHT rides into shot and hacks him to the ground. He rides off. + We stay for a moment on the glade. A MIDDLE-AGED LADY in a C. & A. + twin-set emerges from the trees and looks in horror at the body of her + HUSBAND. +MRS HISTORIAN: FRANK! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From e623a34843ada41cbf2eedf0566a04c11f21fb32 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:52 +0200 Subject: [PATCH 268/291] - patchlevel 926 --- 7.3.926 | 905 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 905 insertions(+) create mode 100644 7.3.926 diff --git a/7.3.926 b/7.3.926 new file mode 100644 index 00000000..f0d6cc3e --- /dev/null +++ b/7.3.926 @@ -0,0 +1,905 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.926 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.926 +Problem: Autocommands are triggered by setwinvar() et al. Missing BufEnter + on :tabclose. Duplicate WinEnter on :tabclose. Wrong order of + events for :tablose and :tabnew. +Solution: Fix these autocommand events. (Zyx) +Files: runtime/doc/eval.txt, src/buffer.c, src/eval.c, src/ex_cmds2.c, + src/fileio.c, src/proto/window.pro, src/testdir/test62.in, + src/testdir/test62.ok, src/window.c + + +*** ../vim-7.3.925/runtime/doc/eval.txt 2013-02-20 21:11:14.000000000 +0100 +--- runtime/doc/eval.txt 2013-05-06 04:33:13.000000000 +0200 +*************** +*** 5294,5301 **** + |t:var| + Note that the variable name without "t:" must be used. + Tabs are numbered starting with one. +- Vim briefly goes to the tab page {tabnr}, this may trigger +- TabLeave and TabEnter autocommands. + This function is not available in the |sandbox|. + + settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()* +--- 5320,5325 ---- +*************** +*** 5308,5315 **** + doesn't work for a global or local buffer variable. + For a local buffer option the global value is unchanged. + Note that the variable name without "w:" must be used. +- Vim briefly goes to the tab page {tabnr}, this may trigger +- TabLeave and TabEnter autocommands. + Examples: > + :call settabwinvar(1, 1, "&list", 0) + :call settabwinvar(3, 2, "myvar", "foobar") +--- 5332,5337 ---- +*** ../vim-7.3.925/src/buffer.c 2013-05-06 04:21:35.000000000 +0200 +--- src/buffer.c 2013-05-06 04:33:13.000000000 +0200 +*************** +*** 4551,4557 **** + * When the ":tab" modifier was used do this for all tab pages. + */ + if (had_tab > 0) +! goto_tabpage_tp(first_tabpage, TRUE); + for (;;) + { + tpnext = curtab->tp_next; +--- 4551,4557 ---- + * When the ":tab" modifier was used do this for all tab pages. + */ + if (had_tab > 0) +! goto_tabpage_tp(first_tabpage, TRUE, TRUE); + for (;;) + { + tpnext = curtab->tp_next; +*************** +*** 4663,4669 **** + if (!valid_tabpage(tpnext)) + tpnext = first_tabpage; /* start all over...*/ + # endif +! goto_tabpage_tp(tpnext, TRUE); + } + + /* +--- 4663,4669 ---- + if (!valid_tabpage(tpnext)) + tpnext = first_tabpage; /* start all over...*/ + # endif +! goto_tabpage_tp(tpnext, TRUE, TRUE); + } + + /* +*************** +*** 4767,4779 **** + if (last_curtab != new_curtab) + { + if (valid_tabpage(last_curtab)) +! goto_tabpage_tp(last_curtab, TRUE); + if (win_valid(last_curwin)) + win_enter(last_curwin, FALSE); + } + /* to window with first arg */ + if (valid_tabpage(new_curtab)) +! goto_tabpage_tp(new_curtab, TRUE); + if (win_valid(new_curwin)) + win_enter(new_curwin, FALSE); + +--- 4767,4779 ---- + if (last_curtab != new_curtab) + { + if (valid_tabpage(last_curtab)) +! goto_tabpage_tp(last_curtab, TRUE, TRUE); + if (win_valid(last_curwin)) + win_enter(last_curwin, FALSE); + } + /* to window with first arg */ + if (valid_tabpage(new_curtab)) +! goto_tabpage_tp(new_curtab, TRUE, TRUE); + if (win_valid(new_curwin)) + win_enter(new_curwin, FALSE); + +*************** +*** 4825,4831 **** + */ + #ifdef FEAT_WINDOWS + if (had_tab > 0) +! goto_tabpage_tp(first_tabpage, TRUE); + for (;;) + { + #endif +--- 4825,4831 ---- + */ + #ifdef FEAT_WINDOWS + if (had_tab > 0) +! goto_tabpage_tp(first_tabpage, TRUE, TRUE); + for (;;) + { + #endif +*************** +*** 4865,4871 **** + /* Without the ":tab" modifier only do the current tab page. */ + if (had_tab == 0 || tpnext == NULL) + break; +! goto_tabpage_tp(tpnext, TRUE); + } + #endif + +--- 4865,4871 ---- + /* Without the ":tab" modifier only do the current tab page. */ + if (had_tab == 0 || tpnext == NULL) + break; +! goto_tabpage_tp(tpnext, TRUE, TRUE); + } + #endif + +*** ../vim-7.3.925/src/eval.c 2013-05-06 04:21:35.000000000 +0200 +--- src/eval.c 2013-05-06 04:33:13.000000000 +0200 +*************** +*** 16604,16610 **** + if (tp != NULL && varname != NULL && varp != NULL) + { + save_curtab = curtab; +! goto_tabpage_tp(tp, TRUE); + + tabvarname = alloc((unsigned)STRLEN(varname) + 3); + if (tabvarname != NULL) +--- 16604,16610 ---- + if (tp != NULL && varname != NULL && varp != NULL) + { + save_curtab = curtab; +! goto_tabpage_tp(tp, FALSE, FALSE); + + tabvarname = alloc((unsigned)STRLEN(varname) + 3); + if (tabvarname != NULL) +*************** +*** 16617,16623 **** + + /* Restore current tabpage */ + if (valid_tabpage(save_curtab)) +! goto_tabpage_tp(save_curtab, TRUE); + } + } + +--- 16617,16623 ---- + + /* Restore current tabpage */ + if (valid_tabpage(save_curtab)) +! goto_tabpage_tp(save_curtab, FALSE, FALSE); + } + } + +*************** +*** 16654,16660 **** + /* set curwin to be our win, temporarily */ + *save_curwin = curwin; + *save_curtab = curtab; +! goto_tabpage_tp(tp, TRUE); + if (!win_valid(win)) + return FAIL; + curwin = win; +--- 16654,16660 ---- + /* set curwin to be our win, temporarily */ + *save_curwin = curwin; + *save_curtab = curtab; +! goto_tabpage_tp(tp, FALSE, FALSE); + if (!win_valid(win)) + return FAIL; + curwin = win; +*************** +*** 16672,16678 **** + /* Restore current tabpage and window, if still valid (autocommands can + * make them invalid). */ + if (valid_tabpage(save_curtab)) +! goto_tabpage_tp(save_curtab, TRUE); + if (win_valid(save_curwin)) + { + curwin = save_curwin; +--- 16672,16678 ---- + /* Restore current tabpage and window, if still valid (autocommands can + * make them invalid). */ + if (valid_tabpage(save_curtab)) +! goto_tabpage_tp(save_curtab, FALSE, FALSE); + if (win_valid(save_curwin)) + { + curwin = save_curwin; +*** ../vim-7.3.925/src/ex_cmds2.c 2013-05-06 04:21:35.000000000 +0200 +--- src/ex_cmds2.c 2013-05-06 04:33:13.000000000 +0200 +*************** +*** 2482,2488 **** + /* go to window "tp" */ + if (!valid_tabpage(tp)) + break; +! goto_tabpage_tp(tp, TRUE); + tp = tp->tp_next; + } + #endif +--- 2482,2488 ---- + /* go to window "tp" */ + if (!valid_tabpage(tp)) + break; +! goto_tabpage_tp(tp, TRUE, TRUE); + tp = tp->tp_next; + } + #endif +*** ../vim-7.3.925/src/fileio.c 2013-05-06 04:21:35.000000000 +0200 +--- src/fileio.c 2013-05-06 04:33:13.000000000 +0200 +*************** +*** 8934,8940 **** + if (wp == aucmd_win) + { + if (tp != curtab) +! goto_tabpage_tp(tp, TRUE); + win_goto(aucmd_win); + goto win_found; + } +--- 8934,8940 ---- + if (wp == aucmd_win) + { + if (tp != curtab) +! goto_tabpage_tp(tp, TRUE, TRUE); + win_goto(aucmd_win); + goto win_found; + } +*** ../vim-7.3.925/src/proto/window.pro 2012-07-19 18:05:40.000000000 +0200 +--- src/proto/window.pro 2013-05-06 04:33:13.000000000 +0200 +*************** +*** 27,33 **** + tabpage_T *find_tabpage __ARGS((int n)); + int tabpage_index __ARGS((tabpage_T *ftp)); + void goto_tabpage __ARGS((int n)); +! void goto_tabpage_tp __ARGS((tabpage_T *tp, int trigger_autocmds)); + void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp)); + void tabpage_move __ARGS((int nr)); + void win_goto __ARGS((win_T *wp)); +--- 27,33 ---- + tabpage_T *find_tabpage __ARGS((int n)); + int tabpage_index __ARGS((tabpage_T *ftp)); + void goto_tabpage __ARGS((int n)); +! void goto_tabpage_tp __ARGS((tabpage_T *tp, int trigger_enter_autocmds, int trigger_leave_autocmds)); + void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp)); + void tabpage_move __ARGS((int nr)); + void win_goto __ARGS((win_T *wp)); +*** ../vim-7.3.925/src/testdir/test62.in 2012-07-06 18:27:34.000000000 +0200 +--- src/testdir/test62.in 2013-05-06 04:35:08.000000000 +0200 +*************** +*** 120,125 **** +--- 120,187 ---- + :endtry + i=a  + :" ++ :" Test autocommands ++ :tabonly! ++ :let g:r=[] ++ :command -nargs=1 -bar C :call add(g:r, '=== ' . . ' ===')| ++ :function Test() ++ let hasau=has('autocmd') ++ if hasau ++ autocmd TabEnter * :call add(g:r, 'TabEnter') ++ autocmd WinEnter * :call add(g:r, 'WinEnter') ++ autocmd BufEnter * :call add(g:r, 'BufEnter') ++ autocmd TabLeave * :call add(g:r, 'TabLeave') ++ autocmd WinLeave * :call add(g:r, 'WinLeave') ++ autocmd BufLeave * :call add(g:r, 'BufLeave') ++ endif ++ let t:a='a' ++ C tab split ++ if !hasau ++ let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'] ++ endif ++ let t:a='b' ++ C tabnew ++ if !hasau ++ let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'] ++ endif ++ let t:a='c' ++ call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")'))) ++ C call map(range(1, tabpagenr('$')), 'settabvar(v:val, "a", v:val*2)') ++ call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")'))) ++ let w:a='a' ++ C vsplit ++ if !hasau ++ let g:r+=['WinLeave', 'WinEnter'] ++ endif ++ let w:a='a' ++ let tabn=tabpagenr() ++ let winr=range(1, winnr('$')) ++ C tabnext 1 ++ if !hasau ++ let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'] ++ endif ++ call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")'))) ++ C call map(copy(winr), 'settabwinvar('.tabn.', v:val, "a", v:val*2)') ++ call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")'))) ++ if hasau ++ augroup TabDestructive ++ autocmd TabEnter * :C tabnext 2 | C tabclose 3 ++ augroup END ++ C tabnext 3 ++ let g:r+=[tabpagenr().'/'.tabpagenr('$')] ++ autocmd! TabDestructive TabEnter ++ C tabnew ++ C tabnext 1 ++ autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3 ++ C tabnext 3 ++ let g:r+=[tabpagenr().'/'.tabpagenr('$')] ++ else ++ let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] ++ endif ++ endfunction ++ :call Test() ++ :$ put =g:r ++ :" + :" + :/^Results/,$w! test.out + :qa! +*** ../vim-7.3.925/src/testdir/test62.ok 2012-07-06 18:27:34.000000000 +0200 +--- src/testdir/test62.ok 2013-05-06 04:35:08.000000000 +0200 +*************** +*** 18,20 **** +--- 18,88 ---- + 4 + 6 + E474 caught. ++ === tab split === ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ === tabnew === ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ BufLeave ++ BufEnter ++ a b c ++ === call map(range(1, tabpagenr('$')), 'settabvar(v:val, === ++ a b c ++ === vsplit === ++ WinLeave ++ WinEnter ++ === tabnext 1 === ++ BufLeave ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ BufEnter ++ a a ++ === call map(copy(winr), 'settabwinvar('.tabn.', v:val, === ++ a a ++ === tabnext 3 === ++ BufLeave ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ === tabnext 2 === ++ === tabclose 3 === ++ 2/2 ++ === tabnew === ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ BufLeave ++ BufEnter ++ === tabnext 1 === ++ BufLeave ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ BufEnter ++ === tabnext 3 === ++ BufLeave ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ === tabnext 2 === ++ BufLeave ++ WinLeave ++ TabLeave ++ WinEnter ++ TabEnter ++ === tabnext 2 === ++ === tabclose 3 === ++ BufEnter ++ === tabclose 3 === ++ 2/2 +*** ../vim-7.3.925/src/window.c 2013-05-06 04:21:35.000000000 +0200 +--- src/window.c 2013-05-06 04:47:06.000000000 +0200 +*************** +*** 44,54 **** + static void new_frame __ARGS((win_T *wp)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static tabpage_T *alloc_tabpage __ARGS((void)); +! static int leave_tabpage __ARGS((buf_T *new_curbuf)); +! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf, int trigger_autocmds)); + static void frame_fix_height __ARGS((win_T *wp)); + static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin)); +! static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin)); + static void win_free __ARGS((win_T *wp, tabpage_T *tp)); + static void frame_append __ARGS((frame_T *after, frame_T *frp)); + static void frame_insert __ARGS((frame_T *before, frame_T *frp)); +--- 44,54 ---- + static void new_frame __ARGS((win_T *wp)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static tabpage_T *alloc_tabpage __ARGS((void)); +! static int leave_tabpage __ARGS((buf_T *new_curbuf, int trigger_leave_autocmds)); +! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf, int trigger_enter_autocmds, int trigger_leave_autocmds)); + static void frame_fix_height __ARGS((win_T *wp)); + static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin)); +! static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin, int trigger_enter_autocmds, int trigger_leave_autocmds)); + static void win_free __ARGS((win_T *wp, tabpage_T *tp)); + static void frame_append __ARGS((frame_T *after, frame_T *frp)); + static void frame_insert __ARGS((frame_T *before, frame_T *frp)); +*************** +*** 353,363 **** + && valid_tabpage(oldtab)) + { + newtab = curtab; +! goto_tabpage_tp(oldtab, TRUE); + if (curwin == wp) + win_close(curwin, FALSE); + if (valid_tabpage(newtab)) +! goto_tabpage_tp(newtab, TRUE); + } + } + break; +--- 353,363 ---- + && valid_tabpage(oldtab)) + { + newtab = curtab; +! goto_tabpage_tp(oldtab, TRUE, TRUE); + if (curwin == wp) + win_close(curwin, FALSE); + if (valid_tabpage(newtab)) +! goto_tabpage_tp(newtab, TRUE, TRUE); + } + } + break; +*************** +*** 2124,2129 **** +--- 2124,2131 ---- + { + if (firstwin == lastwin) + { ++ buf_T *old_curbuf = curbuf; ++ + /* + * Closing the last window in a tab page. First go to another tab + * page and then close the window and the tab page. This avoids that +*************** +*** 2132,2138 **** + * Don't trigger autocommands yet, they may use wrong values, so do + * that below. + */ +! goto_tabpage_tp(alt_tabpage(), FALSE); + redraw_tabline = TRUE; + + /* Safety check: Autocommands may have closed the window when jumping +--- 2134,2140 ---- + * Don't trigger autocommands yet, they may use wrong values, so do + * that below. + */ +! goto_tabpage_tp(alt_tabpage(), FALSE, TRUE); + redraw_tabline = TRUE; + + /* Safety check: Autocommands may have closed the window when jumping +*************** +*** 2148,2155 **** + /* Since goto_tabpage_tp above did not trigger *Enter autocommands, do + * that now. */ + #ifdef FEAT_AUTOCMD +- apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); + apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); + #endif + return TRUE; + } +--- 2150,2159 ---- + /* Since goto_tabpage_tp above did not trigger *Enter autocommands, do + * that now. */ + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); ++ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); ++ if (old_curbuf != curbuf) ++ apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); + #endif + return TRUE; + } +*************** +*** 2341,2347 **** + win_comp_pos(); + if (close_curwin) + { +! win_enter_ext(wp, FALSE, TRUE); + #ifdef FEAT_AUTOCMD + if (other_buffer) + /* careful: after this wp and win may be invalid! */ +--- 2345,2351 ---- + win_comp_pos(); + if (close_curwin) + { +! win_enter_ext(wp, FALSE, TRUE, TRUE, TRUE); + #ifdef FEAT_AUTOCMD + if (other_buffer) + /* careful: after this wp and win may be invalid! */ +*************** +*** 3529,3535 **** + return FAIL; + + /* Remember the current windows in this Tab page. */ +! if (leave_tabpage(curbuf) == FAIL) + { + vim_free(newtp); + return FAIL; +--- 3533,3539 ---- + return FAIL; + + /* Remember the current windows in this Tab page. */ +! if (leave_tabpage(curbuf, TRUE) == FAIL) + { + vim_free(newtp); + return FAIL; +*************** +*** 3574,3587 **** + + redraw_all_later(CLEAR); + #ifdef FEAT_AUTOCMD +- apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); + apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); + #endif + return OK; + } + + /* Failed, get back the previous Tab page */ +! enter_tabpage(curtab, curbuf, TRUE); + return FAIL; + } + +--- 3578,3591 ---- + + redraw_all_later(CLEAR); + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); ++ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); + #endif + return OK; + } + + /* Failed, get back the previous Tab page */ +! enter_tabpage(curtab, curbuf, TRUE, TRUE); + return FAIL; + } + +*************** +*** 3692,3700 **** + * Careful: When OK is returned need to get a new tab page very very soon! + */ + static int +! leave_tabpage(new_curbuf) + buf_T *new_curbuf UNUSED; /* what is going to be the new curbuf, + NULL if unknown */ + { + tabpage_T *tp = curtab; + +--- 3696,3705 ---- + * Careful: When OK is returned need to get a new tab page very very soon! + */ + static int +! leave_tabpage(new_curbuf, trigger_leave_autocmds) + buf_T *new_curbuf UNUSED; /* what is going to be the new curbuf, + NULL if unknown */ ++ int trigger_leave_autocmds UNUSED; + { + tabpage_T *tp = curtab; + +*************** +*** 3702,3719 **** + reset_VIsual_and_resel(); /* stop Visual mode */ + #endif + #ifdef FEAT_AUTOCMD +! if (new_curbuf != curbuf) + { +! apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); + if (curtab != tp) + return FAIL; + } +- apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf); +- if (curtab != tp) +- return FAIL; +- apply_autocmds(EVENT_TABLEAVE, NULL, NULL, FALSE, curbuf); +- if (curtab != tp) +- return FAIL; + #endif + #if defined(FEAT_GUI) + /* Remove the scrollbars. They may be added back later. */ +--- 3707,3727 ---- + reset_VIsual_and_resel(); /* stop Visual mode */ + #endif + #ifdef FEAT_AUTOCMD +! if (trigger_leave_autocmds) + { +! if (new_curbuf != curbuf) +! { +! apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); +! if (curtab != tp) +! return FAIL; +! } +! apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf); +! if (curtab != tp) +! return FAIL; +! apply_autocmds(EVENT_TABLEAVE, NULL, NULL, FALSE, curbuf); + if (curtab != tp) + return FAIL; + } + #endif + #if defined(FEAT_GUI) + /* Remove the scrollbars. They may be added back later. */ +*************** +*** 3734,3746 **** + /* + * Start using tab page "tp". + * Only to be used after leave_tabpage() or freeing the current tab page. +! * Only trigger *Enter autocommands when trigger_autocmds is TRUE. + */ + static void +! enter_tabpage(tp, old_curbuf, trigger_autocmds) + tabpage_T *tp; + buf_T *old_curbuf UNUSED; +! int trigger_autocmds UNUSED; + { + int old_off = tp->tp_firstwin->w_winrow; + win_T *next_prevwin = tp->tp_prevwin; +--- 3742,3756 ---- + /* + * Start using tab page "tp". + * Only to be used after leave_tabpage() or freeing the current tab page. +! * Only trigger *Enter autocommands when trigger_enter_autocmds is TRUE. +! * Only trigger *Leave autocommands when trigger_leave_autocmds is TRUE. + */ + static void +! enter_tabpage(tp, old_curbuf, trigger_enter_autocmds, trigger_leave_autocmds) + tabpage_T *tp; + buf_T *old_curbuf UNUSED; +! int trigger_enter_autocmds UNUSED; +! int trigger_leave_autocmds UNUSED; + { + int old_off = tp->tp_firstwin->w_winrow; + win_T *next_prevwin = tp->tp_prevwin; +*************** +*** 3753,3759 **** + /* We would like doing the TabEnter event first, but we don't have a + * valid current window yet, which may break some commands. + * This triggers autocommands, thus may make "tp" invalid. */ +! win_enter_ext(tp->tp_curwin, FALSE, TRUE); + prevwin = next_prevwin; + + last_status(FALSE); /* status line may appear or disappear */ +--- 3763,3769 ---- + /* We would like doing the TabEnter event first, but we don't have a + * valid current window yet, which may break some commands. + * This triggers autocommands, thus may make "tp" invalid. */ +! win_enter_ext(tp->tp_curwin, FALSE, TRUE, trigger_enter_autocmds, trigger_leave_autocmds); + prevwin = next_prevwin; + + last_status(FALSE); /* status line may appear or disappear */ +*************** +*** 3788,3794 **** + #ifdef FEAT_AUTOCMD + /* Apply autocommands after updating the display, when 'rows' and + * 'columns' have been set correctly. */ +! if (trigger_autocmds) + { + apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); + if (old_curbuf != curbuf) +--- 3798,3804 ---- + #ifdef FEAT_AUTOCMD + /* Apply autocommands after updating the display, when 'rows' and + * 'columns' have been set correctly. */ +! if (trigger_enter_autocmds) + { + apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); + if (old_curbuf != curbuf) +*************** +*** 3869,3875 **** + } + } + +! goto_tabpage_tp(tp, TRUE); + + #ifdef FEAT_GUI_TABLINE + if (gui_use_tabline()) +--- 3879,3885 ---- + } + } + +! goto_tabpage_tp(tp, TRUE, TRUE); + + #ifdef FEAT_GUI_TABLINE + if (gui_use_tabline()) +*************** +*** 3879,3901 **** + + /* + * Go to tabpage "tp". +! * Only trigger *Enter autocommands when trigger_autocmds is TRUE. + * Note: doesn't update the GUI tab. + */ + void +! goto_tabpage_tp(tp, trigger_autocmds) + tabpage_T *tp; +! int trigger_autocmds; + { + /* Don't repeat a message in another tab page. */ + set_keep_msg(NULL, 0); + +! if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK) + { + if (valid_tabpage(tp)) +! enter_tabpage(tp, curbuf, trigger_autocmds); + else +! enter_tabpage(curtab, curbuf, trigger_autocmds); + } + } + +--- 3889,3916 ---- + + /* + * Go to tabpage "tp". +! * Only trigger *Enter autocommands when trigger_enter_autocmds is TRUE. +! * Only trigger *Leave autocommands when trigger_leave_autocmds is TRUE. + * Note: doesn't update the GUI tab. + */ + void +! goto_tabpage_tp(tp, trigger_enter_autocmds, trigger_leave_autocmds) + tabpage_T *tp; +! int trigger_enter_autocmds; +! int trigger_leave_autocmds; + { + /* Don't repeat a message in another tab page. */ + set_keep_msg(NULL, 0); + +! if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer, +! trigger_leave_autocmds) == OK) + { + if (valid_tabpage(tp)) +! enter_tabpage(tp, curbuf, trigger_enter_autocmds, +! trigger_leave_autocmds); + else +! enter_tabpage(curtab, curbuf, trigger_enter_autocmds, +! trigger_leave_autocmds); + } + } + +*************** +*** 3908,3914 **** + tabpage_T *tp; + win_T *wp; + { +! goto_tabpage_tp(tp, TRUE); + if (curtab == tp && win_valid(wp)) + { + win_enter(wp, TRUE); +--- 3923,3929 ---- + tabpage_T *tp; + win_T *wp; + { +! goto_tabpage_tp(tp, TRUE, TRUE); + if (curtab == tp && win_valid(wp)) + { + win_enter(wp, TRUE); +*************** +*** 4168,4174 **** + win_T *wp; + int undo_sync; + { +! win_enter_ext(wp, undo_sync, FALSE); + } + + /* +--- 4183,4189 ---- + win_T *wp; + int undo_sync; + { +! win_enter_ext(wp, undo_sync, FALSE, TRUE, TRUE); + } + + /* +*************** +*** 4177,4186 **** + * been closed and isn't valid. + */ + static void +! win_enter_ext(wp, undo_sync, curwin_invalid) + win_T *wp; + int undo_sync; + int curwin_invalid; + { + #ifdef FEAT_AUTOCMD + int other_buffer = FALSE; +--- 4192,4203 ---- + * been closed and isn't valid. + */ + static void +! win_enter_ext(wp, undo_sync, curwin_invalid, trigger_enter_autocmds, trigger_leave_autocmds) + win_T *wp; + int undo_sync; + int curwin_invalid; ++ int trigger_enter_autocmds UNUSED; ++ int trigger_leave_autocmds UNUSED; + { + #ifdef FEAT_AUTOCMD + int other_buffer = FALSE; +*************** +*** 4190,4196 **** + return; + + #ifdef FEAT_AUTOCMD +! if (!curwin_invalid) + { + /* + * Be careful: If autocommands delete the window, return now. +--- 4207,4213 ---- + return; + + #ifdef FEAT_AUTOCMD +! if (!curwin_invalid && trigger_leave_autocmds) + { + /* + * Be careful: If autocommands delete the window, return now. +*************** +*** 4259,4267 **** + } + + #ifdef FEAT_AUTOCMD +! apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); +! if (other_buffer) +! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); + #endif + + #ifdef FEAT_TITLE +--- 4276,4287 ---- + } + + #ifdef FEAT_AUTOCMD +! if (trigger_enter_autocmds) +! { +! apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); +! if (other_buffer) +! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); +! } + #endif + + #ifdef FEAT_TITLE +*** ../vim-7.3.925/src/version.c 2013-05-06 04:21:35.000000000 +0200 +--- src/version.c 2013-05-06 04:40:52.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 926, + /**/ + +-- + Bravely bold Sir Robin, rode forth from Camelot, + He was not afraid to die, Oh Brave Sir Robin, + He was not at all afraid to be killed in nasty ways + Brave, brave, brave, brave Sir Robin. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 497e5d7e5442aa3a9209a63cc23a7397fee84802 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:53 +0200 Subject: [PATCH 269/291] - patchlevel 927 --- 7.3.927 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 7.3.927 diff --git a/7.3.927 b/7.3.927 new file mode 100644 index 00000000..4add389c --- /dev/null +++ b/7.3.927 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.927 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.927 +Problem: Missing combining characters when putting text in a register. +Solution: Include combining characters. (Christian Brabandt) +Files: src/getchar.c, src/testdir/test44.in, src/testdir/test44.ok + + +*** ../vim-7.3.926/src/getchar.c 2013-04-15 15:47:07.000000000 +0200 +--- src/getchar.c 2013-05-06 05:06:13.000000000 +0200 +*************** +*** 4616,4624 **** +--- 4616,4636 ---- + } + else + { ++ #ifdef FEAT_MBYTE ++ int len = mb_char2len(PTR2CHAR(s)); ++ int len2 = mb_ptr2len(s); ++ #endif + /* Add character, possibly multi-byte to destination, escaping + * CSI and K_SPECIAL. */ + d = add_char2buf(PTR2CHAR(s), d); ++ #ifdef FEAT_MBYTE ++ while (len < len2) ++ { ++ /* add following combining char */ ++ d = add_char2buf(PTR2CHAR(s + len), d); ++ len += mb_char2len(PTR2CHAR(s + len)); ++ } ++ #endif + mb_ptr_adv(s); + } + } +*** ../vim-7.3.926/src/testdir/test44.in 2013-01-23 16:43:07.000000000 +0100 +--- src/testdir/test44.in 2013-05-06 05:01:39.000000000 +0200 +*************** +*** 32,38 **** + x:" Test backwards search from a multi-byte char + /x + x?. +! x:?^1?,$w! test.out + :e! test.out + G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב + :put =matchstr(\"×בגד\", \"..\", 0, 2) " בג +--- 32,40 ---- + x:" Test backwards search from a multi-byte char + /x + x?. +! x:let @w=':%s#comb[i]nations#œ̄ṣÌm̥̄ᾱ̆Ì#g' +! :@w +! :?^1?,$w! test.out + :e! test.out + G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב + :put =matchstr(\"×בגד\", \"..\", 0, 2) " בג +*************** +*** 61,63 **** +--- 63,66 ---- + h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÃ’Ã“Ã”Ã•Ã–Ã˜ÅŒÅŽÅÆ Ç‘ǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº” + i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅőơǒǫǭỠpṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ + j 0123â¤x ++ k combinations +*** ../vim-7.3.926/src/testdir/test44.ok 2013-01-23 16:43:07.000000000 +0100 +--- src/testdir/test44.ok 2013-05-06 05:01:39.000000000 +0200 +*************** +*** 17,22 **** +--- 17,23 ---- + h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÃ’Ã“Ã”Ã•Ã–Ã˜ÅŒÅŽÅÆ Ç‘ǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵẠ+ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅőơǒǫǭỠpṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ + j 012⤠++ k œ̄ṣÌmÌ¥Ì„Î±Ì„Ì†Ì + ב + בג + × +*** ../vim-7.3.926/src/version.c 2013-05-06 04:50:26.000000000 +0200 +--- src/version.c 2013-05-06 05:08:11.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 927, + /**/ + +-- +In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975 +of them are to be found in the United States. + + /// 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 /// From ab10fac225eefaa7e5dcb88956ee1ecb27bf4fa4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:54 +0200 Subject: [PATCH 270/291] - patchlevel 928 --- 7.3.928 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.3.928 diff --git a/7.3.928 b/7.3.928 new file mode 100644 index 00000000..764e7051 --- /dev/null +++ b/7.3.928 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.928 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.928 (after 7.3.924) +Problem: Can't build with strict C compiler. +Solution: Move declaration to start of block. (Taro Muraoka) +Files: src/if_py_both.h + + +*** ../vim-7.3.927/src/if_py_both.h 2013-05-06 04:21:35.000000000 +0200 +--- src/if_py_both.h 2013-05-06 06:21:55.000000000 +0200 +*************** +*** 1521,1532 **** + int flags; + long numval; + char_u *stringval; + + if (this->Check(this->from)) + return NULL; + +- DICTKEY_DECL +- + DICTKEY_GET_NOTEMPTY(NULL) + + flags = get_option_value_strict(key, &numval, &stringval, +--- 1521,1531 ---- + int flags; + long numval; + char_u *stringval; ++ DICTKEY_DECL + + if (this->Check(this->from)) + return NULL; + + DICTKEY_GET_NOTEMPTY(NULL) + + flags = get_option_value_strict(key, &numval, &stringval, +*************** +*** 1616,1627 **** + int flags; + int opt_flags; + int r = 0; + + if (this->Check(this->from)) + return -1; + +- DICTKEY_DECL +- + DICTKEY_GET_NOTEMPTY(-1) + + flags = get_option_value_strict(key, NULL, NULL, +--- 1615,1625 ---- + int flags; + int opt_flags; + int r = 0; ++ DICTKEY_DECL + + if (this->Check(this->from)) + return -1; + + DICTKEY_GET_NOTEMPTY(-1) + + flags = get_option_value_strict(key, NULL, NULL, +*** ../vim-7.3.927/src/version.c 2013-05-06 05:50:22.000000000 +0200 +--- src/version.c 2013-05-06 06:22:57.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 928, + /**/ + +-- +press CTRL-ALT-DEL for more information + + /// 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 /// From fe46cb6b778a3958e47b5940e2612b551e4f27b2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:55 +0200 Subject: [PATCH 271/291] - patchlevel 929 --- 7.3.929 | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 7.3.929 diff --git a/7.3.929 b/7.3.929 new file mode 100644 index 00000000..adf5d6e2 --- /dev/null +++ b/7.3.929 @@ -0,0 +1,178 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.929 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.929 (after 7.3.924) +Problem: Compiler warning for unused variable. Not freeing unused string. +Solution: Remove the variable. Clear the options. +Files: src/option.c + + +*** ../vim-7.3.928/src/option.c 2013-05-06 03:52:44.000000000 +0200 +--- src/option.c 2013-05-06 06:42:03.000000000 +0200 +*************** +*** 9705,9713 **** + { + struct vimoption *p; + int opt_idx; +! +! buf_T *buf = (buf_T *) from; +! win_T *win = (win_T *) from; + + opt_idx = findoption(name); + p = &(options[opt_idx]); +--- 9705,9711 ---- + { + struct vimoption *p; + int opt_idx; +! buf_T *buf = (buf_T *)from; + + opt_idx = findoption(name); + p = &(options[opt_idx]); +*************** +*** 9716,9775 **** + { + /* global option with local value: use local value if it's been set */ + case PV_EP: +! *buf->b_p_ep = NUL; + break; + case PV_KP: +! *buf->b_p_kp = NUL; + break; + case PV_PATH: +! *buf->b_p_path = NUL; + break; + case PV_AR: + buf->b_p_ar = -1; + break; + case PV_TAGS: +! *buf->b_p_tags = NUL; + break; + #ifdef FEAT_FIND_ID + case PV_DEF: +! *buf->b_p_def = NUL; + break; + case PV_INC: +! *buf->b_p_inc = NUL; + break; + #endif + #ifdef FEAT_INS_EXPAND + case PV_DICT: +! *buf->b_p_dict = NUL; + break; + case PV_TSR: +! *buf->b_p_tsr = NUL; + break; + #endif + #ifdef FEAT_QUICKFIX + case PV_EFM: +! *buf->b_p_efm = NUL; + break; + case PV_GP: +! *buf->b_p_gp = NUL; + break; + case PV_MP: +! *buf->b_p_mp = NUL; + break; + #endif + #if defined(FEAT_BEVAL) && defined(FEAT_EVAL) + case PV_BEXPR: +! *buf->b_p_bexpr = NUL; + break; + #endif + #if defined(FEAT_CRYPT) + case PV_CM: +! *buf->b_p_cm = NUL; + break; + #endif + #ifdef FEAT_STL_OPT + case PV_STL: +! *win->w_p_stl = NUL; + break; + #endif + } +--- 9714,9773 ---- + { + /* global option with local value: use local value if it's been set */ + case PV_EP: +! clear_string_option(&buf->b_p_ep); + break; + case PV_KP: +! clear_string_option(&buf->b_p_kp); + break; + case PV_PATH: +! clear_string_option(&buf->b_p_path); + break; + case PV_AR: + buf->b_p_ar = -1; + break; + case PV_TAGS: +! clear_string_option(&buf->b_p_tags); + break; + #ifdef FEAT_FIND_ID + case PV_DEF: +! clear_string_option(&buf->b_p_def); + break; + case PV_INC: +! clear_string_option(&buf->b_p_inc); + break; + #endif + #ifdef FEAT_INS_EXPAND + case PV_DICT: +! clear_string_option(&buf->b_p_dict); + break; + case PV_TSR: +! clear_string_option(&buf->b_p_tsr); + break; + #endif + #ifdef FEAT_QUICKFIX + case PV_EFM: +! clear_string_option(&buf->b_p_efm); + break; + case PV_GP: +! clear_string_option(&buf->b_p_gp); + break; + case PV_MP: +! clear_string_option(&buf->b_p_mp); + break; + #endif + #if defined(FEAT_BEVAL) && defined(FEAT_EVAL) + case PV_BEXPR: +! clear_string_option(&buf->b_p_bexpr); + break; + #endif + #if defined(FEAT_CRYPT) + case PV_CM: +! clear_string_option(&buf->b_p_cm); + break; + #endif + #ifdef FEAT_STL_OPT + case PV_STL: +! clear_string_option(&((win_T *)from)->w_p_stl); + break; + #endif + } +*** ../vim-7.3.928/src/version.c 2013-05-06 06:26:10.000000000 +0200 +--- src/version.c 2013-05-06 06:35:06.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 929, + /**/ + +-- +Microsoft: "Windows NT 4.0 now has the same user-interface as Windows 95" + Windows 95: "Press CTRL-ALT-DEL to reboot" +Windows NT 4.0: "Press CTRL-ALT-DEL to login" + + /// 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 /// From 62058115424ab77101843296bfeea124aa805c57 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:55 +0200 Subject: [PATCH 272/291] - patchlevel 930 --- 7.3.930 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.3.930 diff --git a/7.3.930 b/7.3.930 new file mode 100644 index 00000000..b2ba17ca --- /dev/null +++ b/7.3.930 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.930 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.930 +Problem: MSVC 2012 update is not recognized. +Solution: Update the version in the makefile. (Raymond Ko) +Files: src/Make_mvc.mak + + +*** ../vim-7.3.929/src/Make_mvc.mak 2013-05-06 04:21:35.000000000 +0200 +--- src/Make_mvc.mak 2013-05-07 05:08:08.000000000 +0200 +*************** +*** 416,421 **** +--- 416,424 ---- + !if "$(_NMAKE_VER)" == "11.00.51106.1" + MSVCVER = 11.0 + !endif ++ !if "$(_NMAKE_VER)" == "11.00.60315.1" ++ MSVCVER = 11.0 ++ !endif + !endif + + # Abort building VIM if version of VC is unrecognised. +*** ../vim-7.3.929/src/version.c 2013-05-06 06:45:42.000000000 +0200 +--- src/version.c 2013-05-07 05:09:51.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 930, + /**/ + +-- +Life would be so much easier if we could just look at the source code. + + /// 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 /// From 639cf1629dccf02b7b4f7bea94c625c92052d319 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:56 +0200 Subject: [PATCH 273/291] - patchlevel 931 --- 7.3.931 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.3.931 diff --git a/7.3.931 b/7.3.931 new file mode 100644 index 00000000..bc96b7a9 --- /dev/null +++ b/7.3.931 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.931 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.931 +Problem: No completion for :xmap and :smap. (Yukihiro Nakadaira) +Solution: Add the case statements. (Christian Brabandt) +Files: src/ex_docmd.c + + +*** ../vim-7.3.930/src/ex_docmd.c 2013-05-06 04:21:35.000000000 +0200 +--- src/ex_docmd.c 2013-05-07 05:15:26.000000000 +0200 +*************** +*** 3889,3894 **** +--- 3889,3896 ---- + case CMD_imap: case CMD_inoremap: + case CMD_cmap: case CMD_cnoremap: + case CMD_lmap: case CMD_lnoremap: ++ case CMD_smap: case CMD_snoremap: ++ case CMD_xmap: case CMD_xnoremap: + return set_context_in_map_cmd(xp, cmd, arg, forceit, + FALSE, FALSE, ea.cmdidx); + case CMD_unmap: +*************** +*** 3898,3903 **** +--- 3900,3907 ---- + case CMD_iunmap: + case CMD_cunmap: + case CMD_lunmap: ++ case CMD_sunmap: ++ case CMD_xunmap: + return set_context_in_map_cmd(xp, cmd, arg, forceit, + FALSE, TRUE, ea.cmdidx); + case CMD_abbreviate: case CMD_noreabbrev: +*** ../vim-7.3.930/src/version.c 2013-05-07 05:11:12.000000000 +0200 +--- src/version.c 2013-05-07 05:16:45.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 931, + /**/ + +-- +FIRST HEAD: All right! All right! We'll kill him first and then have tea and + biscuits. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 94b639ab98ff1d3166ebdd5897c95038fbb82288 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 8 May 2013 17:06:58 +0200 Subject: [PATCH 274/291] - patchlevel 931 --- README.patches | 30 ++++++++++++++++++++++++- vim.spec | 61 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 89 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index a82d9d62..6b0cf9e4 100644 --- a/README.patches +++ b/README.patches @@ -869,7 +869,7 @@ Individual patches for Vim 7.3: 1755 7.3.835 "xxd -i" fails on an empty file 59985 7.3.836 clipboard does not work on Win32 when compiled with Cygwin 2221 7.3.837 empty lines in :version output when 'columns' is 320 - 11082 7.3.838 (after 7.3.830) insufficient testing for mksession + 11057 7.3.838 (after 7.3.830) insufficient testing for mksession 2012 7.3.839 some files missing in the list of distributed files 1652 7.3.840 "\@ 7.3.931-1 +- patchlevel 931 + * Wed May 08 2013 Karsten Hopp 7.3.903-1 - fix ruby version check From 1e86775d8fe3f028325f360cf822260a00addcf9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:35 +0200 Subject: [PATCH 275/291] - patchlevel 932 --- 7.3.932 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.3.932 diff --git a/7.3.932 b/7.3.932 new file mode 100644 index 00000000..81ae1aab --- /dev/null +++ b/7.3.932 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.932 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.932 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize the variable. +Files: src/option.c + + +*** ../vim-7.3.931/src/option.c 2013-05-06 06:45:42.000000000 +0200 +--- src/option.c 2013-05-08 01:32:25.000000000 +0200 +*************** +*** 8847,8853 **** + void *from; + { + int opt_idx; +! char_u *varp; + struct vimoption *p; + int r = 0; + +--- 8847,8853 ---- + void *from; + { + int opt_idx; +! char_u *varp = NULL; + struct vimoption *p; + int r = 0; + +*** ../vim-7.3.931/src/version.c 2013-05-07 05:18:15.000000000 +0200 +--- src/version.c 2013-05-11 13:44:04.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 932, + /**/ + +-- +Proverb: A nightingale that forgets the lyrics is a hummingbird. + + /// 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 /// From ab1641f5a3067fd23c0f8b6706dc17da9112df27 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:36 +0200 Subject: [PATCH 276/291] - patchlevel 933 --- 7.3.933 | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 7.3.933 diff --git a/7.3.933 b/7.3.933 new file mode 100644 index 00000000..d76314b6 --- /dev/null +++ b/7.3.933 @@ -0,0 +1,163 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.933 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.933 +Problem: Ruby on Mac crashes due to GC failure. +Solution: Init the stack from main(). (Hiroshi Shirosaki) +Files: src/main.c, src/if_ruby.c, src/proto/if_ruby.pro + + +*** ../vim-7.3.932/src/main.c 2013-03-19 13:33:18.000000000 +0100 +--- src/main.c 2013-05-11 13:37:23.000000000 +0200 +*************** +*** 192,197 **** +--- 192,204 ---- + params.window_count = -1; + #endif + ++ #ifdef FEAT_RUBY ++ { ++ int ruby_stack_start; ++ vim_ruby_init((void *)&ruby_stack_start); ++ } ++ #endif ++ + #ifdef FEAT_TCL + vim_tcl_init(params.argv[0]); + #endif +*** ../vim-7.3.932/src/if_ruby.c 2013-05-06 04:21:35.000000000 +0200 +--- src/if_ruby.c 2013-05-11 13:37:23.000000000 +0200 +*************** +*** 144,149 **** +--- 144,150 ---- + #endif + + static int ruby_initialized = 0; ++ static void *ruby_stack_start; + static VALUE objtbl; + + static VALUE mVIM; +*************** +*** 226,231 **** +--- 227,233 ---- + # define rb_float_new dll_rb_float_new + # define rb_ary_new dll_rb_ary_new + # define rb_ary_push dll_rb_ary_push ++ # define ruby_init_stack dll_ruby_init_stack + #else + # define rb_str2cstr dll_rb_str2cstr + #endif +*************** +*** 250,256 **** + # define rb_enc_str_new dll_rb_enc_str_new + # define rb_sprintf dll_rb_sprintf + # define rb_require dll_rb_require +- # define ruby_init_stack dll_ruby_init_stack + # define ruby_process_options dll_ruby_process_options + #endif + +--- 252,257 ---- +*************** +*** 335,340 **** +--- 336,342 ---- + static VALUE (*dll_rb_float_new) (double); + static VALUE (*dll_rb_ary_new) (void); + static VALUE (*dll_rb_ary_push) (VALUE, VALUE); ++ static void (*ruby_init_stack)(VALUE*); + #endif + #ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_int2big)(SIGNED_VALUE); +*************** +*** 347,353 **** + static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*); + static VALUE (*dll_rb_sprintf) (const char*, ...); + static VALUE (*dll_rb_require) (const char*); +- static void (*ruby_init_stack)(VALUE*); + static void* (*ruby_process_options)(int, char**); + #endif + +--- 349,354 ---- +*************** +*** 475,480 **** +--- 476,482 ---- + #endif + #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, ++ {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, + # if DYNAMIC_RUBY_VER <= 19 + {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, + # else +*************** +*** 491,497 **** + {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new}, + {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, + {"rb_require", (RUBY_PROC*)&dll_rb_require}, +- {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, + {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, + #endif + {"", NULL}, +--- 493,498 ---- +*************** +*** 716,723 **** + NtInitialize(&argc, &argv); + #endif + { +! #ifdef RUBY19_OR_LATER +! RUBY_INIT_STACK; + #endif + ruby_init(); + } +--- 717,724 ---- + NtInitialize(&argc, &argv); + #endif + { +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +! ruby_init_stack(ruby_stack_start); + #endif + ruby_init(); + } +*************** +*** 1389,1391 **** +--- 1390,1398 ---- + rb_define_virtual_variable("$curbuf", buffer_s_current, 0); + rb_define_virtual_variable("$curwin", window_s_current, 0); + } ++ ++ void vim_ruby_init(void *stack_start) ++ { ++ /* should get machine stack start address early in main function */ ++ ruby_stack_start = stack_start; ++ } +*** ../vim-7.3.932/src/proto/if_ruby.pro 2010-08-15 21:57:28.000000000 +0200 +--- src/proto/if_ruby.pro 2013-05-11 13:37:28.000000000 +0200 +*************** +*** 6,9 **** +--- 6,10 ---- + void ex_rubyfile __ARGS((exarg_T *eap)); + void ruby_buffer_free __ARGS((buf_T *buf)); + void ruby_window_free __ARGS((win_T *win)); ++ void vim_ruby_init __ARGS((void *stack_start)); + /* vim: set ft=c : */ +*** ../vim-7.3.932/src/version.c 2013-05-11 13:45:00.000000000 +0200 +--- src/version.c 2013-05-11 13:52:55.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 933, + /**/ + +-- +Veni, Vidi, Video -- I came, I saw, I taped what I saw. + + /// 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 /// From 35e11c421dd5408f8aa859c039e446da9909bbb2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:37 +0200 Subject: [PATCH 277/291] - patchlevel 934 --- 7.3.934 | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 7.3.934 diff --git a/7.3.934 b/7.3.934 new file mode 100644 index 00000000..d820f3ce --- /dev/null +++ b/7.3.934 @@ -0,0 +1,81 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.934 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.934 +Problem: E381 and E380 make the user think nothing happened. +Solution: Display the message indicating what error list is now active. + (Christian Brabandt) +Files: src/quickfix.c + + +*** ../vim-7.3.933/src/quickfix.c 2013-05-06 04:21:35.000000000 +0200 +--- src/quickfix.c 2013-05-11 13:50:56.000000000 +0200 +*************** +*** 2085,2091 **** + if (qi->qf_curlist == 0) + { + EMSG(_("E380: At bottom of quickfix stack")); +! return; + } + --qi->qf_curlist; + } +--- 2085,2091 ---- + if (qi->qf_curlist == 0) + { + EMSG(_("E380: At bottom of quickfix stack")); +! break; + } + --qi->qf_curlist; + } +*************** +*** 2094,2106 **** + if (qi->qf_curlist >= qi->qf_listcount - 1) + { + EMSG(_("E381: At top of quickfix stack")); +! return; + } + ++qi->qf_curlist; + } + } + qf_msg(qi); +- + } + + static void +--- 2094,2105 ---- + if (qi->qf_curlist >= qi->qf_listcount - 1) + { + EMSG(_("E381: At top of quickfix stack")); +! break; + } + ++qi->qf_curlist; + } + } + qf_msg(qi); + } + + static void +*** ../vim-7.3.933/src/version.c 2013-05-11 13:56:12.000000000 +0200 +--- src/version.c 2013-05-11 15:46:36.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 934, + /**/ + +-- +"A mouse can be just as dangerous as a bullet or a bomb." + (US Representative Lamar Smith, R-Texas) + + /// 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 /// From 19175ab6dcb0f0dd57708b3d2935b5aa2701348b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:38 +0200 Subject: [PATCH 278/291] - patchlevel 935 --- 7.3.935 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.3.935 diff --git a/7.3.935 b/7.3.935 new file mode 100644 index 00000000..fb14b74a --- /dev/null +++ b/7.3.935 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.935 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.935 (after 7.3.933) +Problem: Init stack works differently on 64 bit systems. +Solution: Handle 64 bit systems and also static library. (Yukihiro + Nakadaira) +Files: src/if_ruby.c + + +*** ../vim-7.3.934/src/if_ruby.c 2013-05-11 13:56:12.000000000 +0200 +--- src/if_ruby.c 2013-05-11 17:31:55.000000000 +0200 +*************** +*** 227,233 **** + # define rb_float_new dll_rb_float_new + # define rb_ary_new dll_rb_ary_new + # define rb_ary_push dll_rb_ary_push +! # define ruby_init_stack dll_ruby_init_stack + #else + # define rb_str2cstr dll_rb_str2cstr + #endif +--- 227,239 ---- + # define rb_float_new dll_rb_float_new + # define rb_ary_new dll_rb_ary_new + # define rb_ary_push dll_rb_ary_push +! # ifdef __ia64 +! # define rb_ia64_bsp dll_rb_ia64_bsp +! # undef ruby_init_stack +! # define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) +! # else +! # define ruby_init_stack dll_ruby_init_stack +! # endif + #else + # define rb_str2cstr dll_rb_str2cstr + #endif +*************** +*** 336,342 **** + static VALUE (*dll_rb_float_new) (double); + static VALUE (*dll_rb_ary_new) (void); + static VALUE (*dll_rb_ary_push) (VALUE, VALUE); +! static void (*ruby_init_stack)(VALUE*); + #endif + #ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_int2big)(SIGNED_VALUE); +--- 342,353 ---- + static VALUE (*dll_rb_float_new) (double); + static VALUE (*dll_rb_ary_new) (void); + static VALUE (*dll_rb_ary_push) (VALUE, VALUE); +! # ifdef __ia64 +! static void * (*dll_rb_ia64_bsp) (void); +! static void (*dll_ruby_init_stack)(VALUE*, void*); +! # else +! static void (*dll_ruby_init_stack)(VALUE*); +! # endif + #endif + #ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_int2big)(SIGNED_VALUE); +*************** +*** 476,481 **** +--- 487,495 ---- + #endif + #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, ++ # ifdef __ia64 ++ {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, ++ # endif + {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, + # if DYNAMIC_RUBY_VER <= 19 + {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, +*************** +*** 717,723 **** + NtInitialize(&argc, &argv); + #endif + { +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + ruby_init_stack(ruby_stack_start); + #endif + ruby_init(); +--- 731,737 ---- + NtInitialize(&argc, &argv); + #endif + { +! #if defined(RUBY_VERSION) && RUBY_VERSION >= 18 + ruby_init_stack(ruby_stack_start); + #endif + ruby_init(); +*** ../vim-7.3.934/src/version.c 2013-05-11 15:50:02.000000000 +0200 +--- src/version.c 2013-05-11 17:39:08.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 935, + /**/ + +-- +ARTHUR: Well, it doesn't matter. Will you go and tell your master that + Arthur from the Court of Camelot is here. +GUARD #1: Listen, in order to maintain air-speed velocity, a swallow + needs to beat its wings 43 times every second, right? +ARTHUR: Please! + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 4b44f72cac30ae8ade40405635e5eec12ea21af6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:39 +0200 Subject: [PATCH 279/291] - patchlevel 936 --- 7.3.936 | 661 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 661 insertions(+) create mode 100644 7.3.936 diff --git a/7.3.936 b/7.3.936 new file mode 100644 index 00000000..964dae72 --- /dev/null +++ b/7.3.936 @@ -0,0 +1,661 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.936 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.936 (after 7.3.935) +Problem: Ruby 1.8: Missing piece for static linking on 64 bit systems. +Solution: Define ruby_init_stack() (Hiroshi Shirosaki) + Also fix preprocessor indents. +Files: src/if_ruby.c + + +*** ../vim-7.3.935/src/if_ruby.c 2013-05-11 17:45:45.000000000 +0200 +--- src/if_ruby.c 2013-05-12 00:09:18.000000000 +0200 +*************** +*** 158,265 **** + static void ruby_io_init(void); + static void ruby_vim_init(void); + +! #if defined(DYNAMIC_RUBY) || defined(PROTO) +! #ifdef PROTO +! # define HINSTANCE int /* for generating prototypes */ + #endif + + /* + * Wrapper defines + */ +! #define rb_assoc_new dll_rb_assoc_new +! #define rb_cObject (*dll_rb_cObject) +! #define rb_check_type dll_rb_check_type +! #define rb_class_path dll_rb_class_path +! #define rb_data_object_alloc dll_rb_data_object_alloc +! #define rb_define_class_under dll_rb_define_class_under +! #define rb_define_const dll_rb_define_const +! #define rb_define_global_function dll_rb_define_global_function +! #define rb_define_method dll_rb_define_method +! #define rb_define_module dll_rb_define_module +! #define rb_define_module_function dll_rb_define_module_function +! #define rb_define_singleton_method dll_rb_define_singleton_method +! #define rb_define_virtual_variable dll_rb_define_virtual_variable +! #define rb_stdout (*dll_rb_stdout) +! #define rb_eArgError (*dll_rb_eArgError) +! #define rb_eIndexError (*dll_rb_eIndexError) +! #define rb_eRuntimeError (*dll_rb_eRuntimeError) +! #define rb_eStandardError (*dll_rb_eStandardError) +! #define rb_eval_string_protect dll_rb_eval_string_protect +! #define rb_global_variable dll_rb_global_variable +! #define rb_hash_aset dll_rb_hash_aset +! #define rb_hash_new dll_rb_hash_new +! #define rb_inspect dll_rb_inspect +! #define rb_int2inum dll_rb_int2inum +! #if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ +! #define rb_fix2int dll_rb_fix2int +! #define rb_num2int dll_rb_num2int +! #define rb_num2uint dll_rb_num2uint +! #endif +! #define rb_lastline_get dll_rb_lastline_get +! #define rb_lastline_set dll_rb_lastline_set +! #define rb_load_protect dll_rb_load_protect +! #ifndef RUBY19_OR_LATER +! #define rb_num2long dll_rb_num2long +! #endif +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 19 +! #define rb_num2ulong dll_rb_num2ulong +! #endif +! #define rb_obj_alloc dll_rb_obj_alloc +! #define rb_obj_as_string dll_rb_obj_as_string +! #define rb_obj_id dll_rb_obj_id +! #define rb_raise dll_rb_raise +! #define rb_str_cat dll_rb_str_cat +! #define rb_str_concat dll_rb_str_concat +! #define rb_str_new dll_rb_str_new +! #ifdef rb_str_new2 + /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */ +! # define need_rb_str_new_cstr 1 + /* Ruby's headers #define rb_str_new_cstr to make use of GCC's + * __builtin_constant_p extension. */ +! # undef rb_str_new_cstr +! # define rb_str_new_cstr dll_rb_str_new_cstr +! #else +! # define rb_str_new2 dll_rb_str_new2 +! #endif +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +! # define rb_string_value dll_rb_string_value +! # define rb_string_value_ptr dll_rb_string_value_ptr +! # define rb_float_new dll_rb_float_new +! # define rb_ary_new dll_rb_ary_new +! # define rb_ary_push dll_rb_ary_push +! # ifdef __ia64 +! # define rb_ia64_bsp dll_rb_ia64_bsp +! # undef ruby_init_stack +! # define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) + # else +! # define ruby_init_stack dll_ruby_init_stack + # endif +- #else +- # define rb_str2cstr dll_rb_str2cstr +- #endif +- #ifdef RUBY19_OR_LATER +- # define rb_errinfo dll_rb_errinfo +- #else +- # define ruby_errinfo (*dll_ruby_errinfo) +- #endif +- #define ruby_init dll_ruby_init +- #define ruby_init_loadpath dll_ruby_init_loadpath +- #ifdef WIN3264 +- # define NtInitialize dll_NtInitialize + # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +! # define rb_w32_snprintf dll_rb_w32_snprintf + # endif +- #endif + +! #ifdef RUBY19_OR_LATER +! # define ruby_script dll_ruby_script +! # define rb_enc_find_index dll_rb_enc_find_index +! # define rb_enc_find dll_rb_enc_find +! # define rb_enc_str_new dll_rb_enc_str_new +! # define rb_sprintf dll_rb_sprintf +! # define rb_require dll_rb_require +! # define ruby_process_options dll_ruby_process_options +! #endif + + /* + * Pointers for dynamic link +--- 158,269 ---- + static void ruby_io_init(void); + static void ruby_vim_init(void); + +! #if defined(__ia64) && !defined(ruby_init_stack) +! # define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp()) + #endif + ++ #if defined(DYNAMIC_RUBY) || defined(PROTO) ++ # ifdef PROTO ++ # define HINSTANCE int /* for generating prototypes */ ++ # endif ++ + /* + * Wrapper defines + */ +! # define rb_assoc_new dll_rb_assoc_new +! # define rb_cObject (*dll_rb_cObject) +! # define rb_check_type dll_rb_check_type +! # define rb_class_path dll_rb_class_path +! # define rb_data_object_alloc dll_rb_data_object_alloc +! # define rb_define_class_under dll_rb_define_class_under +! # define rb_define_const dll_rb_define_const +! # define rb_define_global_function dll_rb_define_global_function +! # define rb_define_method dll_rb_define_method +! # define rb_define_module dll_rb_define_module +! # define rb_define_module_function dll_rb_define_module_function +! # define rb_define_singleton_method dll_rb_define_singleton_method +! # define rb_define_virtual_variable dll_rb_define_virtual_variable +! # define rb_stdout (*dll_rb_stdout) +! # define rb_eArgError (*dll_rb_eArgError) +! # define rb_eIndexError (*dll_rb_eIndexError) +! # define rb_eRuntimeError (*dll_rb_eRuntimeError) +! # define rb_eStandardError (*dll_rb_eStandardError) +! # define rb_eval_string_protect dll_rb_eval_string_protect +! # define rb_global_variable dll_rb_global_variable +! # define rb_hash_aset dll_rb_hash_aset +! # define rb_hash_new dll_rb_hash_new +! # define rb_inspect dll_rb_inspect +! # define rb_int2inum dll_rb_int2inum +! # if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ +! # define rb_fix2int dll_rb_fix2int +! # define rb_num2int dll_rb_num2int +! # define rb_num2uint dll_rb_num2uint +! # endif +! # define rb_lastline_get dll_rb_lastline_get +! # define rb_lastline_set dll_rb_lastline_set +! # define rb_load_protect dll_rb_load_protect +! # ifndef RUBY19_OR_LATER +! # define rb_num2long dll_rb_num2long +! # endif +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 19 +! # define rb_num2ulong dll_rb_num2ulong +! # endif +! # define rb_obj_alloc dll_rb_obj_alloc +! # define rb_obj_as_string dll_rb_obj_as_string +! # define rb_obj_id dll_rb_obj_id +! # define rb_raise dll_rb_raise +! # define rb_str_cat dll_rb_str_cat +! # define rb_str_concat dll_rb_str_concat +! # define rb_str_new dll_rb_str_new +! # ifdef rb_str_new2 + /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */ +! # define need_rb_str_new_cstr 1 + /* Ruby's headers #define rb_str_new_cstr to make use of GCC's + * __builtin_constant_p extension. */ +! # undef rb_str_new_cstr +! # define rb_str_new_cstr dll_rb_str_new_cstr + # else +! # define rb_str_new2 dll_rb_str_new2 + # endif + # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +! # define rb_string_value dll_rb_string_value +! # define rb_string_value_ptr dll_rb_string_value_ptr +! # define rb_float_new dll_rb_float_new +! # define rb_ary_new dll_rb_ary_new +! # define rb_ary_push dll_rb_ary_push +! # ifdef __ia64 +! # define rb_ia64_bsp dll_rb_ia64_bsp +! # undef ruby_init_stack +! # define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) +! # else +! # define ruby_init_stack dll_ruby_init_stack +! # endif +! # else +! # define rb_str2cstr dll_rb_str2cstr +! # endif +! # ifdef RUBY19_OR_LATER +! # define rb_errinfo dll_rb_errinfo +! # else +! # define ruby_errinfo (*dll_ruby_errinfo) +! # endif +! # define ruby_init dll_ruby_init +! # define ruby_init_loadpath dll_ruby_init_loadpath +! # ifdef WIN3264 +! # define NtInitialize dll_NtInitialize +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 +! # define rb_w32_snprintf dll_rb_w32_snprintf +! # endif + # endif + +! # ifdef RUBY19_OR_LATER +! # define ruby_script dll_ruby_script +! # define rb_enc_find_index dll_rb_enc_find_index +! # define rb_enc_find dll_rb_enc_find +! # define rb_enc_str_new dll_rb_enc_str_new +! # define rb_sprintf dll_rb_sprintf +! # define rb_require dll_rb_require +! # define ruby_process_options dll_ruby_process_options +! # endif + + /* + * Pointers for dynamic link +*************** +*** 267,275 **** + static VALUE (*dll_rb_assoc_new) (VALUE, VALUE); + VALUE *dll_rb_cFalseClass; + VALUE *dll_rb_cFixnum; +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + VALUE *dll_rb_cFloat; +! #endif + VALUE *dll_rb_cNilClass; + static VALUE *dll_rb_cObject; + VALUE *dll_rb_cSymbol; +--- 271,279 ---- + static VALUE (*dll_rb_assoc_new) (VALUE, VALUE); + VALUE *dll_rb_cFalseClass; + VALUE *dll_rb_cFixnum; +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + VALUE *dll_rb_cFloat; +! # endif + VALUE *dll_rb_cNilClass; + static VALUE *dll_rb_cObject; + VALUE *dll_rb_cSymbol; +*************** +*** 296,306 **** + static VALUE (*dll_rb_hash_new) (void); + static VALUE (*dll_rb_inspect) (VALUE); + static VALUE (*dll_rb_int2inum) (long); +! #if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ + static long (*dll_rb_fix2int) (VALUE); + static long (*dll_rb_num2int) (VALUE); + static unsigned long (*dll_rb_num2uint) (VALUE); +! #endif + static VALUE (*dll_rb_lastline_get) (void); + static void (*dll_rb_lastline_set) (VALUE); + static void (*dll_rb_load_protect) (VALUE, int, int*); +--- 300,310 ---- + static VALUE (*dll_rb_hash_new) (void); + static VALUE (*dll_rb_inspect) (VALUE); + static VALUE (*dll_rb_int2inum) (long); +! # if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ + static long (*dll_rb_fix2int) (VALUE); + static long (*dll_rb_num2int) (VALUE); + static unsigned long (*dll_rb_num2uint) (VALUE); +! # endif + static VALUE (*dll_rb_lastline_get) (void); + static void (*dll_rb_lastline_set) (VALUE); + static void (*dll_rb_load_protect) (VALUE, int, int*); +*************** +*** 310,359 **** + static VALUE (*dll_rb_obj_as_string) (VALUE); + static VALUE (*dll_rb_obj_id) (VALUE); + static void (*dll_rb_raise) (VALUE, const char*, ...); +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + static VALUE (*dll_rb_string_value) (volatile VALUE*); +! #else + static char *(*dll_rb_str2cstr) (VALUE,int*); +! #endif + static VALUE (*dll_rb_str_cat) (VALUE, const char*, long); + static VALUE (*dll_rb_str_concat) (VALUE, VALUE); + static VALUE (*dll_rb_str_new) (const char*, long); +! #ifdef need_rb_str_new_cstr + /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */ + static VALUE (*dll_rb_str_new_cstr) (const char*); +! #else + static VALUE (*dll_rb_str_new2) (const char*); +! #endif +! #ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_errinfo) (void); +! #else + static VALUE *dll_ruby_errinfo; +! #endif + static void (*dll_ruby_init) (void); + static void (*dll_ruby_init_loadpath) (void); +! #ifdef WIN3264 + static void (*dll_NtInitialize) (int*, char***); +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...); + # endif +! #endif +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + static char * (*dll_rb_string_value_ptr) (volatile VALUE*); + static VALUE (*dll_rb_float_new) (double); + static VALUE (*dll_rb_ary_new) (void); + static VALUE (*dll_rb_ary_push) (VALUE, VALUE); +! # ifdef __ia64 + static void * (*dll_rb_ia64_bsp) (void); + static void (*dll_ruby_init_stack)(VALUE*, void*); +! # else + static void (*dll_ruby_init_stack)(VALUE*); + # endif +! #endif +! #ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_int2big)(SIGNED_VALUE); +! #endif + +! #ifdef RUBY19_OR_LATER + static void (*dll_ruby_script) (const char*); + static int (*dll_rb_enc_find_index) (const char*); + static rb_encoding* (*dll_rb_enc_find) (const char*); +--- 314,363 ---- + static VALUE (*dll_rb_obj_as_string) (VALUE); + static VALUE (*dll_rb_obj_id) (VALUE); + static void (*dll_rb_raise) (VALUE, const char*, ...); +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + static VALUE (*dll_rb_string_value) (volatile VALUE*); +! # else + static char *(*dll_rb_str2cstr) (VALUE,int*); +! # endif + static VALUE (*dll_rb_str_cat) (VALUE, const char*, long); + static VALUE (*dll_rb_str_concat) (VALUE, VALUE); + static VALUE (*dll_rb_str_new) (const char*, long); +! # ifdef need_rb_str_new_cstr + /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */ + static VALUE (*dll_rb_str_new_cstr) (const char*); +! # else + static VALUE (*dll_rb_str_new2) (const char*); +! # endif +! # ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_errinfo) (void); +! # else + static VALUE *dll_ruby_errinfo; +! # endif + static void (*dll_ruby_init) (void); + static void (*dll_ruby_init_loadpath) (void); +! # ifdef WIN3264 + static void (*dll_NtInitialize) (int*, char***); +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...); ++ # endif + # endif +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + static char * (*dll_rb_string_value_ptr) (volatile VALUE*); + static VALUE (*dll_rb_float_new) (double); + static VALUE (*dll_rb_ary_new) (void); + static VALUE (*dll_rb_ary_push) (VALUE, VALUE); +! # ifdef __ia64 + static void * (*dll_rb_ia64_bsp) (void); + static void (*dll_ruby_init_stack)(VALUE*, void*); +! # else + static void (*dll_ruby_init_stack)(VALUE*); ++ # endif + # endif +! # ifdef RUBY19_OR_LATER + static VALUE (*dll_rb_int2big)(SIGNED_VALUE); +! # endif + +! # ifdef RUBY19_OR_LATER + static void (*dll_ruby_script) (const char*); + static int (*dll_rb_enc_find_index) (const char*); + static rb_encoding* (*dll_rb_enc_find) (const char*); +*************** +*** 361,369 **** + static VALUE (*dll_rb_sprintf) (const char*, ...); + static VALUE (*dll_rb_require) (const char*); + static void* (*ruby_process_options)(int, char**); +! #endif + +! #if defined(RUBY19_OR_LATER) && !defined(PROTO) + SIGNED_VALUE rb_num2long_stub(VALUE x) + { + return dll_rb_num2long(x); +--- 365,373 ---- + static VALUE (*dll_rb_sprintf) (const char*, ...); + static VALUE (*dll_rb_require) (const char*); + static void* (*ruby_process_options)(int, char**); +! # endif + +! # if defined(RUBY19_OR_LATER) && !defined(PROTO) + SIGNED_VALUE rb_num2long_stub(VALUE x) + { + return dll_rb_num2long(x); +*************** +*** 372,378 **** + { + return dll_rb_int2big(x); + } +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ + && SIZEOF_INT < SIZEOF_LONG + long rb_fix2int_stub(VALUE x) + { +--- 376,382 ---- + { + return dll_rb_int2big(x); + } +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ + && SIZEOF_INT < SIZEOF_LONG + long rb_fix2int_stub(VALUE x) + { +*************** +*** 382,389 **** + { + return dll_rb_num2int(x); + } +! #endif +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + VALUE + rb_float_new_in_heap(double d) + { +--- 386,393 ---- + { + return dll_rb_num2int(x); + } +! # endif +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + VALUE + rb_float_new_in_heap(double d) + { +*************** +*** 393,400 **** + { + return (long)RSHIFT((SIGNED_VALUE)(x),1); + } +! #endif +! #endif + + static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */ + +--- 397,404 ---- + { + return (long)RSHIFT((SIGNED_VALUE)(x),1); + } +! # endif +! # endif + + static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */ + +*************** +*** 410,418 **** + {"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new}, + {"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass}, + {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum}, +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + {"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat}, +! #endif + {"rb_cNilClass", (RUBY_PROC*)&dll_rb_cNilClass}, + {"rb_cObject", (RUBY_PROC*)&dll_rb_cObject}, + {"rb_cSymbol", (RUBY_PROC*)&dll_rb_cSymbol}, +--- 414,422 ---- + {"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new}, + {"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass}, + {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum}, +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 + {"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat}, +! # endif + {"rb_cNilClass", (RUBY_PROC*)&dll_rb_cNilClass}, + {"rb_cObject", (RUBY_PROC*)&dll_rb_cObject}, + {"rb_cSymbol", (RUBY_PROC*)&dll_rb_cSymbol}, +*************** +*** 439,449 **** + {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new}, + {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, + {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, +! #if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ + {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int}, + {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int}, + {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint}, +! #endif + {"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get}, + {"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set}, + {"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect}, +--- 443,453 ---- + {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new}, + {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, + {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, +! # if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ + {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int}, + {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int}, + {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint}, +! # endif + {"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get}, + {"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set}, + {"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect}, +*************** +*** 453,505 **** + {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string}, + {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id}, + {"rb_raise", (RUBY_PROC*)&dll_rb_raise}, +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value}, +! #else + {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr}, +! #endif + {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat}, + {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat}, + {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new}, +! #ifdef need_rb_str_new_cstr + {"rb_str_new_cstr", (RUBY_PROC*)&dll_rb_str_new_cstr}, +! #else + {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2}, +! #endif +! #ifdef RUBY19_OR_LATER + {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo}, +! #else + {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo}, +! #endif + {"ruby_init", (RUBY_PROC*)&dll_ruby_init}, + {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath}, +! #ifdef WIN3264 + { +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19 + "NtInitialize", +! # else + "ruby_sysinit", +! # endif + (RUBY_PROC*)&dll_NtInitialize}, +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf}, + # endif +! #endif +! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, +! # ifdef __ia64 + {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, +! # endif + {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, +! # if DYNAMIC_RUBY_VER <= 19 + {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, +! # else + {"rb_float_new_in_heap", (RUBY_PROC*)&dll_rb_float_new}, +! # endif + {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new}, + {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push}, +! #endif +! #ifdef RUBY19_OR_LATER + {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big}, + {"ruby_script", (RUBY_PROC*)&dll_ruby_script}, + {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index}, +--- 457,509 ---- + {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string}, + {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id}, + {"rb_raise", (RUBY_PROC*)&dll_rb_raise}, +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value}, +! # else + {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr}, +! # endif + {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat}, + {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat}, + {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new}, +! # ifdef need_rb_str_new_cstr + {"rb_str_new_cstr", (RUBY_PROC*)&dll_rb_str_new_cstr}, +! # else + {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2}, +! # endif +! # ifdef RUBY19_OR_LATER + {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo}, +! # else + {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo}, +! # endif + {"ruby_init", (RUBY_PROC*)&dll_ruby_init}, + {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath}, +! # ifdef WIN3264 + { +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19 + "NtInitialize", +! # else + "ruby_sysinit", +! # endif + (RUBY_PROC*)&dll_NtInitialize}, +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf}, ++ # endif + # endif +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 + {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, +! # ifdef __ia64 + {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, +! # endif + {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, +! # if DYNAMIC_RUBY_VER <= 19 + {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, +! # else + {"rb_float_new_in_heap", (RUBY_PROC*)&dll_rb_float_new}, +! # endif + {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new}, + {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push}, +! # endif +! # ifdef RUBY19_OR_LATER + {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big}, + {"ruby_script", (RUBY_PROC*)&dll_ruby_script}, + {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index}, +*************** +*** 508,514 **** + {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, + {"rb_require", (RUBY_PROC*)&dll_rb_require}, + {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, +! #endif + {"", NULL}, + }; + +--- 512,518 ---- + {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, + {"rb_require", (RUBY_PROC*)&dll_rb_require}, + {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, +! # endif + {"", NULL}, + }; + +*** ../vim-7.3.935/src/version.c 2013-05-11 17:45:45.000000000 +0200 +--- src/version.c 2013-05-12 14:09:22.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 936, + /**/ + +-- +DEAD PERSON: I don't want to go in the cart! +CUSTOMER: Oh, don't be such a baby. +MORTICIAN: I can't take him... +DEAD PERSON: I feel fine! +CUSTOMER: Oh, do us a favor... +MORTICIAN: I can't. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 4451f1774f106dbe1628b0bc34f757863bc90d30 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:40 +0200 Subject: [PATCH 280/291] - patchlevel 937 --- 7.3.937 | 616 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 616 insertions(+) create mode 100644 7.3.937 diff --git a/7.3.937 b/7.3.937 new file mode 100644 index 00000000..a9bd210c --- /dev/null +++ b/7.3.937 @@ -0,0 +1,616 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.937 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.937 +Problem: More can be shared between Python 2 and 3. +Solution: Move code to if_py_both.h. (ZyX) +Files: src/if_python.c, src/if_python3.c, src/if_py_both.h + + +*** ../vim-7.3.936/src/if_python.c 2013-05-06 04:21:35.000000000 +0200 +--- src/if_python.c 2013-05-12 18:31:20.000000000 +0200 +*************** +*** 619,624 **** +--- 619,627 ---- + + #define DESTRUCTOR_FINISH(self) Py_DECREF(self); + ++ #define WIN_PYTHON_REF(win) win->w_python_ref ++ #define BUF_PYTHON_REF(buf) buf->b_python_ref ++ + static PyObject *OutputGetattr(PyObject *, char *); + static PyObject *BufferGetattr(PyObject *, char *); + static PyObject *WindowGetattr(PyObject *, char *); +*************** +*** 1054,1095 **** + */ + + static PyObject * +- BufferNew(buf_T *buf) +- { +- /* We need to handle deletion of buffers underneath us. +- * If we add a "b_python_ref" field to the buf_T structure, +- * then we can get at it in buf_freeall() in vim. We then +- * need to create only ONE Python object per buffer - if +- * we try to create a second, just INCREF the existing one +- * and return it. The (single) Python object referring to +- * the buffer is stored in "b_python_ref". +- * Question: what to do on a buf_freeall(). We'll probably +- * have to either delete the Python object (DECREF it to +- * zero - a bad idea, as it leaves dangling refs!) or +- * set the buf_T * value to an invalid value (-1?), which +- * means we need checks in all access functions... Bah. +- */ +- +- BufferObject *self; +- +- if (buf->b_python_ref != NULL) +- { +- self = buf->b_python_ref; +- Py_INCREF(self); +- } +- else +- { +- self = PyObject_NEW(BufferObject, &BufferType); +- if (self == NULL) +- return NULL; +- self->buf = buf; +- buf->b_python_ref = self; +- } +- +- return (PyObject *)(self); +- } +- +- static PyObject * + BufferGetattr(PyObject *self, char *name) + { + PyObject *r; +--- 1057,1062 ---- +*************** +*** 1107,1136 **** + /******************/ + + static PyInt +- BufferLength(PyObject *self) +- { +- /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */ +- if (CheckBuffer((BufferObject *)(self))) +- return -1; /* ??? */ +- +- return (((BufferObject *)(self))->buf->b_ml.ml_line_count); +- } +- +- static PyObject * +- BufferItem(PyObject *self, PyInt n) +- { +- return RBItem((BufferObject *)(self), n, 1, +- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count); +- } +- +- static PyObject * +- BufferSlice(PyObject *self, PyInt lo, PyInt hi) +- { +- return RBSlice((BufferObject *)(self), lo, hi, 1, +- (int)((BufferObject *)(self))->buf->b_ml.ml_line_count); +- } +- +- static PyInt + BufferAssItem(PyObject *self, PyInt n, PyObject *val) + { + return RBAsItem((BufferObject *)(self), n, val, 1, +--- 1074,1079 ---- +*************** +*** 1217,1256 **** + */ + + static PyObject * +- WindowNew(win_T *win) +- { +- /* We need to handle deletion of windows underneath us. +- * If we add a "w_python_ref" field to the win_T structure, +- * then we can get at it in win_free() in vim. We then +- * need to create only ONE Python object per window - if +- * we try to create a second, just INCREF the existing one +- * and return it. The (single) Python object referring to +- * the window is stored in "w_python_ref". +- * On a win_free() we set the Python object's win_T* field +- * to an invalid value. We trap all uses of a window +- * object, and reject them if the win_T* field is invalid. +- */ +- +- WindowObject *self; +- +- if (win->w_python_ref) +- { +- self = win->w_python_ref; +- Py_INCREF(self); +- } +- else +- { +- self = PyObject_NEW(WindowObject, &WindowType); +- if (self == NULL) +- return NULL; +- self->win = win; +- win->w_python_ref = self; +- } +- +- return (PyObject *)(self); +- } +- +- static PyObject * + WindowGetattr(PyObject *self, char *name) + { + PyObject *r; +--- 1160,1165 ---- +*************** +*** 1289,1299 **** + void + python_buffer_free(buf_T *buf) + { +! if (buf->b_python_ref != NULL) + { +! BufferObject *bp = buf->b_python_ref; + bp->buf = INVALID_BUFFER_VALUE; +! buf->b_python_ref = NULL; + } + } + +--- 1198,1208 ---- + void + python_buffer_free(buf_T *buf) + { +! if (BUF_PYTHON_REF(buf) != NULL) + { +! BufferObject *bp = BUF_PYTHON_REF(buf); + bp->buf = INVALID_BUFFER_VALUE; +! BUF_PYTHON_REF(buf) = NULL; + } + } + +*************** +*** 1301,1311 **** + void + python_window_free(win_T *win) + { +! if (win->w_python_ref != NULL) + { +! WindowObject *wp = win->w_python_ref; + wp->win = INVALID_WINDOW_VALUE; +! win->w_python_ref = NULL; + } + } + #endif +--- 1210,1220 ---- + void + python_window_free(win_T *win) + { +! if (WIN_PYTHON_REF(win) != NULL) + { +! WindowObject *wp = WIN_PYTHON_REF(win); + wp->win = INVALID_WINDOW_VALUE; +! WIN_PYTHON_REF(win) = NULL; + } + } + #endif +*** ../vim-7.3.936/src/if_python3.c 2013-05-06 04:21:35.000000000 +0200 +--- src/if_python3.c 2013-05-12 18:31:20.000000000 +0200 +*************** +*** 621,626 **** +--- 621,629 ---- + + #define DESTRUCTOR_FINISH(self) Py_TYPE(self)->tp_free((PyObject*)self); + ++ #define WIN_PYTHON_REF(win) win->w_python3_ref ++ #define BUF_PYTHON_REF(buf) buf->b_python3_ref ++ + static void + call_PyObject_Free(void *p) + { +*************** +*** 1067,1112 **** + }; + + +! /* Buffer object - Definitions + */ + + static PyObject * +- BufferNew(buf_T *buf) +- { +- /* We need to handle deletion of buffers underneath us. +- * If we add a "b_python3_ref" field to the buf_T structure, +- * then we can get at it in buf_freeall() in vim. We then +- * need to create only ONE Python object per buffer - if +- * we try to create a second, just INCREF the existing one +- * and return it. The (single) Python object referring to +- * the buffer is stored in "b_python3_ref". +- * Question: what to do on a buf_freeall(). We'll probably +- * have to either delete the Python object (DECREF it to +- * zero - a bad idea, as it leaves dangling refs!) or +- * set the buf_T * value to an invalid value (-1?), which +- * means we need checks in all access functions... Bah. +- */ +- +- BufferObject *self; +- +- if (buf->b_python3_ref != NULL) +- { +- self = buf->b_python3_ref; +- Py_INCREF(self); +- } +- else +- { +- self = PyObject_NEW(BufferObject, &BufferType); +- buf->b_python3_ref = self; +- if (self == NULL) +- return NULL; +- self->buf = buf; +- } +- +- return (PyObject *)(self); +- } +- +- static PyObject * + BufferGetattro(PyObject *self, PyObject*nameobj) + { + PyObject *r; +--- 1070,1079 ---- + }; + + +! /* Buffer object + */ + + static PyObject * + BufferGetattro(PyObject *self, PyObject*nameobj) + { + PyObject *r; +*************** +*** 1132,1160 **** + + /******************/ + +- static Py_ssize_t +- BufferLength(PyObject *self) +- { +- if (CheckBuffer((BufferObject *)(self))) +- return -1; +- +- return (Py_ssize_t)(((BufferObject *)(self))->buf->b_ml.ml_line_count); +- } +- +- static PyObject * +- BufferItem(PyObject *self, Py_ssize_t n) +- { +- return RBItem((BufferObject *)(self), n, 1, +- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count); +- } +- +- static PyObject * +- BufferSlice(PyObject *self, Py_ssize_t lo, Py_ssize_t hi) +- { +- return RBSlice((BufferObject *)(self), lo, hi, 1, +- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count); +- } +- + static PyObject * + BufferSubscript(PyObject *self, PyObject* idx) + { +--- 1099,1104 ---- +*************** +*** 1342,1381 **** + */ + + static PyObject * +- WindowNew(win_T *win) +- { +- /* We need to handle deletion of windows underneath us. +- * If we add a "w_python3_ref" field to the win_T structure, +- * then we can get at it in win_free() in vim. We then +- * need to create only ONE Python object per window - if +- * we try to create a second, just INCREF the existing one +- * and return it. The (single) Python object referring to +- * the window is stored in "w_python3_ref". +- * On a win_free() we set the Python object's win_T* field +- * to an invalid value. We trap all uses of a window +- * object, and reject them if the win_T* field is invalid. +- */ +- +- WindowObject *self; +- +- if (win->w_python3_ref) +- { +- self = win->w_python3_ref; +- Py_INCREF(self); +- } +- else +- { +- self = PyObject_NEW(WindowObject, &WindowType); +- if (self == NULL) +- return NULL; +- self->win = win; +- win->w_python3_ref = self; +- } +- +- return (PyObject *)(self); +- } +- +- static PyObject * + WindowGetattro(PyObject *self, PyObject *nameobj) + { + PyObject *r; +--- 1286,1291 ---- +*************** +*** 1575,1585 **** + void + python3_buffer_free(buf_T *buf) + { +! if (buf->b_python3_ref != NULL) + { +! BufferObject *bp = buf->b_python3_ref; + bp->buf = INVALID_BUFFER_VALUE; +! buf->b_python3_ref = NULL; + } + } + +--- 1485,1495 ---- + void + python3_buffer_free(buf_T *buf) + { +! if (BUF_PYTHON_REF(buf) != NULL) + { +! BufferObject *bp = BUF_PYTHON_REF(buf); + bp->buf = INVALID_BUFFER_VALUE; +! BUF_PYTHON_REF(buf) = NULL; + } + } + +*************** +*** 1587,1597 **** + void + python3_window_free(win_T *win) + { +! if (win->w_python3_ref != NULL) + { +! WindowObject *wp = win->w_python3_ref; + wp->win = INVALID_WINDOW_VALUE; +! win->w_python3_ref = NULL; + } + } + #endif +--- 1497,1507 ---- + void + python3_window_free(win_T *win) + { +! if (WIN_PYTHON_REF(win) != NULL) + { +! WindowObject *wp = WIN_PYTHON_REF(win); + wp->win = INVALID_WINDOW_VALUE; +! WIN_PYTHON_REF(win) = NULL; + } + } + #endif +*** ../vim-7.3.936/src/if_py_both.h 2013-05-06 06:26:10.000000000 +0200 +--- src/if_py_both.h 2013-05-12 18:31:20.000000000 +0200 +*************** +*** 1782,1792 **** +--- 1782,1832 ---- + return 0; + } + ++ /* Window object ++ */ ++ + static int WindowSetattr(PyObject *, char *, PyObject *); + static PyObject *WindowRepr(PyObject *); + static PyTypeObject WindowType; + + static PyObject * ++ WindowNew(win_T *win) ++ { ++ /* We need to handle deletion of windows underneath us. ++ * If we add a "w_python*_ref" field to the win_T structure, ++ * then we can get at it in win_free() in vim. We then ++ * need to create only ONE Python object per window - if ++ * we try to create a second, just INCREF the existing one ++ * and return it. The (single) Python object referring to ++ * the window is stored in "w_python*_ref". ++ * On a win_free() we set the Python object's win_T* field ++ * to an invalid value. We trap all uses of a window ++ * object, and reject them if the win_T* field is invalid. ++ * ++ * Python2 and Python3 get different fields and different objects: ++ * w_python_ref and w_python3_ref fields respectively. ++ */ ++ ++ WindowObject *self; ++ ++ if (WIN_PYTHON_REF(win)) ++ { ++ self = WIN_PYTHON_REF(win); ++ Py_INCREF(self); ++ } ++ else ++ { ++ self = PyObject_NEW(WindowObject, &WindowType); ++ if (self == NULL) ++ return NULL; ++ self->win = win; ++ WIN_PYTHON_REF(win) = self; ++ } ++ ++ return (PyObject *)(self); ++ } ++ ++ static PyObject * + WindowAttr(WindowObject *this, char *name) + { + if (strcmp(name, "buffer") == 0) +*************** +*** 1809,1815 **** + return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, + (PyObject *) this); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[sssss]", "buffer", "cursor", "height", "vars", + "options"); + else + return NULL; +--- 1849,1855 ---- + return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, + (PyObject *) this); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", + "options"); + else + return NULL; +*************** +*** 1821,1831 **** + WindowObject *this = (WindowObject *)(self); + + if (this->win && this->win != INVALID_WINDOW_VALUE) +! #if PY_MAJOR_VERSION >= 3 +! this->win->w_python3_ref = NULL; +! #else +! this->win->w_python_ref = NULL; +! #endif + + DESTRUCTOR_FINISH(self); + } +--- 1861,1867 ---- + WindowObject *this = (WindowObject *)(self); + + if (this->win && this->win != INVALID_WINDOW_VALUE) +! WIN_PYTHON_REF(this->win) = NULL; + + DESTRUCTOR_FINISH(self); + } +*************** +*** 2756,2771 **** + BufferObject *this = (BufferObject *)(self); + + if (this->buf && this->buf != INVALID_BUFFER_VALUE) +! #if PY_MAJOR_VERSION >= 3 +! this->buf->b_python3_ref = NULL; +! #else +! this->buf->b_python_ref = NULL; +! #endif + + DESTRUCTOR_FINISH(self); + } + + static PyObject * + BufferAttr(BufferObject *this, char *name) + { + if (strcmp(name, "name") == 0) +--- 2792,2842 ---- + BufferObject *this = (BufferObject *)(self); + + if (this->buf && this->buf != INVALID_BUFFER_VALUE) +! BUF_PYTHON_REF(this->buf) = NULL; + + DESTRUCTOR_FINISH(self); + } + + static PyObject * ++ BufferNew(buf_T *buf) ++ { ++ /* We need to handle deletion of buffers underneath us. ++ * If we add a "b_python*_ref" field to the buf_T structure, ++ * then we can get at it in buf_freeall() in vim. We then ++ * need to create only ONE Python object per buffer - if ++ * we try to create a second, just INCREF the existing one ++ * and return it. The (single) Python object referring to ++ * the buffer is stored in "b_python*_ref". ++ * Question: what to do on a buf_freeall(). We'll probably ++ * have to either delete the Python object (DECREF it to ++ * zero - a bad idea, as it leaves dangling refs!) or ++ * set the buf_T * value to an invalid value (-1?), which ++ * means we need checks in all access functions... Bah. ++ * ++ * Python2 and Python3 get different fields and different objects: ++ * b_python_ref and b_python3_ref fields respectively. ++ */ ++ ++ BufferObject *self; ++ ++ if (BUF_PYTHON_REF(buf) != NULL) ++ { ++ self = BUF_PYTHON_REF(buf); ++ Py_INCREF(self); ++ } ++ else ++ { ++ self = PyObject_NEW(BufferObject, &BufferType); ++ if (self == NULL) ++ return NULL; ++ self->buf = buf; ++ BUF_PYTHON_REF(buf) = self; ++ } ++ ++ return (PyObject *)(self); ++ } ++ ++ static PyObject * + BufferAttr(BufferObject *this, char *name) + { + if (strcmp(name, "name") == 0) +*************** +*** 2783,2788 **** +--- 2854,2883 ---- + return NULL; + } + ++ static PyInt ++ BufferLength(PyObject *self) ++ { ++ /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */ ++ if (CheckBuffer((BufferObject *)(self))) ++ return -1; /* ??? */ ++ ++ return (PyInt)(((BufferObject *)(self))->buf->b_ml.ml_line_count); ++ } ++ ++ static PyObject * ++ BufferItem(PyObject *self, PyInt n) ++ { ++ return RBItem((BufferObject *)(self), n, 1, ++ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count); ++ } ++ ++ static PyObject * ++ BufferSlice(PyObject *self, PyInt lo, PyInt hi) ++ { ++ return RBSlice((BufferObject *)(self), lo, hi, 1, ++ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count); ++ } ++ + static PyObject * + BufferAppend(PyObject *self, PyObject *args) + { +*** ../vim-7.3.936/src/version.c 2013-05-12 14:10:41.000000000 +0200 +--- src/version.c 2013-05-12 18:44:01.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 937, + /**/ + +-- +ARTHUR: Well, I can't just call you `Man'. +DENNIS: Well, you could say `Dennis'. +ARTHUR: Well, I didn't know you were called `Dennis.' +DENNIS: Well, you didn't bother to find out, did you? + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 6f24d0a5cdfcd1bb85cc3c161c453912eaec4c0a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:41 +0200 Subject: [PATCH 281/291] - patchlevel 938 --- 7.3.938 | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 7.3.938 diff --git a/7.3.938 b/7.3.938 new file mode 100644 index 00000000..df8d37a6 --- /dev/null +++ b/7.3.938 @@ -0,0 +1,145 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.938 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.938 +Problem: Python: not easy to get to window number. +Solution: Add vim.window.number. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/proto/window.pro, + src/window.c + + +*** ../vim-7.3.937/runtime/doc/if_pyth.txt 2013-05-06 03:52:44.000000000 +0200 +--- runtime/doc/if_pyth.txt 2013-05-12 18:55:41.000000000 +0200 +*************** +*** 396,401 **** +--- 396,405 ---- + |python-options|. If option is |global-local| + and local value is missing getting it will + return None. ++ number (read-only) Window number. The first window has number 1. ++ This is zero in case it cannot be determined ++ (e.g. when the window object belongs to other ++ tab page). + The height attribute is writable only if the screen is split horizontally. + The width attribute is writable only if the screen is split vertically. + +*** ../vim-7.3.937/src/if_py_both.h 2013-05-12 18:44:44.000000000 +0200 +--- src/if_py_both.h 2013-05-12 18:48:07.000000000 +0200 +*************** +*** 1848,1856 **** + else if (strcmp(name, "options") == 0) + return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, + (PyObject *) this); + else if (strcmp(name,"__members__") == 0) + return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", +! "options"); + else + return NULL; + } +--- 1848,1858 ---- + else if (strcmp(name, "options") == 0) + return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, + (PyObject *) this); ++ else if (strcmp(name, "number") == 0) ++ return PyLong_FromLong((long) get_win_number(this->win)); + else if (strcmp(name,"__members__") == 0) + return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", +! "options", "number"); + else + return NULL; + } +*************** +*** 1974,1990 **** + } + else + { +! int i = 0; +! win_T *w; + +! for (w = firstwin; w != NULL && w != this->win; w = W_NEXT(w)) +! ++i; +! +! if (w == NULL) + vim_snprintf(repr, 100, _(""), + (self)); + else +! vim_snprintf(repr, 100, _(""), i); + + return PyString_FromString(repr); + } +--- 1976,1988 ---- + } + else + { +! int w = get_win_number(this->win); + +! if (w == 0) + vim_snprintf(repr, 100, _(""), + (self)); + else +! vim_snprintf(repr, 100, _(""), w - 1); + + return PyString_FromString(repr); + } +*** ../vim-7.3.937/src/proto/window.pro 2013-05-06 04:50:26.000000000 +0200 +--- src/proto/window.pro 2013-05-12 18:48:07.000000000 +0200 +*************** +*** 74,77 **** +--- 74,78 ---- + int match_delete __ARGS((win_T *wp, int id, int perr)); + void clear_matches __ARGS((win_T *wp)); + matchitem_T *get_match __ARGS((win_T *wp, int id)); ++ int get_win_number __ARGS((win_T *wp)); + /* vim: set ft=c : */ +*** ../vim-7.3.937/src/window.c 2013-05-06 04:50:26.000000000 +0200 +--- src/window.c 2013-05-12 18:48:07.000000000 +0200 +*************** +*** 6731,6733 **** +--- 6731,6750 ---- + return cur; + } + #endif ++ ++ #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) || defined(PROTO) ++ int ++ get_win_number(win_T *wp) ++ { ++ int i = 1; ++ win_T *w; ++ ++ for (w = firstwin; w != NULL && w != wp; w = W_NEXT(w)) ++ ++i; ++ ++ if (w == NULL) ++ return 0; ++ else ++ return i; ++ } ++ #endif +*** ../vim-7.3.937/src/version.c 2013-05-12 18:44:44.000000000 +0200 +--- src/version.c 2013-05-12 18:52:29.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 938, + /**/ + +-- +ARTHUR: I did say sorry about the `old woman,' but from the behind you + looked-- +DENNIS: What I object to is you automatically treat me like an inferior! +ARTHUR: Well, I AM king... + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From b3d5f539cd3841d000833e415cb218e4f4497cde Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:41 +0200 Subject: [PATCH 282/291] - patchlevel 939 --- 7.3.939 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 7.3.939 diff --git a/7.3.939 b/7.3.939 new file mode 100644 index 00000000..3b8b7167 --- /dev/null +++ b/7.3.939 @@ -0,0 +1,60 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.939 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.939 +Problem: Using Py_BuildValue is inefficient sometimes. +Solution: Use PyLong_FromLong(). (ZyX) +Files: src/if_py_both.h + + +*** ../vim-7.3.938/src/if_py_both.h 2013-05-12 19:00:36.000000000 +0200 +--- src/if_py_both.h 2013-05-12 19:08:24.000000000 +0200 +*************** +*** 1838,1847 **** + return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col)); + } + else if (strcmp(name, "height") == 0) +! return Py_BuildValue("l", (long)(this->win->w_height)); + #ifdef FEAT_VERTSPLIT + else if (strcmp(name, "width") == 0) +! return Py_BuildValue("l", (long)(W_WIDTH(this->win))); + #endif + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->win->w_vars); +--- 1838,1847 ---- + return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col)); + } + else if (strcmp(name, "height") == 0) +! return PyLong_FromLong((long)(this->win->w_height)); + #ifdef FEAT_VERTSPLIT + else if (strcmp(name, "width") == 0) +! return PyLong_FromLong((long)(W_WIDTH(this->win))); + #endif + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->win->w_vars); +*** ../vim-7.3.938/src/version.c 2013-05-12 19:00:36.000000000 +0200 +--- src/version.c 2013-05-12 19:09:19.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 939, + /**/ + +-- +A mathematician is a device for turning coffee into theorems. + Paul Erdos +A computer programmer is a device for turning coffee into bugs. + Bram Moolenaar + + /// 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 /// From f99b4a2fd3420ccc068f244d0a40699bff465ea5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:42 +0200 Subject: [PATCH 283/291] - patchlevel 940 --- 7.3.940 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.3.940 diff --git a/7.3.940 b/7.3.940 new file mode 100644 index 00000000..07209b0b --- /dev/null +++ b/7.3.940 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.940 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.940 +Problem: Python: Can't get position of window. +Solution: Add window.row and window.col. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h + + +*** ../vim-7.3.939/runtime/doc/if_pyth.txt 2013-05-12 19:00:36.000000000 +0200 +--- runtime/doc/if_pyth.txt 2013-05-12 19:24:40.000000000 +0200 +*************** +*** 400,405 **** +--- 400,408 ---- + This is zero in case it cannot be determined + (e.g. when the window object belongs to other + tab page). ++ row, col (read-only) On-screen window position in display cells. ++ First position is zero. ++ + The height attribute is writable only if the screen is split horizontally. + The width attribute is writable only if the screen is split vertically. + +*** ../vim-7.3.939/src/if_py_both.h 2013-05-12 19:09:46.000000000 +0200 +--- src/if_py_both.h 2013-05-12 19:22:16.000000000 +0200 +*************** +*** 1839,1847 **** +--- 1839,1853 ---- + } + else if (strcmp(name, "height") == 0) + return PyLong_FromLong((long)(this->win->w_height)); ++ #ifdef FEAT_WINDOWS ++ else if (strcmp(name, "row") == 0) ++ return PyLong_FromLong((long)(this->win->w_winrow)); ++ #endif + #ifdef FEAT_VERTSPLIT + else if (strcmp(name, "width") == 0) + return PyLong_FromLong((long)(W_WIDTH(this->win))); ++ else if (strcmp(name, "col") == 0) ++ return PyLong_FromLong((long)(W_WINCOL(this->win))); + #endif + else if (strcmp(name, "vars") == 0) + return DictionaryNew(this->win->w_vars); +*************** +*** 1851,1858 **** + else if (strcmp(name, "number") == 0) + return PyLong_FromLong((long) get_win_number(this->win)); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", +! "options", "number"); + else + return NULL; + } +--- 1857,1864 ---- + else if (strcmp(name, "number") == 0) + return PyLong_FromLong((long) get_win_number(this->win)); + else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssssssss]", "buffer", "cursor", "height", "vars", +! "options", "number", "row", "col"); + else + return NULL; + } +*** ../vim-7.3.939/src/version.c 2013-05-12 19:09:46.000000000 +0200 +--- src/version.c 2013-05-12 19:23:50.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 940, + /**/ + +-- +A computer programmer is a device for turning requirements into +undocumented features. It runs on cola, pizza and Dilbert cartoons. + Bram Moolenaar + + /// 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 /// From ffc55f25e10c8dbaad7d4876902188d423c90238 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:43 +0200 Subject: [PATCH 284/291] - patchlevel 941 --- 7.3.941 | 1456 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1456 insertions(+) create mode 100644 7.3.941 diff --git a/7.3.941 b/7.3.941 new file mode 100644 index 00000000..c7792aa8 --- /dev/null +++ b/7.3.941 @@ -0,0 +1,1456 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.941 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.941 +Problem: Stuff in if_py_both.h is ordered badly. +Solution: Reorder by type. (ZyX) +Files: src/if_py_both.h, src/if_python.c + + +*** ../vim-7.3.940/src/if_py_both.h 2013-05-12 19:30:27.000000000 +0200 +--- src/if_py_both.h 2013-05-12 19:36:38.000000000 +0200 +*************** +*** 7,13 **** + * See README.txt for an overview of the Vim source code. + */ + /* +! * Python extensions by Paul Moore, David Leonard, Roland Puntaier. + * + * Common code for if_python.c and if_python3.c. + */ +--- 7,14 ---- + * See README.txt for an overview of the Vim source code. + */ + /* +! * Python extensions by Paul Moore, David Leonard, Roland Puntaier, Nikolay +! * Pavlov. + * + * Common code for if_python.c and if_python3.c. + */ +*************** +*** 22,27 **** +--- 23,39 ---- + # define ENC_OPT "latin1" + #endif + ++ #define PyErr_SetVim(str) PyErr_SetString(VimError, str) ++ ++ #define INVALID_BUFFER_VALUE ((buf_T *)(-1)) ++ #define INVALID_WINDOW_VALUE ((win_T *)(-1)) ++ ++ static int ConvertFromPyObject(PyObject *, typval_T *); ++ static int _ConvertFromPyObject(PyObject *, typval_T *, PyObject *); ++ ++ static PyInt RangeStart; ++ static PyInt RangeEnd; ++ + /* + * obtain a lock on the Vim data structures + */ +*************** +*** 38,53 **** + { + } + +! /* Output object definition + */ + +- static PyObject *OutputWrite(PyObject *, PyObject *); +- static PyObject *OutputWritelines(PyObject *, PyObject *); +- static PyObject *OutputFlush(PyObject *, PyObject *); +- + /* Function to write a line, points to either msg() or emsg(). */ + typedef void (*writefn)(char_u *); +! static void writer(writefn fn, char_u *str, PyInt n); + + typedef struct + { +--- 50,62 ---- + { + } + +! /* Output buffer management + */ + + /* Function to write a line, points to either msg() or emsg(). */ + typedef void (*writefn)(char_u *); +! +! static PyTypeObject OutputType; + + typedef struct + { +*************** +*** 56,76 **** + long error; + } OutputObject; + +- static struct PyMethodDef OutputMethods[] = { +- /* name, function, calling, documentation */ +- {"write", OutputWrite, 1, ""}, +- {"writelines", OutputWritelines, 1, ""}, +- {"flush", OutputFlush, 1, ""}, +- { NULL, NULL, 0, NULL} +- }; +- +- #define PyErr_SetVim(str) PyErr_SetString(VimError, str) +- +- /*************/ +- +- /* Output buffer management +- */ +- + static int + OutputSetattr(PyObject *self, char *name, PyObject *val) + { +--- 65,70 ---- +*************** +*** 96,101 **** +--- 90,145 ---- + return -1; + } + ++ /* Buffer IO, we write one whole line at a time. */ ++ static garray_T io_ga = {0, 0, 1, 80, NULL}; ++ static writefn old_fn = NULL; ++ ++ static void ++ PythonIO_Flush(void) ++ { ++ if (old_fn != NULL && io_ga.ga_len > 0) ++ { ++ ((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL; ++ old_fn((char_u *)io_ga.ga_data); ++ } ++ io_ga.ga_len = 0; ++ } ++ ++ static void ++ writer(writefn fn, char_u *str, PyInt n) ++ { ++ char_u *ptr; ++ ++ /* Flush when switching output function. */ ++ if (fn != old_fn) ++ PythonIO_Flush(); ++ old_fn = fn; ++ ++ /* Write each NL separated line. Text after the last NL is kept for ++ * writing later. */ ++ while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL) ++ { ++ PyInt len = ptr - str; ++ ++ if (ga_grow(&io_ga, (int)(len + 1)) == FAIL) ++ break; ++ ++ mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len); ++ ((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL; ++ fn((char_u *)io_ga.ga_data); ++ str = ptr + 1; ++ n -= len + 1; ++ io_ga.ga_len = 0; ++ } ++ ++ /* Put the remaining text into io_ga for later printing. */ ++ if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK) ++ { ++ mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n); ++ io_ga.ga_len += (int)n; ++ } ++ } ++ + static PyObject * + OutputWrite(PyObject *self, PyObject *args) + { +*************** +*** 172,231 **** + return Py_None; + } + +- +- /* Buffer IO, we write one whole line at a time. */ +- static garray_T io_ga = {0, 0, 1, 80, NULL}; +- static writefn old_fn = NULL; +- +- static void +- PythonIO_Flush(void) +- { +- if (old_fn != NULL && io_ga.ga_len > 0) +- { +- ((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL; +- old_fn((char_u *)io_ga.ga_data); +- } +- io_ga.ga_len = 0; +- } +- +- static void +- writer(writefn fn, char_u *str, PyInt n) +- { +- char_u *ptr; +- +- /* Flush when switching output function. */ +- if (fn != old_fn) +- PythonIO_Flush(); +- old_fn = fn; +- +- /* Write each NL separated line. Text after the last NL is kept for +- * writing later. */ +- while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL) +- { +- PyInt len = ptr - str; +- +- if (ga_grow(&io_ga, (int)(len + 1)) == FAIL) +- break; +- +- mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len); +- ((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL; +- fn((char_u *)io_ga.ga_data); +- str = ptr + 1; +- n -= len + 1; +- io_ga.ga_len = 0; +- } +- +- /* Put the remaining text into io_ga for later printing. */ +- if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK) +- { +- mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n); +- io_ga.ga_len += (int)n; +- } +- } +- + /***************/ + +! static PyTypeObject OutputType; + + static OutputObject Output = + { +--- 216,230 ---- + return Py_None; + } + + /***************/ + +! static struct PyMethodDef OutputMethods[] = { +! /* name, function, calling, documentation */ +! {"write", OutputWrite, 1, ""}, +! {"writelines", OutputWritelines, 1, ""}, +! {"flush", OutputFlush, 1, ""}, +! { NULL, NULL, 0, NULL} +! }; + + static OutputObject Output = + { +*************** +*** 281,286 **** +--- 280,286 ---- + + /* Vim module - Implementation + */ ++ + static PyObject * + VimCommand(PyObject *self UNUSED, PyObject *args) + { +*************** +*** 530,555 **** + { NULL, NULL, 0, NULL } + }; + +- typedef struct +- { +- PyObject_HEAD +- buf_T *buf; +- } BufferObject; +- +- #define INVALID_BUFFER_VALUE ((buf_T *)(-1)) +- + /* + * Buffer list object - Implementation + */ + + typedef struct + { + PyObject_HEAD + } BufListObject; + +- static PyTypeObject BufListType; +- static PySequenceMethods WinListAsSeq; +- + static PyInt + BufListLength(PyObject *self UNUSED) + { +--- 530,547 ---- + { NULL, NULL, 0, NULL } + }; + + /* + * Buffer list object - Implementation + */ + ++ static PyTypeObject BufListType; ++ static PySequenceMethods BufListAsSeq; ++ + typedef struct + { + PyObject_HEAD + } BufListObject; + + static PyInt + BufListLength(PyObject *self UNUSED) + { +*************** +*** 580,599 **** + return NULL; + } + +- typedef struct +- { +- PyObject_HEAD +- win_T *win; +- } WindowObject; +- +- static struct PyMethodDef WindowMethods[] = { +- /* name, function, calling, documentation */ +- { NULL, NULL, 0, NULL } +- }; +- +- static int ConvertFromPyObject(PyObject *, typval_T *); +- static int _ConvertFromPyObject(PyObject *, typval_T *, PyObject *); +- + typedef struct pylinkedlist_S { + struct pylinkedlist_S *pll_next; + struct pylinkedlist_S *pll_prev; +--- 572,577 ---- +*************** +*** 655,670 **** + pylinkedlist_T ref; + } DictionaryObject; + +- static PyInt DictionaryAssItem(PyObject *, PyObject *, PyObject *); +- static PyInt DictionaryLength(PyObject *); +- static PyObject *DictionaryItem(PyObject *, PyObject *); +- +- static PyMappingMethods DictionaryAsMapping = { +- (lenfunc) DictionaryLength, +- (binaryfunc) DictionaryItem, +- (objobjargproc) DictionaryAssItem, +- }; +- + static PyObject * + DictionaryNew(dict_T *dict) + { +--- 633,638 ---- +*************** +*** 693,895 **** + } + + static int +! pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) + { +! dict_T *d; +! char_u *key; +! dictitem_T *di; +! PyObject *keyObject; +! PyObject *valObject; +! Py_ssize_t iter = 0; + +! d = dict_alloc(); +! if (d == NULL) + { +! PyErr_NoMemory(); + return -1; + } + +! tv->v_type = VAR_DICT; +! tv->vval.v_dict = d; +! +! while (PyDict_Next(obj, &iter, &keyObject, &valObject)) + { +! DICTKEY_DECL +! +! if (keyObject == NULL) +! return -1; +! if (valObject == NULL) +! return -1; +! +! DICTKEY_GET_NOTEMPTY(-1) +! +! di = dictitem_alloc(key); +! +! DICTKEY_UNREF +! +! if (di == NULL) +! { +! PyErr_NoMemory(); +! return -1; +! } +! di->di_tv.v_lock = 0; +! +! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1) + { +! vim_free(di); + return -1; + } +! if (dict_add(d, di) == FAIL) + { +! vim_free(di); +! PyErr_SetVim(_("failed to add key to dictionary")); +! return -1; + } + } +- return 0; + } + +! static int +! pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) + { +- dict_T *d; + char_u *key; + dictitem_T *di; +! PyObject *list; +! PyObject *litem; +! PyObject *keyObject; +! PyObject *valObject; +! Py_ssize_t lsize; +! +! d = dict_alloc(); +! if (d == NULL) +! { +! PyErr_NoMemory(); +! return -1; +! } +! +! tv->v_type = VAR_DICT; +! tv->vval.v_dict = d; +! +! list = PyMapping_Items(obj); +! if (list == NULL) +! return -1; +! lsize = PyList_Size(list); +! while (lsize--) +! { +! DICTKEY_DECL +! +! litem = PyList_GetItem(list, lsize); +! if (litem == NULL) +! { +! Py_DECREF(list); +! return -1; +! } +! +! keyObject = PyTuple_GetItem(litem, 0); +! if (keyObject == NULL) +! { +! Py_DECREF(list); +! Py_DECREF(litem); +! return -1; +! } +! +! DICTKEY_GET_NOTEMPTY(-1) +! +! valObject = PyTuple_GetItem(litem, 1); +! if (valObject == NULL) +! { +! Py_DECREF(list); +! Py_DECREF(litem); +! return -1; +! } +! +! di = dictitem_alloc(key); +! +! DICTKEY_UNREF +! +! if (di == NULL) +! { +! Py_DECREF(list); +! Py_DECREF(litem); +! PyErr_NoMemory(); +! return -1; +! } +! di->di_tv.v_lock = 0; +! +! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1) +! { +! vim_free(di); +! Py_DECREF(list); +! Py_DECREF(litem); +! return -1; +! } +! if (dict_add(d, di) == FAIL) +! { +! vim_free(di); +! Py_DECREF(list); +! Py_DECREF(litem); +! PyErr_SetVim(_("failed to add key to dictionary")); +! return -1; +! } +! Py_DECREF(litem); +! } +! Py_DECREF(list); +! return 0; +! } +! +! static int +! DictionarySetattr(PyObject *self, char *name, PyObject *val) +! { +! DictionaryObject *this = (DictionaryObject *)(self); +! +! if (val == NULL) +! { +! PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); +! return -1; +! } +! +! if (strcmp(name, "locked") == 0) +! { +! if (this->dict->dv_lock == VAR_FIXED) +! { +! PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed dictionary")); +! return -1; +! } +! else +! { +! if (!PyBool_Check(val)) +! { +! PyErr_SetString(PyExc_TypeError, _("Only boolean objects are allowed")); +! return -1; +! } +! +! if (val == Py_True) +! this->dict->dv_lock = VAR_LOCKED; +! else +! this->dict->dv_lock = 0; +! } +! return 0; +! } +! else +! { +! PyErr_SetString(PyExc_AttributeError, _("Cannot set this attribute")); +! return -1; +! } +! } +! +! static PyInt +! DictionaryLength(PyObject *self) +! { +! return ((PyInt) ((((DictionaryObject *)(self))->dict->dv_hashtab.ht_used))); +! } +! +! static PyObject * +! DictionaryItem(PyObject *self, PyObject *keyObject) +! { +! char_u *key; +! dictitem_T *di; +! DICTKEY_DECL + + DICTKEY_GET_NOTEMPTY(NULL) + +--- 661,717 ---- + } + + static int +! DictionarySetattr(PyObject *self, char *name, PyObject *val) + { +! DictionaryObject *this = (DictionaryObject *)(self); + +! if (val == NULL) + { +! PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); + return -1; + } + +! if (strcmp(name, "locked") == 0) + { +! if (this->dict->dv_lock == VAR_FIXED) + { +! PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed dictionary")); + return -1; + } +! else + { +! if (!PyBool_Check(val)) +! { +! PyErr_SetString(PyExc_TypeError, _("Only boolean objects are allowed")); +! return -1; +! } +! +! if (val == Py_True) +! this->dict->dv_lock = VAR_LOCKED; +! else +! this->dict->dv_lock = 0; + } ++ return 0; ++ } ++ else ++ { ++ PyErr_SetString(PyExc_AttributeError, _("Cannot set this attribute")); ++ return -1; + } + } + +! static PyInt +! DictionaryLength(PyObject *self) +! { +! return ((PyInt) ((((DictionaryObject *)(self))->dict->dv_hashtab.ht_used))); +! } +! +! static PyObject * +! DictionaryItem(PyObject *self, PyObject *keyObject) + { + char_u *key; + dictitem_T *di; +! DICTKEY_DECL + + DICTKEY_GET_NOTEMPTY(NULL) + +*************** +*** 993,998 **** +--- 815,826 ---- + return r; + } + ++ static PyMappingMethods DictionaryAsMapping = { ++ (lenfunc) DictionaryLength, ++ (binaryfunc) DictionaryItem, ++ (objobjargproc) DictionaryAssItem, ++ }; ++ + static struct PyMethodDef DictionaryMethods[] = { + {"keys", (PyCFunction)DictionaryListKeys, METH_NOARGS, ""}, + { NULL, NULL, 0, NULL } +*************** +*** 1065,1136 **** + return 0; + } + +- static int +- pyseq_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) +- { +- list_T *l; +- +- l = list_alloc(); +- if (l == NULL) +- { +- PyErr_NoMemory(); +- return -1; +- } +- +- tv->v_type = VAR_LIST; +- tv->vval.v_list = l; +- +- if (list_py_concat(l, obj, lookupDict) == -1) +- return -1; +- +- return 0; +- } +- +- static int +- pyiter_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) +- { +- PyObject *iterator = PyObject_GetIter(obj); +- PyObject *item; +- list_T *l; +- listitem_T *li; +- +- l = list_alloc(); +- +- if (l == NULL) +- { +- PyErr_NoMemory(); +- return -1; +- } +- +- tv->vval.v_list = l; +- tv->v_type = VAR_LIST; +- +- +- if (iterator == NULL) +- return -1; +- +- while ((item = PyIter_Next(obj))) +- { +- li = listitem_alloc(); +- if (li == NULL) +- { +- PyErr_NoMemory(); +- return -1; +- } +- li->li_tv.v_lock = 0; +- +- if (_ConvertFromPyObject(item, &li->li_tv, lookupDict) == -1) +- return -1; +- +- list_append(l, li); +- +- Py_DECREF(item); +- } +- +- Py_DECREF(iterator); +- return 0; +- } +- + static PyInt + ListLength(PyObject *self) + { +--- 893,898 ---- +*************** +*** 1768,1774 **** + (objobjargproc) OptionsAssItem, + }; + +! #define INVALID_WINDOW_VALUE ((win_T *)(-1)) + + static int + CheckWindow(WindowObject *this) +--- 1530,1547 ---- + (objobjargproc) OptionsAssItem, + }; + +! /* Window object +! */ +! +! typedef struct +! { +! PyObject_HEAD +! win_T *win; +! } WindowObject; +! +! static int WindowSetattr(PyObject *, char *, PyObject *); +! static PyObject *WindowRepr(PyObject *); +! static PyTypeObject WindowType; + + static int + CheckWindow(WindowObject *this) +*************** +*** 1782,1794 **** + return 0; + } + +- /* Window object +- */ +- +- static int WindowSetattr(PyObject *, char *, PyObject *); +- static PyObject *WindowRepr(PyObject *); +- static PyTypeObject WindowType; +- + static PyObject * + WindowNew(win_T *win) + { +--- 1555,1560 ---- +*************** +*** 1803,1809 **** + * to an invalid value. We trap all uses of a window + * object, and reject them if the win_T* field is invalid. + * +! * Python2 and Python3 get different fields and different objects: + * w_python_ref and w_python3_ref fields respectively. + */ + +--- 1569,1575 ---- + * to an invalid value. We trap all uses of a window + * object, and reject them if the win_T* field is invalid. + * +! * Python2 and Python3 get different fields and different objects: + * w_python_ref and w_python3_ref fields respectively. + */ + +*************** +*** 1826,1831 **** +--- 1592,1608 ---- + return (PyObject *)(self); + } + ++ static void ++ WindowDestructor(PyObject *self) ++ { ++ WindowObject *this = (WindowObject *)(self); ++ ++ if (this->win && this->win != INVALID_WINDOW_VALUE) ++ WIN_PYTHON_REF(this->win) = NULL; ++ ++ DESTRUCTOR_FINISH(self); ++ } ++ + static PyObject * + WindowAttr(WindowObject *this, char *name) + { +*************** +*** 1863,1879 **** + return NULL; + } + +- static void +- WindowDestructor(PyObject *self) +- { +- WindowObject *this = (WindowObject *)(self); +- +- if (this->win && this->win != INVALID_WINDOW_VALUE) +- WIN_PYTHON_REF(this->win) = NULL; +- +- DESTRUCTOR_FINISH(self); +- } +- + static int + WindowSetattr(PyObject *self, char *name, PyObject *val) + { +--- 1640,1645 ---- +*************** +*** 1994,2011 **** + } + } + + /* +! * Window list object - Implementation + */ + + typedef struct + { + PyObject_HEAD + } WinListObject; + +- static PyTypeObject WinListType; +- static PySequenceMethods BufListAsSeq; +- + static PyInt + WinListLength(PyObject *self UNUSED) + { +--- 1760,1782 ---- + } + } + ++ static struct PyMethodDef WindowMethods[] = { ++ /* name, function, calling, documentation */ ++ { NULL, NULL, 0, NULL } ++ }; ++ + /* +! * Window list object + */ + ++ static PyTypeObject WinListType; ++ static PySequenceMethods WinListAsSeq; ++ + typedef struct + { + PyObject_HEAD + } WinListObject; + + static PyInt + WinListLength(PyObject *self UNUSED) + { +*************** +*** 2596,2602 **** + * ------------------------------------------- + */ + +! static int + CheckBuffer(BufferObject *this) + { + if (this->buf == INVALID_BUFFER_VALUE) +--- 2367,2379 ---- + * ------------------------------------------- + */ + +! typedef struct +! { +! PyObject_HEAD +! buf_T *buf; +! } BufferObject; +! +! static int + CheckBuffer(BufferObject *this) + { + if (this->buf == INVALID_BUFFER_VALUE) +*************** +*** 2737,2746 **** + return Py_None; + } + +! /* Range object - Definitions + */ + + static PyTypeObject RangeType; + + typedef struct + { +--- 2514,2525 ---- + return Py_None; + } + +! /* Range object + */ + + static PyTypeObject RangeType; ++ static PySequenceMethods RangeAsSeq; ++ static PyMappingMethods RangeAsMapping; + + typedef struct + { +*************** +*** 2750,2759 **** + PyInt end; + } RangeObject; + +- static void RangeDestructor(PyObject *); +- static PySequenceMethods RangeAsSeq; +- static PyMappingMethods RangeAsMapping; +- + static PyObject * + RangeNew(buf_T *buf, PyInt start, PyInt end) + { +--- 2529,2534 ---- +*************** +*** 2785,2806 **** + DESTRUCTOR_FINISH(self); + } + +! static PyTypeObject BufferType; +! static PyObject *BufferRepr(PyObject *); +! static PySequenceMethods BufferAsSeq; +! static PyMappingMethods BufferAsMapping; + +! static void +! BufferDestructor(PyObject *self) + { +! BufferObject *this = (BufferObject *)(self); + +! if (this->buf && this->buf != INVALID_BUFFER_VALUE) +! BUF_PYTHON_REF(this->buf) = NULL; + +! DESTRUCTOR_FINISH(self); + } + + static PyObject * + BufferNew(buf_T *buf) + { +--- 2560,2642 ---- + DESTRUCTOR_FINISH(self); + } + +! static PyInt +! RangeLength(PyObject *self) +! { +! /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */ +! if (CheckBuffer(((RangeObject *)(self))->buf)) +! return -1; /* ??? */ + +! return (((RangeObject *)(self))->end - ((RangeObject *)(self))->start + 1); +! } +! +! static PyObject * +! RangeItem(PyObject *self, PyInt n) + { +! return RBItem(((RangeObject *)(self))->buf, n, +! ((RangeObject *)(self))->start, +! ((RangeObject *)(self))->end); +! } + +! static PyObject * +! RangeSlice(PyObject *self, PyInt lo, PyInt hi) +! { +! return RBSlice(((RangeObject *)(self))->buf, lo, hi, +! ((RangeObject *)(self))->start, +! ((RangeObject *)(self))->end); +! } + +! static PyObject * +! RangeAppend(PyObject *self, PyObject *args) +! { +! return RBAppend(((RangeObject *)(self))->buf, args, +! ((RangeObject *)(self))->start, +! ((RangeObject *)(self))->end, +! &((RangeObject *)(self))->end); +! } +! +! static PyObject * +! RangeRepr(PyObject *self) +! { +! static char repr[100]; +! RangeObject *this = (RangeObject *)(self); +! +! if (this->buf->buf == INVALID_BUFFER_VALUE) +! { +! vim_snprintf(repr, 100, "", +! (self)); +! return PyString_FromString(repr); +! } +! else +! { +! char *name = (char *)this->buf->buf->b_fname; +! int len; +! +! if (name == NULL) +! name = ""; +! len = (int)strlen(name); +! +! if (len > 45) +! name = name + (45 - len); +! +! vim_snprintf(repr, 100, "", +! len > 45 ? "..." : "", name, +! this->start, this->end); +! +! return PyString_FromString(repr); +! } + } + ++ static struct PyMethodDef RangeMethods[] = { ++ /* name, function, calling, documentation */ ++ {"append", RangeAppend, 1, "Append data to the Vim range" }, ++ { NULL, NULL, 0, NULL } ++ }; ++ ++ static PyTypeObject BufferType; ++ static PySequenceMethods BufferAsSeq; ++ static PyMappingMethods BufferAsMapping; ++ + static PyObject * + BufferNew(buf_T *buf) + { +*************** +*** 2817,2823 **** + * set the buf_T * value to an invalid value (-1?), which + * means we need checks in all access functions... Bah. + * +! * Python2 and Python3 get different fields and different objects: + * b_python_ref and b_python3_ref fields respectively. + */ + +--- 2653,2659 ---- + * set the buf_T * value to an invalid value (-1?), which + * means we need checks in all access functions... Bah. + * +! * Python2 and Python3 get different fields and different objects: + * b_python_ref and b_python3_ref fields respectively. + */ + +*************** +*** 2840,2861 **** + return (PyObject *)(self); + } + +! static PyObject * +! BufferAttr(BufferObject *this, char *name) + { +! if (strcmp(name, "name") == 0) +! return Py_BuildValue("s", this->buf->b_ffname); +! else if (strcmp(name, "number") == 0) +! return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); +! else if (strcmp(name, "vars") == 0) +! return DictionaryNew(this->buf->b_vars); +! else if (strcmp(name, "options") == 0) +! return OptionsNew(SREQ_BUF, this->buf, (checkfun) CheckBuffer, +! (PyObject *) this); +! else if (strcmp(name,"__members__") == 0) +! return Py_BuildValue("[ssss]", "name", "number", "vars", "options"); +! else +! return NULL; + } + + static PyInt +--- 2676,2690 ---- + return (PyObject *)(self); + } + +! static void +! BufferDestructor(PyObject *self) + { +! BufferObject *this = (BufferObject *)(self); +! +! if (this->buf && this->buf != INVALID_BUFFER_VALUE) +! BUF_PYTHON_REF(this->buf) = NULL; +! +! DESTRUCTOR_FINISH(self); + } + + static PyInt +*************** +*** 2883,2888 **** +--- 2712,2735 ---- + } + + static PyObject * ++ BufferAttr(BufferObject *this, char *name) ++ { ++ if (strcmp(name, "name") == 0) ++ return Py_BuildValue("s", this->buf->b_ffname); ++ else if (strcmp(name, "number") == 0) ++ return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); ++ else if (strcmp(name, "vars") == 0) ++ return DictionaryNew(this->buf->b_vars); ++ else if (strcmp(name, "options") == 0) ++ return OptionsNew(SREQ_BUF, this->buf, (checkfun) CheckBuffer, ++ (PyObject *) this); ++ else if (strcmp(name,"__members__") == 0) ++ return Py_BuildValue("[ssss]", "name", "number", "vars", "options"); ++ else ++ return NULL; ++ } ++ ++ static PyObject * + BufferAppend(PyObject *self, PyObject *args) + { + return RBAppend((BufferObject *)(self), args, 1, +*************** +*** 2985,3073 **** + { NULL, NULL, 0, NULL } + }; + +! static PyObject * +! RangeAppend(PyObject *self, PyObject *args) +! { +! return RBAppend(((RangeObject *)(self))->buf, args, +! ((RangeObject *)(self))->start, +! ((RangeObject *)(self))->end, +! &((RangeObject *)(self))->end); +! } +! +! static PyInt +! RangeLength(PyObject *self) +! { +! /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */ +! if (CheckBuffer(((RangeObject *)(self))->buf)) +! return -1; /* ??? */ +! +! return (((RangeObject *)(self))->end - ((RangeObject *)(self))->start + 1); +! } +! +! static PyObject * +! RangeItem(PyObject *self, PyInt n) +! { +! return RBItem(((RangeObject *)(self))->buf, n, +! ((RangeObject *)(self))->start, +! ((RangeObject *)(self))->end); +! } +! +! static PyObject * +! RangeRepr(PyObject *self) +! { +! static char repr[100]; +! RangeObject *this = (RangeObject *)(self); +! +! if (this->buf->buf == INVALID_BUFFER_VALUE) +! { +! vim_snprintf(repr, 100, "", +! (self)); +! return PyString_FromString(repr); +! } +! else +! { +! char *name = (char *)this->buf->buf->b_fname; +! int len; +! +! if (name == NULL) +! name = ""; +! len = (int)strlen(name); +! +! if (len > 45) +! name = name + (45 - len); +! +! vim_snprintf(repr, 100, "", +! len > 45 ? "..." : "", name, +! this->start, this->end); +! +! return PyString_FromString(repr); +! } +! } +! +! static PyObject * +! RangeSlice(PyObject *self, PyInt lo, PyInt hi) +! { +! return RBSlice(((RangeObject *)(self))->buf, lo, hi, +! ((RangeObject *)(self))->start, +! ((RangeObject *)(self))->end); +! } +! +! /* +! * Line range object - Definitions +! */ +! +! static struct PyMethodDef RangeMethods[] = { +! /* name, function, calling, documentation */ +! {"append", RangeAppend, 1, "Append data to the Vim range" }, +! { NULL, NULL, 0, NULL } +! }; +! +! /* Current items object - Implementation + */ + +- static PyInt RangeStart; +- static PyInt RangeEnd; +- + static PyObject * + CurrentGetattr(PyObject *self UNUSED, char *name) + { +--- 2832,2840 ---- + { NULL, NULL, 0, NULL } + }; + +! /* Current items object + */ + + static PyObject * + CurrentGetattr(PyObject *self UNUSED, char *name) + { +*************** +*** 3147,3152 **** +--- 2914,3131 ---- + return 0; + } + ++ static int ++ pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) ++ { ++ dict_T *d; ++ char_u *key; ++ dictitem_T *di; ++ PyObject *keyObject; ++ PyObject *valObject; ++ Py_ssize_t iter = 0; ++ ++ d = dict_alloc(); ++ if (d == NULL) ++ { ++ PyErr_NoMemory(); ++ return -1; ++ } ++ ++ tv->v_type = VAR_DICT; ++ tv->vval.v_dict = d; ++ ++ while (PyDict_Next(obj, &iter, &keyObject, &valObject)) ++ { ++ DICTKEY_DECL ++ ++ if (keyObject == NULL) ++ return -1; ++ if (valObject == NULL) ++ return -1; ++ ++ DICTKEY_GET_NOTEMPTY(-1) ++ ++ di = dictitem_alloc(key); ++ ++ DICTKEY_UNREF ++ ++ if (di == NULL) ++ { ++ PyErr_NoMemory(); ++ return -1; ++ } ++ di->di_tv.v_lock = 0; ++ ++ if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1) ++ { ++ vim_free(di); ++ return -1; ++ } ++ if (dict_add(d, di) == FAIL) ++ { ++ vim_free(di); ++ PyErr_SetVim(_("failed to add key to dictionary")); ++ return -1; ++ } ++ } ++ return 0; ++ } ++ ++ static int ++ pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) ++ { ++ dict_T *d; ++ char_u *key; ++ dictitem_T *di; ++ PyObject *list; ++ PyObject *litem; ++ PyObject *keyObject; ++ PyObject *valObject; ++ Py_ssize_t lsize; ++ ++ d = dict_alloc(); ++ if (d == NULL) ++ { ++ PyErr_NoMemory(); ++ return -1; ++ } ++ ++ tv->v_type = VAR_DICT; ++ tv->vval.v_dict = d; ++ ++ list = PyMapping_Items(obj); ++ if (list == NULL) ++ return -1; ++ lsize = PyList_Size(list); ++ while (lsize--) ++ { ++ DICTKEY_DECL ++ ++ litem = PyList_GetItem(list, lsize); ++ if (litem == NULL) ++ { ++ Py_DECREF(list); ++ return -1; ++ } ++ ++ keyObject = PyTuple_GetItem(litem, 0); ++ if (keyObject == NULL) ++ { ++ Py_DECREF(list); ++ Py_DECREF(litem); ++ return -1; ++ } ++ ++ DICTKEY_GET_NOTEMPTY(-1) ++ ++ valObject = PyTuple_GetItem(litem, 1); ++ if (valObject == NULL) ++ { ++ Py_DECREF(list); ++ Py_DECREF(litem); ++ return -1; ++ } ++ ++ di = dictitem_alloc(key); ++ ++ DICTKEY_UNREF ++ ++ if (di == NULL) ++ { ++ Py_DECREF(list); ++ Py_DECREF(litem); ++ PyErr_NoMemory(); ++ return -1; ++ } ++ di->di_tv.v_lock = 0; ++ ++ if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1) ++ { ++ vim_free(di); ++ Py_DECREF(list); ++ Py_DECREF(litem); ++ return -1; ++ } ++ if (dict_add(d, di) == FAIL) ++ { ++ vim_free(di); ++ Py_DECREF(list); ++ Py_DECREF(litem); ++ PyErr_SetVim(_("failed to add key to dictionary")); ++ return -1; ++ } ++ Py_DECREF(litem); ++ } ++ Py_DECREF(list); ++ return 0; ++ } ++ ++ static int ++ pyseq_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) ++ { ++ list_T *l; ++ ++ l = list_alloc(); ++ if (l == NULL) ++ { ++ PyErr_NoMemory(); ++ return -1; ++ } ++ ++ tv->v_type = VAR_LIST; ++ tv->vval.v_list = l; ++ ++ if (list_py_concat(l, obj, lookupDict) == -1) ++ return -1; ++ ++ return 0; ++ } ++ ++ static int ++ pyiter_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) ++ { ++ PyObject *iterator = PyObject_GetIter(obj); ++ PyObject *item; ++ list_T *l; ++ listitem_T *li; ++ ++ l = list_alloc(); ++ ++ if (l == NULL) ++ { ++ PyErr_NoMemory(); ++ return -1; ++ } ++ ++ tv->vval.v_list = l; ++ tv->v_type = VAR_LIST; ++ ++ ++ if (iterator == NULL) ++ return -1; ++ ++ while ((item = PyIter_Next(obj))) ++ { ++ li = listitem_alloc(); ++ if (li == NULL) ++ { ++ PyErr_NoMemory(); ++ return -1; ++ } ++ li->li_tv.v_lock = 0; ++ ++ if (_ConvertFromPyObject(item, &li->li_tv, lookupDict) == -1) ++ return -1; ++ ++ list_append(l, li); ++ ++ Py_DECREF(item); ++ } ++ ++ Py_DECREF(iterator); ++ return 0; ++ } ++ + typedef int (*pytotvfunc)(PyObject *, typval_T *, PyObject *); + + static int +*** ../vim-7.3.940/src/if_python.c 2013-05-12 18:44:44.000000000 +0200 +--- src/if_python.c 2013-05-12 19:34:35.000000000 +0200 +*************** +*** 1019,1027 **** + + #define BufferType_Check(obj) ((obj)->ob_type == &BufferType) + +- static PyInt BufferLength(PyObject *); +- static PyObject *BufferItem(PyObject *, PyInt); +- static PyObject *BufferSlice(PyObject *, PyInt, PyInt); + static PyInt BufferAssItem(PyObject *, PyInt, PyObject *); + static PyInt BufferAssSlice(PyObject *, PyInt, PyInt, PyObject *); + +--- 1019,1024 ---- +*** ../vim-7.3.940/src/version.c 2013-05-12 19:30:27.000000000 +0200 +--- src/version.c 2013-05-12 19:37:08.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 941, + /**/ + +-- +ARTHUR: Well, I AM king... +DENNIS: Oh king, eh, very nice. An' how'd you get that, eh? By exploitin' + the workers -- by 'angin' on to outdated imperialist dogma which + perpetuates the economic an' social differences in our society! If + there's ever going to be any progress-- + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From abbeab1d8c44825cd74c05047facf15152bbb558 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:44 +0200 Subject: [PATCH 285/291] - patchlevel 942 --- 7.3.942 | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 7.3.942 diff --git a/7.3.942 b/7.3.942 new file mode 100644 index 00000000..2ce3d164 --- /dev/null +++ b/7.3.942 @@ -0,0 +1,205 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.942 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.942 +Problem: Python: SEGV in Buffer functions. +Solution: Call CheckBuffer() at the right time. (ZyX) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + + +*** ../vim-7.3.941/src/if_py_both.h 2013-05-12 19:45:30.000000000 +0200 +--- src/if_py_both.h 2013-05-12 20:19:08.000000000 +0200 +*************** +*** 2391,2396 **** +--- 2391,2399 ---- + if (CheckBuffer(self)) + return NULL; + ++ if (end == -1) ++ end = self->buf->b_ml.ml_line_count; ++ + if (n < 0 || n > end - start) + { + PyErr_SetString(PyExc_IndexError, _("line number out of range")); +*************** +*** 2408,2413 **** +--- 2411,2419 ---- + if (CheckBuffer(self)) + return NULL; + ++ if (end == -1) ++ end = self->buf->b_ml.ml_line_count; ++ + size = end - start + 1; + + if (lo < 0) +*************** +*** 2432,2437 **** +--- 2438,2446 ---- + if (CheckBuffer(self)) + return -1; + ++ if (end == -1) ++ end = self->buf->b_ml.ml_line_count; ++ + if (n < 0 || n > end - start) + { + PyErr_SetString(PyExc_IndexError, _("line number out of range")); +*************** +*** 2457,2462 **** +--- 2466,2474 ---- + if (CheckBuffer(self)) + return -1; + ++ if (end == -1) ++ end = self->buf->b_ml.ml_line_count; ++ + /* Sort out the slice range */ + size = end - start + 1; + +*************** +*** 2493,2498 **** +--- 2505,2513 ---- + if (CheckBuffer(self)) + return NULL; + ++ if (end == -1) ++ end = self->buf->b_ml.ml_line_count; ++ + max = n = end - start + 1; + + if (!PyArg_ParseTuple(args, "O|n", &lines, &n)) +*************** +*** 2700,2714 **** + static PyObject * + BufferItem(PyObject *self, PyInt n) + { +! return RBItem((BufferObject *)(self), n, 1, +! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count); + } + + static PyObject * + BufferSlice(PyObject *self, PyInt lo, PyInt hi) + { +! return RBSlice((BufferObject *)(self), lo, hi, 1, +! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count); + } + + static PyObject * +--- 2715,2727 ---- + static PyObject * + BufferItem(PyObject *self, PyInt n) + { +! return RBItem((BufferObject *)(self), n, 1, -1); + } + + static PyObject * + BufferSlice(PyObject *self, PyInt lo, PyInt hi) + { +! return RBSlice((BufferObject *)(self), lo, hi, 1, -1); + } + + static PyObject * +*************** +*** 2732,2740 **** + static PyObject * + BufferAppend(PyObject *self, PyObject *args) + { +! return RBAppend((BufferObject *)(self), args, 1, +! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count, +! NULL); + } + + static PyObject * +--- 2745,2751 ---- + static PyObject * + BufferAppend(PyObject *self, PyObject *args) + { +! return RBAppend((BufferObject *)(self), args, 1, -1, NULL); + } + + static PyObject * +*** ../vim-7.3.941/src/if_python.c 2013-05-12 19:45:30.000000000 +0200 +--- src/if_python.c 2013-05-12 20:19:08.000000000 +0200 +*************** +*** 1073,1089 **** + static PyInt + BufferAssItem(PyObject *self, PyInt n, PyObject *val) + { +! return RBAsItem((BufferObject *)(self), n, val, 1, +! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count, +! NULL); + } + + static PyInt + BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val) + { +! return RBAsSlice((BufferObject *)(self), lo, hi, val, 1, +! (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count, +! NULL); + } + + static PySequenceMethods RangeAsSeq = { +--- 1073,1085 ---- + static PyInt + BufferAssItem(PyObject *self, PyInt n, PyObject *val) + { +! return RBAsItem((BufferObject *)(self), n, val, 1, -1, NULL); + } + + static PyInt + BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val) + { +! return RBAsSlice((BufferObject *)(self), lo, hi, val, 1, -1, NULL); + } + + static PySequenceMethods RangeAsSeq = { +*** ../vim-7.3.941/src/if_python3.c 2013-05-12 18:44:44.000000000 +0200 +--- src/if_python3.c 2013-05-12 20:19:08.000000000 +0200 +*************** +*** 1110,1115 **** +--- 1110,1118 ---- + { + Py_ssize_t start, stop, step, slicelen; + ++ if (CheckBuffer((BufferObject *) self)) ++ return NULL; ++ + if (PySlice_GetIndicesEx((PyObject *)idx, + (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1, + &start, &stop, +*************** +*** 1139,1144 **** +--- 1142,1150 ---- + { + Py_ssize_t start, stop, step, slicelen; + ++ if (CheckBuffer((BufferObject *) self)) ++ return -1; ++ + if (PySlice_GetIndicesEx((PyObject *)idx, + (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1, + &start, &stop, +*** ../vim-7.3.941/src/version.c 2013-05-12 19:45:30.000000000 +0200 +--- src/version.c 2013-05-12 19:49:58.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 942, + /**/ + +-- +Vim is like Emacs without all the typing. (John "Johann" Spetz) + + /// 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 /// From 50f7bcc4970a52bc9cddeb8500908e7319254bae Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:45 +0200 Subject: [PATCH 286/291] - patchlevel 943 --- 7.3.943 | 267 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 7.3.943 diff --git a/7.3.943 b/7.3.943 new file mode 100644 index 00000000..5d1de0c5 --- /dev/null +++ b/7.3.943 @@ -0,0 +1,267 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.943 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.943 +Problem: Python: Negative indices were failing. +Solution: Fix negative indices. Add tests. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok + + +*** ../vim-7.3.942/src/if_py_both.h 2013-05-12 20:36:09.000000000 +0200 +--- src/if_py_both.h 2013-05-12 21:10:03.000000000 +0200 +*************** +*** 2394,2399 **** +--- 2394,2402 ---- + if (end == -1) + end = self->buf->b_ml.ml_line_count; + ++ if (n < 0) ++ n += end - start + 1; ++ + if (n < 0 || n > end - start) + { + PyErr_SetString(PyExc_IndexError, _("line number out of range")); +*************** +*** 2441,2446 **** +--- 2444,2452 ---- + if (end == -1) + end = self->buf->b_ml.ml_line_count; + ++ if (n < 0) ++ n += end - start + 1; ++ + if (n < 0 || n > end - start) + { + PyErr_SetString(PyExc_IndexError, _("line number out of range")); +*** ../vim-7.3.942/src/if_python3.c 2013-05-12 20:36:09.000000000 +0200 +--- src/if_python3.c 2013-05-12 21:10:03.000000000 +0200 +*************** +*** 1114,1120 **** + return NULL; + + if (PySlice_GetIndicesEx((PyObject *)idx, +! (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1, + &start, &stop, + &step, &slicelen) < 0) + { +--- 1114,1120 ---- + return NULL; + + if (PySlice_GetIndicesEx((PyObject *)idx, +! (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, + &start, &stop, + &step, &slicelen) < 0) + { +*************** +*** 1146,1152 **** + return -1; + + if (PySlice_GetIndicesEx((PyObject *)idx, +! (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1, + &start, &stop, + &step, &slicelen) < 0) + { +--- 1146,1152 ---- + return -1; + + if (PySlice_GetIndicesEx((PyObject *)idx, +! (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, + &start, &stop, + &step, &slicelen) < 0) + { +*** ../vim-7.3.942/src/testdir/test86.in 2013-05-06 03:52:44.000000000 +0200 +--- src/testdir/test86.in 2013-05-12 21:11:43.000000000 +0200 +*************** +*** 475,483 **** + : endtry + : endfor + : call RecVars(oname) +- endtry + :endfor + :only + :endfun + :" + :call Test() +--- 475,524 ---- + : endtry + : endfor + : call RecVars(oname) + :endfor + :only ++ :" ++ :" Test buffer object ++ :vnew ++ :put ='First line' ++ :put ='Second line' ++ :put ='Third line' ++ :1 delete _ ++ :py b=vim.current.buffer ++ :wincmd w ++ :mark a ++ py << EOF ++ cb = vim.current.buffer ++ # Tests BufferAppend and BufferItem ++ cb.append(b[0]) ++ # Tests BufferSlice and BufferAssSlice ++ cb.append('abc') # Will be overwritten ++ cb[-1:] = b[:-2] ++ # Test BufferLength and BufferAssSlice ++ cb.append('def') # Will not be overwritten ++ cb[len(cb):] = b[:] ++ # Test BufferAssItem and BufferMark ++ cb.append('ghi') # Will be overwritten ++ cb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1])) ++ # Test BufferRepr ++ cb.append(repr(cb) + repr(b)) ++ # Modify foreign buffer ++ b.append('foo') ++ b[0]='bar' ++ b[0:0]=['baz'] ++ vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number) ++ # Test CheckBuffer ++ vim.command('bwipeout! ' + str(b.number)) ++ for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")'): ++ try: ++ exec(expr) ++ except vim.error: ++ pass ++ else: ++ # Usually a SEGV here ++ # Should not happen in any case ++ cb.append('No exception for ' + expr) ++ EOF + :endfun + :" + :call Test() +*** ../vim-7.3.942/src/testdir/test86.ok 2013-05-06 03:52:44.000000000 +0200 +--- src/testdir/test86.ok 2013-05-12 21:11:43.000000000 +0200 +*************** +*** 306,308 **** +--- 306,321 ---- + G: '.,,' + W: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' + B: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' ++ First line ++ First line ++ def ++ First line ++ Second line ++ Third line ++ (7, 2) ++ ++ baz ++ bar ++ Second line ++ Third line ++ foo +*** ../vim-7.3.942/src/testdir/test87.in 2013-05-06 03:52:44.000000000 +0200 +--- src/testdir/test87.in 2013-05-12 21:11:43.000000000 +0200 +*************** +*** 444,452 **** + : endtry + : endfor + : call RecVars(oname) +- endtry + :endfor + :only + :endfun + :" + :call Test() +--- 444,493 ---- + : endtry + : endfor + : call RecVars(oname) + :endfor + :only ++ :" ++ :" Test buffer object ++ :vnew ++ :put ='First line' ++ :put ='Second line' ++ :put ='Third line' ++ :1 delete _ ++ :py3 b=vim.current.buffer ++ :wincmd w ++ :mark a ++ py3 << EOF ++ cb = vim.current.buffer ++ # Tests BufferAppend and BufferItem ++ cb.append(b[0]) ++ # Tests BufferSlice and BufferAssSlice ++ cb.append('abc') # Will be overwritten ++ cb[-1:] = b[:-2] ++ # Test BufferLength and BufferAssSlice ++ cb.append('def') # Will not be overwritten ++ cb[len(cb):] = b[:] ++ # Test BufferAssItem and BufferMark ++ cb.append('ghi') # Will be overwritten ++ cb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1])) ++ # Test BufferRepr ++ cb.append(repr(cb) + repr(b)) ++ # Modify foreign buffer ++ b.append('foo') ++ b[0]='bar' ++ b[0:0]=['baz'] ++ vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number) ++ # Test CheckBuffer ++ vim.command('bwipeout! ' + str(b.number)) ++ for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")'): ++ try: ++ exec(expr) ++ except vim.error: ++ pass ++ else: ++ # Usually a SEGV here ++ # Should not happen in any case ++ cb.append('No exception for ' + expr) ++ EOF + :endfun + :" + :call Test() +*** ../vim-7.3.942/src/testdir/test87.ok 2013-05-06 03:52:44.000000000 +0200 +--- src/testdir/test87.ok 2013-05-12 21:11:43.000000000 +0200 +*************** +*** 295,297 **** +--- 295,310 ---- + G: '.,,' + W: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' + B: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,' ++ First line ++ First line ++ def ++ First line ++ Second line ++ Third line ++ (7, 2) ++ ++ baz ++ bar ++ Second line ++ Third line ++ foo +*** ../vim-7.3.942/src/version.c 2013-05-12 20:36:09.000000000 +0200 +--- src/version.c 2013-05-12 21:11:53.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 943, + /**/ + +-- +Q: Is selling software the same as selling hardware? +A: No, good hardware is sold new, good software has already been used by many. + + /// 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 /// From 47a0a0118e55caab02e312c34acc1107adafa59f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:12:47 +0200 Subject: [PATCH 287/291] - patchlevel 943 --- README.patches | 12 ++++++++++++ vim.spec | 29 ++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6b0cf9e4..e7e5ab78 100644 --- a/README.patches +++ b/README.patches @@ -963,3 +963,15 @@ Individual patches for Vim 7.3: 4270 7.3.929 (after 7.3.924) unused variable, not freeing unused string 1375 7.3.930 MSVC 2012 update is not recognized 1915 7.3.931 no completion for :xmap and :smap + 1388 7.3.932 compiler warning for uninitialized variable + 4739 7.3.933 Ruby on Mac crashes due to GC failure + 2023 7.3.934 E381 and E380 make the user think nothing happened + 3655 7.3.935 (after 7.3.933) Ruby init stack differs on 64 bit systems + 23271 7.3.936 (after 7.3.935) Ruby missing piece for static 64 bit linking + 16512 7.3.937 more can be shared between Python 2 and 3 + 4418 7.3.938 Python: not so easy to get the window number + 2053 7.3.939 Using Py_BuildValue is inefficient sometimes + 3030 7.3.940 Python: Can't get position of window + 32095 7.3.941 Python: Stuff in if_py_both.h is ordered badly + 5470 7.3.942 Python: SEGV in Buffer functions + 6867 7.3.943 Python: Negative indices were failing diff --git a/vim.spec b/vim.spec index 7483a2ab..de71c004 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 931 +%define patchlevel 943 Summary: The VIM editor URL: http://www.vim.org/ @@ -987,6 +987,18 @@ Patch928: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.928 Patch929: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.929 Patch930: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.930 Patch931: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.931 +Patch932: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.932 +Patch933: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.933 +Patch934: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.934 +Patch935: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.935 +Patch936: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.936 +Patch937: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.937 +Patch938: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.938 +Patch939: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.939 +Patch940: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.940 +Patch941: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.941 +Patch942: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.942 +Patch943: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.943 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -2064,6 +2076,18 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch929 -p0 %patch930 -p0 %patch931 -p0 +%patch932 -p0 +%patch933 -p0 +%patch934 -p0 +%patch935 -p0 +%patch936 -p0 +%patch937 -p0 +%patch938 -p0 +%patch939 -p0 +%patch940 -p0 +%patch941 -p0 +%patch942 -p0 +%patch943 -p0 # install spell files @@ -2540,6 +2564,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon May 13 2013 Karsten Hopp 7.3.943-1 +- patchlevel 943 + * Wed May 08 2013 Karsten Hopp 7.3.931-1 - patchlevel 931 From 87aef7f23cbb1a74880245b64946a60cd03d369b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 14:45:32 +0200 Subject: [PATCH 288/291] add BR perl(ExtUtils::ParseXS) --- vim.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vim.spec b/vim.spec index de71c004..ed1652df 100644 --- a/vim.spec +++ b/vim.spec @@ -24,7 +24,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{beta}%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2 @@ -1015,7 +1015,7 @@ Patch3014: vim-7.3-rubyversion.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel ncurses-devel gettext perl-devel -BuildRequires: perl(ExtUtils::Embed) +BuildRequires: perl(ExtUtils::Embed) perl(ExtUtils::ParseXS) BuildRequires: libacl-devel gpm-devel autoconf %if %{WITH_SELINUX} BuildRequires: libselinux-devel @@ -2564,6 +2564,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon May 13 2013 Karsten Hopp 7.3.943-2 +- add BR perl(ExtUtils::ParseXS) + * Mon May 13 2013 Karsten Hopp 7.3.943-1 - patchlevel 943 From 270d9c19a6e37b4bb5af0f50ab67947e79a8d96d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 May 2013 15:47:17 +0200 Subject: [PATCH 289/291] fix path to xsubpp script --- vim-7.3-xsubpp-path.patch | 12 ++++++++++++ vim.spec | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 vim-7.3-xsubpp-path.patch diff --git a/vim-7.3-xsubpp-path.patch b/vim-7.3-xsubpp-path.patch new file mode 100644 index 00000000..971b10a5 --- /dev/null +++ b/vim-7.3-xsubpp-path.patch @@ -0,0 +1,12 @@ +diff -up vim73/src/Makefile.xsubpp vim73/src/Makefile +--- vim73/src/Makefile.xsubpp 2013-05-13 15:02:15.894805644 +0200 ++++ vim73/src/Makefile 2013-05-13 15:07:03.922821257 +0200 +@@ -2416,7 +2416,7 @@ lintinstall: + + auto/if_perl.c: if_perl.xs + $(PERL) -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$$_ $$_\n" }}' > $@ +- $(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \ ++ $(PERL) $(PERLLIB)/vendor_perl/ExtUtils/xsubpp -prototypes -typemap \ + $(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@ + + auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in diff --git a/vim.spec b/vim.spec index ed1652df..9aecdd96 100644 --- a/vim.spec +++ b/vim.spec @@ -1012,6 +1012,7 @@ Patch3011: vim72-rh514717.patch Patch3012: vim-7.3-bug816848.patch Patch3013: vim-7.3-manpage-typo-668894-675480.patch Patch3014: vim-7.3-rubyversion.patch +Patch3015: vim-7.3-xsubpp-path.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel ncurses-devel gettext perl-devel @@ -2107,6 +2108,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch3012 -p1 %patch3013 -p1 %patch3014 -p1 +%patch3015 -p1 %build cp -f %{SOURCE5} . @@ -2566,6 +2568,7 @@ rm -rf $RPM_BUILD_ROOT %changelog * Mon May 13 2013 Karsten Hopp 7.3.943-2 - add BR perl(ExtUtils::ParseXS) +- fix path to xsubpp script * Mon May 13 2013 Karsten Hopp 7.3.943-1 - patchlevel 943 From 726954caa162dafd034c29f1501e37d51902acd6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 14 May 2013 14:59:15 +0200 Subject: [PATCH 290/291] - patchlevel 944 --- 7.3.944 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.3.944 diff --git a/7.3.944 b/7.3.944 new file mode 100644 index 00000000..f5bbc972 --- /dev/null +++ b/7.3.944 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.944 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.944 +Problem: External program receives the termrespone. +Solution: Insert a delay and discard input. (Hayaki Saito) +Files: src/term.c + + +*** ../vim-7.3.943/src/term.c 2013-04-06 14:30:35.000000000 +0200 +--- src/term.c 2013-05-13 20:24:14.000000000 +0200 +*************** +*** 3253,3261 **** + if (!gui.in_use && !gui.starting) + # endif + { +! /* May need to check for T_CRV response. */ + if (crv_status == CRV_SENT || u7_status == U7_SENT) +! (void)vpeekc_nomap(); + /* Check for termcodes first, otherwise an external program may + * get them. */ + check_for_codes_from_term(); +--- 3253,3271 ---- + if (!gui.in_use && !gui.starting) + # endif + { +! /* May need to discard T_CRV or T_U7 response. */ + if (crv_status == CRV_SENT || u7_status == U7_SENT) +! { +! # ifdef UNIX +! /* Give the terminal a chance to respond. */ +! mch_delay(100L, FALSE); +! # endif +! # ifdef TCIFLUSH +! /* Discard data received but not read. */ +! if (exiting) +! tcflush(fileno(stdin), TCIFLUSH); +! # endif +! } + /* Check for termcodes first, otherwise an external program may + * get them. */ + check_for_codes_from_term(); +*** ../vim-7.3.943/src/version.c 2013-05-12 21:16:17.000000000 +0200 +--- src/version.c 2013-05-13 20:24:29.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 944, + /**/ + +-- +DENNIS: Listen -- strange women lying in ponds distributing swords is no + basis for a system of government. Supreme executive power derives + from a mandate from the masses, not from some farcical aquatic + ceremony. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 0a58aceceb59f05d8d11071bf2c436026b2a6fd1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 14 May 2013 14:59:16 +0200 Subject: [PATCH 291/291] - patchlevel 944 --- README.patches | 1 + vim.spec | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index e7e5ab78..ad55b60a 100644 --- a/README.patches +++ b/README.patches @@ -975,3 +975,4 @@ Individual patches for Vim 7.3: 32095 7.3.941 Python: Stuff in if_py_both.h is ordered badly 5470 7.3.942 Python: SEGV in Buffer functions 6867 7.3.943 Python: Negative indices were failing + 2283 7.3.944 external program receives the termrespone diff --git a/vim.spec b/vim.spec index 9aecdd96..8ce1ab58 100644 --- a/vim.spec +++ b/vim.spec @@ -18,13 +18,13 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 943 +%define patchlevel 944 Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{beta}%{patchlevel} -Release: 2%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2 @@ -999,6 +999,7 @@ Patch940: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.940 Patch941: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.941 Patch942: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.942 Patch943: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.943 +Patch944: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.944 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -2089,6 +2090,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch941 -p0 %patch942 -p0 %patch943 -p0 +%patch944 -p0 # install spell files @@ -2566,6 +2568,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue May 14 2013 Karsten Hopp 7.3.944-1 +- patchlevel 944 + * Mon May 13 2013 Karsten Hopp 7.3.943-2 - add BR perl(ExtUtils::ParseXS) - fix path to xsubpp script