To: vim_dev@googlegroups.com Subject: Patch 8.1.0733 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.0733 Problem: Too many #ifdefs for the multi-byte feature. Solution: Tentatively always enable the multi-byte feature. If you have a problem with this, please discuss on the Vim maillist. Files: src/configure.ac, src/auto/configure, src/feature.h, src/Makefile, src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_mvc.mak *** ../vim-8.1.0732/src/configure.ac 2018-12-30 22:55:43.667136719 +0100 --- src/configure.ac 2019-01-12 15:44:12.958057422 +0100 *************** *** 2138,2147 **** AC_MSG_CHECKING(--enable-multibyte argument) AC_ARG_ENABLE(multibyte, [ --enable-multibyte Include multibyte editing support.], , ! [enable_multibyte="no"]) AC_MSG_RESULT($enable_multibyte) if test "$enable_multibyte" = "yes"; then AC_DEFINE(FEAT_MBYTE) fi dnl Right-to-Left language support for Vim will be included with big features, --- 2138,2150 ---- AC_MSG_CHECKING(--enable-multibyte argument) AC_ARG_ENABLE(multibyte, [ --enable-multibyte Include multibyte editing support.], , ! [enable_multibyte="yes"]) AC_MSG_RESULT($enable_multibyte) if test "$enable_multibyte" = "yes"; then AC_DEFINE(FEAT_MBYTE) + else + AC_MSG_ERROR([The multi-byte feature can no longer be disabled. If you have + a problem with this, discuss on the Vim mailing list.]) fi dnl Right-to-Left language support for Vim will be included with big features, *************** *** 4416,4442 **** dnl Since no FEAT_CLIPBOARD, no longer need for os_macosx.m. OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'` OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'` ! if test "$enable_multibyte" = "yes"; then ! AC_MSG_RESULT([yes, we need CoreServices]) ! LIBS="$LIBS -framework CoreServices" ! else ! dnl Since no FEAT_MBYTE, no longer need for os_mac_conv.c. ! AC_MSG_RESULT([no]) ! OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'` ! OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'` ! CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'` ! fi else AC_MSG_RESULT([yes, we need AppKit]) LIBS="$LIBS -framework AppKit" - if test "$features" = "small" -a "$enable_multibyte" = "no"; then - dnl Since FEAT_CLIPBOARD is to be defined in vim.h for FEAT_SMALL, define - dnl FEAT_MBYTE in order not to compromise the interoperability of the - dnl clipboard. - AC_MSG_NOTICE([+multi_byte will be set in favor of +clipboard]) - enable_multibyte=yes - AC_DEFINE(FEAT_MBYTE) - fi fi else AC_MSG_RESULT([no]) --- 4419,4429 ---- dnl Since no FEAT_CLIPBOARD, no longer need for os_macosx.m. OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'` OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'` ! AC_MSG_RESULT([yes, we need CoreServices]) ! LIBS="$LIBS -framework CoreServices" else AC_MSG_RESULT([yes, we need AppKit]) LIBS="$LIBS -framework AppKit" fi else AC_MSG_RESULT([no]) *** ../vim-8.1.0732/src/auto/configure 2018-12-30 22:55:43.671136682 +0100 --- src/auto/configure 2019-01-12 15:45:50.097385205 +0100 *************** *** 7959,7965 **** if test "${enable_multibyte+set}" = set; then : enableval=$enable_multibyte; else ! enable_multibyte="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_multibyte" >&5 --- 7959,7965 ---- if test "${enable_multibyte+set}" = set; then : enableval=$enable_multibyte; else ! enable_multibyte="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_multibyte" >&5 *************** *** 7967,7972 **** --- 7967,7975 ---- if test "$enable_multibyte" = "yes"; then $as_echo "#define FEAT_MBYTE 1" >>confdefs.h + else + as_fn_error $? "The multi-byte feature can no longer be disabled. If you have + a problem with this, discuss on the Vim mailing list." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-rightleft argument" >&5 *************** *** 14813,14840 **** if test "$features" = "tiny"; then OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'` OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'` ! if test "$enable_multibyte" = "yes"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need CoreServices" >&5 $as_echo "yes, we need CoreServices" >&6; } ! LIBS="$LIBS -framework CoreServices" ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'` ! OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'` ! CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'` ! fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need AppKit" >&5 $as_echo "yes, we need AppKit" >&6; } LIBS="$LIBS -framework AppKit" - if test "$features" = "small" -a "$enable_multibyte" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: +multi_byte will be set in favor of +clipboard" >&5 - $as_echo "$as_me: +multi_byte will be set in favor of +clipboard" >&6;} - enable_multibyte=yes - $as_echo "#define FEAT_MBYTE 1" >>confdefs.h - - fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --- 14816,14828 ---- if test "$features" = "tiny"; then OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'` OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'` ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need CoreServices" >&5 $as_echo "yes, we need CoreServices" >&6; } ! LIBS="$LIBS -framework CoreServices" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need AppKit" >&5 $as_echo "yes, we need AppKit" >&6; } LIBS="$LIBS -framework AppKit" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 *** ../vim-8.1.0732/src/feature.h 2019-01-11 14:37:16.689248837 +0100 --- src/feature.h 2019-01-12 15:53:11.678485195 +0100 *************** *** 282,288 **** /* * +arabic Arabic keymap and shaping support. ! * Requires FEAT_RIGHTLEFT and FEAT_MBYTE. * * Disabled for EBCDIC as it requires multibyte. */ --- 282,288 ---- /* * +arabic Arabic keymap and shaping support. ! * Requires FEAT_RIGHTLEFT * * Disabled for EBCDIC as it requires multibyte. */ *************** *** 597,612 **** #endif /* ! * +multi_byte Generic multi-byte character handling. Doesn't work ! * with 16 bit ints. Required for GTK+ 2. ! * ! * Disabled for EBCDIC: ! * Multibyte support doesn't work on z/OS Unix currently. */ ! #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \ ! && !defined(FEAT_MBYTE) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) # define FEAT_MBYTE #endif /* Define this if you want to use 16 bit Unicode only, reduces memory used for * the screen structures. */ --- 597,611 ---- #endif /* ! * +multi_byte Generic multi-byte character handling. ! * Now always enabled. */ ! #if !defined(FEAT_MBYTE) # define FEAT_MBYTE #endif + #if VIM_SIZEOF_INT < 4 && !defined(PROTO) + Error: Vim only works with 32 bit int or larger + #endif /* Define this if you want to use 16 bit Unicode only, reduces memory used for * the screen structures. */ *************** *** 621,638 **** /* #define FEAT_MBYTE_IME */ # endif - /* Input methods are only useful with +multi_byte. */ - #if (defined(FEAT_MBYTE_IME) || defined(FEAT_XIM)) && !defined(FEAT_MBYTE) - # 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 - /* Use iconv() when it's available. */ ! #if defined(FEAT_MBYTE) && ((defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) \ ! || defined(DYNAMIC_ICONV)) # define USE_ICONV #endif --- 620,627 ---- /* #define FEAT_MBYTE_IME */ # endif /* Use iconv() when it's available. */ ! #if (defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) || defined(DYNAMIC_ICONV) # define USE_ICONV #endif *************** *** 669,675 **** * +xfontset X fontset support. For outputting wide characters. */ #ifndef FEAT_XFONTSET ! # if defined(FEAT_MBYTE) && defined(HAVE_X11) && !defined(FEAT_GUI_GTK) # define FEAT_XFONTSET # else /* # define FEAT_XFONTSET */ --- 658,664 ---- * +xfontset X fontset support. For outputting wide characters. */ #ifndef FEAT_XFONTSET ! # if defined(HAVE_X11) && !defined(FEAT_GUI_GTK) # define FEAT_XFONTSET # else /* # define FEAT_XFONTSET */ *************** *** 1277,1286 **** /* * +terminal ":terminal" command. Runs a terminal in a window. ! * requires +channel and +multibyte */ ! #if defined(FEAT_TERMINAL) && \ ! !(defined(FEAT_JOB_CHANNEL) && defined(FEAT_MBYTE)) # undef FEAT_TERMINAL #endif #if defined(FEAT_TERMINAL) && !defined(CURSOR_SHAPE) --- 1266,1274 ---- /* * +terminal ":terminal" command. Runs a terminal in a window. ! * requires +channel */ ! #if defined(FEAT_TERMINAL) && !defined(FEAT_JOB_CHANNEL) # undef FEAT_TERMINAL #endif #if defined(FEAT_TERMINAL) && !defined(CURSOR_SHAPE) *** ../vim-8.1.0732/src/Makefile 2019-01-11 17:30:13.290241872 +0100 --- src/Makefile 2019-01-12 15:49:10.156058435 +0100 *************** *** 493,503 **** #CONF_OPT_TERMINAL = --disable-terminal # MULTIBYTE - To edit multi-byte characters. ! # Uncomment this when you want to edit a multibyte language. ! # It's automatically enabled with normal features, GTK or IME support. ! # Note: Compile on a machine where setlocale() actually works, otherwise the ! # configure tests may fail. ! #CONF_OPT_MULTIBYTE = --enable-multibyte # When building with at least "big" features, right-left, Arabic and Farsi # features are enabled. Use this to disable them. --- 493,499 ---- #CONF_OPT_TERMINAL = --disable-terminal # MULTIBYTE - To edit multi-byte characters. ! # This is now always enabled. # When building with at least "big" features, right-left, Arabic and Farsi # features are enabled. Use this to disable them. *** ../vim-8.1.0732/src/Make_bc5.mak 2019-01-01 13:20:05.936711257 +0100 --- src/Make_bc5.mak 2019-01-12 15:54:39.013907703 +0100 *************** *** 61,70 **** # of Ruby will cause a compile error on these systems. # RUBY_VER_LONG same, but in format with dot. (1.6) # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no) - # MBYTE no or yes: set to yes for multi-byte support (yes) - # NOTE: multi-byte support is broken in the Borland libraries, - # not everything will work properly! Esp. handling multi-byte - # file names. # IME no or yes: set to yes for multi-byte IME support (yes) # DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes) # GETTEXT no or yes: set to yes for multi-language support (yes) --- 61,66 ---- *************** *** 104,114 **** GUI = yes !endif - ### MBYTE: yes for multibyte support, no to disable it. - !if ("$(MBYTE)"=="") - MBYTE = yes - !endif - ### IME: yes for multibyte support, no to disable it. !if ("$(IME)"=="") IME = yes --- 100,105 ---- *************** *** 216,222 **** ("$(RUBY)"=="") && \ ("$(ICONV)"!="yes") && \ ("$(IME)"!="yes") && \ - ("$(MBYTE)"!="yes") && \ ("$(XPM)"=="") FASTCALL = yes !endif --- 207,212 ---- *************** *** 397,405 **** DEFINES = $(DEFINES) -DFEAT_OLE !endif # - !if ("$(MBYTE)"=="yes") - MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE - !endif !if ("$(IME)"=="yes") MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE_IME !if ("$(DYNAMIC_IME)" == "yes") --- 387,392 ---- *************** *** 687,695 **** !if ("$(FASTCALL)"=="yes") MSG = $(MSG) FASTCALL !endif - !if ("$(MBYTE)"=="yes") - MSG = $(MSG) MBYTE - !endif !if ("$(IME)"=="yes") MSG = $(MSG) IME ! if "$(DYNAMIC_IME)" == "yes" --- 674,679 ---- *** ../vim-8.1.0732/src/Make_cyg_ming.mak 2019-01-01 13:20:05.936711257 +0100 --- src/Make_cyg_ming.mak 2019-01-12 15:55:03.373745987 +0100 *************** *** 65,73 **** ICONV=yes GETTEXT=yes - # Set to yes to include multibyte support. - MBYTE=yes - # Set to yes to include IME support. IME=yes DYNAMIC_IME=yes --- 65,70 ---- *************** *** 911,920 **** USE_STDCPLUS = yes endif - ifeq (yes, $(MBYTE)) - DEFINES += -DFEAT_MBYTE - endif - ifeq (yes, $(IME)) DEFINES += -DFEAT_MBYTE_IME ifeq (yes, $(DYNAMIC_IME)) --- 908,913 ---- *** ../vim-8.1.0732/src/Make_mvc.mak 2019-01-11 17:30:13.294241849 +0100 --- src/Make_mvc.mak 2019-01-12 15:55:35.133534759 +0100 *************** *** 26,40 **** # GUI interface: GUI=yes (default is no) # # GUI with DirectWrite (DirectX): DIRECTX=yes ! # (default is yes if GUI=yes, requires GUI=yes and MBYTE=yes) # # Color emoji support: COLOR_EMOJI=yes # (default is yes if DIRECTX=yes, requires WinSDK 8.1 or later.) # # OLE interface: OLE=yes (usually with GUI=yes) # - # Multibyte support: MBYTE=yes (default is yes for NORMAL, BIG, HUGE) - # # IME support: IME=yes (requires GUI=yes) # DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default # is yes) --- 26,38 ---- # GUI interface: GUI=yes (default is no) # # GUI with DirectWrite (DirectX): DIRECTX=yes ! # (default is yes if GUI=yes, requires GUI=yes) # # Color emoji support: COLOR_EMOJI=yes # (default is yes if DIRECTX=yes, requires WinSDK 8.1 or later.) # # OLE interface: OLE=yes (usually with GUI=yes) # # IME support: IME=yes (requires GUI=yes) # DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default # is yes) *************** *** 786,796 **** !if "$(GIME)" == "yes" CFLAGS = $(CFLAGS) -DGLOBAL_IME OBJ = $(OBJ) $(OUTDIR)\dimm_i.obj $(OUTDIR)\glbl_ime.obj - MBYTE = yes - !endif - - !if "$(MBYTE)" == "yes" - CFLAGS = $(CFLAGS) -DFEAT_MBYTE !endif !if "$(GUI)" == "yes" --- 784,789 ---- *** ../vim-8.1.0732/src/version.c 2019-01-12 15:15:34.089783011 +0100 --- src/version.c 2019-01-12 16:08:27.332316512 +0100 *************** *** 797,798 **** --- 797,800 ---- { /* Add new patch number below this line */ + /**/ + 733, /**/ -- 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 ///