29165: use term.h globally if needed at all.

This commit is contained in:
Peter Stephenson 2011-05-09 09:49:08 +00:00
parent 70fd751a82
commit d89361739a
23 changed files with 254 additions and 228 deletions

View file

@ -1,3 +1,15 @@
2011-05-09 Peter Stephenson <pws@csr.com>
* 29165: Src/builtin.c, Src/exec.c, Src/glob.c, Src/hashtable.c,
Src/init.c, Src/jobs.c, Src/loop.c, Src/params.c, Src/prompt.c,
Src/system.h, Src/utils.c, Src/Modules/files.c,
Src/Modules/termcap.c, Src/Modules/zpty.c, Src/Zle/comp.h,
Src/Zle/complist.c, Src/Zle/compmatch.c, Src/Zle/compresult.c,
Src/Zle/computil.c, Src/Zle/zle_refresh.c, Src/Zle/zle_tricky.c,
Src/Zle/zle_utils.c: Use term.h globally if needed, instead of
just using in Modules and fudging the headers elsewhere. Fix
various name clashes.
2011-05-08 Barton E. Schaefer <schaefer@zsh.org>
* users/15986 (belated commit): Src/Modules/curses.c: handle
@ -14612,5 +14624,5 @@
*****************************************************
* This is used by the shell to define $ZSH_PATCHLEVEL
* $Revision: 1.5283 $
* $Revision: 1.5284 $
*****************************************************

View file

@ -195,7 +195,7 @@ bin_rmdir(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
static int
bin_ln(char *nam, char **args, Options ops, int func)
{
MoveFunc move;
MoveFunc movefn;
int flags, have_dir, err = 0;
char **a, *ptr, *rp, *buf;
struct stat st;
@ -203,7 +203,7 @@ bin_ln(char *nam, char **args, Options ops, int func)
if(func == BIN_MV) {
move = (MoveFunc) rename;
movefn = (MoveFunc) rename;
flags = OPT_ISSET(ops,'f') ? 0 : MV_ASKNW;
flags |= MV_ATOMIC;
} else {
@ -212,11 +212,11 @@ bin_ln(char *nam, char **args, Options ops, int func)
if(OPT_ISSET(ops,'h') || OPT_ISSET(ops,'n'))
flags |= MV_NOCHASETARGET;
if(OPT_ISSET(ops,'s'))
move = (MoveFunc) symlink;
movefn = (MoveFunc) symlink;
else
#endif
{
move = (MoveFunc) link;
movefn = (MoveFunc) link;
if(!OPT_ISSET(ops,'d'))
flags |= MV_NODIRS;
}
@ -267,7 +267,7 @@ bin_ln(char *nam, char **args, Options ops, int func)
else
args[1] = args[0];
}
return domove(nam, move, args[0], args[1], flags);
return domove(nam, movefn, args[0], args[1], flags);
havedir:
buf = ztrdup(*a);
*a = NULL;
@ -283,7 +283,7 @@ bin_ln(char *nam, char **args, Options ops, int func)
buf[blen] = 0;
buf = appstr(buf, ptr);
err |= domove(nam, move, *args, buf, flags);
err |= domove(nam, movefn, *args, buf, flags);
}
zsfree(buf);
return err;
@ -291,7 +291,7 @@ bin_ln(char *nam, char **args, Options ops, int func)
/**/
static int
domove(char *nam, MoveFunc move, char *p, char *q, int flags)
domove(char *nam, MoveFunc movefn, char *p, char *q, int flags)
{
struct stat st;
char *pbuf, *qbuf;
@ -341,7 +341,7 @@ domove(char *nam, MoveFunc move, char *p, char *q, int flags)
if(doit && !(flags & MV_ATOMIC))
unlink(qbuf);
}
if(move(pbuf, qbuf)) {
if(movefn(pbuf, qbuf)) {
zwarnnam(nam, "%s: %e", p, errno);
zsfree(pbuf);
return 1;

View file

@ -35,34 +35,11 @@
*/
#include "../../config.h"
#ifdef HAVE_TGETENT
# if defined(ZSH_HAVE_CURSES_H) && defined(ZSH_HAVE_TERM_H)
# define USES_TERM_H 1
# else
# ifdef HAVE_TERMCAP_H
# define USES_TERMCAP_H 1
# endif
# endif
#endif
#include "termcap.mdh"
#include "termcap.pro"
/**/
#ifdef HAVE_TGETENT
# ifdef USES_TERM_H
# ifdef HAVE_TERMIO_H
# include <termio.h>
# endif
# ifdef ZSH_HAVE_CURSES_H
# include "../zshcurses.h"
# endif
# include "../zshterm.h"
# else
# ifdef USES_TERMCAP_H
# include <termcap.h>
# endif
# endif
#ifndef HAVE_BOOLCODES
static char *boolcodes[] = {

View file

@ -351,8 +351,8 @@ newptycmd(char *nam, char *pname, char **args, int echo, int nblock)
struct ttyinfo info;
if (ioctl(slave, TIOCGWINSZ, (char *) &info.winsize) == 0) {
info.winsize.ws_row = lines;
info.winsize.ws_col = columns;
info.winsize.ws_row = zterm_lines;
info.winsize.ws_col = zterm_columns;
ioctl(slave, TIOCSWINSZ, (char *) &info.winsize);
}
}

View file

@ -323,8 +323,8 @@ struct cadata {
typedef struct cldata *Cldata;
struct cldata {
int columns; /* screen width */
int lines; /* screen height */
int zterm_columns; /* screen width */
int zterm_lines; /* screen height */
int menuacc; /* value of global menuacc */
int valid; /* no need to calculate anew */
int nlist; /* number of matches to list */

View file

@ -656,7 +656,7 @@ clprintfmt(char *p, int ml)
tcout(TCCLEAREOL);
cc = 0;
}
if (ml == mlend - 1 && (cc % columns) == columns - 1)
if (ml == mlend - 1 && (cc % zterm_columns) == zterm_columns - 1)
return 0;
if (*p == Meta) {
@ -664,9 +664,9 @@ clprintfmt(char *p, int ml)
putc(*p ^ 32, shout);
} else
putc(*p, shout);
if ((beg = !(cc % columns)))
if ((beg = !(cc % zterm_columns)))
ml++;
if (mscroll && !(cc % columns) &&
if (mscroll && !(cc % zterm_columns) &&
!--mrestlines && (ask = asklistscroll(ml)))
return ask;
}
@ -765,7 +765,7 @@ clnicezputs(int do_colors, char *s, int ml)
/* Input is metafied... */
int nc = (*t == Meta) ? STOUC(*++t ^ 32) : STOUC(*t);
/* Is the screen full? */
if (ml == mlend - 1 && col == columns - 1) {
if (ml == mlend - 1 && col == zterm_columns - 1) {
mlprinted = ml - oml;
return 0;
}
@ -787,13 +787,13 @@ clnicezputs(int do_colors, char *s, int ml)
* There might be problems with characters of printing width
* greater than one here.
*/
if (col > columns) {
if (col > zterm_columns) {
ml++;
if (mscroll && !--mrestlines && (ask = asklistscroll(ml))) {
mlprinted = ml - oml;
return ask;
}
col -= columns;
col -= zterm_columns;
if (do_colors)
fputs(" \010", shout);
}
@ -820,12 +820,12 @@ clnicezputs(int do_colors, char *s, int ml)
for (t = nicechar(cc); *t; t++) {
int nc = (*t == Meta) ? STOUC(*++t ^ 32) : STOUC(*t);
if (ml == mlend - 1 && col == columns - 1) {
if (ml == mlend - 1 && col == zterm_columns - 1) {
mlprinted = ml - oml;
return 0;
}
putc(nc, shout);
if (++col > columns) {
if (++col > zterm_columns) {
ml++;
if (mscroll && !--mrestlines && (ask = asklistscroll(ml))) {
mlprinted = ml - oml;
@ -991,7 +991,7 @@ asklistscroll(int ml)
!strcmp(cmd->nam, "expand-or-complete-prefix") ||
!strcmp(cmd->nam, "menu-complete") ||
!strcmp(cmd->nam, "menu-expand-or-complete"))
mrestlines = lines - 1;
mrestlines = zterm_lines - 1;
else if (cmd == Th(z_acceptsearch))
ret = 1;
else {
@ -1001,7 +1001,7 @@ asklistscroll(int ml)
selectlocalmap(NULL);
settyinfo(&shttyinfo);
putc('\r', shout);
for (i = columns - 1; i-- > 0; )
for (i = zterm_columns - 1; i-- > 0; )
putc(' ', shout);
putc('\r', shout);
@ -1213,8 +1213,8 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
/* nc only contains ASCII text */
int l = strlen(nc);
if (l + cc > columns - 2)
nc[l -= l + cc - (columns - 2)] = '\0';
if (l + cc > zterm_columns - 2)
nc[l -= l + cc - (zterm_columns - 2)] = '\0';
fputs(nc, shout);
cc += l;
} else if (dopr && m == 1) {
@ -1230,16 +1230,17 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
} else {
cc += width;
if ((cc >= columns - 2 || cchar == ZWC('\n')) && stat)
if ((cc >= zterm_columns - 2 || cchar == ZWC('\n')) && stat)
dopr = 2;
if (cchar == ZWC('\n')) {
if (dopr == 1 && mlbeg >= 0 && tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
l += 1 + ((cc - 1) / columns);
l += 1 + ((cc - 1) / zterm_columns);
cc = 0;
}
if (dopr == 1) {
if (ml == mlend - 1 && (cc % columns) == columns - 1) {
if (ml == mlend - 1 && (cc % zterm_columns) ==
zterm_columns - 1) {
dopr = 0;
p += len;
continue;
@ -1256,7 +1257,7 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
* TODO: the following doesn't allow for
* character widths greater than 1.
*/
if ((beg = !(cc % columns)) && !stat) {
if ((beg = !(cc % zterm_columns)) && !stat) {
ml++;
fputs(" \010", shout);
}
@ -1264,7 +1265,7 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
*stop = 1;
if (stat && n)
mfirstl = -1;
mlprinted = l + (cc ? ((cc-1) / columns) : 0);
mlprinted = l + (cc ? ((cc-1) / zterm_columns) : 0);
return mlprinted;
}
}
@ -1273,7 +1274,7 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
}
}
if (dopr) {
if (!(cc % columns))
if (!(cc % zterm_columns))
fputs(" \010", shout);
if (mlbeg >= 0 && tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
@ -1285,7 +1286,7 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
* *Not* subtracting 1 from cc at this point appears to be
* correct. C.f. printfmt in zle_tricky.c.
*/
mlprinted = l + (cc / columns);
mlprinted = l + (cc / zterm_columns);
return mlprinted;
}
@ -1309,7 +1310,7 @@ compzputs(char const *s, int ml)
putc(c, shout);
if (c == '\n' && mlbeg >= 0 && tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
if (mscroll && (++col == columns || c == '\n')) {
if (mscroll && (++col == zterm_columns || c == '\n')) {
ml++;
if (!--mrestlines && (ask = asklistscroll(ml)))
return ask;
@ -1344,10 +1345,11 @@ compprintlist(int showall)
lastml = 0;
lastnlnct = -1;
}
cl = (listdat.nlines > lines - nlnct - mhasstat ?
lines - nlnct - mhasstat : listdat.nlines) - (lastnlnct > nlnct);
cl = (listdat.nlines > zterm_lines - nlnct - mhasstat ?
zterm_lines - nlnct - mhasstat :
listdat.nlines) - (lastnlnct > nlnct);
lastnlnct = nlnct;
mrestlines = lines - 1;
mrestlines = zterm_lines - 1;
lastinvcount = invcount;
if (cl < 2) {
@ -1643,20 +1645,20 @@ compprintlist(int showall)
/* Move the cursor up to the prompt, if always_last_prompt *
* is set and all that... */
if (mlbeg >= 0) {
if ((nl = listdat.nlines + nlnct) >= lines) {
if ((nl = listdat.nlines + nlnct) >= zterm_lines) {
if (mhasstat) {
putc('\n', shout);
compprintfmt(NULL, 0, 1, 1, mline, NULL);
mstatprinted = 1;
}
nl = lines - 1;
nl = zterm_lines - 1;
} else
nl--;
tcmultout(TCUP, TCMULTUP, nl);
showinglist = -1;
lastlistlen = listdat.nlines;
} else if ((nl = listdat.nlines + nlnct - 1) < lines) {
} else if ((nl = listdat.nlines + nlnct - 1) < zterm_lines) {
if (mlbeg >= 0 && tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
tcmultout(TCUP, TCMULTUP, nl);
@ -1666,12 +1668,12 @@ compprintlist(int showall)
} else {
clearflag = 0;
if (!asked) {
mrestlines = (ml + nlnct > lines);
mrestlines = (ml + nlnct > zterm_lines);
compprintnl(ml);
}
}
} else if (!asked) {
mrestlines = (ml + nlnct > lines);
mrestlines = (ml + nlnct > zterm_lines);
compprintnl(ml);
}
listshown = (clearflag ? 1 : -1);
@ -1789,7 +1791,7 @@ clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width)
if (!dolist(ml)) {
int nc = ZMB_nicewidth(m->disp ? m->disp : m->str);
if (nc)
mlprinted = (nc-1) / columns;
mlprinted = (nc-1) / zterm_columns;
else
mlprinted = 0;
return 0;
@ -1831,7 +1833,7 @@ clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width)
return 1;
}
len = ZMB_nicewidth(m->disp ? m->disp : m->str);
mlprinted = len ? (len-1) / columns : 0;
mlprinted = len ? (len-1) / zterm_columns : 0;
modec = (mcolors.flags & LC_FOLLOW_SYMLINKS) ? m->fmodec : m->modec;
if ((g->flags & CGF_FILES) && modec) {
@ -1864,9 +1866,11 @@ static int
singlecalc(int *cp, int l, int *lcp)
{
int c = *cp, n, j, first = 1;
Cmatch **p, *op, *mp = mtab[l * columns + c];
Cmatch **p, *op, *mp = mtab[l * zterm_columns + c];
for (n = 0, j = c, p = mtab + l * columns + c, op = NULL; j >= 0; j--, p--) {
for (n = 0, j = c, p = mtab + l * zterm_columns + c, op = NULL;
j >= 0;
j--, p--) {
if (*p == mp)
c = j;
if (!first && *p != op)
@ -1876,7 +1880,7 @@ singlecalc(int *cp, int l, int *lcp)
}
*cp = c;
*lcp = 1;
for (p = mtab + l * columns + c; c < columns; c++, p++)
for (p = mtab + l * zterm_columns + c; c < zterm_columns; c++, p++)
if (*p && mp != *p)
*lcp = 0;
@ -1906,9 +1910,9 @@ singledraw()
tc_downcurs(md1);
if (mc1)
tcmultout(TCRIGHT, TCMULTRIGHT, mc1);
DPUTS(ml1 * columns + mc1 >= mgtabsize, "BUG: invalid position");
g = mgtab[ml1 * columns + mc1];
clprintm(g, mtab[ml1 * columns + mc1], mcc1, ml1, lc1,
DPUTS(ml1 * zterm_columns + mc1 >= mgtabsize, "BUG: invalid position");
g = mgtab[ml1 * zterm_columns + mc1];
clprintm(g, mtab[ml1 * zterm_columns + mc1], mcc1, ml1, lc1,
(g->widths ? g->widths[mcc1] : g->width));
if (mlprinted)
(void) tcmultout(TCUP, TCMULTUP, mlprinted);
@ -1918,20 +1922,20 @@ singledraw()
tc_downcurs(md2 - md1);
if (mc2)
tcmultout(TCRIGHT, TCMULTRIGHT, mc2);
DPUTS(ml2 * columns + mc2 >= mgtabsize, "BUG: invalid position");
g = mgtab[ml2 * columns + mc2];
clprintm(g, mtab[ml2 * columns + mc2], mcc2, ml2, lc2,
DPUTS(ml2 * zterm_columns + mc2 >= mgtabsize, "BUG: invalid position");
g = mgtab[ml2 * zterm_columns + mc2];
clprintm(g, mtab[ml2 * zterm_columns + mc2], mcc2, ml2, lc2,
(g->widths ? g->widths[mcc2] : g->width));
if (mlprinted)
(void) tcmultout(TCUP, TCMULTUP, mlprinted);
putc('\r', shout);
if (mstatprinted) {
int i = lines - md2 - nlnct;
int i = zterm_lines - md2 - nlnct;
tc_downcurs(i - 1);
compprintfmt(NULL, 0, 1, 1, mline, NULL);
tcmultout(TCUP, TCMULTUP, lines - 1);
tcmultout(TCUP, TCMULTUP, zterm_lines - 1);
} else
tcmultout(TCUP, TCMULTUP, md2 + nlnct);
@ -1951,7 +1955,7 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
noselect = 0;
if ((minfo.asked == 2 && mselect < 0) || nlnct >= lines) {
if ((minfo.asked == 2 && mselect < 0) || nlnct >= zterm_lines) {
showinglist = 0;
amatches = oamatches;
return (noselect = 1);
@ -1971,7 +1975,7 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
getcols();
mnew = ((calclist(mselect >= 0) || mlastcols != columns ||
mnew = ((calclist(mselect >= 0) || mlastcols != zterm_columns ||
mlastlines != listdat.nlines) && mselect >= 0);
if (!listdat.nlines || (mselect >= 0 &&
@ -2006,7 +2010,7 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
mscroll = 1;
} else {
clearflag = 1;
minfo.asked = (listdat.nlines + nlnct <= lines);
minfo.asked = (listdat.nlines + nlnct <= zterm_lines);
}
} else {
unqueue_signals();
@ -2019,7 +2023,7 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
}
}
if (mlbeg >= 0) {
mlend = mlbeg + lines - nlnct - mhasstat;
mlend = mlbeg + zterm_lines - nlnct - mhasstat;
while (mline >= mlend)
mlbeg++, mlend++;
} else
@ -2030,7 +2034,7 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
mtab_been_reallocated = 1;
i = columns * listdat.nlines;
i = zterm_columns * listdat.nlines;
free(mtab);
mtab = (Cmatch **) zalloc(i * sizeof(Cmatch **));
memset(mtab, 0, i * sizeof(Cmatch **));
@ -2040,7 +2044,7 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
mgtabsize = i;
#endif
memset(mgtab, 0, i * sizeof(Cmgroup));
mlastcols = mcols = columns;
mlastcols = mcols = zterm_columns;
mlastlines = mlines = listdat.nlines;
}
last_cap = (char *) zhalloc(max_caplen + 1);
@ -2067,13 +2071,13 @@ complistmatches(UNUSED(Hookdef dummy), Chdata dat)
static int
adjust_mcol(int wish, Cmatch ***tabp, Cmgroup **grp)
{
Cmatch **tab = *tabp;
Cmatch **matchtab = *tabp;
int p, n, c;
tab -= mcol;
matchtab -= mcol;
for (p = wish; p >= 0 && (!tab[p] || mmarked(tab[p])); p--);
for (n = wish; n < mcols && (!tab[n] || mmarked(tab[n])); n++);
for (p = wish; p >= 0 && (!matchtab[p] || mmarked(matchtab[p])); p--);
for (n = wish; n < mcols && (!matchtab[n] || mmarked(matchtab[n])); n++);
if (n == mcols)
n = -1;
@ -2086,7 +2090,7 @@ adjust_mcol(int wish, Cmatch ***tabp, Cmgroup **grp)
else
c = ((mcol - p) < (n - mcol) ? p : n);
*tabp = tab + c;
*tabp = matchtab + c;
if (grp)
*grp = *grp + c - mcol;
@ -2177,7 +2181,7 @@ setmstatus(char *status, char *sline, int sll, int scs,
}
pl = strlen(p);
sl = strlen(s);
max = (columns < MAX_STATUS ? columns : MAX_STATUS) - 14;
max = (zterm_columns < MAX_STATUS ? zterm_columns : MAX_STATUS) - 14;
if (max > 12) {
int h = (max - 2) >> 1;
@ -2394,9 +2398,9 @@ domenuselect(Hookdef dummy, Chdata dat)
if ((s = getsparam("MENUSCROLL"))) {
if (!(step = mathevali(s)))
step = (lines - nlnct) >> 1;
step = (zterm_lines - nlnct) >> 1;
else if (step < 0)
if ((step += lines - nlnct) < 0)
if ((step += zterm_lines - nlnct) < 0)
step = 1;
}
if ((s = getsparam("MENUMODE"))) {
@ -2473,34 +2477,34 @@ domenuselect(Hookdef dummy, Chdata dat)
}
if (mlbeg && lbeg != mlbeg) {
Cmatch **p = mtab + ((mlbeg - 1) * columns), **q;
Cmatch **p = mtab + ((mlbeg - 1) * zterm_columns), **q;
int c;
while (mlbeg) {
for (q = p, c = columns; c > 0; q++, c--)
for (q = p, c = zterm_columns; c > 0; q++, c--)
if (*q && !mmarked(*q))
break;
if (c)
break;
p -= columns;
p -= zterm_columns;
mlbeg--;
}
}
if ((space = lines - pl - mhasstat))
if ((space = zterm_lines - pl - mhasstat))
while (mline >= mlbeg + space)
if ((mlbeg += step) + space > mlines)
mlbeg = mlines - space;
if (lbeg != mlbeg) {
Cmatch **p = mtab + (mlbeg * columns), **q;
Cmatch **p = mtab + (mlbeg * zterm_columns), **q;
int c;
while (mlbeg < mlines) {
for (q = p, c = columns; c > 0; q++, c--)
for (q = p, c = zterm_columns; c > 0; q++, c--)
if (*q)
break;
if (c)
break;
p += columns;
p += zterm_columns;
mlbeg++;
}
}
@ -2955,7 +2959,7 @@ domenuselect(Hookdef dummy, Chdata dat)
cmd == Th(z_viforwardword) ||
cmd == Th(z_viforwardwordend) ||
cmd == Th(z_forwardword)) {
int i = lines - pl - 1, oi = i, ll = 0;
int i = zterm_lines - pl - 1, oi = i, ll = 0;
Cmatch **lp = NULL;
mode = 0;
@ -2983,7 +2987,7 @@ domenuselect(Hookdef dummy, Chdata dat)
} else if (cmd == Th(z_emacsbackwardword) ||
cmd == Th(z_vibackwardword) ||
cmd == Th(z_backwardword)) {
int i = lines - pl - 1, oi = i, ll = 0;
int i = zterm_lines - pl - 1, oi = i, ll = 0;
Cmatch **lp = NULL;
mode = 0;

View file

@ -1268,7 +1268,7 @@ pattern_match_equivalence(Cpattern lp, convchar_t wind, int wmtp,
/**/
static int
pattern_match_restrict(Cpattern p, Cpattern wp, convchar_t *wsc, int wsclen,
Cpattern prestrict, ZLE_STRING_T newline)
Cpattern prestrict, ZLE_STRING_T new_line)
{
convchar_t c;
convchar_t ind, wind;
@ -1356,7 +1356,7 @@ pattern_match_restrict(Cpattern p, Cpattern wp, convchar_t *wsc, int wsclen,
}
/* We need to assemble the line */
*newline++ = (ZLE_CHAR_T)c;
*new_line++ = (ZLE_CHAR_T)c;
prestrict = prestrict->next;
wsc++;
wsclen--;
@ -1393,7 +1393,7 @@ pattern_match_restrict(Cpattern p, Cpattern wp, convchar_t *wsc, int wsclen,
if (!pattern_match1(p, c, &mt))
return 0;
p = p->next;
*newline++ = (ZLE_CHAR_T)c;
*new_line++ = (ZLE_CHAR_T)c;
prestrict = prestrict->next;
}

View file

@ -1473,13 +1473,14 @@ calclist(int showall)
if (lastinvcount == invcount &&
listdat.valid && onlyexpl == listdat.onlyexpl &&
menuacc == listdat.menuacc && showall == listdat.showall &&
lines == listdat.lines && columns == listdat.columns)
zterm_lines == listdat.zterm_lines &&
zterm_columns == listdat.zterm_columns)
return 0;
lastinvcount = invcount;
for (g = amatches; g; g = g->next) {
char **pp = g->ylist;
int nl = 0, l, glong = 1, gshort = columns, ndisp = 0, totl = 0;
int nl = 0, l, glong = 1, gshort = zterm_columns, ndisp = 0, totl = 0;
int hasf = 0;
g->flags |= CGF_PACKED | CGF_ROWS;
@ -1495,7 +1496,7 @@ calclist(int showall)
/* We have an ylist, lets see, if it contains newlines. */
hidden = 1;
while (!nl && *pp) {
if (MB_METASTRWIDTH(*pp) >= columns)
if (MB_METASTRWIDTH(*pp) >= zterm_columns)
nl = 1;
else
nl = !!strchr(*pp++, '\n');
@ -1511,11 +1512,12 @@ calclist(int showall)
while (*sptr) {
if ((nlptr = strchr(sptr, '\n'))) {
*nlptr = '\0';
nlines += 1 + (MB_METASTRWIDTH(sptr)-1) / columns;
nlines += 1 + (MB_METASTRWIDTH(sptr)-1) /
zterm_columns;
*nlptr = '\n';
sptr = nlptr + 1;
} else {
nlines += (MB_METASTRWIDTH(sptr)-1) / columns;
nlines += (MB_METASTRWIDTH(sptr)-1) / zterm_columns;
break;
}
}
@ -1607,7 +1609,7 @@ calclist(int showall)
g->dcount = ndisp;
g->width = glong + CM_SPACE;
g->shortest = gshort + CM_SPACE;
if ((g->cols = columns / g->width) > g->dcount)
if ((g->cols = zterm_columns / g->width) > g->dcount)
g->cols = g->dcount;
if (g->cols) {
i = g->cols * g->width - CM_SPACE;
@ -1636,9 +1638,10 @@ calclist(int showall)
} else {
g->cols = 1;
g->width = 1;
while (*pp)
glines += 1 + (MB_METASTRWIDTH(*pp++) / columns);
glines += 1 + (MB_METASTRWIDTH(*pp++) /
zterm_columns);
}
}
} else {
@ -1650,15 +1653,17 @@ calclist(int showall)
} else if (!(g->flags & CGF_LINES)) {
g->cols = 1;
g->width = 0;
for (p = g->matches; (m = *p); p++)
if (!(m->flags & CMF_HIDE)) {
if (m->disp) {
if (!(m->flags & CMF_DISPLINE))
glines += 1 + ((mlens[m->gnum] - 1) / columns);
glines += 1 + ((mlens[m->gnum] - 1) /
zterm_columns);
} else if (showall ||
!(m->flags & (CMF_NOLIST | CMF_MULT)))
glines += 1 + (((mlens[m->gnum]) - 1) / columns);
glines += 1 + (((mlens[m->gnum]) - 1) /
zterm_columns);
}
}
}
@ -1669,8 +1674,8 @@ calclist(int showall)
if (!(g->flags & CGF_PACKED))
continue;
ws = g->widths = (int *) zalloc(columns * sizeof(int));
memset(ws, 0, columns * sizeof(int));
ws = g->widths = (int *) zalloc(zterm_columns * sizeof(int));
memset(ws, 0, zterm_columns * sizeof(int));
tlines = g->lins;
tcols = g->cols;
width = 0;
@ -1686,14 +1691,14 @@ calclist(int showall)
if (g->flags & CGF_ROWS) {
int nth, tcol, len;
for (tcols = columns / (g->shortest + CM_SPACE);
for (tcols = zterm_columns / (g->shortest + CM_SPACE);
tcols > g->cols;
tcols--) {
memset(ws, 0, tcols * sizeof(int));
for (width = nth = tcol = 0, tlines = 1;
width < columns && nth < g->dcount;
width < zterm_columns && nth < g->dcount;
nth++, tcol++) {
m = *p;
@ -1709,13 +1714,13 @@ calclist(int showall)
ws[tcol] = len;
}
}
if (width < columns)
if (width < zterm_columns)
break;
}
} else {
int nth, tcol, tline, len;
for (tcols = columns / (g->shortest + CM_SPACE);
for (tcols = zterm_columns / (g->shortest + CM_SPACE);
tcols > g->cols;
tcols--) {
@ -1725,7 +1730,7 @@ calclist(int showall)
memset(ws, 0, tcols * sizeof(int));
for (width = nth = tcol = tline = 0;
width < columns && nth < g->dcount;
width < zterm_columns && nth < g->dcount;
nth++, tline++) {
m = *p;
@ -1745,7 +1750,7 @@ calclist(int showall)
ws[tcol] = len;
}
}
if (width < columns)
if (width < zterm_columns)
break;
}
}
@ -1754,7 +1759,7 @@ calclist(int showall)
if (g->flags & CGF_ROWS) {
int nth, tcol, len;
for (tcols = columns / (g->shortest + CM_SPACE);
for (tcols = zterm_columns / (g->shortest + CM_SPACE);
tcols > g->cols;
tcols--) {
@ -1762,7 +1767,7 @@ calclist(int showall)
for (width = nth = tcol = 0, tlines = 1,
p = skipnolist(g->matches, showall);
*p && width < columns && nth < g->dcount;
*p && width < zterm_columns && nth < g->dcount;
nth++, p = skipnolist(p + 1, showall), tcol++) {
m = *p;
@ -1779,13 +1784,13 @@ calclist(int showall)
ws[tcol] = len;
}
}
if (width < columns)
if (width < zterm_columns)
break;
}
} else {
int nth, tcol, tline, len;
for (tcols = columns / (g->shortest + CM_SPACE);
for (tcols = zterm_columns / (g->shortest + CM_SPACE);
tcols > g->cols;
tcols--) {
@ -1796,7 +1801,7 @@ calclist(int showall)
for (width = nth = tcol = tline = 0,
p = skipnolist(g->matches, showall);
*p && width < columns && nth < g->dcount;
*p && width < zterm_columns && nth < g->dcount;
nth++, p = skipnolist(p + 1, showall), tline++) {
m = *p;
@ -1817,7 +1822,7 @@ calclist(int showall)
ws[tcol] = len;
}
}
if (width < columns) {
if (width < zterm_columns) {
if (++tcol < tcols)
tcols = tcol;
break;
@ -1828,7 +1833,7 @@ calclist(int showall)
if (tcols <= g->cols)
tlines = g->lins;
if (tlines == g->lins) {
zfree(ws, columns * sizeof(int));
zfree(ws, zterm_columns * sizeof(int));
g->widths = NULL;
} else {
nlines += tlines - g->lins;
@ -1862,8 +1867,8 @@ calclist(int showall)
listdat.nlines = nlines;
listdat.menuacc = menuacc;
listdat.onlyexpl = onlyexpl;
listdat.columns = columns;
listdat.lines = lines;
listdat.zterm_columns = zterm_columns;
listdat.zterm_lines = zterm_lines;
listdat.showall = showall;
return 1;
@ -1884,7 +1889,7 @@ asklist(void)
if ((!minfo.cur || !minfo.asked) &&
((complistmax > 0 && listdat.nlist >= complistmax) ||
(complistmax < 0 && listdat.nlines <= -complistmax) ||
(!complistmax && listdat.nlines >= lines))) {
(!complistmax && listdat.nlines >= zterm_lines))) {
int qup, l;
zsetterm();
@ -1893,7 +1898,7 @@ asklist(void)
listdat.nlist, listdat.nlines) :
fprintf(shout, "zsh: do you wish to see all %d lines? ",
listdat.nlines));
qup = ((l + columns - 1) / columns) - 1;
qup = ((l + zterm_columns - 1) / zterm_columns) - 1;
fflush(shout);
if (!getzlequery()) {
if (clearflag) {
@ -1987,7 +1992,7 @@ printlist(int over, CLPrintFunc printm, int showall)
while ((p = *pp++)) {
zputs(p, shout);
if (*pp) {
if (MB_METASTRWIDTH(p) % columns)
if (MB_METASTRWIDTH(p) % zterm_columns)
putc('\n', shout);
else
fputs(" \010", shout);
@ -2113,7 +2118,7 @@ printlist(int over, CLPrintFunc printm, int showall)
if (clearflag) {
/* Move the cursor up to the prompt, if always_last_prompt *
* is set and all that... */
if ((ml = listdat.nlines + nlnct - 1) < lines) {
if ((ml = listdat.nlines + nlnct - 1) < zterm_lines) {
tcmultout(TCUP, TCMULTUP, ml);
showinglist = -1;
@ -2134,8 +2139,8 @@ bld_all_str(Cmatch all)
{
Cmgroup g;
Cmatch *mp, m;
int len = columns - 5, t, add = 0;
VARARR(char, buf, columns + 1);
int len = zterm_columns - 5, t, add = 0;
VARARR(char, buf, zterm_columns + 1);
buf[0] = '\0';

View file

@ -226,8 +226,8 @@ cd_prep()
runp = &(cd_state.runs);
if (cd_state.groups) {
int lines = cd_state.groups + cd_state.descs;
VARARR(Cdstr, grps, lines);
int preplines = cd_state.groups + cd_state.descs;
VARARR(Cdstr, grps, preplines);
VARARR(int, wids, cd_state.maxg);
Cdstr gs, gp, gn, *gpp;
int i, j, d;
@ -275,7 +275,7 @@ cd_prep()
if (cd_state.gprew > cd_state.maxmlen && cd_state.maxglen > 1)
return 1;
for (i = 0; i < lines; i++) {
for (i = 0; i < preplines; i++) {
Cdstr s = grps[i];
int dummy;
@ -283,9 +283,9 @@ cd_prep()
unmetafy(s->sortstr, &dummy);
}
qsort(grps, lines, sizeof(Cdstr), cd_sort);
qsort(grps, preplines, sizeof(Cdstr), cd_sort);
for (i = lines, strp = grps; i > 1; i--, strp++) {
for (i = preplines, strp = grps; i > 1; i--, strp++) {
strp2 = strp + 1;
if (!strcmp((*strp)->desc, (*strp2)->desc))
continue;
@ -303,9 +303,9 @@ cd_prep()
expl = (Cdrun) zalloc(sizeof(*run));
expl->type = CRT_EXPL;
expl->strs = grps[0];
expl->count = lines;
expl->count = preplines;
for (i = lines, strp = grps, strp2 = NULL; i; i--, strp++) {
for (i = preplines, strp = grps, strp2 = NULL; i; i--, strp++) {
str = *strp;
*strp = str->other;
if (strp2)
@ -321,7 +321,7 @@ cd_prep()
*strp2 = NULL;
for (i = cd_state.maxg - 1; i; i--) {
for (d = 0, j = lines, strp = grps; j; j--, strp++) {
for (d = 0, j = preplines, strp = grps; j; j--, strp++) {
if ((str = *strp)) {
if (d) {
*runp = run = (Cdrun) zalloc(sizeof(*run));
@ -465,7 +465,7 @@ cd_init(char *nam, char *hide, char *mlen, char *sep,
cd_state.showd = disp;
cd_state.maxg = cd_state.groups = cd_state.descs = 0;
cd_state.maxmlen = atoi(mlen);
itmp = columns - cd_state.swidth - 4;
itmp = zterm_columns - cd_state.swidth - 4;
if (cd_state.maxmlen > itmp)
cd_state.maxmlen = itmp;
if (cd_state.maxmlen < 4)
@ -545,7 +545,7 @@ cd_init(char *nam, char *hide, char *mlen, char *sep,
args++;
}
if (disp && grp) {
int mg = columns;
int mg = zterm_columns;
do {
cd_group(mg);
@ -651,7 +651,8 @@ cd_get(char **params)
* is available. Leave 1 character at the end of screen
* as safety margin
*/
remw = columns - cd_state.premaxw - cd_state.swidth - 3;
remw = zterm_columns - cd_state.premaxw -
cd_state.swidth - 3;
d = str->desc;
w = MB_METASTRWIDTH(d);
if (w <= remw)
@ -727,7 +728,8 @@ cd_get(char **params)
case CRT_EXPL:
{
/* add columns as safety margin */
VARARR(char, dbuf, cd_state.suf + cd_state.slen + columns);
VARARR(char, dbuf, cd_state.suf + cd_state.slen +
zterm_columns);
char buf[20], *p, *pp, *d;
int i = run->count, remw, w, l;
@ -743,7 +745,8 @@ cd_get(char **params)
}
strcpy(dbuf, cd_state.sep);
remw = columns - cd_state.gprew - cd_state.swidth - CM_SPACE;
remw = zterm_columns - cd_state.gprew -
cd_state.swidth - CM_SPACE;
p = pp = dbuf + cd_state.slen;
d = str->desc;
w = MB_METASTRWIDTH(d);

View file

@ -688,12 +688,12 @@ resetvideo(void)
{
int ln;
winw = columns; /* terminal width */
winw = zterm_columns; /* terminal width */
if (termflags & TERM_SHORT)
winh = 1;
else
winh = (lines < 2) ? 24 : lines;
rwinh = lines; /* keep the real number of lines */
winh = (zterm_lines < 2) ? 24 : zterm_lines;
rwinh = zterm_lines; /* keep the real number of lines */
vln = vmaxln = winprompt = 0;
winpos = -1;
if (winw_alloc != winw || winh_alloc != winh) {
@ -1082,7 +1082,7 @@ zrefresh(void)
cleareol = 0; /* unset */
more_start = more_end = 0; /* unset */
if (isset(SINGLELINEZLE) || lines < 3
if (isset(SINGLELINEZLE) || zterm_lines < 3
|| (termflags & (TERM_NOUP | TERM_BAD | TERM_UNKNOWN)))
termflags |= TERM_SHORT;
else
@ -1138,7 +1138,7 @@ zrefresh(void)
}
fflush(shout);
clearf = clearflag;
} else if (winw != columns || rwinh != lines)
} else if (winw != zterm_columns || rwinh != zterm_lines)
resetvideo();
/* now winw equals columns and winh equals lines
@ -2004,7 +2004,7 @@ refreshline(int ln)
* last line lest undesired scrolling occurs due to `illegal'
* characters on screen
*/
if (tccan(TCINS) && (vln != lines - 1)) {
if (tccan(TCINS) && (vln != zterm_lines - 1)) {
/* not on last line */
for (i = 1; nl[i].chr; i++) {
if (tcinscost(i) < wpfxlen(ol, nl + i)) {

View file

@ -2419,13 +2419,13 @@ printfmt(char *fmt, int n, int dopr, int doesc)
if (tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
else {
int s = columns - 1 - (cc % columns);
int s = zterm_columns - 1 - (cc % zterm_columns);
while (s-- > 0)
putc(' ', shout);
}
}
l += 1 + ((cc - 1) / columns);
l += 1 + ((cc - 1) / zterm_columns);
cc = 0;
if (dopr)
putc('\n', shout);
@ -2445,18 +2445,18 @@ printfmt(char *fmt, int n, int dopr, int doesc)
} else
p += clen;
cc += WCWIDTH_WINT(cchar);
if (dopr && !(cc % columns))
if (dopr && !(cc % zterm_columns))
fputs(" \010", shout);
}
}
}
if (dopr) {
if (!(cc % columns))
if (!(cc % zterm_columns))
fputs(" \010", shout);
if (tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
else {
int s = columns - 1 - (cc % columns);
int s = zterm_columns - 1 - (cc % zterm_columns);
while (s-- > 0)
putc(' ', shout);
@ -2467,7 +2467,7 @@ printfmt(char *fmt, int n, int dopr, int doesc)
* cc is correct, i.e. if just misses wrapping we still add 1.
* (Why?)
*/
return l + (cc / columns);
return l + (cc / zterm_columns);
}
/* This is used to print expansions. */
@ -2481,8 +2481,8 @@ listlist(LinkList l)
LinkNode node;
char **p;
VARARR(int, lens, num);
VARARR(int, widths, columns);
int longest = 0, shortest = columns, totl = 0;
VARARR(int, widths, zterm_columns);
int longest = 0, shortest = zterm_columns, totl = 0;
int len, ncols, nlines, tolast, col, i, max, pack = 0, *lenp;
for (node = firstnode(l), p = data; node; incnode(node), p++)
@ -2500,7 +2500,7 @@ listlist(LinkList l)
shortest = len;
totl += len;
}
if ((ncols = ((columns + 2) / longest))) {
if ((ncols = ((zterm_columns + 2) / longest))) {
int tlines = 0, tline, tcols = 0, maxlen, nth, width;
nlines = (num + ncols - 1) / ncols;
@ -2509,7 +2509,7 @@ listlist(LinkList l)
if (isset(LISTROWSFIRST)) {
int count, tcol, first, maxlines = 0, llines;
for (tcols = columns / shortest; tcols > ncols;
for (tcols = zterm_columns / shortest; tcols > ncols;
tcols--) {
for (nth = first = maxlen = width = maxlines =
llines = tcol = 0,
@ -2522,7 +2522,7 @@ listlist(LinkList l)
nth += tcols;
tlines++;
if (nth >= num) {
if ((width += maxlen) >= columns)
if ((width += maxlen) >= zterm_columns)
break;
widths[tcol++] = maxlen;
maxlen = 0;
@ -2536,13 +2536,13 @@ listlist(LinkList l)
widths[tcol++] = maxlen;
width += maxlen;
}
if (!count && width < columns)
if (!count && width < zterm_columns)
break;
}
if (tcols > ncols)
tlines = maxlines;
} else {
for (tlines = ((totl + columns) / columns);
for (tlines = ((totl + zterm_columns) / zterm_columns);
tlines < nlines; tlines++) {
for (p = data, nth = tline = width =
maxlen = tcols = 0;
@ -2550,7 +2550,7 @@ listlist(LinkList l)
if (lens[nth] > maxlen)
maxlen = lens[nth];
if (++tline == tlines) {
if ((width += maxlen) >= columns)
if ((width += maxlen) >= zterm_columns)
break;
widths[tcols++] = maxlen;
maxlen = tline = 0;
@ -2560,7 +2560,7 @@ listlist(LinkList l)
widths[tcols++] = maxlen;
width += maxlen;
}
if (nth == num && width < columns)
if (nth == num && width < zterm_columns)
break;
}
}
@ -2572,7 +2572,7 @@ listlist(LinkList l)
} else {
nlines = 0;
for (p = data; *p; p++)
nlines += 1 + (strlen(*p) / columns);
nlines += 1 + (strlen(*p) / zterm_columns);
}
/* Set the cursor below the prompt. */
trashzle();
@ -2581,7 +2581,7 @@ listlist(LinkList l)
clearflag = (isset(USEZLE) && !termflags && tolast);
max = getiparam("LISTMAX");
if ((max && num > max) || (!max && nlines > lines)) {
if ((max && num > max) || (!max && nlines > zterm_lines)) {
int qup, l;
zsetterm();
@ -2589,7 +2589,7 @@ listlist(LinkList l)
fprintf(shout, "zsh: do you wish to see all %d possibilities (%d lines)? ",
num, nlines) :
fprintf(shout, "zsh: do you wish to see all %d lines? ", nlines));
qup = ((l + columns - 1) / columns) - 1;
qup = ((l + zterm_columns - 1) / zterm_columns) - 1;
fflush(shout);
if (!getzlequery()) {
if (clearflag) {
@ -2656,7 +2656,7 @@ listlist(LinkList l)
}
}
if (clearflag) {
if ((nlines += nlnct - 1) < lines) {
if ((nlines += nlnct - 1) < zterm_lines) {
tcmultout(TCUP, TCMULTUP, nlines);
showinglist = -1;
} else

View file

@ -1257,7 +1257,7 @@ showmsg(char const *msg)
p++;
putc('\n', shout);
up += 1 + cc / columns;
up += 1 + cc / zterm_columns;
cc = 0;
} else {
/*
@ -1308,7 +1308,7 @@ showmsg(char const *msg)
c = *++p ^ 32;
if(c == '\n') {
putc('\n', shout);
up += 1 + cc / columns;
up += 1 + cc / zterm_columns;
cc = 0;
} else {
char const *n = nicechar(c);
@ -1317,7 +1317,7 @@ showmsg(char const *msg)
}
}
#endif
up += cc / columns;
up += cc / zterm_columns;
if (clearflag) {
putc('\r', shout);

View file

@ -3903,7 +3903,7 @@ bin_print(char *name, char **args, Options ops, int func)
* nc: number of columns (at least one)
*/
sc = l + 2;
nc = (columns + 1) / sc;
nc = (zterm_columns + 1) / sc;
if (!nc)
nc = 1;
nr = (n + nc - 1) / nc;

View file

@ -4398,7 +4398,7 @@ loadautofn(Shfunc shf, int fksh, int autol)
mod_export int
doshfunc(Shfunc shfunc, LinkList doshargs, int noreturnval)
{
char **tab, **x, *oargv0;
char **pptab, **x, *oargv0;
int oldzoptind, oldlastval, oldoptcind, oldnumpipestats, ret;
int *oldpipestats = NULL;
char saveopts[OPT_SIZE], *oldscriptname = scriptname;
@ -4432,7 +4432,7 @@ doshfunc(Shfunc shfunc, LinkList doshargs, int noreturnval)
starttrapscope();
tab = pparams;
pptab = pparams;
if (!(flags & PM_UNDEFINED))
scriptname = dupstring(name);
oldzoptind = zoptind;
@ -4548,7 +4548,7 @@ doshfunc(Shfunc shfunc, LinkList doshargs, int noreturnval)
zsfree(argzero);
argzero = oargv0;
}
pparams = tab;
pparams = pptab;
optcind = oldoptcind;
zoptind = oldzoptind;
scriptname = oldscriptname;

View file

@ -2000,7 +2000,7 @@ hasbraces(char *str)
/**/
int
xpandredir(struct redir *fn, LinkList tab)
xpandredir(struct redir *fn, LinkList redirtab)
{
char *nam;
struct redir *ff;
@ -2048,7 +2048,7 @@ xpandredir(struct redir *fn, LinkList tab)
ff = (struct redir *) zhalloc(sizeof *ff);
*ff = *fn;
ff->name = nam;
addlinknode(tab, ff);
addlinknode(redirtab, ff);
ret = 1;
}
}

View file

@ -59,7 +59,7 @@ struct scanstatus {
int sorted;
union {
struct {
HashNode *tab;
HashNode *hashtab;
int ct;
} s;
HashNode u;
@ -187,11 +187,11 @@ addhashnode2(HashTable ht, char *nam, void *nodeptr)
hn->next = hp->next;
if(ht->scan) {
if(ht->scan->sorted) {
HashNode *tab = ht->scan->u.s.tab;
HashNode *hashtab = ht->scan->u.s.hashtab;
int i;
for(i = ht->scan->u.s.ct; i--; )
if(tab[i] == hp)
tab[i] = hn;
if(hashtab[i] == hp)
hashtab[i] = hn;
} else if(ht->scan->u.u == hp)
ht->scan->u.u = hn;
}
@ -286,11 +286,11 @@ removehashnode(HashTable ht, const char *nam)
ht->ct--;
if(ht->scan) {
if(ht->scan->sorted) {
HashNode *tab = ht->scan->u.s.tab;
HashNode *hashtab = ht->scan->u.s.hashtab;
int i;
for(i = ht->scan->u.s.ct; i--; )
if(tab[i] == hp)
tab[i] = NULL;
if(hashtab[i] == hp)
hashtab[i] = NULL;
} else if(ht->scan->u.u == hp)
ht->scan->u.u = hp->next;
}
@ -397,7 +397,7 @@ scanmatchtable(HashTable ht, Patprog pprog, int sorted,
qsort((void *)hnsorttab, ct, sizeof(HashNode), hnamcmp);
st.sorted = 1;
st.u.s.tab = hnsorttab;
st.u.s.hashtab = hnsorttab;
st.u.s.ct = ct;
ht->scan = &st;

View file

@ -908,8 +908,8 @@ setupvals(void)
/* columns and lines are normally zero, unless something different *
* was inhereted from the environment. If either of them are zero *
* the setiparam calls below set them to the defaults from termcap */
setiparam("COLUMNS", columns);
setiparam("LINES", lines);
setiparam("COLUMNS", zterm_columns);
setiparam("LINES", zterm_lines);
#endif
#ifdef HAVE_GETRLIMIT

View file

@ -893,7 +893,7 @@ printjob(Job jn, int lng, int synch)
{
Process pn;
int job, len = 9, sig, sflag = 0, llen;
int conted = 0, lineleng = columns, skip = 0, doputnl = 0;
int conted = 0, lineleng = zterm_columns, skip = 0, doputnl = 0;
int doneprint = 0, skip_print = 0;
FILE *fout = (synch == 2 || !shout) ? stdout : shout;

View file

@ -324,13 +324,13 @@ selectlist(LinkList l, size_t start)
while (t0)
t0 /= 10, longest++;
/* to compensate for added ')' */
fct = (columns - 1) / (longest + 3);
fct = (zterm_columns - 1) / (longest + 3);
if (fct == 0)
fct = 1;
else
fw = (columns - 1) / fct;
fw = (zterm_columns - 1) / fct;
colsz = (ct + fct - 1) / fct;
for (t1 = start; t1 != colsz && t1 - start < lines - 2; t1++) {
for (t1 = start; t1 != colsz && t1 - start < zterm_lines - 2; t1++) {
ap = arr + t1;
do {
size_t t2 = strlen(*ap) + 2;

View file

@ -94,8 +94,8 @@ mod_export
zlong lastval, /* $? */
mypid, /* $$ */
lastpid, /* $! */
columns, /* $COLUMNS */
lines, /* $LINES */
zterm_columns, /* $COLUMNS */
zterm_lines, /* $LINES */
ppid, /* $PPID */
zsh_subshell; /* $ZSH_SUBSHELL */
/**/
@ -312,8 +312,8 @@ IPDEF4("PPID", &ppid),
IPDEF4("ZSH_SUBSHELL", &zsh_subshell),
#define IPDEF5(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL},BR((void *)B),GSU(varinteger_gsu),10,0,NULL,NULL,NULL,0}
IPDEF5("COLUMNS", &columns, zlevar_gsu),
IPDEF5("LINES", &lines, zlevar_gsu),
IPDEF5("COLUMNS", &zterm_columns, zlevar_gsu),
IPDEF5("LINES", &zterm_lines, zlevar_gsu),
IPDEF5("OPTIND", &zoptind, varinteger_gsu),
IPDEF5("SHLVL", &shlvl, varinteger_gsu),
IPDEF5("TRY_BLOCK_ERROR", &try_errflag, varinteger_gsu),
@ -3269,8 +3269,8 @@ zlevarsetfn(Param pm, zlong x)
zlong *p = pm->u.valptr;
*p = x;
if (p == &lines || p == &columns)
adjustwinsize(2 + (p == &columns));
if (p == &zterm_lines || p == &zterm_columns)
adjustwinsize(2 + (p == &zterm_columns));
}
/* Function to set value of generic special scalar *

View file

@ -1008,7 +1008,7 @@ countprompt(char *str, int *wp, int *hp, int overf)
#endif
for (; *str; str++) {
if (w >= columns && overf >= 0) {
if (w >= zterm_columns && overf >= 0) {
w = 0;
h++;
}
@ -1092,8 +1092,8 @@ countprompt(char *str, int *wp, int *hp, int overf)
* This isn't easy to handle generally; just assume there's no
* output.
*/
if(w >= columns && overf >= 0) {
if (!overf || w > columns) {
if(w >= zterm_columns && overf >= 0) {
if (!overf || w > zterm_columns) {
w = 0;
h++;
}

View file

@ -850,3 +850,27 @@ extern short ospeed;
#elif HAVE_STRUCT_STAT_ST_CTIMENSEC
# define GET_ST_CTIME_NSEC(st) (st).st_ctimensec
#endif
#ifdef HAVE_TGETENT
# if defined(ZSH_HAVE_CURSES_H) && defined(ZSH_HAVE_TERM_H)
# define USES_TERM_H 1
# else
# ifdef HAVE_TERMCAP_H
# define USES_TERMCAP_H 1
# endif
# endif
# ifdef USES_TERM_H
# ifdef HAVE_TERMIO_H
# include <termio.h>
# endif
# ifdef ZSH_HAVE_CURSES_H
# include "zshcurses.h"
# endif
# include "zshterm.h"
# else
# ifdef USES_TERMCAP_H
# include <termcap.h>
# endif
# endif
#endif

View file

@ -1296,7 +1296,8 @@ preprompt(void)
countprompt(str, &w, 0, -1);
opts[PROMPTPERCENT] = percents;
zputs(str, shout);
fprintf(shout, "%*s\r%*s\r", (int)columns - w - !hasxn, "", w, "");
fprintf(shout, "%*s\r%*s\r", (int)zterm_columns - w - !hasxn,
"", w, "");
fflush(shout);
free(str);
}
@ -1558,49 +1559,49 @@ mod_export int winchanged;
static int
adjustlines(int signalled)
{
int oldlines = lines;
int oldlines = zterm_lines;
#ifdef TIOCGWINSZ
if (signalled || lines <= 0)
lines = shttyinfo.winsize.ws_row;
if (signalled || zterm_lines <= 0)
zterm_lines = shttyinfo.winsize.ws_row;
else
shttyinfo.winsize.ws_row = lines;
shttyinfo.winsize.ws_row = zterm_lines;
#endif /* TIOCGWINSZ */
if (lines <= 0) {
if (zterm_lines <= 0) {
DPUTS(signalled, "BUG: Impossible TIOCGWINSZ rows");
lines = tclines > 0 ? tclines : 24;
zterm_lines = tclines > 0 ? tclines : 24;
}
if (lines > 2)
if (zterm_lines > 2)
termflags &= ~TERM_SHORT;
else
termflags |= TERM_SHORT;
return (lines != oldlines);
return (zterm_lines != oldlines);
}
static int
adjustcolumns(int signalled)
{
int oldcolumns = columns;
int oldcolumns = zterm_columns;
#ifdef TIOCGWINSZ
if (signalled || columns <= 0)
columns = shttyinfo.winsize.ws_col;
if (signalled || zterm_columns <= 0)
zterm_columns = shttyinfo.winsize.ws_col;
else
shttyinfo.winsize.ws_col = columns;
shttyinfo.winsize.ws_col = zterm_columns;
#endif /* TIOCGWINSZ */
if (columns <= 0) {
if (zterm_columns <= 0) {
DPUTS(signalled, "BUG: Impossible TIOCGWINSZ cols");
columns = tccolumns > 0 ? tccolumns : 80;
zterm_columns = tccolumns > 0 ? tccolumns : 80;
}
if (columns > 2)
if (zterm_columns > 2)
termflags &= ~TERM_NARROW;
else
termflags |= TERM_NARROW;
return (columns != oldcolumns);
return (zterm_columns != oldcolumns);
}
/* check the size of the window and adjust if necessary. *
@ -1634,8 +1635,8 @@ adjustwinsize(int from)
ttycols = shttyinfo.winsize.ws_col;
} else {
/* Set to value from environment on failure */
shttyinfo.winsize.ws_row = lines;
shttyinfo.winsize.ws_col = columns;
shttyinfo.winsize.ws_row = zterm_lines;
shttyinfo.winsize.ws_col = zterm_columns;
resetzle = (from == 1);
}
#else
@ -1655,9 +1656,9 @@ adjustwinsize(int from)
* but I'm concerned about what happens on race conditions; e.g., *
* suppose the user resizes his xterm during `eval $(resize)'? */
if (adjustlines(from) && zgetenv("LINES"))
setiparam("LINES", lines);
setiparam("LINES", zterm_lines);
if (adjustcolumns(from) && zgetenv("COLUMNS"))
setiparam("COLUMNS", columns);
setiparam("COLUMNS", zterm_columns);
getwinsz = 1;
break;
case 2: