Quizzer
view release on metacpan or search on metacpan
exercises/compile-tcsh/tcsh-6.10.00/ed.term.c view on Meta::CPAN
if (OKERROR(errno)) \
continue; \
else \
return -1; \
} \
else \
break \
/*ARGSUSED*/
void
dosetty(v, t)
Char **v;
struct command *t;
{
struct tcshmodes *m;
char x, *d;
int aflag = 0;
Char *s;
int z = EX_IO;
char cmdname[BUFSIZE];
USE(t);
setname(strcpy(cmdname, short2str(*v++)));
while (v && *v && v[0][0] == '-' && v[0][2] == '\0')
switch (v[0][1]) {
case 'a':
aflag++;
v++;
break;
case 'd':
v++;
z = ED_IO;
break;
case 'x':
v++;
z = EX_IO;
break;
case 'q':
v++;
z = QU_IO;
break;
default:
stderror(ERR_NAME | ERR_SYSTEM, short2str(v[0]),
CGETS(8, 1, "Unknown switch"));
break;
}
didsetty = 1;
if (!v || !*v) {
int i = -1;
int len = 0, st = 0, cu;
for (m = modelist; m->m_name; m++) {
if (m->m_type != i) {
xprintf("%s%s", i != -1 ? "\n" : "",
ttylist[z][m->m_type].t_name);
i = m->m_type;
st = len = strlen(ttylist[z][m->m_type].t_name);
}
x = (ttylist[z][i].t_setmask & m->m_value) ? '+' : '\0';
x = (ttylist[z][i].t_clrmask & m->m_value) ? '-' : x;
if (x != '\0' || aflag) {
cu = strlen(m->m_name) + (x != '\0') + 1;
if (len + cu >= T_Cols) {
xprintf("\n%*s", st, "");
len = st + cu;
}
else
len += cu;
if (x != '\0')
xprintf("%c%s ", x, m->m_name);
else
xprintf("%s ", m->m_name);
}
}
xputchar('\n');
return;
}
while (v && (s = *v++)) {
switch (*s) {
case '+':
case '-':
x = *s++;
break;
default:
x = '\0';
break;
}
d = short2str(s);
for (m = modelist; m->m_name; m++)
if (strcmp(m->m_name, d) == 0)
break;
if (!m->m_name)
stderror(ERR_NAME | ERR_SYSTEM, d, CGETS(8, 2, "Invalid argument"));
switch (x) {
case '+':
ttylist[z][m->m_type].t_setmask |= m->m_value;
ttylist[z][m->m_type].t_clrmask &= ~m->m_value;
break;
case '-':
ttylist[z][m->m_type].t_setmask &= ~m->m_value;
ttylist[z][m->m_type].t_clrmask |= m->m_value;
break;
default:
ttylist[z][m->m_type].t_setmask &= ~m->m_value;
ttylist[z][m->m_type].t_clrmask &= ~m->m_value;
break;
}
}
} /* end dosetty */
int
tty_getty(fd, td)
int fd;
ttydata_t *td;
{
#ifdef POSIX
RETRY(tcgetattr(fd, &td->d_t));
#else /* TERMIO || GSTTY */
# ifdef TERMIO
RETRY(ioctl(fd, TCGETA, (ioctl_t) &td->d_t));
# else /* GSTTY */
# ifdef TIOCGETP
RETRY(ioctl(fd, TIOCGETP, (ioctl_t) &td->d_t));
# endif /* TIOCGETP */
# ifdef TIOCGETC
RETRY(ioctl(fd, TIOCGETC, (ioctl_t) &td->d_tc));
# endif /* TIOCGETC */
# ifdef TIOCGPAGE
RETRY(ioctl(fd, TIOCGPAGE, (ioctl_t) &td->d_pc));
# endif /* TIOCGPAGE */
# ifdef TIOCLGET
RETRY(ioctl(fd, TIOCLGET, (ioctl_t) &td->d_lb));
# endif /* TIOCLGET */
# endif /* TERMIO */
#endif /* POSIX */
#ifdef TIOCGLTC
RETRY(ioctl(fd, TIOCGLTC, (ioctl_t) &td->d_ltc));
#endif /* TIOCGLTC */
return 0;
}
int
tty_setty(fd, td)
int fd;
ttydata_t *td;
{
#ifdef POSIX
RETRY(tcsetattr(fd, TCSADRAIN, &td->d_t));
#else
# ifdef TERMIO
RETRY(ioctl(fd, TCSETAW, (ioctl_t) &td->d_t));
# else
# ifdef TIOCSETN
RETRY(ioctl(fd, TIOCSETN, (ioctl_t) &td->d_t));
# endif /* TIOCSETN */
# ifdef TIOCGETC
RETRY(ioctl(fd, TIOCSETC, (ioctl_t) &td->d_tc));
# endif /* TIOCGETC */
# ifdef TIOCGPAGE
RETRY(ioctl(fd, TIOCSPAGE, (ioctl_t) &td->d_pc));
# endif /* TIOCGPAGE */
# ifdef TIOCLGET
( run in 1.578 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )