To: vim_dev@googlegroups.com Subject: Patch 7.4.188 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.188 Problem: SIZEOF_LONG clashes with similar defines in header files. Solution: Rename to a name starting with VIM_. Also for SIZEOF_INT. Files: src/if_ruby.c, src/vim.h, src/configure.in, src/auto/configure, src/config.h.in, src/fileio.c, src/if_python.c, src/message.c, src/spell.c, src/feature.h, src/os_os2_cfg.h, src/os_vms_conf.h, src/os_win16.h, src/structs.h *** ../vim-7.4.187/src/if_ruby.c 2014-02-05 22:41:11.430582669 +0100 --- src/if_ruby.c 2014-02-23 21:55:03.516770208 +0100 *************** *** 89,97 **** #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 --- 89,97 ---- #endif #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ ! && VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* Ruby 2.0 defines a number of static functions which use rb_fix2int and ! * rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit) */ # define rb_fix2int rb_fix2int_stub # define rb_num2int rb_num2int_stub #endif *************** *** 202,208 **** # 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 --- 202,208 ---- # define rb_hash_new dll_rb_hash_new # define rb_inspect dll_rb_inspect # define rb_int2inum dll_rb_int2inum ! # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ # define rb_fix2int dll_rb_fix2int # define rb_num2int dll_rb_num2int # define rb_num2uint dll_rb_num2uint *************** *** 310,316 **** 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); --- 310,316 ---- static VALUE (*dll_rb_hash_new) (void); static VALUE (*dll_rb_inspect) (VALUE); static VALUE (*dll_rb_int2inum) (long); ! # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ static long (*dll_rb_fix2int) (VALUE); static long (*dll_rb_num2int) (VALUE); static unsigned long (*dll_rb_num2uint) (VALUE); *************** *** 393,399 **** 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); --- 393,399 ---- return dll_rb_int2big(x); } # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ ! && VIM_SIZEOF_INT < VIM_SIZEOF_LONG long rb_fix2int_stub(VALUE x) { return dll_rb_fix2int(x); *************** *** 466,472 **** {"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}, --- 466,472 ---- {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new}, {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, ! # if VIM_SIZEOF_INT < VIM_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}, *** ../vim-7.4.187/src/vim.h 2014-01-14 16:54:53.000000000 +0100 --- src/vim.h 2014-02-23 21:58:23.764769890 +0100 *************** *** 43,49 **** * it becomes zero. This is likely a problem of not being able to run the * test program. Other items from configure may also be wrong then! */ ! # if (SIZEOF_INT == 0) Error: configure did not run properly. Check auto/config.log. # endif --- 43,49 ---- * it becomes zero. This is likely a problem of not being able to run the * test program. Other items from configure may also be wrong then! */ ! # if (VIM_SIZEOF_INT == 0) Error: configure did not run properly. Check auto/config.log. # endif *************** *** 148,169 **** #endif /* ! * SIZEOF_INT is used in feature.h, and the system-specific included files ! * need items from feature.h. Therefore define SIZEOF_INT here. */ #ifdef WIN3264 ! # define SIZEOF_INT 4 #endif #ifdef MSDOS # ifdef DJGPP # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ ! # define SIZEOF_INT 4 /* 32 bit ints */ # endif # define DOS32 # define FEAT_CLIPBOARD # else # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ ! # define SIZEOF_INT 2 /* 16 bit ints */ # endif # define SMALL_MALLOC /* 16 bit storage allocation */ # define DOS16 --- 148,169 ---- #endif /* ! * VIM_SIZEOF_INT is used in feature.h, and the system-specific included files ! * need items from feature.h. Therefore define VIM_SIZEOF_INT here. */ #ifdef WIN3264 ! # define VIM_SIZEOF_INT 4 #endif #ifdef MSDOS # ifdef DJGPP # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ ! # define VIM_SIZEOF_INT 4 /* 32 bit ints */ # endif # define DOS32 # define FEAT_CLIPBOARD # else # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ ! # define VIM_SIZEOF_INT 2 /* 16 bit ints */ # endif # define SMALL_MALLOC /* 16 bit storage allocation */ # define DOS16 *************** *** 174,191 **** /* Be conservative about sizeof(int). It could be 4 too. */ # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ # ifdef __GNUC__ ! # define SIZEOF_INT 4 # else ! # define SIZEOF_INT 2 # endif # endif #endif #ifdef MACOS # if defined(__POWERPC__) || defined(MACOS_X) || defined(__fourbyteints__) \ || defined(__MRC__) || defined(__SC__) || defined(__APPLE_CC__)/* MPW Compilers */ ! # define SIZEOF_INT 4 # else ! # define SIZEOF_INT 2 # endif #endif --- 174,191 ---- /* Be conservative about sizeof(int). It could be 4 too. */ # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ # ifdef __GNUC__ ! # define VIM_SIZEOF_INT 4 # else ! # define VIM_SIZEOF_INT 2 # endif # endif #endif #ifdef MACOS # if defined(__POWERPC__) || defined(MACOS_X) || defined(__fourbyteints__) \ || defined(__MRC__) || defined(__SC__) || defined(__APPLE_CC__)/* MPW Compilers */ ! # define VIM_SIZEOF_INT 4 # else ! # define VIM_SIZEOF_INT 2 # endif #endif *************** *** 417,428 **** #define PRINTF_DECIMAL_LONG_U SCANF_DECIMAL_LONG_U /* ! * Only systems which use configure will have SIZEOF_OFF_T and SIZEOF_LONG * defined, which is ok since those are the same systems which can have * varying sizes for off_t. The other systems will continue to use "%ld" to * print off_t since off_t is simply a typedef to long for them. */ ! #if defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T > SIZEOF_LONG) # define LONG_LONG_OFF_T #endif --- 417,428 ---- #define PRINTF_DECIMAL_LONG_U SCANF_DECIMAL_LONG_U /* ! * Only systems which use configure will have SIZEOF_OFF_T and VIM_SIZEOF_LONG * defined, which is ok since those are the same systems which can have * varying sizes for off_t. The other systems will continue to use "%ld" to * print off_t since off_t is simply a typedef to long for them. */ ! #if defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T > VIM_SIZEOF_LONG) # define LONG_LONG_OFF_T #endif *************** *** 448,454 **** # ifdef UNICODE16 typedef unsigned short u8char_T; /* short should be 16 bits */ # else ! # if SIZEOF_INT >= 4 typedef unsigned int u8char_T; /* int is 32 bits */ # else typedef unsigned long u8char_T; /* long should be 32 bits or more */ --- 448,454 ---- # ifdef UNICODE16 typedef unsigned short u8char_T; /* short should be 16 bits */ # else ! # if VIM_SIZEOF_INT >= 4 typedef unsigned int u8char_T; /* int is 32 bits */ # else typedef unsigned long u8char_T; /* long should be 32 bits or more */ *************** *** 1608,1614 **** * With this we restrict the maximum line length to 1073741823. I guess this is * not a real problem. BTW: Longer lines are split. */ ! #if SIZEOF_INT >= 4 # ifdef __MVS__ # define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */ # else --- 1608,1614 ---- * With this we restrict the maximum line length to 1073741823. I guess this is * not a real problem. BTW: Longer lines are split. */ ! #if VIM_SIZEOF_INT >= 4 # ifdef __MVS__ # define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */ # else *** ../vim-7.4.187/src/configure.in 2014-02-15 17:18:56.953897128 +0100 --- src/configure.in 2014-02-23 22:37:40.080766138 +0100 *************** *** 3581,3586 **** --- 3581,3590 ---- AC_CHECK_SIZEOF([time_t]) AC_CHECK_SIZEOF([off_t]) + dnl Use different names to avoid clashing with other header files. + AC_DEFINE_UNQUOTED(VIM_SIZEOF_INT, [$ac_cv_sizeof_int]) + AC_DEFINE_UNQUOTED(VIM_SIZEOF_LONG, [$ac_cv_sizeof_long]) + dnl Make sure that uint32_t is really 32 bits unsigned. AC_MSG_CHECKING([uint32_t is 32 bits]) AC_TRY_RUN([ *** ../vim-7.4.187/src/auto/configure 2013-11-21 12:17:46.000000000 +0100 --- src/auto/configure 2014-02-23 22:37:43.692766132 +0100 *************** *** 5199,5207 **** --- 5199,5217 ---- $as_echo_n "checking for mzscheme_base.c... " >&6; } if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then MZSCHEME_EXTRA="mzscheme_base.c" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" + MZSCHEME_MOD="++lib scheme/base" else if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then MZSCHEME_EXTRA="mzscheme_base.c" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" + MZSCHEME_MOD="++lib scheme/base" + else + if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then + MZSCHEME_EXTRA="mzscheme_base.c" + MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool" + MZSCHEME_MOD="" + fi fi fi if test "X$MZSCHEME_EXTRA" != "X" ; then *************** *** 12323,12328 **** --- 12333,12347 ---- + cat >>confdefs.h <<_ACEOF + #define VIM_SIZEOF_INT $ac_cv_sizeof_int + _ACEOF + + cat >>confdefs.h <<_ACEOF + #define VIM_SIZEOF_LONG $ac_cv_sizeof_long + _ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5 $as_echo_n "checking uint32_t is 32 bits... " >&6; } if test "$cross_compiling" = yes; then : *** ../vim-7.4.187/src/config.h.in 2013-11-02 21:04:32.000000000 +0100 --- src/config.h.in 2014-02-23 21:45:36.784771111 +0100 *************** *** 37,46 **** #undef UNIX /* Defined to the size of an int */ ! #undef SIZEOF_INT /* Defined to the size of a long */ ! #undef SIZEOF_LONG /* Defined to the size of off_t */ #undef SIZEOF_OFF_T --- 37,46 ---- #undef UNIX /* Defined to the size of an int */ ! #undef VIM_SIZEOF_INT /* Defined to the size of a long */ ! #undef VIM_SIZEOF_LONG /* Defined to the size of off_t */ #undef SIZEOF_OFF_T *** ../vim-7.4.187/src/fileio.c 2014-02-11 15:23:27.938123631 +0100 --- src/fileio.c 2014-02-23 22:31:00.824766773 +0100 *************** *** 1185,1191 **** * The amount is limited by the fact that read() only can read * upto max_unsigned characters (and other things). */ ! #if SIZEOF_INT <= 2 if (linerest >= 0x7ff0) { ++split; --- 1185,1191 ---- * The amount is limited by the fact that read() only can read * upto max_unsigned characters (and other things). */ ! #if VIM_SIZEOF_INT <= 2 if (linerest >= 0x7ff0) { ++split; *************** *** 1197,1203 **** { if (!skip_read) { ! #if SIZEOF_INT > 2 # if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L) size = SSIZE_MAX; /* use max I/O size, 52K */ # else --- 1197,1203 ---- { if (!skip_read) { ! #if VIM_SIZEOF_INT > 2 # if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L) size = SSIZE_MAX; /* use max I/O size, 52K */ # else *** ../vim-7.4.187/src/if_python.c 2014-01-14 19:35:49.000000000 +0100 --- src/if_python.c 2014-02-23 21:54:39.212770247 +0100 *************** *** 613,619 **** # endif # endif # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \ ! && SIZEOF_SIZE_T != SIZEOF_INT # ifdef Py_DEBUG {"Py_InitModule4TraceRefs_64", (PYTHON_PROC*)&dll_Py_InitModule4}, # else --- 613,619 ---- # endif # endif # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \ ! && SIZEOF_SIZE_T != VIM_SIZEOF_INT # ifdef Py_DEBUG {"Py_InitModule4TraceRefs_64", (PYTHON_PROC*)&dll_Py_InitModule4}, # else *** ../vim-7.4.187/src/message.c 2013-11-04 02:00:55.000000000 +0100 --- src/message.c 2014-02-23 21:55:16.984770187 +0100 *************** *** 4376,4382 **** { /* Don't put the #if inside memchr(), it can be a * macro. */ ! #if SIZEOF_INT <= 2 char *q = memchr(str_arg, '\0', precision); #else /* memchr on HP does not like n > 2^31 !!! */ --- 4376,4382 ---- { /* Don't put the #if inside memchr(), it can be a * macro. */ ! #if VIM_SIZEOF_INT <= 2 char *q = memchr(str_arg, '\0', precision); #else /* memchr on HP does not like n > 2^31 !!! */ *** ../vim-7.4.187/src/spell.c 2013-11-28 17:41:41.000000000 +0100 --- src/spell.c 2014-02-23 21:55:24.600770175 +0100 *************** *** 317,323 **** /* Type used for indexes in the word tree need to be at least 4 bytes. If int * is 8 bytes we could use something smaller, but what? */ ! #if SIZEOF_INT > 3 typedef int idx_T; #else typedef long idx_T; --- 317,323 ---- /* Type used for indexes in the word tree need to be at least 4 bytes. If int * is 8 bytes we could use something smaller, but what? */ ! #if VIM_SIZEOF_INT > 3 typedef int idx_T; #else typedef long idx_T; *** ../vim-7.4.187/src/feature.h 2013-05-18 20:18:20.000000000 +0200 --- src/feature.h 2014-02-23 21:55:54.868770127 +0100 *************** *** 328,334 **** * * Disabled for EBCDIC as it requires multibyte. */ ! #if defined(FEAT_BIG) && !defined(WIN16) && SIZEOF_INT >= 4 && !defined(EBCDIC) # define FEAT_ARABIC #endif #ifdef FEAT_ARABIC --- 328,334 ---- * * Disabled for EBCDIC as it requires multibyte. */ ! #if defined(FEAT_BIG) && !defined(WIN16) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) # define FEAT_ARABIC #endif #ifdef FEAT_ARABIC *************** *** 640,646 **** */ #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \ && !defined(FEAT_MBYTE) && !defined(WIN16) \ ! && SIZEOF_INT >= 4 && !defined(EBCDIC) # define FEAT_MBYTE #endif --- 640,646 ---- */ #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \ && !defined(FEAT_MBYTE) && !defined(WIN16) \ ! && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) # define FEAT_MBYTE #endif *************** *** 661,667 **** # define FEAT_MBYTE #endif ! #if defined(FEAT_MBYTE) && SIZEOF_INT < 4 && !defined(PROTO) Error: Can only handle multi-byte feature with 32 bit int or larger #endif --- 661,667 ---- # define FEAT_MBYTE #endif ! #if defined(FEAT_MBYTE) && VIM_SIZEOF_INT < 4 && !defined(PROTO) Error: Can only handle multi-byte feature with 32 bit int or larger #endif *** ../vim-7.4.187/src/os_os2_cfg.h 2010-05-15 13:04:11.000000000 +0200 --- src/os_os2_cfg.h 2014-02-23 21:56:03.540770113 +0100 *************** *** 47,53 **** #undef UNIX /* define always by current configure script */ /* Defined to the size of an int */ ! #define SIZEOF_INT 4 /* * If we cannot trust one of the following from the libraries, we use our --- 47,53 ---- #undef UNIX /* define always by current configure script */ /* Defined to the size of an int */ ! #define VIM_SIZEOF_INT 4 /* * If we cannot trust one of the following from the libraries, we use our *** ../vim-7.4.187/src/os_vms_conf.h 2010-07-28 19:07:48.000000000 +0200 --- src/os_vms_conf.h 2014-02-23 21:56:20.700770086 +0100 *************** *** 23,29 **** #define HAVE_DATE_TIME /* Defined to the size of an int */ ! #define SIZEOF_INT 4 /* #undef USEBCOPY */ #define USEMEMMOVE --- 23,29 ---- #define HAVE_DATE_TIME /* Defined to the size of an int */ ! #define VIM_SIZEOF_INT 4 /* #undef USEBCOPY */ #define USEMEMMOVE *** ../vim-7.4.187/src/os_win16.h 2013-05-06 04:06:04.000000000 +0200 --- src/os_win16.h 2014-02-23 21:56:39.292770056 +0100 *************** *** 55,62 **** #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ ! #ifndef SIZEOF_INT ! # define SIZEOF_INT 2 #endif typedef long off_t; --- 55,62 ---- #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ ! #ifndef VIM_SIZEOF_INT ! # define VIM_SIZEOF_INT 2 #endif typedef long off_t; *** ../vim-7.4.187/src/structs.h 2014-02-22 23:03:48.716901208 +0100 --- src/structs.h 2014-02-23 21:57:17.680769995 +0100 *************** *** 364,370 **** /* * structures used in undo.c */ ! #if SIZEOF_INT > 2 # define ALIGN_LONG /* longword alignment and use filler byte */ # define ALIGN_SIZE (sizeof(long)) #else --- 364,370 ---- /* * structures used in undo.c */ ! #if VIM_SIZEOF_INT > 2 # define ALIGN_LONG /* longword alignment and use filler byte */ # define ALIGN_SIZE (sizeof(long)) #else *************** *** 1094,1100 **** typedef long_u hash_T; /* Type for hi_hash */ ! #if SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */ typedef long varnumber_T; #else typedef int varnumber_T; --- 1094,1100 ---- typedef long_u hash_T; /* Type for hi_hash */ ! #if VIM_SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */ typedef long varnumber_T; #else typedef int varnumber_T; *** ../vim-7.4.187/src/version.c 2014-02-22 23:49:30.268896843 +0100 --- src/version.c 2014-02-23 22:40:55.708765826 +0100 *************** *** 740,741 **** --- 740,743 ---- { /* Add new patch number below this line */ + /**/ + 188, /**/ -- I'm sure that I asked CBuilder to do a "full" install. Looks like I got a "fool" install, instead. Charles E Campbell, Jr, PhD /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///