OpenCoverage

stty.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/src/stty.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* stty -- change and print terminal line settings-
2 Copyright (C) 1990-2018 Free Software Foundation, Inc.-
3-
4 This program is free software: you can redistribute it and/or modify-
5 it under the terms of the GNU General Public License as published by-
6 the Free Software Foundation, either version 3 of the License, or-
7 (at your option) any later version.-
8-
9 This program is distributed in the hope that it will be useful,-
10 but WITHOUT ANY WARRANTY; without even the implied warranty of-
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
12 GNU General Public License for more details.-
13-
14 You should have received a copy of the GNU General Public License-
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
16-
17/* Usage: stty [-ag] [--all] [--save] [-F device] [--file=device] [setting...]-
18-
19 Options:-
20 -a, --all Write all current settings to stdout in human-readable form.-
21 -g, --save Write all current settings to stdout in stty-readable form.-
22 -F, --file Open and use the specified device instead of stdin-
23-
24 If no args are given, write to stdout the baud rate and settings that-
25 have been changed from their defaults. Mode reading and changes-
26 are done on the specified device, or stdin if none was specified.-
27-
28 David MacKenzie <djm@gnu.ai.mit.edu> */-
29-
30#include <config.h>-
31-
32#ifdef TERMIOS_NEEDS_XOPEN_SOURCE-
33# define _XOPEN_SOURCE-
34#endif-
35-
36#include <stdio.h>-
37#include <sys/types.h>-
38-
39#include <termios.h>-
40#if HAVE_STROPTS_H-
41# include <stropts.h>-
42#endif-
43#include <sys/ioctl.h>-
44-
45#ifdef WINSIZE_IN_PTEM-
46# include <sys/stream.h>-
47# include <sys/ptem.h>-
48#endif-
49#ifdef GWINSZ_IN_SYS_PTY-
50# include <sys/tty.h>-
51# include <sys/pty.h>-
52#endif-
53#include <getopt.h>-
54#include <stdarg.h>-
55#include <assert.h>-
56-
57#include "system.h"-
58#include "die.h"-
59#include "error.h"-
60#include "fd-reopen.h"-
61#include "quote.h"-
62#include "xdectoint.h"-
63#include "xstrtol.h"-
64-
65/* The official name of this program (e.g., no 'g' prefix). */-
66#define PROGRAM_NAME "stty"-
67-
68#define AUTHORS proper_name ("David MacKenzie")-
69-
70#ifndef _POSIX_VDISABLE-
71# define _POSIX_VDISABLE 0-
72#endif-
73-
74#define Control(c) ((c) & 0x1f)-
75/* Canonical values for control characters. */-
76#ifndef CINTR-
77# define CINTR Control ('c')-
78#endif-
79#ifndef CQUIT-
80# define CQUIT 28-
81#endif-
82#ifndef CERASE-
83# define CERASE 127-
84#endif-
85#ifndef CKILL-
86# define CKILL Control ('u')-
87#endif-
88#ifndef CEOF-
89# define CEOF Control ('d')-
90#endif-
91#ifndef CEOL-
92# define CEOL _POSIX_VDISABLE-
93#endif-
94#ifndef CSTART-
95# define CSTART Control ('q')-
96#endif-
97#ifndef CSTOP-
98# define CSTOP Control ('s')-
99#endif-
100#ifndef CSUSP-
101# define CSUSP Control ('z')-
102#endif-
103#if defined VEOL2 && !defined CEOL2-
104# define CEOL2 _POSIX_VDISABLE-
105#endif-
106/* Some platforms have VSWTC, others VSWTCH. In both cases, this control-
107 character is initialized by CSWTCH, if present. */-
108#if defined VSWTC && !defined VSWTCH-
109# define VSWTCH VSWTC-
110#endif-
111/* ISC renamed swtch to susp for termios, but we'll accept either name. */-
112#if defined VSUSP && !defined VSWTCH-
113# define VSWTCH VSUSP-
114# if defined CSUSP && !defined CSWTCH-
115# define CSWTCH CSUSP-
116# endif-
117#endif-
118#if defined VSWTCH && !defined CSWTCH-
119# define CSWTCH _POSIX_VDISABLE-
120#endif-
121-
122/* SunOS >= 5.3 loses (^Z doesn't work) if 'swtch' is the same as 'susp'.-
123 So the default is to disable 'swtch.' */-
124#if defined __sun-
125# undef CSWTCH-
126# define CSWTCH _POSIX_VDISABLE-
127#endif-
128-
129#if defined VWERSE && !defined VWERASE /* AIX-3.2.5 */-
130# define VWERASE VWERSE-
131#endif-
132#if defined VDSUSP && !defined CDSUSP-
133# define CDSUSP Control ('y')-
134#endif-
135#if !defined VREPRINT && defined VRPRNT /* Irix 4.0.5 */-
136# define VREPRINT VRPRNT-
137#endif-
138#if defined VREPRINT && !defined CRPRNT-
139# define CRPRNT Control ('r')-
140#endif-
141#if defined CREPRINT && !defined CRPRNT-
142# define CRPRNT Control ('r')-
143#endif-
144#if defined VWERASE && !defined CWERASE-
145# define CWERASE Control ('w')-
146#endif-
147#if defined VLNEXT && !defined CLNEXT-
148# define CLNEXT Control ('v')-
149#endif-
150#if defined VDISCARD && !defined VFLUSHO-
151# define VFLUSHO VDISCARD-
152#endif-
153#if defined VFLUSH && !defined VFLUSHO /* Ultrix 4.2 */-
154# define VFLUSHO VFLUSH-
155#endif-
156#if defined CTLECH && !defined ECHOCTL /* Ultrix 4.3 */-
157# define ECHOCTL CTLECH-
158#endif-
159#if defined TCTLECH && !defined ECHOCTL /* Ultrix 4.2 */-
160# define ECHOCTL TCTLECH-
161#endif-
162#if defined CRTKIL && !defined ECHOKE /* Ultrix 4.2 and 4.3 */-
163# define ECHOKE CRTKIL-
164#endif-
165#if defined VFLUSHO && !defined CFLUSHO-
166# define CFLUSHO Control ('o')-
167#endif-
168#if defined VSTATUS && !defined CSTATUS-
169# define CSTATUS Control ('t')-
170#endif-
171-
172/* Which speeds to set. */-
173enum speed_setting-
174 {-
175 input_speed, output_speed, both_speeds-
176 };-
177-
178/* What to output and how. */-
179enum output_type-
180 {-
181 changed, all, recoverable /* Default, -a, -g. */-
182 };-
183-
184/* Which member(s) of 'struct termios' a mode uses. */-
185enum mode_type-
186 {-
187 control, input, output, local, combination-
188 };-
189-
190/* Flags for 'struct mode_info'. */-
191#define SANE_SET 1 /* Set in 'sane' mode. */-
192#define SANE_UNSET 2 /* Unset in 'sane' mode. */-
193#define REV 4 /* Can be turned off by prepending '-'. */-
194#define OMIT 8 /* Don't display value. */-
195#define NO_SETATTR 16 /* tcsetattr not used to set mode bits. */-
196-
197/* Each mode. */-
198struct mode_info-
199 {-
200 const char *name; /* Name given on command line. */-
201 enum mode_type type; /* Which structure element to change. */-
202 char flags; /* Setting and display options. */-
203 unsigned long bits; /* Bits to set for this mode. */-
204 unsigned long mask; /* Other bits to turn off for this mode. */-
205 };-
206-
207static struct mode_info const mode_info[] =-
208{-
209 {"parenb", control, REV, PARENB, 0},-
210 {"parodd", control, REV, PARODD, 0},-
211#ifdef CMSPAR-
212 {"cmspar", control, REV, CMSPAR, 0},-
213#endif-
214 {"cs5", control, 0, CS5, CSIZE},-
215 {"cs6", control, 0, CS6, CSIZE},-
216 {"cs7", control, 0, CS7, CSIZE},-
217 {"cs8", control, 0, CS8, CSIZE},-
218 {"hupcl", control, REV, HUPCL, 0},-
219 {"hup", control, REV | OMIT, HUPCL, 0},-
220 {"cstopb", control, REV, CSTOPB, 0},-
221 {"cread", control, SANE_SET | REV, CREAD, 0},-
222 {"clocal", control, REV, CLOCAL, 0},-
223#ifdef CRTSCTS-
224 {"crtscts", control, REV, CRTSCTS, 0},-
225#endif-
226#ifdef CDTRDSR-
227 {"cdtrdsr", control, REV, CDTRDSR, 0},-
228#endif-
229-
230 {"ignbrk", input, SANE_UNSET | REV, IGNBRK, 0},-
231 {"brkint", input, SANE_SET | REV, BRKINT, 0},-
232 {"ignpar", input, REV, IGNPAR, 0},-
233 {"parmrk", input, REV, PARMRK, 0},-
234 {"inpck", input, REV, INPCK, 0},-
235 {"istrip", input, REV, ISTRIP, 0},-
236 {"inlcr", input, SANE_UNSET | REV, INLCR, 0},-
237 {"igncr", input, SANE_UNSET | REV, IGNCR, 0},-
238 {"icrnl", input, SANE_SET | REV, ICRNL, 0},-
239 {"ixon", input, REV, IXON, 0},-
240 {"ixoff", input, SANE_UNSET | REV, IXOFF, 0},-
241 {"tandem", input, REV | OMIT, IXOFF, 0},-
242#ifdef IUCLC-
243 {"iuclc", input, SANE_UNSET | REV, IUCLC, 0},-
244#endif-
245#ifdef IXANY-
246 {"ixany", input, SANE_UNSET | REV, IXANY, 0},-
247#endif-
248#ifdef IMAXBEL-
249 {"imaxbel", input, SANE_SET | REV, IMAXBEL, 0},-
250#endif-
251#ifdef IUTF8-
252 {"iutf8", input, SANE_UNSET | REV, IUTF8, 0},-
253#endif-
254-
255 {"opost", output, SANE_SET | REV, OPOST, 0},-
256#ifdef OLCUC-
257 {"olcuc", output, SANE_UNSET | REV, OLCUC, 0},-
258#endif-
259#ifdef OCRNL-
260 {"ocrnl", output, SANE_UNSET | REV, OCRNL, 0},-
261#endif-
262#ifdef ONLCR-
263 {"onlcr", output, SANE_SET | REV, ONLCR, 0},-
264#endif-
265#ifdef ONOCR-
266 {"onocr", output, SANE_UNSET | REV, ONOCR, 0},-
267#endif-
268#ifdef ONLRET-
269 {"onlret", output, SANE_UNSET | REV, ONLRET, 0},-
270#endif-
271#ifdef OFILL-
272 {"ofill", output, SANE_UNSET | REV, OFILL, 0},-
273#endif-
274#ifdef OFDEL-
275 {"ofdel", output, SANE_UNSET | REV, OFDEL, 0},-
276#endif-
277#ifdef NLDLY-
278 {"nl1", output, SANE_UNSET, NL1, NLDLY},-
279 {"nl0", output, SANE_SET, NL0, NLDLY},-
280#endif-
281#ifdef CRDLY-
282 {"cr3", output, SANE_UNSET, CR3, CRDLY},-
283 {"cr2", output, SANE_UNSET, CR2, CRDLY},-
284 {"cr1", output, SANE_UNSET, CR1, CRDLY},-
285 {"cr0", output, SANE_SET, CR0, CRDLY},-
286#endif-
287#ifdef TABDLY-
288# ifdef TAB3-
289 {"tab3", output, SANE_UNSET, TAB3, TABDLY},-
290# endif-
291# ifdef TAB2-
292 {"tab2", output, SANE_UNSET, TAB2, TABDLY},-
293# endif-
294# ifdef TAB1-
295 {"tab1", output, SANE_UNSET, TAB1, TABDLY},-
296# endif-
297# ifdef TAB0-
298 {"tab0", output, SANE_SET, TAB0, TABDLY},-
299# endif-
300#else-
301# ifdef OXTABS-
302 {"tab3", output, SANE_UNSET, OXTABS, 0},-
303# endif-
304#endif-
305#ifdef BSDLY-
306 {"bs1", output, SANE_UNSET, BS1, BSDLY},-
307 {"bs0", output, SANE_SET, BS0, BSDLY},-
308#endif-
309#ifdef VTDLY-
310 {"vt1", output, SANE_UNSET, VT1, VTDLY},-
311 {"vt0", output, SANE_SET, VT0, VTDLY},-
312#endif-
313#ifdef FFDLY-
314 {"ff1", output, SANE_UNSET, FF1, FFDLY},-
315 {"ff0", output, SANE_SET, FF0, FFDLY},-
316#endif-
317-
318 {"isig", local, SANE_SET | REV, ISIG, 0},-
319 {"icanon", local, SANE_SET | REV, ICANON, 0},-
320#ifdef IEXTEN-
321 {"iexten", local, SANE_SET | REV, IEXTEN, 0},-
322#endif-
323 {"echo", local, SANE_SET | REV, ECHO, 0},-
324 {"echoe", local, SANE_SET | REV, ECHOE, 0},-
325 {"crterase", local, REV | OMIT, ECHOE, 0},-
326 {"echok", local, SANE_SET | REV, ECHOK, 0},-
327 {"echonl", local, SANE_UNSET | REV, ECHONL, 0},-
328 {"noflsh", local, SANE_UNSET | REV, NOFLSH, 0},-
329#ifdef XCASE-
330 {"xcase", local, SANE_UNSET | REV, XCASE, 0},-
331#endif-
332#ifdef TOSTOP-
333 {"tostop", local, SANE_UNSET | REV, TOSTOP, 0},-
334#endif-
335#ifdef ECHOPRT-
336 {"echoprt", local, SANE_UNSET | REV, ECHOPRT, 0},-
337 {"prterase", local, REV | OMIT, ECHOPRT, 0},-
338#endif-
339#ifdef ECHOCTL-
340 {"echoctl", local, SANE_SET | REV, ECHOCTL, 0},-
341 {"ctlecho", local, REV | OMIT, ECHOCTL, 0},-
342#endif-
343#ifdef ECHOKE-
344 {"echoke", local, SANE_SET | REV, ECHOKE, 0},-
345 {"crtkill", local, REV | OMIT, ECHOKE, 0},-
346#endif-
347#ifdef FLUSHO-
348 {"flusho", local, SANE_UNSET | REV, FLUSHO, 0},-
349#endif-
350#if defined TIOCEXT-
351 {"extproc", local, SANE_UNSET | REV | NO_SETATTR, EXTPROC, 0},-
352#elif defined EXTPROC-
353 {"extproc", local, SANE_UNSET | REV, EXTPROC, 0},-
354#endif-
355-
356 {"evenp", combination, REV | OMIT, 0, 0},-
357 {"parity", combination, REV | OMIT, 0, 0},-
358 {"oddp", combination, REV | OMIT, 0, 0},-
359 {"nl", combination, REV | OMIT, 0, 0},-
360 {"ek", combination, OMIT, 0, 0},-
361 {"sane", combination, OMIT, 0, 0},-
362 {"cooked", combination, REV | OMIT, 0, 0},-
363 {"raw", combination, REV | OMIT, 0, 0},-
364 {"pass8", combination, REV | OMIT, 0, 0},-
365 {"litout", combination, REV | OMIT, 0, 0},-
366 {"cbreak", combination, REV | OMIT, 0, 0},-
367#ifdef IXANY-
368 {"decctlq", combination, REV | OMIT, 0, 0},-
369#endif-
370#if defined TABDLY || defined OXTABS-
371 {"tabs", combination, REV | OMIT, 0, 0},-
372#endif-
373#if defined XCASE && defined IUCLC && defined OLCUC-
374 {"lcase", combination, REV | OMIT, 0, 0},-
375 {"LCASE", combination, REV | OMIT, 0, 0},-
376#endif-
377 {"crt", combination, OMIT, 0, 0},-
378 {"dec", combination, OMIT, 0, 0},-
379-
380 {NULL, control, 0, 0, 0}-
381};-
382-
383/* Control character settings. */-
384struct control_info-
385 {-
386 const char *name; /* Name given on command line. */-
387 cc_t saneval; /* Value to set for 'stty sane'. */-
388 size_t offset; /* Offset in c_cc. */-
389 };-
390-
391/* Control characters. */-
392-
393static struct control_info const control_info[] =-
394{-
395 {"intr", CINTR, VINTR},-
396 {"quit", CQUIT, VQUIT},-
397 {"erase", CERASE, VERASE},-
398 {"kill", CKILL, VKILL},-
399 {"eof", CEOF, VEOF},-
400 {"eol", CEOL, VEOL},-
401#ifdef VEOL2-
402 {"eol2", CEOL2, VEOL2},-
403#endif-
404#ifdef VSWTCH-
405 {"swtch", CSWTCH, VSWTCH},-
406#endif-
407 {"start", CSTART, VSTART},-
408 {"stop", CSTOP, VSTOP},-
409 {"susp", CSUSP, VSUSP},-
410#ifdef VDSUSP-
411 {"dsusp", CDSUSP, VDSUSP},-
412#endif-
413#ifdef VREPRINT-
414 {"rprnt", CRPRNT, VREPRINT},-
415#else-
416# ifdef CREPRINT /* HPUX 10.20 needs this */-
417 {"rprnt", CRPRNT, CREPRINT},-
418# endif-
419#endif-
420#ifdef VWERASE-
421 {"werase", CWERASE, VWERASE},-
422#endif-
423#ifdef VLNEXT-
424 {"lnext", CLNEXT, VLNEXT},-
425#endif-
426#ifdef VFLUSHO-
427 {"flush", CFLUSHO, VFLUSHO}, /* deprecated compat option. */-
428 {"discard", CFLUSHO, VFLUSHO},-
429#endif-
430#ifdef VSTATUS-
431 {"status", CSTATUS, VSTATUS},-
432#endif-
433-
434 /* These must be last because of the display routines. */-
435 {"min", 1, VMIN},-
436 {"time", 0, VTIME},-
437 {NULL, 0, 0}-
438};-
439-
440static char const *visible (cc_t ch);-
441static unsigned long int baud_to_value (speed_t speed);-
442static bool recover_mode (char const *arg, struct termios *mode);-
443static int screen_columns (void);-
444static bool set_mode (struct mode_info const *info, bool reversed,-
445 struct termios *mode);-
446static unsigned long int integer_arg (const char *s, unsigned long int max);-
447static speed_t string_to_baud (const char *arg);-
448static tcflag_t *mode_type_flag (enum mode_type type, struct termios *mode);-
449static void display_all (struct termios *mode, char const *device_name);-
450static void display_changed (struct termios *mode);-
451static void display_recoverable (struct termios *mode);-
452static void display_settings (enum output_type output_type,-
453 struct termios *mode,-
454 const char *device_name);-
455static void display_speed (struct termios *mode, bool fancy);-
456static void display_window_size (bool fancy, char const *device_name);-
457static void sane_mode (struct termios *mode);-
458static void set_control_char (struct control_info const *info,-
459 const char *arg,-
460 struct termios *mode);-
461static void set_speed (enum speed_setting type, const char *arg,-
462 struct termios *mode);-
463static void set_window_size (int rows, int cols, char const *device_name);-
464-
465/* The width of the screen, for output wrapping. */-
466static int max_col;-
467-
468/* Current position, to know when to wrap. */-
469static int current_col;-
470-
471/* Default "drain" mode for tcsetattr. */-
472static int tcsetattr_options = TCSADRAIN;-
473-
474static struct option const longopts[] =-
475{-
476 {"all", no_argument, NULL, 'a'},-
477 {"save", no_argument, NULL, 'g'},-
478 {"file", required_argument, NULL, 'F'},-
479 {GETOPT_HELP_OPTION_DECL},-
480 {GETOPT_VERSION_OPTION_DECL},-
481 {NULL, 0, NULL, 0}-
482};-
483-
484static void wrapf (const char *message, ...)-
485 __attribute__ ((__format__ (__printf__, 1, 2)));-
486-
487/* Print format string MESSAGE and optional args.-
488 Wrap to next line first if it won't fit.-
489 Print a space first unless MESSAGE will start a new line. */-
490-
491static void-
492wrapf (const char *message,...)-
493{-
494 va_list args;-
495 char *buf;-
496 int buflen;-
497-
498 va_start (args, message);-
499 buflen = vasprintf (&buf, message, args);-
500 va_end (args);-
501-
502 if (buflen < 0)
buflen < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
503 xalloc_die ();
never executed: xalloc_die ();
0
504-
505 if (0 < current_col)
0 < current_colDescription
TRUEnever evaluated
FALSEnever evaluated
0
506 {-
507 if (max_col - current_col < buflen)
max_col - current_col < buflenDescription
TRUEnever evaluated
FALSEnever evaluated
0
508 {-
509 putchar ('\n');-
510 current_col = 0;-
511 }
never executed: end of block
0
512 else-
513 {-
514 putchar (' ');-
515 current_col++;-
516 }
never executed: end of block
0
517 }-
518-
519 fputs (buf, stdout);-
520 free (buf);-
521 current_col += buflen;-
522}
never executed: end of block
0
523-
524void-
525usage (int status)-
526{-
527 if (status != EXIT_SUCCESS)
status != 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEevaluated 2 times by 1 test
Evaluated by:
  • stty
1-2
528 emit_try_help ();
executed 1 time by 1 test: end of block
Executed by:
  • stty
1
529 else-
530 {-
531 printf (_("\-
532Usage: %s [-F DEVICE | --file=DEVICE] [SETTING]...\n\-
533 or: %s [-F DEVICE | --file=DEVICE] [-a|--all]\n\-
534 or: %s [-F DEVICE | --file=DEVICE] [-g|--save]\n\-
535"),-
536 program_name, program_name, program_name);-
537 fputs (_("\-
538Print or change terminal characteristics.\n\-
539"), stdout);-
540-
541 emit_mandatory_arg_note ();-
542-
543 fputs (_("\-
544 -a, --all print all current settings in human-readable form\n\-
545 -g, --save print all current settings in a stty-readable form\n\-
546 -F, --file=DEVICE open and use the specified DEVICE instead of stdin\n\-
547"), stdout);-
548 fputs (HELP_OPTION_DESCRIPTION, stdout);-
549 fputs (VERSION_OPTION_DESCRIPTION, stdout);-
550 fputs (_("\-
551\n\-
552Optional - before SETTING indicates negation. An * marks non-POSIX\n\-
553settings. The underlying system defines which settings are available.\n\-
554"), stdout);-
555 fputs (_("\-
556\n\-
557Special characters:\n"), stdout);-
558#ifdef VFLUSHO-
559 fputs (_("\-
560 * discard CHAR CHAR will toggle discarding of output\n\-
561"), stdout);-
562#endif-
563#ifdef VDSUSP-
564 fputs (_("\-
565 * dsusp CHAR CHAR will send a terminal stop signal once input flushed\n\-
566"), stdout);-
567#endif-
568 fputs (_("\-
569 eof CHAR CHAR will send an end of file (terminate the input)\n\-
570 eol CHAR CHAR will end the line\n\-
571"), stdout);-
572#ifdef VEOL2-
573 fputs (_("\-
574 * eol2 CHAR alternate CHAR for ending the line\n\-
575"), stdout);-
576#endif-
577 fputs (_("\-
578 erase CHAR CHAR will erase the last character typed\n\-
579 intr CHAR CHAR will send an interrupt signal\n\-
580 kill CHAR CHAR will erase the current line\n\-
581"), stdout);-
582#ifdef VLNEXT-
583 fputs (_("\-
584 * lnext CHAR CHAR will enter the next character quoted\n\-
585"), stdout);-
586#endif-
587#ifdef VSTATUS-
588 fputs (_("\-
589 * status CHAR CHAR will send an info signal\n\-
590"), stdout);-
591#endif-
592 fputs (_("\-
593 quit CHAR CHAR will send a quit signal\n\-
594"), stdout);-
595#if defined CREPRINT || defined VREPRINT-
596 fputs (_("\-
597 * rprnt CHAR CHAR will redraw the current line\n\-
598"), stdout);-
599#endif-
600 fputs (_("\-
601 start CHAR CHAR will restart the output after stopping it\n\-
602 stop CHAR CHAR will stop the output\n\-
603 susp CHAR CHAR will send a terminal stop signal\n\-
604"), stdout);-
605#ifdef VSWTCH-
606 fputs (_("\-
607 * swtch CHAR CHAR will switch to a different shell layer\n\-
608"), stdout);-
609#endif-
610#ifdef VWERASE-
611 fputs (_("\-
612 * werase CHAR CHAR will erase the last word typed\n\-
613"), stdout);-
614#endif-
615 fputs (_("\-
616\n\-
617Special settings:\n\-
618 N set the input and output speeds to N bauds\n\-
619"), stdout);-
620#ifdef TIOCGWINSZ-
621 fputs (_("\-
622 * cols N tell the kernel that the terminal has N columns\n\-
623 * columns N same as cols N\n\-
624"), stdout);-
625#endif-
626 printf (_("\-
627 * [-]drain wait for transmission before applying settings (%s by default)\-
628\n"), tcsetattr_options == TCSADRAIN ? _("on") : _("off"));-
629 fputs (_("\-
630 ispeed N set the input speed to N\n\-
631"), stdout);-
632#ifdef HAVE_C_LINE-
633 fputs (_("\-
634 * line N use line discipline N\n\-
635"), stdout);-
636#endif-
637 fputs (_("\-
638 min N with -icanon, set N characters minimum for a completed read\n\-
639 ospeed N set the output speed to N\n\-
640"), stdout);-
641#ifdef TIOCGWINSZ-
642 fputs (_("\-
643 * rows N tell the kernel that the terminal has N rows\n\-
644 * size print the number of rows and columns according to the kernel\n\-
645"), stdout);-
646#endif-
647 fputs (_("\-
648 speed print the terminal speed\n\-
649 time N with -icanon, set read timeout of N tenths of a second\n\-
650"), stdout);-
651 fputs (_("\-
652\n\-
653Control settings:\n\-
654 [-]clocal disable modem control signals\n\-
655 [-]cread allow input to be received\n\-
656"), stdout);-
657#ifdef CRTSCTS-
658 fputs (_("\-
659 * [-]crtscts enable RTS/CTS handshaking\n\-
660"), stdout);-
661#endif-
662#ifdef CDTRDSR-
663 fputs (_("\-
664 * [-]cdtrdsr enable DTR/DSR handshaking\n\-
665"), stdout);-
666#endif-
667 fputs (_("\-
668 csN set character size to N bits, N in [5..8]\n\-
669"), stdout);-
670 fputs (_("\-
671 [-]cstopb use two stop bits per character (one with '-')\n\-
672 [-]hup send a hangup signal when the last process closes the tty\n\-
673 [-]hupcl same as [-]hup\n\-
674 [-]parenb generate parity bit in output and expect parity bit in input\n\-
675 [-]parodd set odd parity (or even parity with '-')\n\-
676"), stdout);-
677#ifdef CMSPAR-
678 fputs (_("\-
679 * [-]cmspar use \"stick\" (mark/space) parity\n\-
680"), stdout);-
681#endif-
682 fputs (_("\-
683\n\-
684Input settings:\n\-
685 [-]brkint breaks cause an interrupt signal\n\-
686 [-]icrnl translate carriage return to newline\n\-
687 [-]ignbrk ignore break characters\n\-
688 [-]igncr ignore carriage return\n\-
689 [-]ignpar ignore characters with parity errors\n\-
690"), stdout);-
691#ifdef IMAXBEL-
692 fputs (_("\-
693 * [-]imaxbel beep and do not flush a full input buffer on a character\n\-
694"), stdout);-
695#endif-
696 fputs (_("\-
697 [-]inlcr translate newline to carriage return\n\-
698 [-]inpck enable input parity checking\n\-
699 [-]istrip clear high (8th) bit of input characters\n\-
700"), stdout);-
701#ifdef IUTF8-
702 fputs (_("\-
703 * [-]iutf8 assume input characters are UTF-8 encoded\n\-
704"), stdout);-
705#endif-
706#ifdef IUCLC-
707 fputs (_("\-
708 * [-]iuclc translate uppercase characters to lowercase\n\-
709"), stdout);-
710#endif-
711#ifdef IXANY-
712 fputs (_("\-
713 * [-]ixany let any character restart output, not only start character\n\-
714"), stdout);-
715#endif-
716 fputs (_("\-
717 [-]ixoff enable sending of start/stop characters\n\-
718 [-]ixon enable XON/XOFF flow control\n\-
719 [-]parmrk mark parity errors (with a 255-0-character sequence)\n\-
720 [-]tandem same as [-]ixoff\n\-
721"), stdout);-
722 fputs (_("\-
723\n\-
724Output settings:\n\-
725"), stdout);-
726#ifdef BSDLY-
727 fputs (_("\-
728 * bsN backspace delay style, N in [0..1]\n\-
729"), stdout);-
730#endif-
731#ifdef CRDLY-
732 fputs (_("\-
733 * crN carriage return delay style, N in [0..3]\n\-
734"), stdout);-
735#endif-
736#ifdef FFDLY-
737 fputs (_("\-
738 * ffN form feed delay style, N in [0..1]\n\-
739"), stdout);-
740#endif-
741#ifdef NLDLY-
742 fputs (_("\-
743 * nlN newline delay style, N in [0..1]\n\-
744"), stdout);-
745#endif-
746#ifdef OCRNL-
747 fputs (_("\-
748 * [-]ocrnl translate carriage return to newline\n\-
749"), stdout);-
750#endif-
751#ifdef OFDEL-
752 fputs (_("\-
753 * [-]ofdel use delete characters for fill instead of NUL characters\n\-
754"), stdout);-
755#endif-
756#ifdef OFILL-
757 fputs (_("\-
758 * [-]ofill use fill (padding) characters instead of timing for delays\n\-
759"), stdout);-
760#endif-
761#ifdef OLCUC-
762 fputs (_("\-
763 * [-]olcuc translate lowercase characters to uppercase\n\-
764"), stdout);-
765#endif-
766#ifdef ONLCR-
767 fputs (_("\-
768 * [-]onlcr translate newline to carriage return-newline\n\-
769"), stdout);-
770#endif-
771#ifdef ONLRET-
772 fputs (_("\-
773 * [-]onlret newline performs a carriage return\n\-
774"), stdout);-
775#endif-
776#ifdef ONOCR-
777 fputs (_("\-
778 * [-]onocr do not print carriage returns in the first column\n\-
779"), stdout);-
780#endif-
781 fputs (_("\-
782 [-]opost postprocess output\n\-
783"), stdout);-
784#if defined TABDLY || defined OXTABS-
785 fputs (_("\-
786 * tabN horizontal tab delay style, N in [0..3]\n\-
787 * tabs same as tab0\n\-
788 * -tabs same as tab3\n\-
789"), stdout);-
790#endif-
791#ifdef VTDLY-
792 fputs (_("\-
793 * vtN vertical tab delay style, N in [0..1]\n\-
794"), stdout);-
795#endif-
796 fputs (_("\-
797\n\-
798Local settings:\n\-
799 [-]crterase echo erase characters as backspace-space-backspace\n\-
800"), stdout);-
801#ifdef ECHOKE-
802 fputs (_("\-
803 * crtkill kill all line by obeying the echoprt and echoe settings\n\-
804 * -crtkill kill all line by obeying the echoctl and echok settings\n\-
805"), stdout);-
806#endif-
807#ifdef ECHOCTL-
808 fputs (_("\-
809 * [-]ctlecho echo control characters in hat notation ('^c')\n\-
810"), stdout);-
811#endif-
812 fputs (_("\-
813 [-]echo echo input characters\n\-
814"), stdout);-
815#ifdef ECHOCTL-
816 fputs (_("\-
817 * [-]echoctl same as [-]ctlecho\n\-
818"), stdout);-
819#endif-
820 fputs (_("\-
821 [-]echoe same as [-]crterase\n\-
822 [-]echok echo a newline after a kill character\n\-
823"), stdout);-
824#ifdef ECHOKE-
825 fputs (_("\-
826 * [-]echoke same as [-]crtkill\n\-
827"), stdout);-
828#endif-
829 fputs (_("\-
830 [-]echonl echo newline even if not echoing other characters\n\-
831"), stdout);-
832#ifdef ECHOPRT-
833 fputs (_("\-
834 * [-]echoprt echo erased characters backward, between '\\' and '/'\n\-
835"), stdout);-
836#endif-
837#if defined EXTPROC || defined TIOCEXT-
838 fputs (_("\-
839 * [-]extproc enable \"LINEMODE\"; useful with high latency links\n\-
840"), stdout);-
841#endif-
842#if defined FLUSHO-
843 fputs (_("\-
844 * [-]flusho discard output\n\-
845"), stdout);-
846#endif-
847 printf (_("\-
848 [-]icanon enable special characters: %s\n\-
849 [-]iexten enable non-POSIX special characters\n\-
850"), "erase, kill"-
851#ifdef VWERASE-
852 ", werase"-
853#endif-
854#if defined CREPRINT || defined VREPRINT-
855 ", rprnt"-
856#endif-
857);-
858 fputs (_("\-
859 [-]isig enable interrupt, quit, and suspend special characters\n\-
860 [-]noflsh disable flushing after interrupt and quit special characters\n\-
861"), stdout);-
862#ifdef ECHOPRT-
863 fputs (_("\-
864 * [-]prterase same as [-]echoprt\n\-
865"), stdout);-
866#endif-
867#ifdef TOSTOP-
868 fputs (_("\-
869 * [-]tostop stop background jobs that try to write to the terminal\n\-
870"), stdout);-
871#endif-
872#ifdef XCASE-
873 fputs (_("\-
874 * [-]xcase with icanon, escape with '\\' for uppercase characters\n\-
875"), stdout);-
876#endif-
877 fputs (_("\-
878\n\-
879Combination settings:\n\-
880"), stdout);-
881#if defined XCASE && defined IUCLC && defined OLCUC-
882 fputs (_("\-
883 * [-]LCASE same as [-]lcase\n\-
884"), stdout);-
885#endif-
886 fputs (_("\-
887 cbreak same as -icanon\n\-
888 -cbreak same as icanon\n\-
889"), stdout);-
890 fputs (_("\-
891 cooked same as brkint ignpar istrip icrnl ixon opost isig\n\-
892 icanon, eof and eol characters to their default values\n\-
893 -cooked same as raw\n\-
894"), stdout);-
895 printf (_("\-
896 crt same as %s\n\-
897"), "echoe"-
898#ifdef ECHOCTL-
899 " echoctl"-
900#endif-
901#ifdef ECHOKE-
902 " echoke"-
903#endif-
904);-
905 printf (_("\-
906 dec same as %s intr ^c erase 0177\n\-
907 kill ^u\n\-
908"), "echoe"-
909#ifdef ECHOCTL-
910 " echoctl"-
911#endif-
912#ifdef ECHOKE-
913 " echoke"-
914#endif-
915#ifdef IXANY-
916 " -ixany"-
917#endif-
918);-
919#ifdef IXANY-
920 fputs (_("\-
921 * [-]decctlq same as [-]ixany\n\-
922"), stdout);-
923#endif-
924 fputs (_("\-
925 ek erase and kill characters to their default values\n\-
926 evenp same as parenb -parodd cs7\n\-
927 -evenp same as -parenb cs8\n\-
928"), stdout);-
929#if defined XCASE && defined IUCLC && defined OLCUC-
930 fputs (_("\-
931 * [-]lcase same as xcase iuclc olcuc\n\-
932"), stdout);-
933#endif-
934 fputs (_("\-
935 litout same as -parenb -istrip -opost cs8\n\-
936 -litout same as parenb istrip opost cs7\n\-
937"), stdout);-
938 printf (_("\-
939 nl same as %s\n\-
940 -nl same as %s\n\-
941"), "-icrnl"-
942#ifdef ONLCR-
943 " -onlcr"-
944#endif-
945 , "icrnl -inlcr -igncr"-
946#ifdef ONLCR-
947 " onlcr"-
948#endif-
949#ifdef OCRNL-
950 " -ocrnl"-
951#endif-
952#ifdef ONLRET-
953 " -onlret"-
954#endif-
955);-
956 fputs (_("\-
957 oddp same as parenb parodd cs7\n\-
958 -oddp same as -parenb cs8\n\-
959 [-]parity same as [-]evenp\n\-
960 pass8 same as -parenb -istrip cs8\n\-
961 -pass8 same as parenb istrip cs7\n\-
962"), stdout);-
963 printf (_("\-
964 raw same as -ignbrk -brkint -ignpar -parmrk -inpck -istrip\n\-
965 -inlcr -igncr -icrnl -ixon -ixoff -icanon -opost\n\-
966 -isig%s min 1 time 0\n\-
967 -raw same as cooked\n\-
968"),-
969#ifdef IUCLC-
970 " -iuclc"-
971#endif-
972#ifdef IXANY-
973 " -ixany"-
974#endif-
975#ifdef IMAXBEL-
976 " -imaxbel"-
977#endif-
978#ifdef XCASE-
979 " -xcase"-
980#endif-
981);-
982 printf (_("\-
983 sane same as cread -ignbrk brkint -inlcr -igncr icrnl\n\-
984 icanon iexten echo echoe echok -echonl -noflsh\n\-
985 %s\n\-
986 %s\n\-
987 %s,\n\-
988 all special characters to their default values\n\-
989"),-
990 "-ixoff"-
991#ifdef IUTF8-
992 " -iutf8"-
993#endif-
994#ifdef IUCLC-
995 " -iuclc"-
996#endif-
997#ifdef IXANY-
998 " -ixany"-
999#endif-
1000#ifdef IMAXBEL-
1001 " imaxbel"-
1002#endif-
1003#ifdef XCASE-
1004 " -xcase"-
1005#endif-
1006#ifdef OLCUC-
1007 " -olcuc"-
1008#endif-
1009#ifdef OCRNL-
1010 " -ocrnl"-
1011#endif-
1012-
1013 , "opost"-
1014#ifdef OFILL-
1015 " -ofill"-
1016#endif-
1017#ifdef ONLCR-
1018 " onlcr"-
1019#endif-
1020#ifdef ONOCR-
1021 " -onocr"-
1022#endif-
1023#ifdef ONLRET-
1024 " -onlret"-
1025#endif-
1026#ifdef NLDLY-
1027 " nl0"-
1028#endif-
1029#ifdef CRDLY-
1030 " cr0"-
1031#endif-
1032#ifdef TAB0-
1033 " tab0"-
1034#endif-
1035#ifdef BSDLY-
1036 " bs0"-
1037#endif-
1038#ifdef VTDLY-
1039 " vt0"-
1040#endif-
1041#ifdef FFDLY-
1042 " ff0"-
1043#endif-
1044-
1045 , "isig"-
1046#ifdef TOSTOP-
1047 " -tostop"-
1048#endif-
1049#ifdef OFDEL-
1050 " -ofdel"-
1051#endif-
1052#ifdef ECHOPRT-
1053 " -echoprt"-
1054#endif-
1055#ifdef ECHOCTL-
1056 " echoctl"-
1057#endif-
1058#ifdef ECHOKE-
1059 " echoke"-
1060#endif-
1061#ifdef EXTPROC-
1062 " -extproc"-
1063#endif-
1064#ifdef FLUSHO-
1065 " -flusho"-
1066#endif-
1067);-
1068 fputs (_("\-
1069\n\-
1070Handle the tty line connected to standard input. Without arguments,\n\-
1071prints baud rate, line discipline, and deviations from stty sane. In\n\-
1072settings, CHAR is taken literally, or coded as in ^c, 0x37, 0177 or\n\-
1073127; special values ^- or undef used to disable special characters.\n\-
1074"), stdout);-
1075 emit_ancillary_info (PROGRAM_NAME);-
1076 }
executed 2 times by 1 test: end of block
Executed by:
  • stty
2
1077 exit (status);
executed 3 times by 1 test: exit (status);
Executed by:
  • stty
3
1078}-
1079-
1080-
1081/* Apply specified settings to MODE, and update-
1082 SPEED_WAS_SET and REQUIRE_SET_ATTR as required.-
1083 If CHECKING is true, this function doesn't interact-
1084 with a device, and only validates specified settings. */-
1085-
1086static void-
1087apply_settings (bool checking, const char *device_name,-
1088 char * const *settings, int n_settings,-
1089 struct termios *mode, bool *speed_was_set,-
1090 bool *require_set_attr)-
1091{-
1092#define check_argument(arg) \-
1093 do \-
1094 { \-
1095 if (k == n_settings - 1 || ! settings[k+1]) \-
1096 { \-
1097 error (0, 0, _("missing argument to %s"), quote (arg)); \-
1098 usage (EXIT_FAILURE); \-
1099 } \-
1100 } \-
1101 while (0)-
1102-
1103 for (int k = 1; k < n_settings; k++)
k < n_settingsDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
0-1
1104 {-
1105 char const *arg = settings[k];-
1106 bool match_found = false;-
1107 bool not_set_attr = false;-
1108 bool reversed = false;-
1109 int i;-
1110-
1111 if (! arg)
! argDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
0-1
1112 continue;
never executed: continue;
0
1113-
1114 if (arg[0] == '-')
arg[0] == '-'Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
0-1
1115 {-
1116 ++arg;-
1117 reversed = true;-
1118 }
executed 1 time by 1 test: end of block
Executed by:
  • stty
1
1119 if (STREQ (arg, "drain"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "drain" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-1
1120 {-
1121 tcsetattr_options = reversed ? TCSANOW : TCSADRAIN;
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1122 continue;
never executed: continue;
0
1123 }-
1124 for (i = 0; mode_info[i].name != NULL; ++i)
mode_info[i].n...!= ((void *)0)Description
TRUEevaluated 89 times by 1 test
Evaluated by:
  • stty
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
1-89
1125 {-
1126 if (STREQ (arg, mode_info[i].name))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( mode_info[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEevaluated 89 times by 1 test
Evaluated by:
  • stty
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-89
1127 {-
1128 if ((mode_info[i].flags & NO_SETATTR) == 0)
(mode_info[i].flags & 16) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1129 {-
1130 match_found = set_mode (&mode_info[i], reversed, mode);-
1131 *require_set_attr = true;-
1132 }
never executed: end of block
0
1133 else-
1134 match_found = not_set_attr = true;
never executed: match_found = not_set_attr = 1 ;
0
1135 break;
never executed: break;
0
1136 }-
1137 }
executed 89 times by 1 test: end of block
Executed by:
  • stty
89
1138 if (!match_found && reversed)
!match_foundDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
reversedDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
0-1
1139 {-
1140 error (0, 0, _("invalid argument %s"), quote (arg - 1));-
1141 usage (EXIT_FAILURE);-
1142 }
never executed: end of block
0
1143 if (!match_found)
!match_foundDescription
TRUEnever evaluated
FALSEnever evaluated
0
1144 {-
1145 for (i = 0; control_info[i].name != NULL; ++i)
control_info[i...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1146 {-
1147 if (STREQ (arg, control_info[i].name))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( control_info[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1148 {-
1149 check_argument (arg);
never executed: end of block
k == n_settings - 1Description
TRUEnever evaluated
FALSEnever evaluated
! settings[k+1]Description
TRUEnever evaluated
FALSEnever evaluated
0
1150 match_found = true;-
1151 ++k;-
1152 set_control_char (&control_info[i], settings[k], mode);-
1153 *require_set_attr = true;-
1154 break;
never executed: break;
0
1155 }-
1156 }
never executed: end of block
0
1157 }
never executed: end of block
0
1158 if (!match_found || not_set_attr)
!match_foundDescription
TRUEnever evaluated
FALSEnever evaluated
not_set_attrDescription
TRUEnever evaluated
FALSEnever evaluated
0
1159 {-
1160 if (STREQ (arg, "ispeed"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "ispeed" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1161 {-
1162 check_argument (arg);
never executed: end of block
k == n_settings - 1Description
TRUEnever evaluated
FALSEnever evaluated
! settings[k+1]Description
TRUEnever evaluated
FALSEnever evaluated
0
1163 ++k;-
1164 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1165 continue;
never executed: continue;
0
1166 set_speed (input_speed, settings[k], mode);-
1167 *speed_was_set = true;-
1168 *require_set_attr = true;-
1169 }
never executed: end of block
0
1170 else if (STREQ (arg, "ospeed"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "ospeed" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1171 {-
1172 check_argument (arg);
never executed: end of block
k == n_settings - 1Description
TRUEnever evaluated
FALSEnever evaluated
! settings[k+1]Description
TRUEnever evaluated
FALSEnever evaluated
0
1173 ++k;-
1174 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1175 continue;
never executed: continue;
0
1176 set_speed (output_speed, settings[k], mode);-
1177 *speed_was_set = true;-
1178 *require_set_attr = true;-
1179 }
never executed: end of block
0
1180#ifdef TIOCEXT-
1181 /* This is the BSD interface to "extproc".-
1182 Even though it's an lflag, an ioctl is used to set it. */-
1183 else if (STREQ (arg, "extproc"))-
1184 {-
1185 int val = ! reversed;-
1186-
1187 if (checking)-
1188 continue;-
1189-
1190 if (ioctl (STDIN_FILENO, TIOCEXT, &val) != 0)-
1191 {-
1192 die (EXIT_FAILURE, errno, _("%s: error setting %s"),-
1193 quotef_n (0, device_name), quote_n (1, arg));-
1194 }-
1195 }-
1196#endif-
1197#ifdef TIOCGWINSZ-
1198 else if (STREQ (arg, "rows"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "rows" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1199 {-
1200 check_argument (arg);
never executed: end of block
k == n_settings - 1Description
TRUEnever evaluated
FALSEnever evaluated
! settings[k+1]Description
TRUEnever evaluated
FALSEnever evaluated
0
1201 ++k;-
1202 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1203 continue;
never executed: continue;
0
1204 set_window_size (integer_arg (settings[k], INT_MAX), -1,-
1205 device_name);-
1206 }
never executed: end of block
0
1207 else if (STREQ (arg, "cols")
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "cols" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1208 || STREQ (arg, "columns"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "columns" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1209 {-
1210 check_argument (arg);
never executed: end of block
k == n_settings - 1Description
TRUEnever evaluated
FALSEnever evaluated
! settings[k+1]Description
TRUEnever evaluated
FALSEnever evaluated
0
1211 ++k;-
1212 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1213 continue;
never executed: continue;
0
1214 set_window_size (-1, integer_arg (settings[k], INT_MAX),-
1215 device_name);-
1216 }
never executed: end of block
0
1217 else if (STREQ (arg, "size"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "size" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1218 {-
1219 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1220 continue;
never executed: continue;
0
1221 max_col = screen_columns ();-
1222 current_col = 0;-
1223 display_window_size (false, device_name);-
1224 }
never executed: end of block
0
1225#endif-
1226#ifdef HAVE_C_LINE-
1227 else if (STREQ (arg, "line"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "line" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1228 {-
1229 unsigned long int value;-
1230 check_argument (arg);
never executed: end of block
k == n_settings - 1Description
TRUEnever evaluated
FALSEnever evaluated
! settings[k+1]Description
TRUEnever evaluated
FALSEnever evaluated
0
1231 ++k;-
1232 mode->c_line = value = integer_arg (settings[k], ULONG_MAX);-
1233 if (mode->c_line != value)
mode->c_line != valueDescription
TRUEnever evaluated
FALSEnever evaluated
0
1234 error (0, 0, _("invalid line discipline %s"),
never executed: error (0, 0, dcgettext (((void *)0), "invalid line discipline %s" , 5) , quote (settings[k]));
0
1235 quote (settings[k]));
never executed: error (0, 0, dcgettext (((void *)0), "invalid line discipline %s" , 5) , quote (settings[k]));
0
1236 *require_set_attr = true;-
1237 }
never executed: end of block
0
1238#endif-
1239 else if (STREQ (arg, "speed"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "speed" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1240 {-
1241 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1242 continue;
never executed: continue;
0
1243 max_col = screen_columns ();-
1244 display_speed (mode, false);-
1245 }
never executed: end of block
0
1246 else if (string_to_baud (arg) != (speed_t) -1)
string_to_baud...= (speed_t) -1Description
TRUEnever evaluated
FALSEnever evaluated
0
1247 {-
1248 if (checking)
checkingDescription
TRUEnever evaluated
FALSEnever evaluated
0
1249 continue;
never executed: continue;
0
1250 set_speed (both_speeds, arg, mode);-
1251 *speed_was_set = true;-
1252 *require_set_attr = true;-
1253 }
never executed: end of block
0
1254 else-
1255 {-
1256 if (! recover_mode (arg, mode))
! recover_mode (arg, mode)Description
TRUEnever evaluated
FALSEnever evaluated
0
1257 {-
1258 error (0, 0, _("invalid argument %s"), quote (arg));-
1259 usage (EXIT_FAILURE);-
1260 }
never executed: end of block
0
1261 *require_set_attr = true;-
1262 }
never executed: end of block
0
1263 }-
1264 }
never executed: end of block
0
1265}
never executed: end of block
0
1266-
1267int-
1268main (int argc, char **argv)-
1269{-
1270 /* Initialize to all zeroes so there is no risk memcmp will report a-
1271 spurious difference in an uninitialized portion of the structure. */-
1272 static struct termios mode;-
1273-
1274 enum output_type output_type;-
1275 int optc;-
1276 int argi = 0;-
1277 int opti = 1;-
1278 bool require_set_attr;-
1279 bool speed_was_set _GL_UNUSED;-
1280 bool verbose_output;-
1281 bool recoverable_output;-
1282 bool noargs = true;-
1283 char *file_name = NULL;-
1284 const char *device_name;-
1285-
1286 initialize_main (&argc, &argv);-
1287 set_program_name (argv[0]);-
1288 setlocale (LC_ALL, "");-
1289 bindtextdomain (PACKAGE, LOCALEDIR);-
1290 textdomain (PACKAGE);-
1291-
1292 atexit (close_stdout);-
1293-
1294 output_type = changed;-
1295 verbose_output = false;-
1296 recoverable_output = false;-
1297-
1298 /* Don't print error messages for unrecognized options. */-
1299 opterr = 0;-
1300-
1301 /* If any new options are ever added to stty, the short options MUST-
1302 NOT allow any ambiguity with the stty settings. For example, the-
1303 stty setting "-gagFork" would not be feasible, since it will be-
1304 parsed as "-g -a -g -F ork". If you change anything about how-
1305 stty parses options, be sure it still works with combinations of-
1306 short and long options, --, POSIXLY_CORRECT, etc. */-
1307-
1308 while ((optc = getopt_long (argc - argi, argv + argi, "-agF:",
(optc = getopt... *)0) )) != -1Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • stty
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
1-10
1309 longopts, NULL))
(optc = getopt... *)0) )) != -1Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • stty
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
1-10
1310 != -1)
(optc = getopt... *)0) )) != -1Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • stty
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
1-10
1311 {-
1312 switch (optc)-
1313 {-
1314 case 'a':
never executed: case 'a':
0
1315 verbose_output = true;-
1316 output_type = all;-
1317 break;
never executed: break;
0
1318-
1319 case 'g':
never executed: case 'g':
0
1320 recoverable_output = true;-
1321 output_type = recoverable;-
1322 break;
never executed: break;
0
1323-
1324 case 'F':
never executed: case 'F':
0
1325 if (file_name)
file_nameDescription
TRUEnever evaluated
FALSEnever evaluated
0
1326 die (EXIT_FAILURE, 0, _("only one device may be specified"));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"only one device may be specified\", 5)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , 0, dcgettext (((void *)0), "only one device may be specified" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "only one device may be specified" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1327 file_name = optarg;-
1328 break;
never executed: break;
0
1329-
1330 case_GETOPT_HELP_CHAR;
never executed: break;
executed 2 times by 1 test: case GETOPT_HELP_CHAR:
Executed by:
  • stty
0-2
1331-
1332 case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
executed 7 times by 1 test: exit ( 0 );
Executed by:
  • stty
never executed: break;
executed 7 times by 1 test: case GETOPT_VERSION_CHAR:
Executed by:
  • stty
0-7
1333-
1334 default:
executed 1 time by 1 test: default:
Executed by:
  • stty
1
1335 /* Consider "drain" as an option rather than a setting,-
1336 to support: alias stty='stty -drain' etc. */-
1337 if (! STREQ (argv[argi + opti], "-drain")
never executed: __result = (((const unsigned char *) (const char *) ( argv[argi + opti] ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-drain" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! ( __extensio...)))); }) == 0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-1
1338 && ! STREQ (argv[argi + opti], "drain"))
never executed: __result = (((const unsigned char *) (const char *) ( argv[argi + opti] ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "drain" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! ( __extensio...)))); }) == 0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-1
1339 noargs = false;
executed 1 time by 1 test: noargs = 0 ;
Executed by:
  • stty
1
1340-
1341 /* Skip the argument containing this unrecognized option;-
1342 the 2nd pass will analyze it. */-
1343 argi += opti;-
1344-
1345 /* Restart getopt_long from the first unskipped argument. */-
1346 opti = 1;-
1347 optind = 0;-
1348-
1349 break;
executed 1 time by 1 test: break;
Executed by:
  • stty
1
1350 }-
1351-
1352 /* Clear fully-parsed arguments, so they don't confuse the 2nd pass. */-
1353 while (opti < optind)
opti < optindDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
0-1
1354 argv[argi + opti++] = NULL;
never executed: argv[argi + opti++] = ((void *)0) ;
0
1355 }
executed 1 time by 1 test: end of block
Executed by:
  • stty
1
1356-
1357 /* Specifying both -a and -g gets an error. */-
1358 if (verbose_output && recoverable_output)
verbose_outputDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
recoverable_outputDescription
TRUEnever evaluated
FALSEnever evaluated
0-1
1359 die (EXIT_FAILURE, 0,
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"the options for verbose and stty-readable output styles are\\n\" \"mutually exclusive\", 5)), assume (false))" ")"); int _gl_dummy; })) ? ((error (...y exclusive" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "the options for verbose and stty-readable output styles are\n" "mutually exclusive" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1360 _("the options for verbose and stty-readable output styles are\n"
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"the options for verbose and stty-readable output styles are\\n\" \"mutually exclusive\", 5)), assume (false))" ")"); int _gl_dummy; })) ? ((error (...y exclusive" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "the options for verbose and stty-readable output styles are\n" "mutually exclusive" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1361 "mutually exclusive"));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"the options for verbose and stty-readable output styles are\\n\" \"mutually exclusive\", 5)), assume (false))" ")"); int _gl_dummy; })) ? ((error (...y exclusive" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "the options for verbose and stty-readable output styles are\n" "mutually exclusive" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1362-
1363 /* Specifying any other arguments with -a or -g gets an error. */-
1364 if (!noargs && (verbose_output || recoverable_output))
!noargsDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
verbose_outputDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
recoverable_outputDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
0-1
1365 die (EXIT_FAILURE, 0,
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"when specifying an output style, modes may not be set\", 5)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , 0, dcgettext (((void *)0), ...ng an output style, modes may not be set" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "when specifying an output style, modes may not be set" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1366 _("when specifying an output style, modes may not be set"));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"when specifying an output style, modes may not be set\", 5)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , 0, dcgettext (((void *)0), ...ng an output style, modes may not be set" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "when specifying an output style, modes may not be set" , 5) ), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1367-
1368 device_name = file_name ? file_name : _("standard input");
file_nameDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • stty
0-1
1369-
1370 if (!noargs && !verbose_output && !recoverable_output)
!noargsDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
!verbose_outputDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
!recoverable_outputDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • stty
FALSEnever evaluated
0-1
1371 {-
1372 static struct termios check_mode;-
1373 apply_settings (/* checking= */ true, device_name, argv, argc,-
1374 &check_mode, &speed_was_set, &require_set_attr);-
1375 }
never executed: end of block
0
1376-
1377 if (file_name)
file_nameDescription
TRUEnever evaluated
FALSEnever evaluated
0
1378 {-
1379 int fdflags;-
1380 if (fd_reopen (STDIN_FILENO, device_name, O_RDONLY | O_NONBLOCK, 0) < 0)
fd_reopen ( 0 ...04000 , 0) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1381 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1382 if ((fdflags = fcntl (STDIN_FILENO, F_GETFL)) == -1
(fdflags = rpl...0 , 3 )) == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
1383 || fcntl (STDIN_FILENO, F_SETFL, fdflags & ~O_NONBLOCK) < 0)
rpl_fcntl ( 0 ... ~ 04000 ) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1384 die (EXIT_FAILURE, errno, _("%s: couldn't reset non-blocking mode"),
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), dcgettext (((void *)0), \"%s: couldn't reset non-blocking mode\", 5), quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (fals...iltin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , dcgettext (((void *)0), "%s: couldn't reset non-blocking mode" , 5) , quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1385 quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), dcgettext (((void *)0), \"%s: couldn't reset non-blocking mode\", 5), quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (fals...iltin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , dcgettext (((void *)0), "%s: couldn't reset non-blocking mode" , 5) , quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1386 }
never executed: end of block
0
1387-
1388 if (tcgetattr (STDIN_FILENO, &mode))
tcgetattr ( 0 , &mode)Description
TRUEnever evaluated
FALSEnever evaluated
0
1389 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1390-
1391 if (verbose_output || recoverable_output || noargs)
verbose_outputDescription
TRUEnever evaluated
FALSEnever evaluated
recoverable_outputDescription
TRUEnever evaluated
FALSEnever evaluated
noargsDescription
TRUEnever evaluated
FALSEnever evaluated
0
1392 {-
1393 max_col = screen_columns ();-
1394 current_col = 0;-
1395 display_settings (output_type, &mode, device_name);-
1396 return EXIT_SUCCESS;
never executed: return 0 ;
0
1397 }-
1398-
1399 speed_was_set = false;-
1400 require_set_attr = false;-
1401 apply_settings (/* checking= */ false, device_name, argv, argc,-
1402 &mode, &speed_was_set, &require_set_attr);-
1403-
1404 if (require_set_attr)
require_set_attrDescription
TRUEnever evaluated
FALSEnever evaluated
0
1405 {-
1406 /* Initialize to all zeroes so there is no risk memcmp will report a-
1407 spurious difference in an uninitialized portion of the structure. */-
1408 static struct termios new_mode;-
1409-
1410 if (tcsetattr (STDIN_FILENO, tcsetattr_options, &mode))
tcsetattr ( 0 ...ptions, &mode)Description
TRUEnever evaluated
FALSEnever evaluated
0
1411 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1412-
1413 /* POSIX (according to Zlotnick's book) tcsetattr returns zero if-
1414 it performs *any* of the requested operations. This means it-
1415 can report 'success' when it has actually failed to perform-
1416 some proper subset of the requested operations. To detect-
1417 this partial failure, get the current terminal attributes and-
1418 compare them to the requested ones. */-
1419-
1420 if (tcgetattr (STDIN_FILENO, &new_mode))
tcgetattr ( 0 , &new_mode)Description
TRUEnever evaluated
FALSEnever evaluated
0
1421 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1422-
1423 /* Normally, one shouldn't use memcmp to compare structures that-
1424 may have 'holes' containing uninitialized data, but we have been-
1425 careful to initialize the storage of these two variables to all-
1426 zeroes. One might think it more efficient simply to compare the-
1427 modified fields, but that would require enumerating those fields ---
1428 and not all systems have the same fields in this structure. */-
1429-
1430 if (memcmp (&mode, &new_mode, sizeof (mode)) != 0)
memcmp (&mode,...f (mode)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1431 {-
1432#ifdef CIBAUD-
1433 /* SunOS 4.1.3 (at least) has the problem that after this sequence,-
1434 tcgetattr (&m1); tcsetattr (&m1); tcgetattr (&m2);-
1435 sometimes (m1 != m2). The only difference is in the four bits-
1436 of the c_cflag field corresponding to the baud rate. To save-
1437 Sun users a little confusion, don't report an error if this-
1438 happens. But suppress the error only if we haven't tried to-
1439 set the baud rate explicitly -- otherwise we'd never give an-
1440 error for a true failure to set the baud rate. */-
1441-
1442 new_mode.c_cflag &= (~CIBAUD);-
1443 if (speed_was_set || memcmp (&mode, &new_mode, sizeof (mode)) != 0)
speed_was_setDescription
TRUEnever evaluated
FALSEnever evaluated
memcmp (&mode,...f (mode)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1444#endif-
1445 {-
1446 die (EXIT_FAILURE, 0,-
1447 _("%s: unable to perform all requested operations"),-
1448 quotef (device_name));-
1449#ifdef TESTING-
1450 {-
1451 printf ("new_mode: mode\n");-
1452 for (size_t i = 0; i < sizeof (new_mode); i++)-
1453 printf ("0x%02x: 0x%02x\n",-
1454 *(((unsigned char *) &new_mode) + i),-
1455 *(((unsigned char *) &mode) + i));-
1456 }-
1457#endif-
1458 }
never executed: end of block
0
1459 }
never executed: end of block
0
1460 }
never executed: end of block
0
1461-
1462 return EXIT_SUCCESS;
never executed: return 0 ;
0
1463}-
1464-
1465/* Return false if not applied because not reversible; otherwise-
1466 return true. */-
1467-
1468static bool-
1469set_mode (struct mode_info const *info, bool reversed, struct termios *mode)-
1470{-
1471 tcflag_t *bitsp;-
1472-
1473 if (reversed && (info->flags & REV) == 0)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
(info->flags & 4) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1474 return false;
never executed: return 0 ;
0
1475-
1476 bitsp = mode_type_flag (info->type, mode);-
1477-
1478 if (bitsp == NULL)
bitsp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1479 {-
1480 /* Combination mode. */-
1481 if (STREQ (info->name, "evenp") || STREQ (info->name, "parity"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "evenp" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "parity" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1482 {-
1483 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1484 mode->c_cflag = (mode->c_cflag & ~PARENB & ~CSIZE) | CS8;
never executed: mode->c_cflag = (mode->c_cflag & ~ 0000400 & ~ 0000060 ) | 0000060 ;
0
1485 else-
1486 mode->c_cflag = (mode->c_cflag & ~PARODD & ~CSIZE) | PARENB | CS7;
never executed: mode->c_cflag = (mode->c_cflag & ~ 0001000 & ~ 0000060 ) | 0000400 | 0000040 ;
0
1487 }-
1488 else if (STREQ (info->name, "oddp"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "oddp" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1489 {-
1490 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1491 mode->c_cflag = (mode->c_cflag & ~PARENB & ~CSIZE) | CS8;
never executed: mode->c_cflag = (mode->c_cflag & ~ 0000400 & ~ 0000060 ) | 0000060 ;
0
1492 else-
1493 mode->c_cflag = (mode->c_cflag & ~CSIZE) | CS7 | PARODD | PARENB;
never executed: mode->c_cflag = (mode->c_cflag & ~ 0000060 ) | 0000040 | 0001000 | 0000400 ;
0
1494 }-
1495 else if (STREQ (info->name, "nl"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "nl" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1496 {-
1497 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1498 {-
1499 mode->c_iflag = (mode->c_iflag | ICRNL) & ~INLCR & ~IGNCR;-
1500 mode->c_oflag = (mode->c_oflag-
1501#ifdef ONLCR-
1502 | ONLCR-
1503#endif-
1504 )-
1505#ifdef OCRNL-
1506 & ~OCRNL-
1507#endif-
1508#ifdef ONLRET-
1509 & ~ONLRET-
1510#endif-
1511 ;-
1512 }
never executed: end of block
0
1513 else-
1514 {-
1515 mode->c_iflag = mode->c_iflag & ~ICRNL;-
1516#ifdef ONLCR-
1517 mode->c_oflag = mode->c_oflag & ~ONLCR;-
1518#endif-
1519 }
never executed: end of block
0
1520 }-
1521 else if (STREQ (info->name, "ek"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "ek" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1522 {-
1523 mode->c_cc[VERASE] = CERASE;-
1524 mode->c_cc[VKILL] = CKILL;-
1525 }
never executed: end of block
0
1526 else if (STREQ (info->name, "sane"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "sane" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1527 sane_mode (mode);
never executed: sane_mode (mode);
0
1528 else if (STREQ (info->name, "cbreak"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "cbreak" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1529 {-
1530 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1531 mode->c_lflag |= ICANON;
never executed: mode->c_lflag |= 0000002 ;
0
1532 else-
1533 mode->c_lflag &= ~ICANON;
never executed: mode->c_lflag &= ~ 0000002 ;
0
1534 }-
1535 else if (STREQ (info->name, "pass8"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "pass8" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1536 {-
1537 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1538 {-
1539 mode->c_cflag = (mode->c_cflag & ~CSIZE) | CS7 | PARENB;-
1540 mode->c_iflag |= ISTRIP;-
1541 }
never executed: end of block
0
1542 else-
1543 {-
1544 mode->c_cflag = (mode->c_cflag & ~PARENB & ~CSIZE) | CS8;-
1545 mode->c_iflag &= ~ISTRIP;-
1546 }
never executed: end of block
0
1547 }-
1548 else if (STREQ (info->name, "litout"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "litout" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1549 {-
1550 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1551 {-
1552 mode->c_cflag = (mode->c_cflag & ~CSIZE) | CS7 | PARENB;-
1553 mode->c_iflag |= ISTRIP;-
1554 mode->c_oflag |= OPOST;-
1555 }
never executed: end of block
0
1556 else-
1557 {-
1558 mode->c_cflag = (mode->c_cflag & ~PARENB & ~CSIZE) | CS8;-
1559 mode->c_iflag &= ~ISTRIP;-
1560 mode->c_oflag &= ~OPOST;-
1561 }
never executed: end of block
0
1562 }-
1563 else if (STREQ (info->name, "raw") || STREQ (info->name, "cooked"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "raw" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "cooked" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1564 {-
1565 if ((info->name[0] == 'r' && reversed)
info->name[0] == 'r'Description
TRUEnever evaluated
FALSEnever evaluated
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1566 || (info->name[0] == 'c' && !reversed))
info->name[0] == 'c'Description
TRUEnever evaluated
FALSEnever evaluated
!reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1567 {-
1568 /* Cooked mode. */-
1569 mode->c_iflag |= BRKINT | IGNPAR | ISTRIP | ICRNL | IXON;-
1570 mode->c_oflag |= OPOST;-
1571 mode->c_lflag |= ISIG | ICANON;-
1572#if VMIN == VEOF-
1573 mode->c_cc[VEOF] = CEOF;-
1574#endif-
1575#if VTIME == VEOL-
1576 mode->c_cc[VEOL] = CEOL;-
1577#endif-
1578 }
never executed: end of block
0
1579 else-
1580 {-
1581 /* Raw mode. */-
1582 mode->c_iflag = 0;-
1583 mode->c_oflag &= ~OPOST;-
1584 mode->c_lflag &= ~(ISIG | ICANON-
1585#ifdef XCASE-
1586 | XCASE-
1587#endif-
1588 );-
1589 mode->c_cc[VMIN] = 1;-
1590 mode->c_cc[VTIME] = 0;-
1591 }
never executed: end of block
0
1592 }-
1593#ifdef IXANY-
1594 else if (STREQ (info->name, "decctlq"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "decctlq" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1595 {-
1596 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1597 mode->c_iflag |= IXANY;
never executed: mode->c_iflag |= 0004000 ;
0
1598 else-
1599 mode->c_iflag &= ~IXANY;
never executed: mode->c_iflag &= ~ 0004000 ;
0
1600 }-
1601#endif-
1602#ifdef TABDLY-
1603 else if (STREQ (info->name, "tabs"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "tabs" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1604 {-
1605 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1606 mode->c_oflag = (mode->c_oflag & ~TABDLY) | TAB3;
never executed: mode->c_oflag = (mode->c_oflag & ~ 0014000 ) | 0014000 ;
0
1607 else-
1608 mode->c_oflag = (mode->c_oflag & ~TABDLY) | TAB0;
never executed: mode->c_oflag = (mode->c_oflag & ~ 0014000 ) | 0000000 ;
0
1609 }-
1610#else-
1611# ifdef OXTABS-
1612 else if (STREQ (info->name, "tabs"))-
1613 {-
1614 if (reversed)-
1615 mode->c_oflag = mode->c_oflag | OXTABS;-
1616 else-
1617 mode->c_oflag = mode->c_oflag & ~OXTABS;-
1618 }-
1619# endif-
1620#endif-
1621#if defined XCASE && defined IUCLC && defined OLCUC-
1622 else if (STREQ (info->name, "lcase")
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "lcase" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1623 || STREQ (info->name, "LCASE"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "LCASE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1624 {-
1625 if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1626 {-
1627 mode->c_lflag &= ~XCASE;-
1628 mode->c_iflag &= ~IUCLC;-
1629 mode->c_oflag &= ~OLCUC;-
1630 }
never executed: end of block
0
1631 else-
1632 {-
1633 mode->c_lflag |= XCASE;-
1634 mode->c_iflag |= IUCLC;-
1635 mode->c_oflag |= OLCUC;-
1636 }
never executed: end of block
0
1637 }-
1638#endif-
1639 else if (STREQ (info->name, "crt"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "crt" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1640 mode->c_lflag |= ECHOE
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1641#ifdef ECHOCTL
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1642 | ECHOCTL
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1643#endif
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1644#ifdef ECHOKE
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1645 | ECHOKE
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1646#endif
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1647 ;
never executed: mode->c_lflag |= 0000020 | 0001000 | 0004000 ;
0
1648 else if (STREQ (info->name, "dec"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "dec" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1649 {-
1650 mode->c_cc[VINTR] = 3; /* ^C */-
1651 mode->c_cc[VERASE] = 127; /* DEL */-
1652 mode->c_cc[VKILL] = 21; /* ^U */-
1653 mode->c_lflag |= ECHOE-
1654#ifdef ECHOCTL-
1655 | ECHOCTL-
1656#endif-
1657#ifdef ECHOKE-
1658 | ECHOKE-
1659#endif-
1660 ;-
1661#ifdef IXANY-
1662 mode->c_iflag &= ~IXANY;-
1663#endif-
1664 }
never executed: end of block
0
1665 }
never executed: end of block
0
1666 else if (reversed)
reversedDescription
TRUEnever evaluated
FALSEnever evaluated
0
1667 *bitsp = *bitsp & ~info->mask & ~info->bits;
never executed: *bitsp = *bitsp & ~info->mask & ~info->bits;
0
1668 else-
1669 *bitsp = (*bitsp & ~info->mask) | info->bits;
never executed: *bitsp = (*bitsp & ~info->mask) | info->bits;
0
1670-
1671 return true;
never executed: return 1 ;
0
1672}-
1673-
1674static void-
1675set_control_char (struct control_info const *info, const char *arg,-
1676 struct termios *mode)-
1677{-
1678 unsigned long int value;-
1679-
1680 if (STREQ (info->name, "min") || STREQ (info->name, "time"))
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "min" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( info->name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "time" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1681 value = integer_arg (arg, TYPE_MAXIMUM (cc_t));
never executed: value = integer_arg (arg, ((cc_t) (! (! ((cc_t) 0 < (cc_t) -1)) ? (cc_t) -1 : ((((cc_t) 1 << ((sizeof (cc_t) * 8) - 2)) - 1) * 2 + 1))));
0
1682 else if (arg[0] == '\0' || arg[1] == '\0')
arg[0] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
arg[1] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
1683 value = to_uchar (arg[0]);
never executed: value = to_uchar (arg[0]);
0
1684 else if (STREQ (arg, "^-") || STREQ (arg, "undef"))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "^-" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "undef" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1685 value = _POSIX_VDISABLE;
never executed: value = '\0' ;
0
1686 else if (arg[0] == '^' && arg[1] != '\0') /* Ignore any trailing junk. */
arg[0] == '^'Description
TRUEnever evaluated
FALSEnever evaluated
arg[1] != '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
1687 {-
1688 if (arg[1] == '?')
arg[1] == '?'Description
TRUEnever evaluated
FALSEnever evaluated
0
1689 value = 127;
never executed: value = 127;
0
1690 else-
1691 value = to_uchar (arg[1]) & ~0140; /* Non-letters get weird results. */
never executed: value = to_uchar (arg[1]) & ~0140;
0
1692 }-
1693 else-
1694 value = integer_arg (arg, TYPE_MAXIMUM (cc_t));
never executed: value = integer_arg (arg, ((cc_t) (! (! ((cc_t) 0 < (cc_t) -1)) ? (cc_t) -1 : ((((cc_t) 1 << ((sizeof (cc_t) * 8) - 2)) - 1) * 2 + 1))));
0
1695 mode->c_cc[info->offset] = value;-
1696}
never executed: end of block
0
1697-
1698static void-
1699set_speed (enum speed_setting type, const char *arg, struct termios *mode)-
1700{-
1701 speed_t baud;-
1702-
1703 baud = string_to_baud (arg);-
1704 if (type == input_speed || type == both_speeds)
type == input_speedDescription
TRUEnever evaluated
FALSEnever evaluated
type == both_speedsDescription
TRUEnever evaluated
FALSEnever evaluated
0
1705 cfsetispeed (mode, baud);
never executed: cfsetispeed (mode, baud);
0
1706 if (type == output_speed || type == both_speeds)
type == output_speedDescription
TRUEnever evaluated
FALSEnever evaluated
type == both_speedsDescription
TRUEnever evaluated
FALSEnever evaluated
0
1707 cfsetospeed (mode, baud);
never executed: cfsetospeed (mode, baud);
0
1708}
never executed: end of block
0
1709-
1710#ifdef TIOCGWINSZ-
1711-
1712static int-
1713get_win_size (int fd, struct winsize *win)-
1714{-
1715 int err = ioctl (fd, TIOCGWINSZ, (char *) win);-
1716 return err;
never executed: return err;
0
1717}-
1718-
1719static void-
1720set_window_size (int rows, int cols, char const *device_name)-
1721{-
1722 struct winsize win;-
1723-
1724 if (get_win_size (STDIN_FILENO, &win))
get_win_size ( 0 , &win)Description
TRUEnever evaluated
FALSEnever evaluated
0
1725 {-
1726 if (errno != EINVAL)
(*__errno_location ()) != 22Description
TRUEnever evaluated
FALSEnever evaluated
0
1727 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1728 memset (&win, 0, sizeof (win));-
1729 }
never executed: end of block
0
1730-
1731 if (rows >= 0)
rows >= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1732 win.ws_row = rows;
never executed: win.ws_row = rows;
0
1733 if (cols >= 0)
cols >= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1734 win.ws_col = cols;
never executed: win.ws_col = cols;
0
1735-
1736# ifdef TIOCSSIZE-
1737 /* Alexander Dupuy <dupuy@cs.columbia.edu> wrote:-
1738 The following code deals with a bug in the SunOS 4.x (and 3.x?) kernel.-
1739 This comment from sys/ttold.h describes Sun's twisted logic - a better-
1740 test would have been (ts_lines > 64k || ts_cols > 64k || ts_cols == 0).-
1741 At any rate, the problem is gone in Solaris 2.x.-
1742-
1743 Unfortunately, the old TIOCSSIZE code does collide with TIOCSWINSZ,-
1744 but they can be disambiguated by checking whether a "struct ttysize"-
1745 structure's "ts_lines" field is greater than 64K or not. If so,-
1746 it's almost certainly a "struct winsize" instead.-
1747-
1748 At any rate, the bug manifests itself when ws_row == 0; the symptom is-
1749 that ws_row is set to ws_col, and ws_col is set to (ws_xpixel<<16)-
1750 + ws_ypixel. Since GNU stty sets rows and columns separately, this bug-
1751 caused "stty rows 0 cols 0" to set rows to cols and cols to 0, while-
1752 "stty cols 0 rows 0" would do the right thing. On a little-endian-
1753 machine like the sun386i, the problem is the same, but for ws_col == 0.-
1754-
1755 The workaround is to do the ioctl once with row and col = 1 to set the-
1756 pixel info, and then do it again using a TIOCSSIZE to set rows/cols. */-
1757-
1758 if (win.ws_row == 0 || win.ws_col == 0)-
1759 {-
1760 struct ttysize ttysz;-
1761-
1762 ttysz.ts_lines = win.ws_row;-
1763 ttysz.ts_cols = win.ws_col;-
1764-
1765 win.ws_row = 1;-
1766 win.ws_col = 1;-
1767-
1768 if (ioctl (STDIN_FILENO, TIOCSWINSZ, (char *) &win))-
1769 die (EXIT_FAILURE, errno, "%s", quotef (device_name));-
1770-
1771 if (ioctl (STDIN_FILENO, TIOCSSIZE, (char *) &ttysz))-
1772 die (EXIT_FAILURE, errno, "%s", quotef (device_name));-
1773 return;-
1774 }-
1775# endif-
1776-
1777 if (ioctl (STDIN_FILENO, TIOCSWINSZ, (char *) &win))
ioctl ( 0 , 0x...(char *) &win)Description
TRUEnever evaluated
FALSEnever evaluated
0
1778 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1779}
never executed: end of block
0
1780-
1781static void-
1782display_window_size (bool fancy, char const *device_name)-
1783{-
1784 struct winsize win;-
1785-
1786 if (get_win_size (STDIN_FILENO, &win))
get_win_size ( 0 , &win)Description
TRUEnever evaluated
FALSEnever evaluated
0
1787 {-
1788 if (errno != EINVAL)
(*__errno_location ()) != 22Description
TRUEnever evaluated
FALSEnever evaluated
0
1789 die (EXIT_FAILURE, errno, "%s", quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), \"%s\", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl_dummy; })) ? ((error ( 1 , (*__errno_locati...ell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , (*__errno_location ()) , "%s", quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ()))));
0
1790 if (!fancy)
!fancyDescription
TRUEnever evaluated
FALSEnever evaluated
0
1791 die (EXIT_FAILURE, 0,
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"%s: no size information for this device\", 5), quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl...) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "%s: no size information for this device" , 5) , quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1792 _("%s: no size information for this device"),
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"%s: no size information for this device\", 5), quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl...) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "%s: no size information for this device" , 5) , quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1793 quotef (device_name));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, 0, dcgettext (((void *)0), \"%s: no size information for this device\", 5), quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), assume (false))" ")"); int _gl...) ? (void) 0 : __builtin_unreachable ()))) : ((error ( 1 , 0, dcgettext (((void *)0), "%s: no size information for this device" , 5) , quotearg_n_style_colon (0, shell_escape_quoting_style, device_name)), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
1794 }
never executed: end of block
0
1795 else-
1796 {-
1797 wrapf (fancy ? "rows %d; columns %d;" : "%d %d\n",-
1798 win.ws_row, win.ws_col);-
1799 if (!fancy)
!fancyDescription
TRUEnever evaluated
FALSEnever evaluated
0
1800 current_col = 0;
never executed: current_col = 0;
0
1801 }
never executed: end of block
0
1802}-
1803#endif-
1804-
1805static int-
1806screen_columns (void)-
1807{-
1808#ifdef TIOCGWINSZ-
1809 struct winsize win;-
1810-
1811 /* With Solaris 2.[123], this ioctl fails and errno is set to-
1812 EINVAL for telnet (but not rlogin) sessions.-
1813 On ISC 3.0, it fails for the console and the serial port-
1814 (but it works for ptys).-
1815 It can also fail on any system when stdout isn't a tty.-
1816 In case of any failure, just use the default. */-
1817 if (get_win_size (STDOUT_FILENO, &win) == 0 && 0 < win.ws_col)
get_win_size ( 1 , &win) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0 < win.ws_colDescription
TRUEnever evaluated
FALSEnever evaluated
0
1818 return win.ws_col;
never executed: return win.ws_col;
0
1819#endif-
1820 {-
1821 /* Use $COLUMNS if it's in [1..INT_MAX]. */-
1822 char *col_string = getenv ("COLUMNS");-
1823 long int n_columns;-
1824 if (!(col_string != NULL
col_string != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1825 && xstrtol (col_string, NULL, 0, &n_columns, "") == LONGINT_OK
xstrtol (col_s... == LONGINT_OKDescription
TRUEnever evaluated
FALSEnever evaluated
0
1826 && 0 < n_columns
0 < n_columnsDescription
TRUEnever evaluated
FALSEnever evaluated
0
1827 && n_columns <= INT_MAX))
n_columns <= 0x7fffffffDescription
TRUEnever evaluated
FALSEnever evaluated
0
1828 n_columns = 80;
never executed: n_columns = 80;
0
1829 return n_columns;
never executed: return n_columns;
0
1830 }-
1831}-
1832-
1833static tcflag_t * _GL_ATTRIBUTE_PURE-
1834mode_type_flag (enum mode_type type, struct termios *mode)-
1835{-
1836 switch (type)-
1837 {-
1838 case control:
never executed: case control:
0
1839 return &mode->c_cflag;
never executed: return &mode->c_cflag;
0
1840-
1841 case input:
never executed: case input:
0
1842 return &mode->c_iflag;
never executed: return &mode->c_iflag;
0
1843-
1844 case output:
never executed: case output:
0
1845 return &mode->c_oflag;
never executed: return &mode->c_oflag;
0
1846-
1847 case local:
never executed: case local:
0
1848 return &mode->c_lflag;
never executed: return &mode->c_lflag;
0
1849-
1850 case combination:
never executed: case combination:
0
1851 return NULL;
never executed: return ((void *)0) ;
0
1852-
1853 default:
never executed: default:
0
1854 abort ();
never executed: abort ();
0
1855 }-
1856}-
1857-
1858static void-
1859display_settings (enum output_type output_type, struct termios *mode,-
1860 char const *device_name)-
1861{-
1862 switch (output_type)-
1863 {-
1864 case changed:
never executed: case changed:
0
1865 display_changed (mode);-
1866 break;
never executed: break;
0
1867-
1868 case all:
never executed: case all:
0
1869 display_all (mode, device_name);-
1870 break;
never executed: break;
0
1871-
1872 case recoverable:
never executed: case recoverable:
0
1873 display_recoverable (mode);-
1874 break;
never executed: break;
0
1875 }-
1876}
never executed: end of block
0
1877-
1878static void-
1879display_changed (struct termios *mode)-
1880{-
1881 int i;-
1882 bool empty_line;-
1883 tcflag_t *bitsp;-
1884 unsigned long mask;-
1885 enum mode_type prev_type = control;-
1886-
1887 display_speed (mode, true);-
1888#ifdef HAVE_C_LINE-
1889 wrapf ("line = %d;", mode->c_line);-
1890#endif-
1891 putchar ('\n');-
1892 current_col = 0;-
1893-
1894 empty_line = true;-
1895 for (i = 0; !STREQ (control_info[i].name, "min"); ++i)
never executed: __result = (((const unsigned char *) (const char *) ( control_info[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "min" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
!( __extension...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1896 {-
1897 if (mode->c_cc[control_info[i].offset] == control_info[i].saneval)
mode->c_cc[con...nfo[i].sanevalDescription
TRUEnever evaluated
FALSEnever evaluated
0
1898 continue;
never executed: continue;
0
1899-
1900#ifdef VFLUSHO-
1901 /* 'flush' is the deprecated equivalent of 'discard'. */-
1902 if (STREQ (control_info[i].name, "flush"))
never executed: __result = (((const unsigned char *) (const char *) ( control_info[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "flush" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1903 continue;
never executed: continue;
0
1904#endif-
1905 /* If swtch is the same as susp, don't print both. */-
1906#if VSWTCH == VSUSP-
1907 if (STREQ (control_info[i].name, "swtch"))-
1908 continue;-
1909#endif-
1910 /* If eof uses the same slot as min, only print whichever applies. */-
1911#if VEOF == VMIN-
1912 if ((mode->c_lflag & ICANON) == 0-
1913 && (STREQ (control_info[i].name, "eof")-
1914 || STREQ (control_info[i].name, "eol")))-
1915 continue;-
1916#endif-
1917-
1918 empty_line = false;-
1919 wrapf ("%s = %s;", control_info[i].name,-
1920 visible (mode->c_cc[control_info[i].offset]));-
1921 }
never executed: end of block
0
1922 if ((mode->c_lflag & ICANON) == 0)
(mode->c_lflag...0000002 ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1923 {-
1924 wrapf ("min = %lu; time = %lu;\n",-
1925 (unsigned long int) mode->c_cc[VMIN],-
1926 (unsigned long int) mode->c_cc[VTIME]);-
1927 }
never executed: end of block
0
1928 else if (!empty_line)
!empty_lineDescription
TRUEnever evaluated
FALSEnever evaluated
0
1929 putchar ('\n');
never executed: putchar_unlocked ('\n');
0
1930 current_col = 0;-
1931-
1932 empty_line = true;-
1933 for (i = 0; mode_info[i].name != NULL; ++i)
mode_info[i].n...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1934 {-
1935 if (mode_info[i].flags & OMIT)
mode_info[i].flags & 8Description
TRUEnever evaluated
FALSEnever evaluated
0
1936 continue;
never executed: continue;
0
1937 if (mode_info[i].type != prev_type)
mode_info[i].type != prev_typeDescription
TRUEnever evaluated
FALSEnever evaluated
0
1938 {-
1939 if (!empty_line)
!empty_lineDescription
TRUEnever evaluated
FALSEnever evaluated
0
1940 {-
1941 putchar ('\n');-
1942 current_col = 0;-
1943 empty_line = true;-
1944 }
never executed: end of block
0
1945 prev_type = mode_info[i].type;-
1946 }
never executed: end of block
0
1947-
1948 bitsp = mode_type_flag (mode_info[i].type, mode);-
1949 mask = mode_info[i].mask ? mode_info[i].mask : mode_info[i].bits;
mode_info[i].maskDescription
TRUEnever evaluated
FALSEnever evaluated
0
1950-
1951 /* bitsp would be NULL only for "combination" modes, yet those-
1952 are filtered out above via the OMIT flag. Tell static analysis-
1953 tools that it's ok to dereference bitsp here. */-
1954 assert (bitsp);-
1955-
1956 if ((*bitsp & mask) == mode_info[i].bits)
(*bitsp & mask...e_info[i].bitsDescription
TRUEnever evaluated
FALSEnever evaluated
0
1957 {-
1958 if (mode_info[i].flags & SANE_UNSET)
mode_info[i].flags & 2Description
TRUEnever evaluated
FALSEnever evaluated
0
1959 {-
1960 wrapf ("%s", mode_info[i].name);-
1961 empty_line = false;-
1962 }
never executed: end of block
0
1963 }
never executed: end of block
0
1964 else if ((mode_info[i].flags & (SANE_SET | REV)) == (SANE_SET | REV))
(mode_info[i]....4)) == (1 | 4)Description
TRUEnever evaluated
FALSEnever evaluated
0
1965 {-
1966 wrapf ("-%s", mode_info[i].name);-
1967 empty_line = false;-
1968 }
never executed: end of block
0
1969 }
never executed: end of block
0
1970 if (!empty_line)
!empty_lineDescription
TRUEnever evaluated
FALSEnever evaluated
0
1971 putchar ('\n');
never executed: putchar_unlocked ('\n');
0
1972 current_col = 0;-
1973}
never executed: end of block
0
1974-
1975static void-
1976display_all (struct termios *mode, char const *device_name)-
1977{-
1978 int i;-
1979 tcflag_t *bitsp;-
1980 unsigned long mask;-
1981 enum mode_type prev_type = control;-
1982-
1983 display_speed (mode, true);-
1984#ifdef TIOCGWINSZ-
1985 display_window_size (true, device_name);-
1986#endif-
1987#ifdef HAVE_C_LINE-
1988 wrapf ("line = %d;", mode->c_line);-
1989#endif-
1990 putchar ('\n');-
1991 current_col = 0;-
1992-
1993 for (i = 0; ! STREQ (control_info[i].name, "min"); ++i)
never executed: __result = (((const unsigned char *) (const char *) ( control_info[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "min" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! ( __extensio...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1994 {-
1995#ifdef VFLUSHO-
1996 /* 'flush' is the deprecated equivalent of 'discard'. */-
1997 if (STREQ (control_info[i].name, "flush"))
never executed: __result = (((const unsigned char *) (const char *) ( control_info[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "flush" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1998 continue;
never executed: continue;
0
1999#endif-
2000 /* If swtch is the same as susp, don't print both. */-
2001#if VSWTCH == VSUSP-
2002 if (STREQ (control_info[i].name, "swtch"))-
2003 continue;-
2004#endif-
2005 /* If eof uses the same slot as min, only print whichever applies. */-
2006#if VEOF == VMIN-
2007 if ((mode->c_lflag & ICANON) == 0-
2008 && (STREQ (control_info[i].name, "eof")-
2009 || STREQ (control_info[i].name, "eol")))-
2010 continue;-
2011#endif-
2012 wrapf ("%s = %s;", control_info[i].name,-
2013 visible (mode->c_cc[control_info[i].offset]));-
2014 }
never executed: end of block
0
2015#if VEOF == VMIN-
2016 if ((mode->c_lflag & ICANON) == 0)-
2017#endif-
2018 wrapf ("min = %lu; time = %lu;",-
2019 (unsigned long int) mode->c_cc[VMIN],-
2020 (unsigned long int) mode->c_cc[VTIME]);-
2021 if (current_col != 0)
current_col != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2022 putchar ('\n');
never executed: putchar_unlocked ('\n');
0
2023 current_col = 0;-
2024-
2025 for (i = 0; mode_info[i].name != NULL; ++i)
mode_info[i].n...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2026 {-
2027 if (mode_info[i].flags & OMIT)
mode_info[i].flags & 8Description
TRUEnever evaluated
FALSEnever evaluated
0
2028 continue;
never executed: continue;
0
2029 if (mode_info[i].type != prev_type)
mode_info[i].type != prev_typeDescription
TRUEnever evaluated
FALSEnever evaluated
0
2030 {-
2031 putchar ('\n');-
2032 current_col = 0;-
2033 prev_type = mode_info[i].type;-
2034 }
never executed: end of block
0
2035-
2036 bitsp = mode_type_flag (mode_info[i].type, mode);-
2037 mask = mode_info[i].mask ? mode_info[i].mask : mode_info[i].bits;
mode_info[i].maskDescription
TRUEnever evaluated
FALSEnever evaluated
0
2038 assert (bitsp); /* See the identical assertion and comment above. */-
2039 if ((*bitsp & mask) == mode_info[i].bits)
(*bitsp & mask...e_info[i].bitsDescription
TRUEnever evaluated
FALSEnever evaluated
0
2040 wrapf ("%s", mode_info[i].name);
never executed: wrapf ("%s", mode_info[i].name);
0
2041 else if (mode_info[i].flags & REV)
mode_info[i].flags & 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2042 wrapf ("-%s", mode_info[i].name);
never executed: wrapf ("-%s", mode_info[i].name);
0
2043 }
never executed: end of block
0
2044 putchar ('\n');-
2045 current_col = 0;-
2046}
never executed: end of block
0
2047-
2048static void-
2049display_speed (struct termios *mode, bool fancy)-
2050{-
2051 if (cfgetispeed (mode) == 0 || cfgetispeed (mode) == cfgetospeed (mode))
cfgetispeed (mode) == 0Description
TRUEnever evaluated
FALSEnever evaluated
cfgetispeed (m...tospeed (mode)Description
TRUEnever evaluated
FALSEnever evaluated
0
2052 wrapf (fancy ? "speed %lu baud;" : "%lu\n",
never executed: wrapf (fancy ? "speed %lu baud;" : "%lu\n", baud_to_value (cfgetospeed (mode)));
0
2053 baud_to_value (cfgetospeed (mode)));
never executed: wrapf (fancy ? "speed %lu baud;" : "%lu\n", baud_to_value (cfgetospeed (mode)));
0
2054 else-
2055 wrapf (fancy ? "ispeed %lu baud; ospeed %lu baud;" : "%lu %lu\n",
never executed: wrapf (fancy ? "ispeed %lu baud; ospeed %lu baud;" : "%lu %lu\n", baud_to_value (cfgetispeed (mode)), baud_to_value (cfgetospeed (mode)));
0
2056 baud_to_value (cfgetispeed (mode)),
never executed: wrapf (fancy ? "ispeed %lu baud; ospeed %lu baud;" : "%lu %lu\n", baud_to_value (cfgetispeed (mode)), baud_to_value (cfgetospeed (mode)));
0
2057 baud_to_value (cfgetospeed (mode)));
never executed: wrapf (fancy ? "ispeed %lu baud; ospeed %lu baud;" : "%lu %lu\n", baud_to_value (cfgetispeed (mode)), baud_to_value (cfgetospeed (mode)));
0
2058 if (!fancy)
!fancyDescription
TRUEnever evaluated
FALSEnever evaluated
0
2059 current_col = 0;
never executed: current_col = 0;
0
2060}
never executed: end of block
0
2061-
2062static void-
2063display_recoverable (struct termios *mode)-
2064{-
2065 printf ("%lx:%lx:%lx:%lx",-
2066 (unsigned long int) mode->c_iflag,-
2067 (unsigned long int) mode->c_oflag,-
2068 (unsigned long int) mode->c_cflag,-
2069 (unsigned long int) mode->c_lflag);-
2070 for (size_t i = 0; i < NCCS; ++i)
i < 32Description
TRUEnever evaluated
FALSEnever evaluated
0
2071 printf (":%lx", (unsigned long int) mode->c_cc[i]);
never executed: printf (":%lx", (unsigned long int) mode->c_cc[i]);
0
2072 putchar ('\n');-
2073}
never executed: end of block
0
2074-
2075/* NOTE: identical to below, modulo use of tcflag_t */-
2076static int-
2077strtoul_tcflag_t (char const *s, int base, char **p, tcflag_t *result,-
2078 char delim)-
2079{-
2080 unsigned long ul;-
2081 errno = 0;-
2082 ul = strtoul (s, p, base);-
2083 if (errno || **p != delim || *p == s || (tcflag_t) ul != ul)
(*__errno_location ())Description
TRUEnever evaluated
FALSEnever evaluated
**p != delimDescription
TRUEnever evaluated
FALSEnever evaluated
*p == sDescription
TRUEnever evaluated
FALSEnever evaluated
(tcflag_t) ul != ulDescription
TRUEnever evaluated
FALSEnever evaluated
0
2084 return -1;
never executed: return -1;
0
2085 *result = ul;-
2086 return 0;
never executed: return 0;
0
2087}-
2088-
2089/* NOTE: identical to above, modulo use of cc_t */-
2090static int-
2091strtoul_cc_t (char const *s, int base, char **p, cc_t *result, char delim)-
2092{-
2093 unsigned long ul;-
2094 errno = 0;-
2095 ul = strtoul (s, p, base);-
2096 if (errno || **p != delim || *p == s || (cc_t) ul != ul)
(*__errno_location ())Description
TRUEnever evaluated
FALSEnever evaluated
**p != delimDescription
TRUEnever evaluated
FALSEnever evaluated
*p == sDescription
TRUEnever evaluated
FALSEnever evaluated
(cc_t) ul != ulDescription
TRUEnever evaluated
FALSEnever evaluated
0
2097 return -1;
never executed: return -1;
0
2098 *result = ul;-
2099 return 0;
never executed: return 0;
0
2100}-
2101-
2102/* Parse the output of display_recoverable.-
2103 Return false if any part of it is invalid. */-
2104static bool-
2105recover_mode (char const *arg, struct termios *mode)-
2106{-
2107 tcflag_t flag[4];-
2108 char const *s = arg;-
2109 size_t i;-
2110 for (i = 0; i < 4; i++)
i < 4Description
TRUEnever evaluated
FALSEnever evaluated
0
2111 {-
2112 char *p;-
2113 if (strtoul_tcflag_t (s, 16, &p, flag + i, ':') != 0)
strtoul_tcflag...+ i, ':') != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2114 return false;
never executed: return 0 ;
0
2115 s = p + 1;-
2116 }
never executed: end of block
0
2117 mode->c_iflag = flag[0];-
2118 mode->c_oflag = flag[1];-
2119 mode->c_cflag = flag[2];-
2120 mode->c_lflag = flag[3];-
2121-
2122 for (i = 0; i < NCCS; ++i)
i < 32Description
TRUEnever evaluated
FALSEnever evaluated
0
2123 {-
2124 char *p;-
2125 char delim = i < NCCS - 1 ? ':' : '\0';
i < 32 - 1Description
TRUEnever evaluated
FALSEnever evaluated
0
2126 if (strtoul_cc_t (s, 16, &p, mode->c_cc + i, delim) != 0)
strtoul_cc_t (...i, delim) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2127 return false;
never executed: return 0 ;
0
2128 s = p + 1;-
2129 }
never executed: end of block
0
2130-
2131 return true;
never executed: return 1 ;
0
2132}-
2133-
2134struct speed_map-
2135{-
2136 const char *string; /* ASCII representation. */-
2137 speed_t speed; /* Internal form. */-
2138 unsigned long int value; /* Numeric value. */-
2139};-
2140-
2141static struct speed_map const speeds[] =-
2142{-
2143 {"0", B0, 0},-
2144 {"50", B50, 50},-
2145 {"75", B75, 75},-
2146 {"110", B110, 110},-
2147 {"134", B134, 134},-
2148 {"134.5", B134, 134},-
2149 {"150", B150, 150},-
2150 {"200", B200, 200},-
2151 {"300", B300, 300},-
2152 {"600", B600, 600},-
2153 {"1200", B1200, 1200},-
2154 {"1800", B1800, 1800},-
2155 {"2400", B2400, 2400},-
2156 {"4800", B4800, 4800},-
2157 {"9600", B9600, 9600},-
2158 {"19200", B19200, 19200},-
2159 {"38400", B38400, 38400},-
2160 {"exta", B19200, 19200},-
2161 {"extb", B38400, 38400},-
2162#ifdef B57600-
2163 {"57600", B57600, 57600},-
2164#endif-
2165#ifdef B115200-
2166 {"115200", B115200, 115200},-
2167#endif-
2168#ifdef B230400-
2169 {"230400", B230400, 230400},-
2170#endif-
2171#ifdef B460800-
2172 {"460800", B460800, 460800},-
2173#endif-
2174#ifdef B500000-
2175 {"500000", B500000, 500000},-
2176#endif-
2177#ifdef B576000-
2178 {"576000", B576000, 576000},-
2179#endif-
2180#ifdef B921600-
2181 {"921600", B921600, 921600},-
2182#endif-
2183#ifdef B1000000-
2184 {"1000000", B1000000, 1000000},-
2185#endif-
2186#ifdef B1152000-
2187 {"1152000", B1152000, 1152000},-
2188#endif-
2189#ifdef B1500000-
2190 {"1500000", B1500000, 1500000},-
2191#endif-
2192#ifdef B2000000-
2193 {"2000000", B2000000, 2000000},-
2194#endif-
2195#ifdef B2500000-
2196 {"2500000", B2500000, 2500000},-
2197#endif-
2198#ifdef B3000000-
2199 {"3000000", B3000000, 3000000},-
2200#endif-
2201#ifdef B3500000-
2202 {"3500000", B3500000, 3500000},-
2203#endif-
2204#ifdef B4000000-
2205 {"4000000", B4000000, 4000000},-
2206#endif-
2207 {NULL, 0, 0}-
2208};-
2209-
2210static speed_t _GL_ATTRIBUTE_PURE-
2211string_to_baud (const char *arg)-
2212{-
2213 for (int i = 0; speeds[i].string != NULL; ++i)
speeds[i].stri...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2214 if (STREQ (arg, speeds[i].string))
never executed: __result = (((const unsigned char *) (const char *) ( arg ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( speeds[i].string ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( __extension_...)))); }) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2215 return speeds[i].speed;
never executed: return speeds[i].speed;
0
2216 return (speed_t) -1;
never executed: return (speed_t) -1;
0
2217}-
2218-
2219static unsigned long int _GL_ATTRIBUTE_PURE-
2220baud_to_value (speed_t speed)-
2221{-
2222 for (int i = 0; speeds[i].string != NULL; ++i)
speeds[i].stri...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2223 if (speed == speeds[i].speed)
speed == speeds[i].speedDescription
TRUEnever evaluated
FALSEnever evaluated
0
2224 return speeds[i].value;
never executed: return speeds[i].value;
0
2225 return 0;
never executed: return 0;
0
2226}-
2227-
2228static void-
2229sane_mode (struct termios *mode)-
2230{-
2231 int i;-
2232 tcflag_t *bitsp;-
2233-
2234 for (i = 0; control_info[i].name; ++i)
control_info[i].nameDescription
TRUEnever evaluated
FALSEnever evaluated
0
2235 {-
2236#if VMIN == VEOF-
2237 if (STREQ (control_info[i].name, "min"))-
2238 break;-
2239#endif-
2240 mode->c_cc[control_info[i].offset] = control_info[i].saneval;-
2241 }
never executed: end of block
0
2242-
2243 for (i = 0; mode_info[i].name != NULL; ++i)
mode_info[i].n...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2244 {-
2245 if (mode_info[i].flags & NO_SETATTR)
mode_info[i].flags & 16Description
TRUEnever evaluated
FALSEnever evaluated
0
2246 continue;
never executed: continue;
0
2247-
2248 if (mode_info[i].flags & SANE_SET)
mode_info[i].flags & 1Description
TRUEnever evaluated
FALSEnever evaluated
0
2249 {-
2250 bitsp = mode_type_flag (mode_info[i].type, mode);-
2251 assert (bitsp); /* combination modes will not have SANE_SET. */-
2252 *bitsp = (*bitsp & ~mode_info[i].mask) | mode_info[i].bits;-
2253 }
never executed: end of block
0
2254 else if (mode_info[i].flags & SANE_UNSET)
mode_info[i].flags & 2Description
TRUEnever evaluated
FALSEnever evaluated
0
2255 {-
2256 bitsp = mode_type_flag (mode_info[i].type, mode);-
2257 assert (bitsp); /* combination modes will not have SANE_UNSET. */-
2258 *bitsp = *bitsp & ~mode_info[i].mask & ~mode_info[i].bits;-
2259 }
never executed: end of block
0
2260 }
never executed: end of block
0
2261}
never executed: end of block
0
2262-
2263/* Return a string that is the printable representation of character CH. */-
2264/* Adapted from 'cat' by Torbjorn Granlund. */-
2265-
2266static const char *-
2267visible (cc_t ch)-
2268{-
2269 static char buf[10];-
2270 char *bpout = buf;-
2271-
2272 if (ch == _POSIX_VDISABLE)
ch == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
2273 return "<undef>";
never executed: return "<undef>";
0
2274-
2275 if (ch >= 32)
ch >= 32Description
TRUEnever evaluated
FALSEnever evaluated
0
2276 {-
2277 if (ch < 127)
ch < 127Description
TRUEnever evaluated
FALSEnever evaluated
0
2278 *bpout++ = ch;
never executed: *bpout++ = ch;
0
2279 else if (ch == 127)
ch == 127Description
TRUEnever evaluated
FALSEnever evaluated
0
2280 {-
2281 *bpout++ = '^';-
2282 *bpout++ = '?';-
2283 }
never executed: end of block
0
2284 else-
2285 {-
2286 *bpout++ = 'M';-
2287 *bpout++ = '-';-
2288 if (ch >= 128 + 32)
ch >= 128 + 32Description
TRUEnever evaluated
FALSEnever evaluated
0
2289 {-
2290 if (ch < 128 + 127)
ch < 128 + 127Description
TRUEnever evaluated
FALSEnever evaluated
0
2291 *bpout++ = ch - 128;
never executed: *bpout++ = ch - 128;
0
2292 else-
2293 {-
2294 *bpout++ = '^';-
2295 *bpout++ = '?';-
2296 }
never executed: end of block
0
2297 }-
2298 else-
2299 {-
2300 *bpout++ = '^';-
2301 *bpout++ = ch - 128 + 64;-
2302 }
never executed: end of block
0
2303 }-
2304 }-
2305 else-
2306 {-
2307 *bpout++ = '^';-
2308 *bpout++ = ch + 64;-
2309 }
never executed: end of block
0
2310 *bpout = '\0';-
2311 return (const char *) buf;
never executed: return (const char *) buf;
0
2312}-
2313-
2314/* Parse string S as an integer, using decimal radix by default,-
2315 but allowing octal and hex numbers as in C. Reject values-
2316 larger than MAXVAL. */-
2317-
2318static unsigned long int-
2319integer_arg (const char *s, unsigned long int maxval)-
2320{-
2321 return xnumtoumax (s, 0, 0, maxval, "bB", _("invalid integer argument"), 0);
never executed: return xnumtoumax (s, 0, 0, maxval, "bB", dcgettext (((void *)0), "invalid integer argument" , 5) , 0);
0
2322}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2