patch 8.1.0810: too many #ifdefs
Problem: Too many #ifdefs.
Solution: Graduate FEAT_MBYTE, part 4.
diff --git a/src/vim.h b/src/vim.h
index 39da8c9..37e9d5b 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -210,7 +210,7 @@
#endif
/* The Mac conversion stuff doesn't work under X11. */
-#if defined(FEAT_MBYTE) && defined(MACOS_X_DARWIN)
+#if defined(MACOS_X_DARWIN)
# define MACOS_CONVERT
#endif
@@ -431,16 +431,10 @@
* bits. u8char_T is only used for displaying, it could be 16 bits to save
* memory.
*/
-#ifdef FEAT_MBYTE
-# ifdef UNICODE16
+#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 */
-# endif
-# endif
+#else
+typedef unsigned int u8char_T; /* int is 32 bits or more */
#endif
#ifndef UNIX /* For Unix this is included in os_unix.h */
@@ -1516,14 +1510,9 @@
#define DIALOG_MSG_SIZE 1000 /* buffer size for dialog_msg() */
-#ifdef FEAT_MBYTE
-# define MSG_BUF_LEN 480 /* length of buffer for small messages */
-# define MSG_BUF_CLEN (MSG_BUF_LEN / 6) /* cell length (worst case: utf-8
+#define MSG_BUF_LEN 480 /* length of buffer for small messages */
+#define MSG_BUF_CLEN (MSG_BUF_LEN / 6) /* cell length (worst case: utf-8
takes 6 bytes for one cell) */
-#else
-# define MSG_BUF_LEN 80 /* length of buffer for small messages */
-# define MSG_BUF_CLEN MSG_BUF_LEN /* cell length */
-#endif
#define FOLD_TEXT_LEN 51 /* buffer size for get_foldtext() */
@@ -1609,7 +1598,6 @@
# endif
#endif
-#ifdef FEAT_MBYTE
/* We need to call mb_stricmp() even when we aren't dealing with a multi-byte
* encoding because mb_stricmp() takes care of all ascii and non-ascii
* encodings, including characters with umlauts in latin1, etc., while
@@ -1618,10 +1606,6 @@
# define MB_STRICMP(d, s) mb_strnicmp((char_u *)(d), (char_u *)(s), (int)MAXCOL)
# define MB_STRNICMP(d, s, n) mb_strnicmp((char_u *)(d), (char_u *)(s), (int)(n))
-#else
-# define MB_STRICMP(d, s) STRICMP((d), (s))
-# define MB_STRNICMP(d, s, n) STRNICMP((d), (s), (n))
-#endif
#define STRCAT(d, s) strcat((char *)(d), (char *)(s))
#define STRNCAT(d, s, n) strncat((char *)(d), (char *)(s), (size_t)(n))
@@ -1766,16 +1750,12 @@
# endif
#endif
-#ifdef FEAT_MBYTE
-# define MAX_MCO 6 /* maximum value for 'maxcombine' */
+#define MAX_MCO 6 /* maximum value for 'maxcombine' */
/* Maximum number of bytes in a multi-byte character. It can be one 32-bit
* character of up to 6 bytes, or one 16-bit character of up to three bytes
* plus six following composing characters of three bytes each. */
-# define MB_MAXBYTES 21
-#else
-# define MB_MAXBYTES 1
-#endif
+#define MB_MAXBYTES 21
#if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
# ifdef WIN3264
@@ -2128,7 +2108,7 @@
# define USE_MCH_ERRMSG
#endif
-# if defined(FEAT_MBYTE) && defined(FEAT_EVAL) \
+# if defined(FEAT_EVAL) \
&& (!defined(FEAT_GUI_W32) \
|| !(defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) \
&& !(defined(FEAT_GUI_MAC) && defined(MACOS_CONVERT))
@@ -2139,20 +2119,15 @@
# define IME_WITHOUT_XIM
#endif
-#if defined(FEAT_MBYTE) && (defined(FEAT_XIM) \
+#if defined(FEAT_XIM) \
|| defined(IME_WITHOUT_XIM) \
|| (defined(FEAT_GUI_W32) \
&& (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) \
- || defined(FEAT_GUI_MAC))
+ || defined(FEAT_GUI_MAC)
/* im_set_active() is available */
# define HAVE_INPUT_METHOD
#endif
-#ifndef FEAT_MBYTE
-# define after_pathsep(b, p) vim_ispathsep(*((p) - 1))
-# define transchar_byte(c) transchar(c)
-#endif
-
#ifndef FEAT_LINEBREAK
/* Without the 'numberwidth' option line numbers are always 7 chars. */
# define number_width(x) 7
@@ -2160,7 +2135,7 @@
/* This must come after including proto.h.
* For VMS this is defined in macros.h. */
-#if !(defined(FEAT_MBYTE) && defined(WIN3264)) && !defined(VMS)
+#if !defined(WIN3264) && !defined(VMS)
# define mch_open(n, m, p) open((n), (m), (p))
# define mch_fopen(n, p) fopen((n), (p))
#endif
@@ -2236,57 +2211,49 @@
# define vim_realloc(ptr, size) realloc((ptr), (size))
#endif
-#ifdef FEAT_MBYTE
/*
* Return byte length of character that starts with byte "b".
* Returns 1 for a single-byte character.
* MB_BYTE2LEN_CHECK() can be used to count a special key as one byte.
* Don't call MB_BYTE2LEN(b) with b < 0 or b > 255!
*/
-# define MB_BYTE2LEN(b) mb_bytelen_tab[b]
-# define MB_BYTE2LEN_CHECK(b) (((b) < 0 || (b) > 255) ? 1 : mb_bytelen_tab[b])
-#endif
+#define MB_BYTE2LEN(b) mb_bytelen_tab[b]
+#define MB_BYTE2LEN_CHECK(b) (((b) < 0 || (b) > 255) ? 1 : mb_bytelen_tab[b])
-#if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT)
/* properties used in enc_canon_table[] (first three mutually exclusive) */
-# define ENC_8BIT 0x01
-# define ENC_DBCS 0x02
-# define ENC_UNICODE 0x04
+#define ENC_8BIT 0x01
+#define ENC_DBCS 0x02
+#define ENC_UNICODE 0x04
-# define ENC_ENDIAN_B 0x10 /* Unicode: Big endian */
-# define ENC_ENDIAN_L 0x20 /* Unicode: Little endian */
+#define ENC_ENDIAN_B 0x10 /* Unicode: Big endian */
+#define ENC_ENDIAN_L 0x20 /* Unicode: Little endian */
-# define ENC_2BYTE 0x40 /* Unicode: UCS-2 */
-# define ENC_4BYTE 0x80 /* Unicode: UCS-4 */
-# define ENC_2WORD 0x100 /* Unicode: UTF-16 */
+#define ENC_2BYTE 0x40 /* Unicode: UCS-2 */
+#define ENC_4BYTE 0x80 /* Unicode: UCS-4 */
+#define ENC_2WORD 0x100 /* Unicode: UTF-16 */
-# define ENC_LATIN1 0x200 /* Latin1 */
-# define ENC_LATIN9 0x400 /* Latin9 */
-# define ENC_MACROMAN 0x800 /* Mac Roman (not Macro Man! :-) */
-#endif
+#define ENC_LATIN1 0x200 /* Latin1 */
+#define ENC_LATIN9 0x400 /* Latin9 */
+#define ENC_MACROMAN 0x800 /* Mac Roman (not Macro Man! :-) */
-#ifdef FEAT_MBYTE
-# ifdef USE_ICONV
-# ifndef EILSEQ
-# define EILSEQ 123
-# endif
-# ifdef DYNAMIC_ICONV
-/* On Win32 iconv.dll is dynamically loaded. */
-# define ICONV_ERRNO (*iconv_errno())
-# define ICONV_E2BIG 7
-# define ICONV_EINVAL 22
-# define ICONV_EILSEQ 42
-# else
-# define ICONV_ERRNO errno
-# define ICONV_E2BIG E2BIG
-# define ICONV_EINVAL EINVAL
-# define ICONV_EILSEQ EILSEQ
-# endif
+#ifdef USE_ICONV
+# ifndef EILSEQ
+# define EILSEQ 123
# endif
-
+# ifdef DYNAMIC_ICONV
+/* On Win32 iconv.dll is dynamically loaded. */
+# define ICONV_ERRNO (*iconv_errno())
+# define ICONV_E2BIG 7
+# define ICONV_EINVAL 22
+# define ICONV_EILSEQ 42
+# else
+# define ICONV_ERRNO errno
+# define ICONV_E2BIG E2BIG
+# define ICONV_EINVAL EINVAL
+# define ICONV_EILSEQ EILSEQ
+# endif
#endif
-
#define SIGN_BYTE 1 /* byte value used where sign is displayed;
attribute value is sign type */