1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-11-17 11:41:07 +01:00

* 2073x: Src/Zle/zle_utils.c, Src/hist.c: modify zlegetline() and zlegetline

caller so that the octet-based and wide-character versions should return
   the same string.
This commit is contained in:
Clint Adams 2005-01-22 04:03:05 +00:00
parent d94e9817ce
commit 0038b1a682
3 changed files with 32 additions and 2 deletions

View file

@ -3,6 +3,10 @@
* unposted (cf. zsh-users/8412): Config/version.mk: fix
year typo.
* 2073x: Src/Zle/zle_utils.c, Src/hist.c: modify zlegetline() and
zlegetline caller so that the octet-based and wide-character
versions should return the same string.
2005-01-21 Bart Schaefer <schaefer@brasslantern.com>
* unposted (cf. zsh-users/8409): Functions/Zle/keeper: "keeper"

View file

@ -89,10 +89,35 @@ zleaddtoline(int chr)
mod_export unsigned char *
zlegetline(int *ll, int *cs)
{
char *s;
#ifdef ZLE_UNICODE_SUPPORT
char *mb_cursor;
int i, j;
size_t mb_len = 0;
mb_cursor = s = zalloc(zlell * MB_CUR_MAX);
for(i=0;i<=zlell;i++) {
if (i == zlecs)
*cs = mb_len;
j = wctomb(mb_cursor, zleline[i]);
if (j == -1) {
/* invalid char; what to do? */
} else {
mb_len += j;
}
}
*ll = mb_len;
return (unsigned char *)s;
#else
*ll = zlell;
*cs = zlecs;
return zleline;
s = ztrdup(zleline);
return (unsigned char *)s;
#endif
}

View file

@ -2260,7 +2260,7 @@ bufferwords(LinkList list, char *buf, int *index)
if (zlegetlineptr) {
linein = zlegetlineptr(&ll, &cs);
} else {
linein = "";
linein = ztrdup("");
ll = cs = 0;
}
zlell = ll + 1; /* length of line plus space added below */
@ -2287,6 +2287,7 @@ bufferwords(LinkList list, char *buf, int *index)
p[zlell] = '\0';
inpush(p, 0, NULL);
}
zsfree(linein);
}
if (zlecs)
zlecs--;