1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
$NetBSD: patch-ad,v 1.1 2006/10/30 03:33:59 jlam Exp $
--- cu.c.orig 2003-05-29 02:08:45.000000000 -0400
+++ cu.c
@@ -258,6 +258,8 @@ main (argc, argv)
enum txonxoffsetting txonxoff = XONXOFF_ON;
/* -I: configuration file name. */
const char *zconfig = NULL;
+ /* -F/-f: Hard/Soft flow control. */
+ boolean hflow = TRUE;
int iopt;
pointer puuconf;
int iuuconf;
@@ -295,7 +297,7 @@ main (argc, argv)
}
}
- while ((iopt = getopt_long (argc, argv, "a:c:deE:hnI:l:op:s:tvx:z:",
+ while ((iopt = getopt_long (argc, argv, "a:c:deE:fFhnI:l:op:qs:tvx:z:",
asCulongopts, (int *) NULL)) != EOF)
{
switch (iopt)
@@ -322,6 +324,16 @@ main (argc, argv)
zCuvar_escape = optarg;
break;
+ case 'f':
+ /* No h/w flow control. */
+ hflow = FALSE;
+ break;
+
+ case 'F':
+ /* Use h/w flow control. */
+ hflow = TRUE;
+ break;
+
case 'h':
/* Local echo. */
fCulocalecho = TRUE;
@@ -348,6 +360,11 @@ main (argc, argv)
zport = optarg;
break;
+ case 'q':
+ /* Quiet file transfers */
+ fCuvar_verbose = FALSE;
+ break;
+
case 's':
/* Speed. */
ibaud = strtol (optarg, (char **) NULL, 10);
@@ -599,6 +616,8 @@ main (argc, argv)
sport.uuconf_palloc = NULL;
sport.uuconf_u.uuconf_sdirect.uuconf_zdevice = NULL;
sport.uuconf_u.uuconf_sdirect.uuconf_ibaud = ibaud;
+ sport.uuconf_u.uuconf_sdirect.uuconf_fcarrier = FALSE;
+ sport.uuconf_u.uuconf_sdirect.uuconf_fhardflow = hflow;
if (! fconn_init (&sport, &sconn, UUCONF_PORTTYPE_UNKNOWN))
ucuabort ();
@@ -842,11 +861,14 @@ ucuhelp ()
printf (" -e: Set even parity\n");
printf (" -o: Set odd parity\n");
printf (" --parity={odd,even}: Set parity\n");
+ printf (" -f: Use hardware flow control\n");
+ printf (" -F: Turn off hardware flow control (default)\n");
printf (" -E,--escape char: Set escape character\n");
printf (" -h,--halfduplex: Echo locally\n");
printf (" --nostop: Turn off XON/XOFF handling\n");
printf (" -t,--mapcr: Map carriage return to carriage return/linefeed\n");
printf (" -n,--prompt: Prompt for phone number\n");
+ printf (" -q: Be quiet during file transfers\n");
printf (" -d: Set maximum debugging level\n");
printf (" -x,--debug debug: Set debugging type\n");
#if HAVE_TAYLOR_CONFIG
@@ -1013,7 +1035,7 @@ fcudo_cmd (puuconf, qconn, bcmd)
switch (bcmd)
{
default:
- if (! isprint (*zCuvar_escape))
+ if (! isprint (BUCHAR (*zCuvar_escape)))
sprintf (abescape, "\\%03o", BUCHAR (*zCuvar_escape));
else
{
@@ -1111,7 +1133,7 @@ fcudo_cmd (puuconf, qconn, bcmd)
return TRUE;
case '?':
- if (! isprint (*zCuvar_escape))
+ if (! isprint (BUCHAR (*zCuvar_escape)))
sprintf (abescape, "\\%03o", BUCHAR (*zCuvar_escape));
else
{
@@ -1248,7 +1270,7 @@ icuunrecogvar (puuconf, argc, argv, pvar
{
char abescape[5];
- if (! isprint (*zCuvar_escape))
+ if (! isprint (BUCHAR (*zCuvar_escape)))
sprintf (abescape, "\\%03o", BUCHAR (*zCuvar_escape));
else
{
@@ -1302,7 +1324,7 @@ uculist_vars ()
{
int cchar;
- if (! isprint (*z))
+ if (! isprint (BUCHAR (*z)))
{
sprintf (abchar, "\\%03o", BUCHAR (*z));
cchar = 4;
@@ -1415,7 +1437,7 @@ icuunrecogfn (puuconf, argc, argv, pvar,
{
char abescape[5];
- if (! isprint (*zCuvar_escape))
+ if (! isprint (BUCHAR (*zCuvar_escape)))
sprintf (abescape, "\\%03o", BUCHAR (*zCuvar_escape));
else
{
@@ -2049,7 +2071,7 @@ fcusend_buf (qconn, zbufarg, cbufarg)
fnl = FALSE;
for (i = 0, zget = zbuf; i < csend; i++, zget++)
{
- if (isprint (*zget)
+ if (isprint (BUCHAR (*zget))
|| *zget == '\t')
*zput++ = *zget;
else if (*zget == '\n')
@@ -2082,8 +2104,10 @@ fcusend_buf (qconn, zbufarg, cbufarg)
mode. Echo checking of a newline is different from checking
of normal characters; when we send a newline we look for
*zCuvar_echonl. */
+ /* Don't check for newlines unless "echocheck" is on or "binary mode"
+ is off. From NetBSD PR bin/6834 by Frederick Bruckman. */
if ((fCuvar_echocheck && ! fCuvar_binary)
- || (fnl && *zCuvar_echonl != '\0'))
+ && (fnl && *zCuvar_echonl != '\0'))
{
long iend;
@@ -2101,7 +2125,7 @@ fcusend_buf (qconn, zbufarg, cbufarg)
}
else
{
- if (! fCuvar_echocheck || ! isprint (*zget))
+ if (! fCuvar_echocheck || ! isprint (BUCHAR (*zget)))
continue;
bwant = *zget;
}
|