Deleted Added
full compact
term.c (1591) term.c (28370)
1/*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef lint
1/*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef lint
35#if 0
35static char sccsid[] = "@(#)term.c 8.1 (Berkeley) 6/9/93";
36static char sccsid[] = "@(#)term.c 8.1 (Berkeley) 6/9/93";
37#endif
38static const char rcsid[] =
39 "$Id$";
36#endif /* not lint */
37
38#include <sys/types.h>
40#endif /* not lint */
41
42#include <sys/types.h>
43#include <err.h>
39#include <errno.h>
44#include <errno.h>
40#include <ttyent.h>
41#include <unistd.h>
42#include <stdio.h>
43#include <stdlib.h>
44#include <string.h>
45#include <stdio.h>
46#include <stdlib.h>
47#include <string.h>
48#include <unistd.h>
49#include <ttyent.h>
45#include "extern.h"
46
47char tbuf[1024]; /* Termcap entry. */
48
49char *askuser __P((char *));
50char *ttys __P((char *));
51
52/*

--- 9 unchanged lines hidden (view full) ---

62 char *p, *ttype, *ttypath;
63
64 if (userarg) {
65 ttype = userarg;
66 goto found;
67 }
68
69 /* Try the environment. */
50#include "extern.h"
51
52char tbuf[1024]; /* Termcap entry. */
53
54char *askuser __P((char *));
55char *ttys __P((char *));
56
57/*

--- 9 unchanged lines hidden (view full) ---

67 char *p, *ttype, *ttypath;
68
69 if (userarg) {
70 ttype = userarg;
71 goto found;
72 }
73
74 /* Try the environment. */
70 if (ttype = getenv("TERM"))
75 if ((ttype = getenv("TERM")))
71 goto map;
72
73 /* Try ttyname(3); check for dialup or other mapping. */
76 goto map;
77
78 /* Try ttyname(3); check for dialup or other mapping. */
74 if (ttypath = ttyname(STDERR_FILENO)) {
75 if (p = rindex(ttypath, '/'))
79 if ((ttypath = ttyname(STDERR_FILENO))) {
80 if ((p = rindex(ttypath, '/')))
76 ++p;
77 else
78 p = ttypath;
79 if ((t = getttynam(p))) {
80 ttype = t->ty_type;
81 goto map;
82 }
83 }

--- 18 unchanged lines hidden (view full) ---

102 if (ttype[0] == '?')
103 if (ttype[1] != '\0')
104 ttype = askuser(ttype + 1);
105 else
106 ttype = askuser(NULL);
107
108 /* Find the termcap entry. If it doesn't exist, ask the user. */
109 while ((rval = tgetent(tbuf, ttype)) == 0) {
81 ++p;
82 else
83 p = ttypath;
84 if ((t = getttynam(p))) {
85 ttype = t->ty_type;
86 goto map;
87 }
88 }

--- 18 unchanged lines hidden (view full) ---

107 if (ttype[0] == '?')
108 if (ttype[1] != '\0')
109 ttype = askuser(ttype + 1);
110 else
111 ttype = askuser(NULL);
112
113 /* Find the termcap entry. If it doesn't exist, ask the user. */
114 while ((rval = tgetent(tbuf, ttype)) == 0) {
110 (void)fprintf(stderr,
111 "tset: terminal type %s is unknown\n", ttype);
115 warnx("terminal type %s is unknown", ttype);
112 ttype = askuser(NULL);
113 }
114 if (rval == -1)
116 ttype = askuser(NULL);
117 }
118 if (rval == -1)
115 err("termcap: %s", strerror(errno ? errno : ENOENT));
119 errx(1, "termcap: %s", strerror(errno ? errno : ENOENT));
116 *tcapbufp = tbuf;
117 return (ttype);
118}
119
120/* Prompt the user for a terminal type. */
121char *
122askuser(dflt)
123 char *dflt;

--- 16 unchanged lines hidden (view full) ---

140 if (fgets(answer, sizeof(answer), stdin) == NULL) {
141 if (dflt == NULL) {
142 (void)fprintf(stderr, "\n");
143 exit(1);
144 }
145 return (dflt);
146 }
147
120 *tcapbufp = tbuf;
121 return (ttype);
122}
123
124/* Prompt the user for a terminal type. */
125char *
126askuser(dflt)
127 char *dflt;

--- 16 unchanged lines hidden (view full) ---

144 if (fgets(answer, sizeof(answer), stdin) == NULL) {
145 if (dflt == NULL) {
146 (void)fprintf(stderr, "\n");
147 exit(1);
148 }
149 return (dflt);
150 }
151
148 if (p = index(answer, '\n'))
152 if ((p = index(answer, '\n')))
149 *p = '\0';
150 if (answer[0])
151 return (answer);
152 if (dflt != NULL)
153 return (dflt);
154 }
155}
153 *p = '\0';
154 if (answer[0])
155 return (answer);
156 if (dflt != NULL)
157 return (dflt);
158 }
159}