[10779] | 1 | C-KERMIT 6.0 PATCHES |
---|
| 2 | |
---|
| 3 | Most recent update: Wed Dec 18 11:44:34 1996 |
---|
| 4 | |
---|
| 5 | This file contains source-level patches to C-Kermit 6.0.192. |
---|
| 6 | |
---|
| 7 | You can apply these patches if you have source code and the necessary C |
---|
| 8 | compiler and libraries to build a new executable. There is no need to apply |
---|
| 9 | any patch if it does not apply to your configuration, or if the symptom does |
---|
| 10 | not affect you or your users. |
---|
| 11 | |
---|
| 12 | Each patch is self-contained and independent from the others. Line numbers |
---|
| 13 | correspond to the source-code files of the 6.0.192 release. |
---|
| 14 | |
---|
| 15 | The patches included in this file are believed to be safe, but come with no |
---|
| 16 | guarantees. They appear in chronological order as email messages separated by |
---|
| 17 | lines of underscores. |
---|
| 18 | |
---|
| 19 | CONTENTS: |
---|
| 20 | |
---|
| 21 | Number Domain Description |
---|
| 22 | 0001 UNIX C-Kermit mishandles timestamps on very old files |
---|
| 23 | 0002 Solaris 2.5++ Compilation error on Solaris 2.5 with Pro C |
---|
| 24 | 0003 VMS CKERMIT.INI Fix for VMS |
---|
| 25 | 0004 VMS/VAX/UCX 2.0 C-Kermit 6.0 can't TELNET on VAX/VMS with UCX 2.0 |
---|
| 26 | 0005 All C-Kermit Might Send Packets Outside Window |
---|
| 27 | 0006 All MOVE from SEND-LIST does not delete original files |
---|
| 28 | 0007 Solaris 2.5++ Higher serial speeds on Solaris 2.5 |
---|
| 29 | 0008 All C-Kermit application file name can't contain spaces |
---|
| 30 | |
---|
| 31 | Legend: |
---|
| 32 | ++ means "and above" |
---|
| 33 | ____________________ |
---|
| 34 | X-Patch-Number: 0001 |
---|
| 35 | Date: Sun, 1 Dec 1996 22:16:56 -0800 |
---|
| 36 | From: Paul Eggert <eggert@twinsun.com> |
---|
| 37 | To: kermit-support@columbia.edu |
---|
| 38 | Subject: C-Kermit mishandles timestamps on very old files |
---|
| 39 | |
---|
| 40 | C-Kermit 6.0.192 rejects files whose timestamps are before 1970-01-01 |
---|
| 41 | local time. But every Unix can represent files with timestamps before |
---|
| 42 | that. It's common, for example, in the US/Pacific time zone to have a |
---|
| 43 | file with timestamp 1969-12-31 16:00:00 local time, since this equals |
---|
| 44 | 1970-01-01 00:00:00 UTC. And many Unixes can represent times before |
---|
| 45 | the epoch, e.g. on Solaris 2.5.1: |
---|
| 46 | |
---|
| 47 | $ uname -a |
---|
| 48 | SunOS shade 5.5.1 Generic_103640-03 sun4u sparc SUNW,Ultra-1 |
---|
| 49 | $ echo $TZ |
---|
| 50 | UTC0 |
---|
| 51 | $ ls -l test |
---|
| 52 | -rw-rw-r-- 1 eggert eggert 0 Dec 13 1901 test |
---|
| 53 | |
---|
| 54 | It is certainly not a requirement of the ANSI C Library, or of Posix, |
---|
| 55 | that timestamps before 1970 cannot be represented. Here is a patch: |
---|
| 56 | |
---|
| 57 | RCS file: RCS/ckufio.c,v |
---|
| 58 | retrieving revision 6.0.192.0 |
---|
| 59 | retrieving revision 6.0.192.1 |
---|
| 60 | diff -c -r6.0.192.0 -r6.0.192.1 |
---|
| 61 | *** ckufio.c 1996/11/23 19:27:13 6.0.192.0 |
---|
| 62 | --- ckufio.c 1996/12/02 06:07:54 6.0.192.1 |
---|
| 63 | *************** |
---|
| 64 | *** 2659,2666 **** |
---|
| 65 | yy = time_stamp->tm_year; /* Year - 1900 */ |
---|
| 66 | yy += 1900; |
---|
| 67 | debug(F101,"zdatstr year","",yy); |
---|
| 68 | - if (yy < 1970) /* By definition of C library */ |
---|
| 69 | - return(""); |
---|
| 70 | |
---|
| 71 | if (time_stamp->tm_mon < 0 || time_stamp->tm_mon > 11) |
---|
| 72 | return(""); |
---|
| 73 | --- 2659,2664 ---- |
---|
| 74 | [It is not known if this patch is safe on all UNIX platforms.] |
---|
| 75 | ____________________ |
---|
| 76 | X-Patch-Number: 0002 |
---|
| 77 | Date: Mon, 02 Dec 1996 13:47:13 -0500 |
---|
| 78 | To: kermit-support@columbia.edu |
---|
| 79 | Subject: Compilation error on Solaris 2.5 with Pro C |
---|
| 80 | From: "David J. Fiander" <davidf@worf.mks.com> |
---|
| 81 | |
---|
| 82 | I defined CK_ENVIRONMENT and found that the prototype for tn_snenv() in |
---|
| 83 | ckcnet.h conflicted with the function definition in ckcnet.c. the former |
---|
| 84 | declared the first parameter to be a CHAR * (i.e. an unsigned char *), |
---|
| 85 | while the latter declared to be a char * (i.e. signed char *). The |
---|
| 86 | Pro C compiler treats this as an error. I changed the function definition |
---|
| 87 | in ckcnet.c to declare the parameter as a CHAR * and the problem was |
---|
| 88 | resolved. |
---|
| 89 | |
---|
| 90 | - David |
---|
| 91 | |
---|
| 92 | [Note: This problem does not occur with standard builds. |
---|
| 93 | Resolution: CK_ENVIRONMENT, which controls the use of TELNET |
---|
| 94 | NEW-ENVIRONMENT protocol, is not supported in the UNIX version of |
---|
| 95 | C-Kermit 6.0.192. The type mismatch is a mistake, however.] |
---|
| 96 | ____________________ |
---|
| 97 | X-Patch-Number: 0003 |
---|
| 98 | Date: Tue, 3 Dec 96 10:56:50 EST |
---|
| 99 | From: Mike Freeman <freeman@WATSUN.CC.COLUMBIA.EDU> |
---|
| 100 | Subject: CKERMIT.INI Fix for VMS |
---|
| 101 | |
---|
| 102 | A minor fix to CKERMIT.INI from the 6-Sep release is shown below. |
---|
| 103 | Needed to get C-Kermit 6(192) to run on my Vax/VMS system with VmS |
---|
| 104 | V5.5-2 and VAX C V3.1. |
---|
| 105 | |
---|
| 106 | *** $ker:ckermit.ini;-1 |
---|
| 107 | --- $ker:ckermit.ini; |
---|
| 108 | ************** |
---|
| 109 | *** 680,686 |
---|
| 110 | |
---|
| 111 | ; In VMS and OpenVMS, allow for system-wide site customizations |
---|
| 112 | |
---|
| 113 | ! if equal "\v(system)" "VMS" { |
---|
| 114 | xif exist CKERMIT_INI:CKERMIT.SYS { |
---|
| 115 | echo Executing CKERMIT_INI:CKERMIT.SYS |
---|
| 116 | take CKERMIT_INI:CKERMIT.SYS |
---|
| 117 | --- 680,686 ----- |
---|
| 118 | |
---|
| 119 | ; In VMS and OpenVMS, allow for system-wide site customizations |
---|
| 120 | |
---|
| 121 | ! xif equal "\v(system)" "VMS" { |
---|
| 122 | xif exist CKERMIT_INI:CKERMIT.SYS { |
---|
| 123 | echo Executing CKERMIT_INI:CKERMIT.SYS |
---|
| 124 | take CKERMIT_INI:CKERMIT.SYS |
---|
| 125 | |
---|
| 126 | MIke Freeman | Internet: freeman@watsun.cc.columbia.edu |
---|
| 127 | Amateur Radio Calsign: K7UIJ | */ PGP Public Key Available */ |
---|
| 128 | ____________________ |
---|
| 129 | X-Patch-Number: 0004 |
---|
| 130 | Date: Thu, 5 Dec 1996 15:20:00 EST |
---|
| 131 | From: Frank da Cruz <fdc@columbia.edu> |
---|
| 132 | Subject: C-Kermit 6.0 can't TELNET on VAX/VMS with UCX 2.0 |
---|
| 133 | |
---|
| 134 | PROBLEM: |
---|
| 135 | |
---|
| 136 | On VAX/VMS systems with early versions of DEC TCP/IP (UCX), "set host" and |
---|
| 137 | "telnet" commands might fail with "Connection refused", even though the system |
---|
| 138 | (UCX) TELNET program to the same host works correctly. |
---|
| 139 | |
---|
| 140 | DIAGNOSIS: |
---|
| 141 | |
---|
| 142 | If you don't specify a port, Kermit substitutes the service name "telnet" and |
---|
| 143 | then asks UCX to look it up; similary, if you specify a port by name, rather |
---|
| 144 | than number, Kermit asks UCX to look it up. |
---|
| 145 | |
---|
| 146 | On VAX/VMS with DEC TCP/IP UCX 2.0, 2.0A, 2.0B, or 2.0C, the getservbyname() |
---|
| 147 | function fails to return the port number in network byte order as it should, |
---|
| 148 | and instead returns the number with its bytes swapped (e.g. 5888 instead of |
---|
| 149 | 23). Then Kermit tries to connect to port 5888 on the host; most hosts will |
---|
| 150 | refuse the connection; if they don't, you probably didn't reach a Telnet port |
---|
| 151 | anyway. |
---|
| 152 | |
---|
| 153 | This bug was fixed in UCX 2.0D and thereafter. However, there is no way for |
---|
| 154 | Kermit to know which version of UCX is being used. |
---|
| 155 | |
---|
| 156 | WORKAROUND: |
---|
| 157 | |
---|
| 158 | Specify the port number (not name) in your SET HOST or TELNET command, e.g.: |
---|
| 159 | |
---|
| 160 | set host xyzcorp.com 23 |
---|
| 161 | |
---|
| 162 | CURE: |
---|
| 163 | |
---|
| 164 | A new command: |
---|
| 165 | |
---|
| 166 | SET TCP UCX-PORT-BUG { ON, OFF } |
---|
| 167 | |
---|
| 168 | It is OFF by default, so UCX versions of VMS C-Kermit will work with all |
---|
| 169 | latter-day versions of UCX with no special effort. But if you have an old |
---|
| 170 | UCX system, and you tell C-Kermit to "set host" or "telnet" and it says |
---|
| 171 | "Connection refused", tell it to SET TCP UCX-PORT-BUG ON and try again. If |
---|
| 172 | this works, then put this command into your (or the system-wide) CKERMIT.INI |
---|
| 173 | file. The following patch adds this command to VMS versions of C-Kermit that |
---|
| 174 | were built for UCX support. It has already been applied to the CKVV55-UCX20 |
---|
| 175 | binary in the Kermit archive. |
---|
| 176 | |
---|
| 177 | PATCH: |
---|
| 178 | |
---|
| 179 | *** /w/pub/ftp/kermit/f/ckcnet.c Wed Nov 27 19:54:46 1996 |
---|
| 180 | --- ./ckcnet.c Wed Dec 4 17:14:41 1996 |
---|
| 181 | *************** |
---|
| 182 | *** 1,4 **** |
---|
| 183 | ! char *cknetv = "Network support, 6.0.078, 6 Sep 1996"; |
---|
| 184 | |
---|
| 185 | /* C K C N E T -- Network support */ |
---|
| 186 | |
---|
| 187 | --- 1,4 ---- |
---|
| 188 | ! char *cknetv = "Network support, 6.0.079, 4 Dec 1996"; |
---|
| 189 | |
---|
| 190 | /* C K C N E T -- Network support */ |
---|
| 191 | |
---|
| 192 | *************** |
---|
| 193 | *** 960,965 **** |
---|
| 194 | --- 960,967 ---- |
---|
| 195 | extern VOID C$$SOCK_TRANSLATE(); |
---|
| 196 | #endif /* CK_ANSIC */ |
---|
| 197 | |
---|
| 198 | + int ucx_port_bug = 0; /* Explained below */ |
---|
| 199 | + |
---|
| 200 | struct servent * |
---|
| 201 | my_getservbyname (service, proto) char *service, *proto; { |
---|
| 202 | static struct servent sent; |
---|
| 203 | *************** |
---|
| 204 | *** 1007,1035 **** |
---|
| 205 | C$$SOCK_TRANSLATE(&s.sb.st[0]); |
---|
| 206 | return NULL; |
---|
| 207 | } |
---|
| 208 | - /* sent.s_port is returned by UCX in network byte order. */ |
---|
| 209 | - /* Calling htons here swaps the bytes, which ruins everything. */ |
---|
| 210 | - |
---|
| 211 | - /* Oh yeah? WHICH VERSION of UCX??? Let's try this... */ |
---|
| 212 | - |
---|
| 213 | - #ifndef __alpha /* Maybe it should be __DECC, or some version thereof... */ |
---|
| 214 | /* |
---|
| 215 | ! Hunter says: "In fact, the "#ifndef __alpha" isn't even needed, since |
---|
| 216 | ! my_getservbyname() isn't included if "__DECC" is defined, and that's |
---|
| 217 | ! always defined on Alpha." But if it doesn't hurt either, better not risk |
---|
| 218 | ! taking it out. |
---|
| 219 | */ |
---|
| 220 | ! #ifndef TCPWARE |
---|
| 221 | ! #define DO_HTONS |
---|
| 222 | ! #endif /* TCPWARE */ |
---|
| 223 | ! #endif /* __alpha */ |
---|
| 224 | ! |
---|
| 225 | ! #ifdef DO_HTONS |
---|
| 226 | sent.s_port = htons(sent.s_port); |
---|
| 227 | ! debug(F111,"UCX getservbyname","port",ntohs(sent.s_port)); |
---|
| 228 | ! #else |
---|
| 229 | ! debug(F111,"UCX getservbyname","port",sent.s_port); |
---|
| 230 | ! #endif /* DO_HTONS */ |
---|
| 231 | return &sent; |
---|
| 232 | } |
---|
| 233 | #endif /* __DECC */ |
---|
| 234 | --- 1009,1028 ---- |
---|
| 235 | C$$SOCK_TRANSLATE(&s.sb.st[0]); |
---|
| 236 | return NULL; |
---|
| 237 | } |
---|
| 238 | /* |
---|
| 239 | ! sent.s_port is supposed to be returned by UCX in network byte order. |
---|
| 240 | ! However, UCX 2.0 through 2.0C did not do this; 2.0D and later do it. |
---|
| 241 | ! But there is no way of knowing which UCX version, so we have a user-settable |
---|
| 242 | ! runtime variable. Note: UCX 2.0 was only for the VAX. |
---|
| 243 | */ |
---|
| 244 | ! debug(F101,"UCX getservbyname port","",sent.s_port); |
---|
| 245 | ! debug(F101,"UCX getservbyname ntohs(port)","",ntohs(sent.s_port)); |
---|
| 246 | ! if (ucx_port_bug) { |
---|
| 247 | sent.s_port = htons(sent.s_port); |
---|
| 248 | ! debug(F100,"UCX-PORT-BUG ON: swapping bytes","",0); |
---|
| 249 | ! debug(F101,"UCX swapped port","",sent.s_port); |
---|
| 250 | ! debug(F101,"UCX swapped ntohs(port)","",ntohs(sent.s_port)); |
---|
| 251 | ! } |
---|
| 252 | return &sent; |
---|
| 253 | } |
---|
| 254 | #endif /* __DECC */ |
---|
| 255 | *** /w/pub/ftp/kermit/f/ckuus3.c Sun Nov 24 19:20:50 1996 |
---|
| 256 | --- ./ckuus3.c Wed Dec 4 16:58:49 1996 |
---|
| 257 | *************** |
---|
| 258 | *** 3031,3036 **** |
---|
| 259 | --- 3031,3046 ---- |
---|
| 260 | success = recvbuf(z); |
---|
| 261 | return(success); |
---|
| 262 | #endif /* SO_RCVBUF */ |
---|
| 263 | + |
---|
| 264 | + #ifdef VMS |
---|
| 265 | + #ifdef DEC_TCPIP |
---|
| 266 | + case XYTCP_UCX: { /* UCX 2.0 port swabbing bug */ |
---|
| 267 | + extern int ucx_port_bug; |
---|
| 268 | + return(success = seton(&ucx_port_bug)); |
---|
| 269 | + } |
---|
| 270 | + #endif /* DEC_TCPIP */ |
---|
| 271 | + #endif /* VMS */ |
---|
| 272 | + |
---|
| 273 | default: |
---|
| 274 | return(0); |
---|
| 275 | } |
---|
| 276 | *** /w/pub/ftp/kermit/f/ckuusr.c Sun Nov 24 19:20:51 1996 |
---|
| 277 | --- ./ckuusr.c Wed Dec 4 17:12:50 1996 |
---|
| 278 | *************** |
---|
| 279 | *** 1098,1103 **** |
---|
| 280 | --- 1098,1108 ---- |
---|
| 281 | #ifdef SO_SNDBUF |
---|
| 282 | "sendbuf", XYTCP_SENDBUF, 0, |
---|
| 283 | #endif /* SO_SNDBUF */ |
---|
| 284 | + #ifdef VMS |
---|
| 285 | + #ifdef DEC_TCPIP |
---|
| 286 | + "ucx-port-bug", XYTCP_UCX, 0, |
---|
| 287 | + #endif /* DEC_TCPIP */ |
---|
| 288 | + #endif /* VMS */ |
---|
| 289 | "",0,0 |
---|
| 290 | }; |
---|
| 291 | int ntcpopt = (sizeof(tcpopt) / sizeof(struct keytab)); |
---|
| 292 | *** /w/pub/ftp/kermit/f/ckuusr.h Sun Nov 24 19:20:52 1996 |
---|
| 293 | --- ./ckuusr.h Wed Dec 4 16:59:18 1996 |
---|
| 294 | *************** |
---|
| 295 | *** 803,808 **** |
---|
| 296 | --- 803,809 ---- |
---|
| 297 | #define XYTCP_LINGER 3 /* Linger */ |
---|
| 298 | #define XYTCP_RECVBUF 4 /* Receive Buffer Size */ |
---|
| 299 | #define XYTCP_KEEPALIVE 5 /* Keep Alive packets */ |
---|
| 300 | + #define XYTCP_UCX 6 /* UCX 2.0 port swabbing bug */ |
---|
| 301 | |
---|
| 302 | #define XYMSK 83 /* MS-DOS Kermit compatibility options */ |
---|
| 303 | #define MSK_COLOR 0 /* Terminal color handling */ |
---|
| 304 | ____________________ |
---|
| 305 | X-Patch-Number: 0005 |
---|
| 306 | Date: Mon, 9 Dec 1996 17:00:56 EST |
---|
| 307 | From: Frank da Cruz <fdc@columbia.edu> |
---|
| 308 | Subject: C-Kermit Might Send Packets Outside Window |
---|
| 309 | |
---|
| 310 | PROBLEM: |
---|
| 311 | |
---|
| 312 | When sending a file with a window size greater than 1 under conditions of |
---|
| 313 | packet loss, C-Kermit might send packets outside the current window. This |
---|
| 314 | should not cause file corruption, and in many cases (depending on the Kermit |
---|
| 315 | implementation on the receiving end), it won't even cause a noticable problem, |
---|
| 316 | but in other cases it might cause the transfer to stop unnecessarily. |
---|
| 317 | |
---|
| 318 | CURE: |
---|
| 319 | |
---|
| 320 | In the ckcfn2.c module, replace the nxtpkt() function with this new one: |
---|
| 321 | |
---|
| 322 | /* N X T P K T -- Next Packet */ |
---|
| 323 | /* |
---|
| 324 | Get packet number of next packet to send and allocate a buffer for it. |
---|
| 325 | Returns: |
---|
| 326 | 0 on success, with global pktnum set to the packet number; |
---|
| 327 | -1 on failure to allocate buffer (fatal); |
---|
| 328 | -2 if resulting packet number is outside the current window. |
---|
| 329 | */ |
---|
| 330 | int |
---|
| 331 | nxtpkt() { /* Called by file sender */ |
---|
| 332 | int j, n, x; |
---|
| 333 | |
---|
| 334 | debug(F101,"nxtpkt pktnum","",pktnum); |
---|
| 335 | debug(F101,"nxtpkt winlo ","",winlo); |
---|
| 336 | n = (pktnum + 1) % 64; /* Increment packet number mod 64 */ |
---|
| 337 | debug(F101,"nxtpkt n","",n); |
---|
| 338 | x = chkwin(n,winlo,wslots); /* Don't exceed window boundary */ |
---|
| 339 | debug(F101,"nxtpkt chkwin","",x); |
---|
| 340 | if (x) |
---|
| 341 | return(-2); |
---|
| 342 | |
---|
| 343 | j = getsbuf(n); /* Get a buffer for packet n */ |
---|
| 344 | if (j < 0) { |
---|
| 345 | debug(F101,"nxtpkt getsbuf failure","",j); |
---|
| 346 | return(-1); |
---|
| 347 | } |
---|
| 348 | pktnum = n; |
---|
| 349 | return(0); |
---|
| 350 | } |
---|
| 351 | |
---|
| 352 | ____________________ |
---|
| 353 | X-Patch-Number: 0006 |
---|
| 354 | Date: Wed, 11 Dec 1996 12:26:00 EST |
---|
| 355 | From: Frank da Cruz <fdc@columbia.edu> |
---|
| 356 | Subject: MOVE from SEND-LIST does not delete original files |
---|
| 357 | |
---|
| 358 | If you build up a list of files to be sent using ADD SEND-LIST and then |
---|
| 359 | give a SEND command with no operands, it sends the files in the send list. |
---|
| 360 | If you give a MOVE command with no operands, it does the same thing. But |
---|
| 361 | unlike SEND, MOVE should delete each original after sending it successfully; |
---|
| 362 | in C-Kermit 6.0.192, it does not. |
---|
| 363 | |
---|
| 364 | Here's the patch: |
---|
| 365 | |
---|
| 366 | *** /w/pub/ftp/kermit/f/ckuusr.c Sun Nov 24 19:20:51 1996 |
---|
| 367 | --- ckuusr.c Wed Dec 11 12:39:01 1996 |
---|
| 368 | *************** |
---|
| 369 | *** 2863,2868 **** |
---|
| 370 | --- 2863,2870 ---- |
---|
| 371 | sndsrc = nfils; /* Like MSEND */ |
---|
| 372 | addlist = 1; /* But using a different list... */ |
---|
| 373 | filenext = filehead; |
---|
| 374 | + if (cx == XXMOVE) |
---|
| 375 | + moving = 1; |
---|
| 376 | sstate = 's'; |
---|
| 377 | goto sendend; |
---|
| 378 | } else { /* Oops, no list. */ |
---|
| 379 | |
---|
| 380 | ____________________ |
---|
| 381 | X-Patch-Number: 0007 |
---|
| 382 | Date: Thu, 12 Dec 1996 21:11:47 -0500 |
---|
| 383 | From: "Richard L. Hamilton" <rlhamil@mindwarp.smart.net> |
---|
| 384 | Subject: Higher serial speeds on Solaris 2.5 |
---|
| 385 | |
---|
| 386 | Here's how I hacked up C-Kermit 6.0 for more of the speeds that |
---|
| 387 | Solaris >= 2.5 supports. |
---|
| 388 | |
---|
| 389 | This was with the following make command, to get rid of references |
---|
| 390 | to unsupported speeds as well as to help get some of the additional |
---|
| 391 | speeds. POSIX is a must, 'cause setting speeds > 38400 without |
---|
| 392 | the cfsetospeed() and similar functions is a pain. The #ifndef VANILLA |
---|
| 393 | was just so I could turn off all my hacks real easily, and it and the |
---|
| 394 | corresponding #endif should probably be removed. |
---|
| 395 | |
---|
| 396 | make solaris2xg KFLAGS="-DCK_DSYSINI -DCK_INI_B -DCK_WREFRESH -DPOSIX |
---|
| 397 | -DNOB_3600 -DNOB_7200 -DBPS_134 -DBPS_1800 -DBPS_57K -DBPS_76K |
---|
| 398 | -DBPS_115K -DBPS_230K" |
---|
| 399 | |
---|
| 400 | diff ckutio.c.orig ckutio.c |
---|
| 401 | 4605c4605,4616 |
---|
| 402 | < |
---|
| 403 | --- |
---|
| 404 | > #ifndef VANILLA |
---|
| 405 | > #ifdef SOLARIS |
---|
| 406 | > #ifdef POSIX |
---|
| 407 | > #ifdef BPS_76K |
---|
| 408 | > case 7680: s = B76800; break; |
---|
| 409 | > #endif /* BPS_76K */ |
---|
| 410 | > #ifdef BPS_230K |
---|
| 411 | > case 23040: s = B230400; break; |
---|
| 412 | > #endif /* BPS_230K */ |
---|
| 413 | > #endif /* POSIX */ |
---|
| 414 | > #endif /* SOLARIS */ |
---|
| 415 | > #endif /* VANILLA */ |
---|
| 416 | 4951a4963,4974 |
---|
| 417 | > #ifndef VANILLA |
---|
| 418 | > #ifdef SOLARIS |
---|
| 419 | > #ifdef POSIX |
---|
| 420 | > #ifdef BPS_76K |
---|
| 421 | > case B76800: ss = 76800L; break; |
---|
| 422 | > #endif /* BPS_76K */ |
---|
| 423 | > #ifdef BPS_230K |
---|
| 424 | > case B230400: ss = 230400L; break; |
---|
| 425 | > #endif /* BPS_230K */ |
---|
| 426 | > #endif /* POSIX */ |
---|
| 427 | > #endif /* SOLARIS */ |
---|
| 428 | > #endif /* VANILLA */ |
---|
| 429 | diff ckuus3.c.orig ckuus3.c |
---|
| 430 | 328a329,331 |
---|
| 431 | > #ifdef BPS_1800 |
---|
| 432 | > "1800", 180, 0, |
---|
| 433 | > #endif /* BPS_1800 */ |
---|
| 434 | |
---|
| 435 | ____________________ |
---|
| 436 | X-Patch-Number: 0008 |
---|
| 437 | Date: Wed, 18 Dec 1996 11:42:00 EST |
---|
| 438 | From: Frank da Cruz <fdc@columbia.edu> |
---|
| 439 | Subject: C-Kermit application file name can't contain spaces |
---|
| 440 | |
---|
| 441 | When the first command-line argument to C-Kermit is a filename, C-Kermit |
---|
| 442 | should execute the commands from the file, e.g. |
---|
| 443 | |
---|
| 444 | kermit filename |
---|
| 445 | |
---|
| 446 | But if the filename contains spaces, this doesn't work in version 6.0, even |
---|
| 447 | if the filename is properly quoted to the shell: |
---|
| 448 | |
---|
| 449 | kermit "this is a file name" |
---|
| 450 | |
---|
| 451 | Here is the patch: |
---|
| 452 | |
---|
| 453 | *** /w/pub/ftp/kermit/f/ckuus4.c Sun Nov 24 19:20:50 1996 |
---|
| 454 | --- ckuus4.c Wed Dec 18 11:40:46 1996 |
---|
| 455 | *************** |
---|
| 456 | *** 636,642 **** |
---|
| 457 | */ |
---|
| 458 | cmdini(); /* Allocate command buffers etc */ |
---|
| 459 | cmini(0); /* Initialize them */ |
---|
| 460 | ! strcpy(cmdbuf,yargv[1]); /* Stuff filename into command buf */ |
---|
| 461 | strcat(cmdbuf,"\r\r"); /* And some carriage returns */ |
---|
| 462 | if ((y = cmifip("","",&s,&x,0,takepath,xxstring)) < 0) |
---|
| 463 | doexit(BAD_EXIT,xitsta); |
---|
| 464 | --- 636,642 ---- |
---|
| 465 | */ |
---|
| 466 | cmdini(); /* Allocate command buffers etc */ |
---|
| 467 | cmini(0); /* Initialize them */ |
---|
| 468 | ! sprintf(cmdbuf,"{%s}",yargv[1]); /* Put filename in command buf */ |
---|
| 469 | strcat(cmdbuf,"\r\r"); /* And some carriage returns */ |
---|
| 470 | if ((y = cmifip("","",&s,&x,0,takepath,xxstring)) < 0) |
---|
| 471 | doexit(BAD_EXIT,xitsta); |
---|
| 472 | |
---|
| 473 | __________________________________ |
---|
| 474 | (End of C-Kermit 6.0 PATCHES file) |
---|