mirror of
https://github.com/zoriya/vim.git
synced 2025-12-19 21:55:18 +00:00
updated for version 7.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.
This commit is contained in:
@@ -1066,7 +1066,7 @@ arabic_shape(c, ccp, c1p, prev_c, prev_c1, next_c)
|
|||||||
|
|
||||||
if (curr_c != c && ccp != NULL)
|
if (curr_c != c && ccp != NULL)
|
||||||
{
|
{
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
|
|
||||||
/* Update the first byte of the character. */
|
/* Update the first byte of the character. */
|
||||||
(*mb_char2bytes)(curr_c, buf);
|
(*mb_char2bytes)(curr_c, buf);
|
||||||
|
|||||||
16
src/edit.c
16
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_RIGHT 1 /* right halve of double-wide char */
|
||||||
#define PC_STATUS_LEFT 2 /* left 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 */
|
#define PC_STATUS_SET 3 /* pc_bytes was filled */
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */
|
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_attr;
|
||||||
static int pc_row;
|
static int pc_row;
|
||||||
static int pc_col;
|
static int pc_col;
|
||||||
@@ -6819,11 +6815,7 @@ set_last_insert(c)
|
|||||||
char_u *s;
|
char_u *s;
|
||||||
|
|
||||||
vim_free(last_insert);
|
vim_free(last_insert);
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
last_insert = alloc(MB_MAXBYTES * 3 + 5);
|
last_insert = alloc(MB_MAXBYTES * 3 + 5);
|
||||||
#else
|
|
||||||
last_insert = alloc(6);
|
|
||||||
#endif
|
|
||||||
if (last_insert != NULL)
|
if (last_insert != NULL)
|
||||||
{
|
{
|
||||||
s = last_insert;
|
s = last_insert;
|
||||||
@@ -6861,7 +6853,7 @@ add_char2buf(c, s)
|
|||||||
char_u *s;
|
char_u *s;
|
||||||
{
|
{
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
char_u temp[MB_MAXBYTES];
|
char_u temp[MB_MAXBYTES + 1];
|
||||||
int i;
|
int i;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
@@ -7423,7 +7415,7 @@ mb_replace_pop_ins(cc)
|
|||||||
int cc;
|
int cc;
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
int i;
|
int i;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
@@ -10109,11 +10101,7 @@ do_insert_char_pre(c)
|
|||||||
int c;
|
int c;
|
||||||
{
|
{
|
||||||
char_u *res;
|
char_u *res;
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
char_u buf[MB_MAXBYTES + 1];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
#else
|
|
||||||
char_u buf[2];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Return quickly when there is nothing to do. */
|
/* Return quickly when there is nothing to do. */
|
||||||
if (!has_insertcharpre())
|
if (!has_insertcharpre())
|
||||||
|
|||||||
@@ -19170,11 +19170,7 @@ get_vim_var_list(idx)
|
|||||||
set_vim_var_char(c)
|
set_vim_var_char(c)
|
||||||
int c;
|
int c;
|
||||||
{
|
{
|
||||||
#ifdef FEAT_MBYTE
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
char_u buf[MB_MAXBYTES];
|
|
||||||
#else
|
|
||||||
char_u buf[2];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
if (has_mbyte)
|
if (has_mbyte)
|
||||||
|
|||||||
@@ -723,7 +723,7 @@ read_redo(init, old_redo)
|
|||||||
int c;
|
int c;
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
int n;
|
int n;
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
int i;
|
int i;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1072,7 +1072,7 @@ ins_char_typebuf(c)
|
|||||||
int c;
|
int c;
|
||||||
{
|
{
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
#else
|
#else
|
||||||
char_u buf[4];
|
char_u buf[4];
|
||||||
#endif
|
#endif
|
||||||
@@ -1547,7 +1547,7 @@ vgetc()
|
|||||||
int c, c2;
|
int c, c2;
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
int n;
|
int n;
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
int i;
|
int i;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -4335,11 +4335,7 @@ check_abbr(c, ptr, col, mincol)
|
|||||||
int scol; /* starting column of the abbr. */
|
int scol; /* starting column of the abbr. */
|
||||||
int j;
|
int j;
|
||||||
char_u *s;
|
char_u *s;
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
char_u tb[MB_MAXBYTES + 4];
|
char_u tb[MB_MAXBYTES + 4];
|
||||||
#else
|
|
||||||
char_u tb[4];
|
|
||||||
#endif
|
|
||||||
mapblock_T *mp;
|
mapblock_T *mp;
|
||||||
#ifdef FEAT_LOCALMAP
|
#ifdef FEAT_LOCALMAP
|
||||||
mapblock_T *mp2;
|
mapblock_T *mp2;
|
||||||
|
|||||||
@@ -708,7 +708,7 @@ codepage_invalid:
|
|||||||
*/
|
*/
|
||||||
n = (i & 0x80) ? 2 : 1;
|
n = (i & 0x80) ? 2 : 1;
|
||||||
# else
|
# else
|
||||||
char buf[MB_MAXBYTES];
|
char buf[MB_MAXBYTES + 1];
|
||||||
# ifdef X_LOCALE
|
# ifdef X_LOCALE
|
||||||
# ifndef mblen
|
# ifndef mblen
|
||||||
# define mblen _Xmblen
|
# 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.
|
* Convert the character at screen position "off" to a sequence of bytes.
|
||||||
* Includes the composing characters.
|
* 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.
|
* Only to be used when ScreenLinesUC[off] != 0.
|
||||||
* Returns the produced number of bytes.
|
* Returns the produced number of bytes.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1932,7 +1932,7 @@ ins_char(c)
|
|||||||
int c;
|
int c;
|
||||||
{
|
{
|
||||||
#if defined(FEAT_MBYTE) || defined(PROTO)
|
#if defined(FEAT_MBYTE) || defined(PROTO)
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
n = (*mb_char2bytes)(c, buf);
|
n = (*mb_char2bytes)(c, buf);
|
||||||
|
|||||||
15
src/screen.c
15
src/screen.c
@@ -6621,16 +6621,17 @@ screen_putchar(c, row, col, attr)
|
|||||||
int row, col;
|
int row, col;
|
||||||
int attr;
|
int attr;
|
||||||
{
|
{
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
char_u buf[MB_MAXBYTES + 1];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
|
|
||||||
buf[(*mb_char2bytes)(c, buf)] = NUL;
|
#ifdef FEAT_MBYTE
|
||||||
#else
|
if (has_mbyte)
|
||||||
char_u buf[2];
|
buf[(*mb_char2bytes)(c, buf)] = NUL;
|
||||||
|
else
|
||||||
buf[0] = c;
|
|
||||||
buf[1] = NUL;
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
buf[0] = c;
|
||||||
|
buf[1] = NUL;
|
||||||
|
}
|
||||||
screen_puts(buf, row, col, attr);
|
screen_puts(buf, row, col, attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13694,7 +13694,7 @@ similar_chars(slang, c1, c2)
|
|||||||
{
|
{
|
||||||
int m1, m2;
|
int m1, m2;
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
char_u buf[MB_MAXBYTES];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
hashitem_T *hi;
|
hashitem_T *hi;
|
||||||
|
|
||||||
if (c1 >= 256)
|
if (c1 >= 256)
|
||||||
|
|||||||
@@ -714,6 +714,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
535,
|
||||||
/**/
|
/**/
|
||||||
534,
|
534,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
@@ -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
|
* 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. */
|
* plus six following composing characters of three bytes each. */
|
||||||
# define MB_MAXBYTES 21
|
# define MB_MAXBYTES 21
|
||||||
|
#else
|
||||||
|
# define MB_MAXBYTES 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
|
#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)
|
#pragma warning(disable : 4312)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Note: a NULL argument for vim_realloc() is not portable, don't use it. */
|
||||||
#if defined(MEM_PROFILE)
|
#if defined(MEM_PROFILE)
|
||||||
# define vim_realloc(ptr, size) mem_realloc((ptr), (size))
|
# define vim_realloc(ptr, size) mem_realloc((ptr), (size))
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user