egray@fthood.UUCP (06/23/89)
This is patch #4 to the Pcomm v1.2 distribution package. This patch will fix the problem of transferring files on BSD systems when the names are greater than 14 characters in length. (However, the file names will still get truncated to 14 characters, so I'll address that in a later release). This patch also contains some odds and end suggested by Jonathan Bayer (...uunet!ispi!jbayer) and Gary Trujillo (...spdcc!gnosys!gst) over the past few months. Emmet P. Gray US Army, HQ III Corps & Fort Hood ...!uunet!uiucuxc!fthood!egray Attn: AFZF-DE-ENV fthood!egray@uxc.cso.uiuc.edu Directorate of Engineering & Housing Environmental Management Office Fort Hood, TX 76544-5057 ----------------------------------------------------------------------------- Prereq: "1.2.3" *** old/info.c Sun Jun 11 10:25:44 1989 --- info.c Fri Jun 23 10:03:05 1989 *************** *** 4,9 */ ! #define VERSION "1.2.3" ! #define DATE "11 May 89" #include <stdio.h> --- 4,9 ----- */ ! #define VERSION "1.2.4" ! #define DATE "23 Jun 89" #include <stdio.h> *** old/main.c Sun Jun 11 10:25:43 1989 --- main.c Fri Jun 23 10:03:18 1989 *************** *** 16,19 * Patch #2 11 Mar 89 * Patch #3 11 May 89 */ --- 16,20 ----- * Patch #2 11 Mar 89 * Patch #3 11 May 89 + * Patch #4 23 Jun 89 */ *** old/st_line.c Sat Jun 17 09:16:50 1989 --- st_line.c Sat Jun 17 09:17:08 1989 *************** *** 76,79 delwin(sl_win); move(y, x); return; } --- 76,80 ----- delwin(sl_win); move(y, x); + refresh(); return; } *** old/terminal.c Sun Jun 11 10:25:38 1989 --- terminal.c Sun Jun 11 10:32:11 1989 *************** *** 431,435 st_line("disconnecting"); /* special case for OBM */ - #ifdef UNIXPC if (!strcmp(modem->mname[modem->m_cur], "OBM")) { ioctl(fd, PIOCDISC); --- 431,434 ----- st_line("disconnecting"); /* special case for OBM */ if (!strcmp(modem->mname[modem->m_cur], "OBM")) { #ifdef UNIXPC *************** *** 433,436 #ifdef UNIXPC if (!strcmp(modem->mname[modem->m_cur], "OBM")) { ioctl(fd, PIOCDISC); /* --- 432,436 ----- /* special case for OBM */ if (!strcmp(modem->mname[modem->m_cur], "OBM")) { + #ifdef UNIXPC ioctl(fd, PIOCDISC); /* *************** *** 445,450 line_set(); fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY); - } - else #endif /* UNIXPC */ send_str(modem->hang_up[modem->m_cur], SLOW); --- 445,448 ----- line_set(); fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY); #endif /* UNIXPC */ } *************** *** 448,451 else #endif /* UNIXPC */ send_str(modem->hang_up[modem->m_cur], SLOW); --- 446,451 ----- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY); #endif /* UNIXPC */ + } + else { send_str(modem->hang_up[modem->m_cur], SLOW); *************** *** 450,460 send_str(modem->hang_up[modem->m_cur], SLOW); ! /* ! * Some modems do "damage" to the tty driver when they hang up by ! * flashing the modem control lines on the port. The following is ! * some witchcraft designed to put the driver back the way it was. ! */ ! sleep(1); ! close(open(ttyname(fd), O_RDWR)); if (verbose) --- 450,462 ----- send_str(modem->hang_up[modem->m_cur], SLOW); ! /* ! * Some modems do "damage" to the tty driver when they hang ! * up by flashing the modem control lines on the port. The ! * following is some witchcraft designed to put the driver ! * back the way it was. ! */ ! sleep(1); ! close(open(ttyname(fd), O_RDWR)); ! } if (verbose) *** old/x_batch.c Tue May 23 12:28:22 1989 --- x_batch.c Sun Jun 11 10:39:50 1989 *************** *** 270,273 int modified; char temp[15], ans[15], *s, *strrchr(), *strcpy(), *strncat(); unsigned int sleep(); /* dissect the name component */ --- 270,274 ----- int modified; char temp[15], ans[15], *s, *strrchr(), *strcpy(), *strncat(); + char *strncpy(); unsigned int sleep(); /* dissect the name component */ *************** *** 273,277 /* dissect the name component */ if ((s = strrchr(str, '/'))) ! strcpy(temp, ++s); else strcpy(temp, str); --- 274,278 ----- /* dissect the name component */ if ((s = strrchr(str, '/'))) ! strncpy(temp, ++s, 15); else strncpy(temp, str, 15); *************** *** 275,279 strcpy(temp, ++s); else ! strcpy(temp, str); strcpy(ans, temp); --- 276,281 ----- strncpy(temp, ++s, 15); else ! strncpy(temp, str, 15); ! temp[14] = '\0'; strcpy(ans, temp); *************** *** 325,330 char *path; { ! int dot; ! char *s, *name, temp[15], *ext, *strcpy(), *strrchr(); static char ans[13]; /* ignore the path component */ --- 327,332 ----- char *path; { ! int i, dot; ! char *s, *name, temp[15], *ext, *strncpy(), *strrchr(); static char ans[13]; /* ignore the path component */ *************** *** 330,334 /* ignore the path component */ if (s = strrchr(path, '/')) ! strcpy(temp, ++s); else strcpy(temp, path); --- 332,336 ----- /* ignore the path component */ if (s = strrchr(path, '/')) ! strncpy(temp, ++s, 15); else strncpy(temp, path, 15); *************** *** 332,336 strcpy(temp, ++s); else ! strcpy(temp, path); name = temp; --- 334,339 ----- strncpy(temp, ++s, 15); else ! strncpy(temp, path, 15); ! temp[14] = '\0'; name = temp; *************** *** 337,345 ext = ""; dot = 0; ! for (s=name; *s; ++s) { ! if (*s == '.' && !dot) { ! dot++; ! *s = '\0'; ! ext = s + 1; } if (islower(*s)) --- 340,348 ----- ext = ""; dot = 0; ! for (i=strlen(temp)-1; i>=0; i--) { ! if (temp[i] == '.' && !dot) { ! dot = 1; ! temp[i] = '\0'; ! ext = &temp[i+1]; } if (islower(temp[i])) *************** *** 343,348 ext = s + 1; } ! if (islower(*s)) ! *s = toupper(*s); } /* if null name component */ --- 346,351 ----- ext = &temp[i+1]; } ! if (islower(temp[i])) ! temp[i] = toupper(temp[i]); } /* if null name component */ *** old/Pcomm.1 Wed Jun 14 08:32:34 1989 --- Pcomm.1 Wed Jun 14 08:32:08 1989 *************** *** 61,65 Dialing Directory. The dialing directory screen is used to display and maintain the database of phone number entries, and to select an entry ! for dialing. To dialan entry, just enter the entry number at the prompt. If the ``script'' field contains valid Unix shell script, that file is used to automatically log the user on to the remote system. See --- 61,65 ----- Dialing Directory. The dialing directory screen is used to display and maintain the database of phone number entries, and to select an entry ! for dialing. To dial an entry, just enter the entry number at the prompt. If the ``script'' field contains valid Unix shell script, that file is used to automatically log the user on to the remote system. See End of Patch