21541: remove some warnings from ZLE_UNICODE_SUPPORT

This commit is contained in:
Peter Stephenson 2005-07-28 14:45:32 +00:00
parent a680faf050
commit 8665549030
7 changed files with 46 additions and 14 deletions

View file

@ -1,5 +1,10 @@
2005-07-28 Peter Stephenson <pws@csr.com>
* 21541: Src/Zle/zle_hist.c, Src/Zle/zle_main.c,
Src/Zle/zle_misc.c, Src/Zle/zle_params.c, Src/Zle/zle_tricky.c,
Src/Zle/zle_utils.c: remove some warnings from
ZLE_UNICODE_SUPPORT.
* unposted: Completion/Unix/Command/_perforce: updated for
features of Perforce 2005.1 release.

View file

@ -1068,7 +1068,8 @@ doisearch(char **args, int dir)
rpt:
if (!sbptr && previous_search_len) {
if (previous_search_len > sibuf - FIRST_SEARCH_CHAR - 2) {
ibuf = hrealloc(ibuf, sibuf, (sibuf + previous_search_len)
ibuf = hrealloc((char *)ibuf, sibuf * ZLE_CHAR_SIZE,
(sibuf + previous_search_len)
* ZLE_CHAR_SIZE);
sbuf = ibuf + FIRST_SEARCH_CHAR;
sibuf += previous_search_len;
@ -1096,7 +1097,7 @@ doisearch(char **args, int dir)
} else if (cmd == Th(z_selfinsert)) {
#ifdef ZLE_UNICODE_SUPPORT
if (!lastchar_wide_valid)
getfullcharrest(lastchar);
getrestchar(lastchar);
#else
;
#endif
@ -1113,7 +1114,8 @@ doisearch(char **args, int dir)
}
set_isrch_spot(top_spot++, hl, pos, zlecs, sbptr, dir, nomatch);
if (sbptr >= sibuf - FIRST_SEARCH_CHAR - 2) {
ibuf = hrealloc(ibuf, sibuf, sibuf * 2 * ZLE_CHAR_SIZE);
ibuf = hrealloc((char *)ibuf, sibuf * ZLE_CHAR_SIZE,
sibuf * 2 * ZLE_CHAR_SIZE);
sbuf = ibuf + FIRST_SEARCH_CHAR;
sibuf *= 2;
}
@ -1298,9 +1300,10 @@ getvisrchstr(void)
#endif
}
ins:
if(sptr == ssbuf - 1) {
char *newbuf = zhalloc(ssbuf *= 2);
strcpy(newbuf, sbuf);
if (sptr == ssbuf - 1) {
ZLE_STRING_T newbuf =
(ZLE_STRING_T) zhalloc((ssbuf *= 2) * ZLE_CHAR_SIZE);
ZS_strcpy(newbuf, sbuf);
statusline = sbuf = newbuf;
}
sbuf[sptr++] = LASTFULLCHAR;

View file

@ -938,7 +938,7 @@ zleread(char **lp, char **rp, int flags, int context)
zlecontext = context;
histline = curhist;
undoing = 1;
zleline = (unsigned char *)zalloc(((linesz = 256) + 2) * ZLE_CHAR_SIZE);
zleline = (ZLE_STRING_T)zalloc(((linesz = 256) + 2) * ZLE_CHAR_SIZE);
*zleline = ZWC('\0');
virangeflag = lastcmd = done = zlecs = zlell = mark = 0;
vichgflag = 0;
@ -1518,7 +1518,8 @@ wordcharstrigger(void)
{
#ifdef ZLE_UNICODE_SUPPORT
zrealloc(zle_wordchars, strlen(wordchars)*MB_CUR_MAX);
mbsrtowcs(zle_wordchars, &wordchars, strlen(wordchars), NULL);
mbsrtowcs(zle_wordchars, (const char **)&wordchars,
strlen(wordchars), NULL);
/* TODO: error handling here */
#endif
}

View file

@ -724,7 +724,7 @@ makequote(ZLE_STRING_T str, size_t *len)
if (*l == ZWC('\''))
qtct++;
*len += 2 + qtct*3;
l = ol = (char *)zhalloc(*len * ZLE_CHAR_SIZE);
l = ol = (ZLE_STRING_T)zhalloc(*len * ZLE_CHAR_SIZE);
*l++ = ZWC('\'');
for (; str < end; str++)
if (*str == ZWC('\'')) {

View file

@ -187,7 +187,7 @@ set_buffer(UNUSED(Param pm), char *x)
static char *
get_buffer(UNUSED(Param pm))
{
return (char *)zlelineasstring((char *)zleline, zlell, 0, NULL, NULL, 1);
return (char *)zlelineasstring(zleline, zlell, 0, NULL, NULL, 1);
}
/**/
@ -264,7 +264,7 @@ get_lbuffer(UNUSED(Param pm))
static void
set_rbuffer(UNUSED(Param pm), char *x)
{
char *y;
ZLE_STRING_T y;
int len;
if (x && *x != ZWC('\0'))
@ -610,7 +610,8 @@ static char *
get_lsearch(UNUSED(Param pm))
{
if (previous_search_len)
return metafy(previous_search, previous_search_len, META_HEAPDUP);
return zlelineasstring(previous_search, previous_search_len, 0,
NULL, NULL, 1);
else
return "";
}

View file

@ -2332,9 +2332,19 @@ magicspace(char **args)
bangq += 2)
if (bangq[1] == '"' && (bangq == (char *)zleline || bangq[-1] != '\\'))
break;
#ifdef ZLE_UNICODE_SUPPORT
/*
* TODO: expansion and completion with Unicode are currently
* fundamentally broken. Most of the code for this hasn't been
* commented out, but crashing the shell just because you entered
* a space seems to be worth guarding against.
*/
ret = selfinsert(args);
#else
if (!(ret = selfinsert(args)) &&
(!bangq || bangq + 2 > (char *)zleline + zlecs))
doexpandhist();
#endif
return ret;
}

View file

@ -85,10 +85,23 @@ sizeline(int sz)
/**/
mod_export void
zleaddtoline(ZLE_CHAR_T chr)
zleaddtoline(int chr)
{
spaceinline(1);
#ifdef ZLE_UNICODE_SUPPORT
/*
* TODO: the main shell has as yet very little notion of multibyte
* characters. Until this gets fixed we just have to assume
* this is a complete character.
*
* Possibly we could get away with attempting to build up a
* multibyte character here, storing partial characters between
* calls.
*/
zleline[zlecs++] = (ZLE_CHAR_T)chr;
#else
zleline[zlecs++] = chr;
#endif
}
/*
@ -188,7 +201,6 @@ stringaszleline(unsigned char *instr, int *outll, int *outsz)
ZLE_STRING_T outstr;
int ll, sz;
#ifdef ZLE_UNICODE_SUPPORT
int cll;
mbstate_t ps;
#endif