MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ttcompatsetflags

Function ttcompatsetflags

freebsd/kern/tty_compat.c:335–410  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

333}
334
335static void
336ttcompatsetflags(struct tty *tp, struct termios *t)
337{
338 int flags = tp->t_compatflags;
339 tcflag_t iflag = t->c_iflag;
340 tcflag_t oflag = t->c_oflag;
341 tcflag_t lflag = t->c_lflag;
342 tcflag_t cflag = t->c_cflag;
343
344 if (flags & RAW) {
345 iflag = IGNBRK;
346 lflag &= ~(ECHOCTL|ISIG|ICANON|IEXTEN);
347 } else {
348 iflag &= ~(PARMRK|IGNPAR|IGNCR|INLCR);
349 iflag |= BRKINT|IXON|IMAXBEL;
350 lflag |= ISIG|IEXTEN|ECHOCTL; /* XXX was echoctl on ? */
351 if (flags & XTABS)
352 oflag |= TAB3;
353 else
354 oflag &= ~TAB3;
355 if (flags & CBREAK)
356 lflag &= ~ICANON;
357 else
358 lflag |= ICANON;
359 if (flags&CRMOD) {
360 iflag |= ICRNL;
361 oflag |= ONLCR;
362 } else {
363 iflag &= ~ICRNL;
364 oflag &= ~ONLCR;
365 }
366 }
367 if (flags&ECHO)
368 lflag |= ECHO;
369 else
370 lflag &= ~ECHO;
371
372 cflag &= ~(CSIZE|PARENB);
373 if (flags&(RAW|LITOUT|PASS8)) {
374 cflag |= CS8;
375 if (!(flags&(RAW|PASS8))
376 || (flags&(RAW|PASS8|ANYP)) == (PASS8|ANYP))
377 iflag |= ISTRIP;
378 else
379 iflag &= ~ISTRIP;
380 if (flags&(RAW|LITOUT))
381 oflag &= ~OPOST;
382 else
383 oflag |= OPOST;
384 } else {
385 cflag |= CS7|PARENB;
386 iflag |= ISTRIP;
387 oflag |= OPOST;
388 }
389 /* XXX don't set INPCK if RAW or PASS8? */
390 if ((flags&(EVENP|ODDP)) == EVENP) {
391 iflag |= INPCK;
392 cflag &= ~PARODD;

Callers 1

ttsetcompatFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected