diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-06-01 15:21:02 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-06-01 15:21:02 +0200 |
commit | 9a920d8c31bc4d267d8790ba0d83b5774316e08f (patch) | |
tree | 9e3efd2be89a848c17b76251486cf14da09c7e9b | |
parent | 704984ac87979fd20b8ba732df3abd3197814f7f (diff) | |
download | vim-git-9a920d8c31bc4d267d8790ba0d83b5774316e08f.tar.gz |
updated for version 7.3.535v7.3.535
Problem: Many #ifdefs for MB_MAXBYTES.
Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix
places where the buffer didn't include space for a NUL byte.
-rw-r--r-- | src/arabic.c | 2 | ||||
-rw-r--r-- | src/edit.c | 16 | ||||
-rw-r--r-- | src/eval.c | 6 | ||||
-rw-r--r-- | src/getchar.c | 10 | ||||
-rw-r--r-- | src/mbyte.c | 4 | ||||
-rw-r--r-- | src/misc1.c | 2 | ||||
-rw-r--r-- | src/screen.c | 15 | ||||
-rw-r--r-- | src/spell.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 3 |
10 files changed, 24 insertions, 38 deletions
diff --git a/src/arabic.c b/src/arabic.c index 8c1f64c40..72c64b518 100644 --- a/src/arabic.c +++ b/src/arabic.c @@ -1066,7 +1066,7 @@ arabic_shape(c, ccp, c1p, prev_c, prev_c1, next_c) if (curr_c != c && ccp != NULL) { - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; /* Update the first byte of the character. */ (*mb_char2bytes)(curr_c, buf); diff --git a/src/edit.c b/src/edit.c index 39985bdd5..ebecdb6ec 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1648,11 +1648,7 @@ static int pc_status; #define PC_STATUS_RIGHT 1 /* right halve of double-wide char */ #define PC_STATUS_LEFT 2 /* left halve of double-wide char */ #define PC_STATUS_SET 3 /* pc_bytes was filled */ -#ifdef FEAT_MBYTE static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */ -#else -static char_u pc_bytes[2]; /* saved bytes */ -#endif static int pc_attr; static int pc_row; static int pc_col; @@ -6819,11 +6815,7 @@ set_last_insert(c) char_u *s; vim_free(last_insert); -#ifdef FEAT_MBYTE last_insert = alloc(MB_MAXBYTES * 3 + 5); -#else - last_insert = alloc(6); -#endif if (last_insert != NULL) { s = last_insert; @@ -6861,7 +6853,7 @@ add_char2buf(c, s) char_u *s; { #ifdef FEAT_MBYTE - char_u temp[MB_MAXBYTES]; + char_u temp[MB_MAXBYTES + 1]; int i; int len; @@ -7423,7 +7415,7 @@ mb_replace_pop_ins(cc) int cc; { int n; - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; int i; int c; @@ -10109,11 +10101,7 @@ do_insert_char_pre(c) int c; { char_u *res; -#ifdef FEAT_MBYTE char_u buf[MB_MAXBYTES + 1]; -#else - char_u buf[2]; -#endif /* Return quickly when there is nothing to do. */ if (!has_insertcharpre()) diff --git a/src/eval.c b/src/eval.c index 07cb87f99..2dd36b012 100644 --- a/src/eval.c +++ b/src/eval.c @@ -19170,11 +19170,7 @@ get_vim_var_list(idx) set_vim_var_char(c) int c; { -#ifdef FEAT_MBYTE - char_u buf[MB_MAXBYTES]; -#else - char_u buf[2]; -#endif + char_u buf[MB_MAXBYTES + 1]; #ifdef FEAT_MBYTE if (has_mbyte) diff --git a/src/getchar.c b/src/getchar.c index 606d9a2c6..aea8d10da 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -723,7 +723,7 @@ read_redo(init, old_redo) int c; #ifdef FEAT_MBYTE int n; - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; int i; #endif @@ -1072,7 +1072,7 @@ ins_char_typebuf(c) int c; { #ifdef FEAT_MBYTE - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; #else char_u buf[4]; #endif @@ -1547,7 +1547,7 @@ vgetc() int c, c2; #ifdef FEAT_MBYTE int n; - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; int i; #endif @@ -4335,11 +4335,7 @@ check_abbr(c, ptr, col, mincol) int scol; /* starting column of the abbr. */ int j; char_u *s; -#ifdef FEAT_MBYTE char_u tb[MB_MAXBYTES + 4]; -#else - char_u tb[4]; -#endif mapblock_T *mp; #ifdef FEAT_LOCALMAP mapblock_T *mp2; diff --git a/src/mbyte.c b/src/mbyte.c index 75b41ead9..23944018f 100644 --- a/src/mbyte.c +++ b/src/mbyte.c @@ -708,7 +708,7 @@ codepage_invalid: */ n = (i & 0x80) ? 2 : 1; # else - char buf[MB_MAXBYTES]; + char buf[MB_MAXBYTES + 1]; # ifdef X_LOCALE # ifndef mblen # define mblen _Xmblen @@ -1953,7 +1953,7 @@ utfc_ptr2char_len(p, pcc, maxlen) /* * Convert the character at screen position "off" to a sequence of bytes. * Includes the composing characters. - * "buf" must at least have the length MB_MAXBYTES. + * "buf" must at least have the length MB_MAXBYTES + 1. * Only to be used when ScreenLinesUC[off] != 0. * Returns the produced number of bytes. */ diff --git a/src/misc1.c b/src/misc1.c index b30b07771..8588411df 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -1932,7 +1932,7 @@ ins_char(c) int c; { #if defined(FEAT_MBYTE) || defined(PROTO) - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; int n; n = (*mb_char2bytes)(c, buf); diff --git a/src/screen.c b/src/screen.c index fd74707e0..e5a5b1915 100644 --- a/src/screen.c +++ b/src/screen.c @@ -6621,16 +6621,17 @@ screen_putchar(c, row, col, attr) int row, col; int attr; { -#ifdef FEAT_MBYTE char_u buf[MB_MAXBYTES + 1]; - buf[(*mb_char2bytes)(c, buf)] = NUL; -#else - char_u buf[2]; - - buf[0] = c; - buf[1] = NUL; +#ifdef FEAT_MBYTE + if (has_mbyte) + buf[(*mb_char2bytes)(c, buf)] = NUL; + else #endif + { + buf[0] = c; + buf[1] = NUL; + } screen_puts(buf, row, col, attr); } diff --git a/src/spell.c b/src/spell.c index 2ab31c92f..f1099674b 100644 --- a/src/spell.c +++ b/src/spell.c @@ -13694,7 +13694,7 @@ similar_chars(slang, c1, c2) { int m1, m2; #ifdef FEAT_MBYTE - char_u buf[MB_MAXBYTES]; + char_u buf[MB_MAXBYTES + 1]; hashitem_T *hi; if (c1 >= 256) diff --git a/src/version.c b/src/version.c index 9dd400184..773d5b03c 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 535, +/**/ 534, /**/ 533, @@ -1703,6 +1703,8 @@ int vim_memcmp __ARGS((void *, void *, size_t)); * 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 #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO) @@ -2017,6 +2019,7 @@ typedef int VimClipboard; /* This is required for the prototypes. */ #pragma warning(disable : 4312) #endif +/* Note: a NULL argument for vim_realloc() is not portable, don't use it. */ #if defined(MEM_PROFILE) # define vim_realloc(ptr, size) mem_realloc((ptr), (size)) #else |