X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=enter.c;h=b310ea1fdb47aea81a6aa1dc1330b763e9276411;hp=b7427392b82114c97bcf9501d091b079e777fb37;hb=65734c98c7ff56a0258bc9052667a0cb9c2f1d0b;hpb=7f7a0be369840b290248e5b0302beb447fa1b3cd diff --git a/enter.c b/enter.c index b742739..b310ea1 100644 --- a/enter.c +++ b/enter.c @@ -80,14 +80,14 @@ static size_t width_ceiling (const wchar_t * s, size_t n, int w1) return s - s0; } -static void my_wcstombs (char *dest, size_t dlen, const wchar_t * src, +static void my_wcstombs (char *dest, ssize_t dlen, const wchar_t * src, size_t slen) { mbstate_t st; size_t k; /* First convert directly into the destination buffer */ - memset (&st, 0, sizeof (st)); + p_clear(&st, 1); for (; slen && dlen >= MB_LEN_MAX; dest += k, dlen -= k, src++, slen--) if ((k = wcrtomb (dest, *src, &st)) == (size_t) (-1)) break; @@ -120,7 +120,7 @@ static void my_wcstombs (char *dest, size_t dlen, const wchar_t * src, } } -size_t my_mbstowcs (wchar_t ** pwbuf, size_t * pwbuflen, size_t i, char *buf) +size_t my_mbstowcs (wchar_t ** pwbuf, size_t * pwbuflen, size_t i, const char *buf) { wchar_t wc; mbstate_t st; @@ -129,7 +129,7 @@ size_t my_mbstowcs (wchar_t ** pwbuf, size_t * pwbuflen, size_t i, char *buf) size_t wbuflen; wbuf = *pwbuf, wbuflen = *pwbuflen; - memset (&st, 0, sizeof (st)); + p_clear(&st, 1); for (; (k = mbrtowc (&wc, buf, MB_LEN_MAX, &st)) && k != (size_t) (-1) && k != (size_t) (-2); buf += k) { if (i >= wbuflen) { @@ -155,7 +155,7 @@ static void replace_part (ENTER_STATE *state, size_t from, const char *buf) memcpy (savebuf, state->wbuf + state->curpos, savelen * sizeof (wchar_t)); /* Convert to wide characters */ - state->curpos = my_mbstowcs (&state->wbuf, &state->wbuflen, from, buf); + state->curpos = my_mbstowcs(&state->wbuf, &state->wbuflen, from, buf); /* Make space for suffix */ if (state->curpos + savelen > state->wbuflen) { @@ -205,7 +205,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x, int rv = 0; - memset (&mbstate, 0, sizeof (mbstate)); + p_clear(&mbstate, 1); if (state->wbuf) { /* Coming back after return 1 */ @@ -616,7 +616,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x, if (k == (size_t) (-2)) continue; else if (k && k != 1) { - memset (&mbstate, 0, sizeof (mbstate)); + p_clear(&mbstate, 1); continue; } }