egray@osiris.cso.uiuc.edu (Emmet P. Gray) (01/01/91)
This is patch #10 to the Pcomm v1.2 distribution package. This patch will add SVR4 UUCP lockfile support, a small amount of ANSI C rework, and will fix a few other odds and ends. Pcomm v1.2.4 appeared in comp.sources.unix as v20i067 thru v20i075 around the 27th of October 1989. Since then, patches 5 through 9 were posted to comp.sources.bugs. Both the current version of Pcomm and all the patches are available via anonymous ftp from cerl.cecer.army.mil (129.229.1.101). 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.9" *** old/info.c Fri Nov 16 14:51:26 1990 --- info.c Sun Dec 30 12:38:35 1990 *************** *** 4,9 */ ! #define VERSION "1.2.9" ! #define DATE "1 Sep 90" #include <stdio.h> --- 4,9 ----- */ ! #define VERSION "1.2.10" ! #define DATE "30 Dec 90" #include <stdio.h> *** old/Makefile Fri Nov 16 15:00:36 1990 --- Makefile Sun Dec 30 16:05:26 1990 *************** *** 89,93 screen.c script.c st_line.c strings.c terminal.c tty_att.c \ x_ascii.c x_batch.c x_extrnl.c x_menu.c x_rcv.c x_send.c x_win.c \ ! xmodem.c lint -p -Dlint input.c vcs.c lint -p -Dlint waitfor.c --- 89,93 ----- screen.c script.c st_line.c strings.c terminal.c tty_att.c \ x_ascii.c x_batch.c x_extrnl.c x_menu.c x_rcv.c x_send.c x_win.c \ ! xmodem.c $(CURSES) lint -p -Dlint input.c vcs.c lint -p -Dlint waitfor.c *** old/Readme Fri Nov 16 14:51:24 1990 --- Readme Sun Dec 30 12:14:57 1990 *************** *** 106,109 file. Newer version of XENIX may require this. KEEP_PORT If defined, the port will be kept open between dialing attempts to save time. Some systems --- 106,112 ----- file. Newer version of XENIX may require this. + SVR4_LOCKS If defined, the new UUCP lockfile format + introduced in SVR4 will be used. + KEEP_PORT If defined, the port will be kept open between dialing attempts to save time. Some systems *** old/Unixpc.shar Fri Nov 16 14:51:24 1990 --- Unixpc.shar Sun Dec 30 12:36:26 1990 *************** *** 85,89 fi fi ! echo shar: "extracting 'Makefile'" '(5239 characters)' if test -f 'Makefile' then --- 85,89 ----- fi fi ! echo shar: "extracting 'Makefile'" '(5482 characters)' if test -f 'Makefile' then *************** *** 151,159 X cp matches $(BIN) X cp modem_break $(BIN) - X# rm pcomm - X# rm pcomm_input - X# rm waitfor - X# rm matches - X# rm modem_break X Xlint: --- 151,154 ----- X cp matches $(BIN) X cp modem_break $(BIN) X Xclean: *************** *** 157,160 X# rm modem_break X Xlint: X lint -p -Dlint admin.c chg_dir.c curses.c d_delete.c d_lib.c \ --- 152,162 ----- X cp modem_break $(BIN) X + Xclean: + X rm pcomm + X rm pcomm_input + X rm waitfor + X rm matches + X rm modem_break + X Xlint: X lint -p -Dlint admin.c chg_dir.c curses.c d_delete.c d_lib.c \ *************** *** 173,177 X Xshar: ! X $(SHAR) Doc > pcomm_sh.1 X $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ X Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ --- 175,179 ----- X Xshar: ! X $(SHAR) Doc.nr > pcomm_sh.1 X $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ X Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ *************** *** 176,181 X $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ X Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ ! X Unixpc.shar Waitfor.1 > pcomm_sh.2 ! X $(SHAR) admin.c chg_dir.c config.h curses.c d_delete.c d_lib.c \ X d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \ X di_delay.c > pcomm_sh.3 --- 178,183 ----- X $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ X Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ ! X Unixpc.shar Waitfor.1 admin.c > pcomm_sh.2 ! X $(SHAR) chg_dir.c config.h curses.c d_delete.c d_lib.c \ X d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \ X di_delay.c > pcomm_sh.3 *************** *** 185,190 X $(SHAR) m_lib.c macro.c main.c matches.c misc.h modem.h \ X modem_break.c n_shell.c p_lib.c param.h passthru.c pexit.c \ ! X port.c > pcomm_sh.5 ! X $(SHAR) redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ X s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ X strings.c > pcomm_sh.6 --- 187,192 ----- X $(SHAR) m_lib.c macro.c main.c matches.c misc.h modem.h \ X modem_break.c n_shell.c p_lib.c param.h passthru.c pexit.c \ ! X port.c redial.c > pcomm_sh.5 ! X $(SHAR) s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ X s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ X strings.c terminal.c > pcomm_sh.6 *************** *** 188,196 X $(SHAR) redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ X s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ ! X strings.c > pcomm_sh.6 ! X $(SHAR) terminal.c tty_att.c tty_ucb.c vcs.c vcs.h waitfor.c \ ! X x_ascii.c x_batch.c x_extrnl.c > pcomm_sh.7 ! X $(SHAR) x_menu.c x_rcv.c x_send.c x_win.c xmodem.c xmodem.h \ ! X > pcomm_sh.8 X Xadmin.o: config.h dial_dir.h param.h --- 190,199 ----- X $(SHAR) s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ X s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ ! X strings.c terminal.c > pcomm_sh.6 ! X $(SHAR) tty_att.c tty_ucb.c vcs.c vcs.h waitfor.c x_ascii.c \ ! X x_batch.c x_extrnl.c x_menu.c > pcomm_sh.7 ! X $(SHAR) x_rcv.c x_send.c x_win.c xmodem.c xmodem.h > pcomm_sh.8 ! X $(SHAR) Doc.out Matches.out Modem_break.ou Pcomm.out Waitfor.out \ ! X > pcomm_sh.9 X Xadmin.o: config.h dial_dir.h param.h *************** *** 210,213 Xe_lib.o: extrnl.h Xexpand.o: config.h Xhelp.o: config.h misc.h Xinit.o: config.h misc.h status.h --- 213,217 ----- Xe_lib.o: extrnl.h Xexpand.o: config.h + Xgetopt.o: config.h Xhelp.o: config.h misc.h Xinit.o: config.h misc.h status.h *************** *** 213,216 Xinit.o: config.h misc.h status.h Xinput.o: config.h misc.h status.h vcs.h Xls_menu.o: config.h dial_dir.h misc.h param.h Xm_lib.o: modem.h --- 217,221 ----- Xinit.o: config.h misc.h status.h Xinput.o: config.h misc.h status.h vcs.h + Xlist_dir.o: config.h misc.h Xls_menu.o: config.h dial_dir.h misc.h param.h Xm_lib.o: modem.h *************** *** 229,233 Xs_modem.o: config.h misc.h modem.h Xs_prompt.o: config.h misc.h ! Xs_term.o: config.h misc.h param.h status.h Xs_tty.o: config.h misc.h modem.h Xscreen.o: config.h param.h status.h --- 234,238 ----- Xs_modem.o: config.h misc.h modem.h Xs_prompt.o: config.h misc.h ! Xs_term.o: config.h dial_dir.h misc.h param.h status.h Xs_tty.o: config.h misc.h modem.h Xscreen.o: config.h param.h status.h *************** *** 236,241 Xstrings.o: config.h Xterminal.o: config.h dial_dir.h misc.h modem.h param.h status.h xmodem.h ! Xtty_att.o: dial_dir.h param.h ! Xtty_ucb.o: dial_dir.h param.h Xvcs.o: config.h vcs.h Xx_ascii.o: config.h misc.h param.h --- 241,246 ----- Xstrings.o: config.h Xterminal.o: config.h dial_dir.h misc.h modem.h param.h status.h xmodem.h ! Xtty_att.o: dial_dir.h modem.h param.h ! Xtty_ucb.o: dial_dir.h modem.h param.h Xvcs.o: config.h vcs.h Xx_ascii.o: config.h misc.h param.h *************** *** 247,250 Xx_win.o: config.h dial_dir.h misc.h xmodem.h Xxmodem.o: config.h misc.h param.h xmodem.h SHAR_EOF if test 5239 -ne "`wc -c < 'Makefile'`" --- 252,259 ----- Xx_win.o: config.h dial_dir.h misc.h xmodem.h Xxmodem.o: config.h misc.h param.h xmodem.h + X + Xwaitfor: config.h waitfor.c + Xmatches: matches.c + Xmodem_break: config.h modem_break.c SHAR_EOF if test 5482 -ne "`wc -c < 'Makefile'`" *************** *** 248,252 Xxmodem.o: config.h misc.h param.h xmodem.h SHAR_EOF ! if test 5239 -ne "`wc -c < 'Makefile'`" then echo shar: "error transmitting 'Makefile'" '(should have been 5239 characters)' --- 257,261 ----- Xmodem_break: config.h modem_break.c SHAR_EOF ! if test 5482 -ne "`wc -c < 'Makefile'`" then echo shar: "error transmitting 'Makefile'" '(should have been 5482 characters)' *************** *** 250,254 if test 5239 -ne "`wc -c < 'Makefile'`" then ! echo shar: "error transmitting 'Makefile'" '(should have been 5239 characters)' fi fi --- 259,263 ----- if test 5482 -ne "`wc -c < 'Makefile'`" then ! echo shar: "error transmitting 'Makefile'" '(should have been 5482 characters)' fi fi *************** *** 273,277 fi fi ! echo shar: "extracting 'Readme.7300'" '(5740 characters)' if test -f 'Readme.7300' then --- 282,286 ----- fi fi ! echo shar: "extracting 'Readme.7300'" '(6084 characters)' if test -f 'Readme.7300' then *************** *** 433,436 X you're running HDB UUCP and have Pcomm set-user-id to uucp, you X don't need to have SETUID_BROKE defined. SHAR_EOF if test 5740 -ne "`wc -c < 'Readme.7300'`" --- 442,452 ----- X you're running HDB UUCP and have Pcomm set-user-id to uucp, you X don't need to have SETUID_BROKE defined. + X + X 8. The default tunable parameters for the size of INBUF and + X OUTBUF for the Unix PC are rather small in order to prevent a + X "choppy" appearance on the screen. However, if you have + X installed the serial patch (called "serial_pat.Z" on osu-cis), + X then the nominal sizes of 64 and 32 for INBUF and OUTBUF will + X provide much better performance. SHAR_EOF if test 6084 -ne "`wc -c < 'Readme.7300'`" *************** *** 434,438 X don't need to have SETUID_BROKE defined. SHAR_EOF ! if test 5740 -ne "`wc -c < 'Readme.7300'`" then echo shar: "error transmitting 'Readme.7300'" '(should have been 5740 characters)' --- 450,454 ----- X provide much better performance. SHAR_EOF ! if test 6084 -ne "`wc -c < 'Readme.7300'`" then echo shar: "error transmitting 'Readme.7300'" '(should have been 6084 characters)' *************** *** 436,440 if test 5740 -ne "`wc -c < 'Readme.7300'`" then ! echo shar: "error transmitting 'Readme.7300'" '(should have been 5740 characters)' fi fi --- 452,456 ----- if test 6084 -ne "`wc -c < 'Readme.7300'`" then ! echo shar: "error transmitting 'Readme.7300'" '(should have been 6084 characters)' fi fi *************** *** 439,443 fi fi ! echo shar: "extracting 'config.h'" '(2273 characters)' if test -f 'config.h' then --- 455,459 ----- fi fi ! echo shar: "extracting 'config.h'" '(2308 characters)' if test -f 'config.h' then *************** *** 481,485 X X/* The path to the line printer program */ ! X#define LPR "/usr/bin/lp" X X/* The path to the "pretty" printer program (if none, use same as LPR) */ --- 497,501 ----- X X/* The path to the line printer program */ ! X#define LPR "lp" X X/* The path to the "pretty" printer program (if none, use "pr | lp") */ *************** *** 483,488 X#define LPR "/usr/bin/lp" X ! X/* The path to the "pretty" printer program (if none, use same as LPR) */ ! X#define LPRINT "/usr/bin/lp" X X/* The path to the default directory containing the Pcomm support files */ --- 499,504 ----- X#define LPR "lp" X ! X/* The path to the "pretty" printer program (if none, use "pr | lp") */ ! X#define LPRINT "pr | lp" X X/* The path to the default directory containing the Pcomm support files */ *************** *** 495,500 X#undef ASCII_PID X ! X/* Fold the last character of the lock file to lower case? */ ! X#undef XENIX_LOCKS X X/* Should Pcomm optimize redialing by keeping the TTY port open */ --- 511,516 ----- X#undef ASCII_PID X ! X/* Fold the last character of the lock to lower case? */ ! X#undef XENIX_LOCKS X X/* Use the new SVR4 lock format? */ *************** *** 498,501 X#undef XENIX_LOCKS X X/* Should Pcomm optimize redialing by keeping the TTY port open */ X#define KEEP_PORT --- 514,520 ----- X#undef XENIX_LOCKS X + X/* Use the new SVR4 lock format? */ + X#undef SVR4_LOCKS + X X/* Should Pcomm optimize redialing by keeping the TTY port open */ X#define KEEP_PORT *************** *** 528,532 X#endif /* OLDCURSES */ SHAR_EOF ! if test 2273 -ne "`wc -c < 'config.h'`" then echo shar: "error transmitting 'config.h'" '(should have been 2273 characters)' --- 547,551 ----- X#endif /* OLDCURSES */ SHAR_EOF ! if test 2308 -ne "`wc -c < 'config.h'`" then echo shar: "error transmitting 'config.h'" '(should have been 2308 characters)' *************** *** 530,534 if test 2273 -ne "`wc -c < 'config.h'`" then ! echo shar: "error transmitting 'config.h'" '(should have been 2273 characters)' fi fi --- 549,553 ----- if test 2308 -ne "`wc -c < 'config.h'`" then ! echo shar: "error transmitting 'config.h'" '(should have been 2308 characters)' fi fi *** old/admin.c Fri Nov 16 14:51:24 1990 --- admin.c Sun Dec 30 14:00:32 1990 *************** *** 23,27 #ifdef LOG_CALLS FILE *fp; ! char *number, *build_num(), *date, *ctime(), *getlogin(), buf[80]; long now, time(); void error_win(); --- 23,28 ----- #ifdef LOG_CALLS FILE *fp; ! char *number, *date, *ctime(), *getlogin(), buf[80]; ! static char *build_num(); long now, time(); void error_win(); *************** *** 57,61 { #ifdef LIMIT_LD ! char *number, *build_num(), *name, *getlogin(); struct group *getgrnam(), *grpbuf; --- 58,63 ----- { #ifdef LIMIT_LD ! char *number, *name, *getlogin(); ! static char *build_num(); struct group *getgrnam(), *grpbuf; *** old/config.h Fri Nov 16 14:51:25 1990 --- config.h Sun Dec 30 12:52:04 1990 *************** *** 51,54 /* Fold the last character of the lock to lower case? */ #undef XENIX_LOCKS /* Should Pcomm optimize redialing by keeping the TTY port open */ --- 51,57 ----- /* Fold the last character of the lock to lower case? */ #undef XENIX_LOCKS + + /* Use the new SVR4 lock format? */ + #undef SVR4_LOCKS /* Should Pcomm optimize redialing by keeping the TTY port open */ *** old/curses.c Fri Nov 16 14:51:25 1990 --- curses.c Sun Dec 30 13:58:45 1990 *************** *** 399,403 unsigned int sec; { ! int key, wk_force(); unsigned int alarm(); char c; --- 399,404 ----- unsigned int sec; { ! int key; ! static int wk_force(); unsigned int alarm(); char c; *** old/d_manual.c Fri Nov 16 14:51:25 1990 --- d_manual.c Sun Dec 30 14:01:07 1990 *************** *** 18,22 WINDOW *m_win, *newwin(); char *number, *str_rep(), *get_str(), ld_code, *strchr(); ! void fix_xmc(), free_ptr(); m_win = newwin(5, 50, 0, 20); --- 18,23 ----- WINDOW *m_win, *newwin(); char *number, *str_rep(), *get_str(), ld_code, *strchr(); ! void free_ptr(); ! static void fix_xmc(); m_win = newwin(5, 50, 0, 20); *** old/d_menu.c Fri Nov 16 14:51:25 1990 --- d_menu.c Sun Dec 30 14:02:06 1990 *************** *** 23,27 char buf[5], ld_code; int ans, start, needs_repair, count, x, y, i, ret_code; ! void dir_scroll(), active_ld(), disp_ld(), print_dir(), st_line(); touchwin(stdscr); --- 23,28 ----- char buf[5], ld_code; int ans, start, needs_repair, count, x, y, i, ret_code; ! void print_dir(), st_line(); ! static void dir_scroll(), active_ld(), disp_ld(); touchwin(stdscr); *** old/d_print.c Fri Nov 16 14:51:25 1990 --- d_print.c Sun Dec 30 14:02:43 1990 *************** *** 18,22 FILE *fp, *popen(), *my_fopen(); WINDOW *p_win, *newwin(); ! char *ans, *file, *e_get_str(), buf[100], *expand(); int is_printer, i; void error_win(); --- 18,23 ----- FILE *fp, *popen(), *my_fopen(); WINDOW *p_win, *newwin(); ! char *ans, *file, buf[100], *expand(); ! static char *e_get_str(); int is_printer, i; void error_win(); *** old/d_revise.c Fri Nov 16 14:51:25 1990 --- d_revise.c Sun Dec 30 14:03:19 1990 *************** *** 16,20 WINDOW *r_win, *newwin(); int count, dir_flag, param_flag, num, x, y, save; ! char ans, buf[40], *ld, *ld_prompt(), *str_rep(); r_win = newwin(7, 77, 7, 2); --- 16,21 ----- WINDOW *r_win, *newwin(); int count, dir_flag, param_flag, num, x, y, save; ! char ans, buf[40], *ld, *str_rep(); ! static char *ld_prompt(); r_win = newwin(7, 77, 7, 2); *** old/di_win.c Fri Nov 16 14:51:26 1990 --- di_win.c Sun Dec 30 14:04:41 1990 *************** *** 26,29 WINDOW *di_win, *newwin(); int i, j, key, want_out, pass, tic, baud; long now, time(); char *tbuf, *ctime(), *str, cr=13, *read_codes(); --- 26,30 ----- WINDOW *di_win, *newwin(); int i, j, key, want_out, pass, tic, baud; + static int can_sync(); long now, time(); char *tbuf, *ctime(), *str, cr=13, *read_codes(); *************** *** 28,32 long now, time(); char *tbuf, *ctime(), *str, cr=13, *read_codes(); ! void disp_queue(), dial_it(), delay_times(), input_off(); void error_win(), line_set(), hang_up(), zap_vs(), log_calls(); void st_line(); --- 29,33 ----- long now, time(); char *tbuf, *ctime(), *str, cr=13, *read_codes(); ! void dial_it(), delay_times(), input_off(); void error_win(), line_set(), hang_up(), zap_vs(), log_calls(); static void disp_queue(); *************** *** 30,34 void disp_queue(), dial_it(), delay_times(), input_off(); void error_win(), line_set(), hang_up(), zap_vs(), log_calls(); ! void st_line(); unsigned int sleep(); /* are we already talking? */ --- 31,35 ----- void dial_it(), delay_times(), input_off(); void error_win(), line_set(), hang_up(), zap_vs(), log_calls(); ! static void disp_queue(); unsigned int sleep(); /* are we already talking? */ *** old/dial.c Fri Nov 16 14:51:26 1990 --- dial.c Sun Dec 30 15:39:03 1990 *************** *** 126,129 n++; } return; } --- 126,135 ----- n++; } + /* + * It seems that the OBM doesn't always talk reliably to + * other types of modems (most notibly Telebits). Here + * is some witchcraft to fix the problem. + */ + ioctl(fd, PIOCOVSPD); return; } *************** *** 148,152 char *strchr(); unsigned int sleep(); ! void do_pause(); /* empty string? */ if (s == NULL || *s == '\0') --- 154,158 ----- char *strchr(); unsigned int sleep(); ! static void do_pause(); /* empty string? */ if (s == NULL || *s == '\0') *************** *** 241,245 */ - char rc_buf[512]; int rc_index; --- 247,250 ----- */ int rc_index; *************** *** 249,252 extern int fd; int i; char c; #ifdef UNIXPC --- 254,258 ----- extern int fd; int i; + static int match(); char c; static char rc_buf[512]; *************** *** 250,253 int i; char c; #ifdef UNIXPC unsigned int sleep(); --- 256,260 ----- static int match(); char c; + static char rc_buf[512]; #ifdef UNIXPC unsigned int sleep(); *************** *** 394,398 */ ! void do_pause() { --- 401,405 ----- */ ! static void do_pause() { *** old/ls_menu.c Fri Nov 16 14:51:27 1990 --- ls_menu.c Sun Dec 30 14:05:32 1990 *************** *** 21,25 WINDOW *l_win, *newwin(); int num, ret_code; ! void disp_settings(); l_win = newwin(20, 47, 0, 16); --- 21,25 ----- WINDOW *l_win, *newwin(); int num, ret_code; ! static void disp_settings(); l_win = newwin(20, 47, 0, 16); *** old/macro.c Fri Nov 16 14:51:27 1990 --- macro.c Sun Dec 30 14:05:58 1990 *************** *** 17,21 WINDOW *ma_win, *newwin(); int ans, changed; ! char *mac, *str_rep(), *mac_prompt(); ma_win = newwin(18, 65, 2, 15); --- 17,22 ----- WINDOW *ma_win, *newwin(); int ans, changed; ! char *mac, *str_rep(); ! static char *mac_prompt(); ma_win = newwin(18, 65, 2, 15); *** old/main.c Fri Nov 16 14:51:27 1990 --- main.c Sun Dec 30 15:35:52 1990 *************** *** 22,25 * Patch #8 20 Jan 90 * Patch #9 1 Sep 90 */ --- 22,26 ----- * Patch #8 20 Jan 90 * Patch #9 1 Sep 90 + * Patch #10 30 Dec 90 */ *************** *** 72,76 { extern char *optarg; ! int c, i, code, quit(); char *mytty, *ttyname(), *term, *getenv(), *sys_name, *str_dup(); char *extra_dir, buf[80], message[80]; --- 73,78 ----- { extern char *optarg; ! int c, i, code; ! static int quit(), match_ci(); char *mytty, *ttyname(), *term, *getenv(), *sys_name, *str_dup(); char *extra_dir, buf[80], message[80]; *************** *** 223,227 */ ! int quit() { --- 225,229 ----- */ ! static int quit() { *************** *** 326,329 */ match_ci(s1, s2) char *s1, *s2; --- 328,332 ----- */ + static int match_ci(s1, s2) char *s1, *s2; *** old/passthru.c Fri Nov 16 14:51:28 1990 --- passthru.c Sun Dec 30 14:07:15 1990 *************** *** 22,26 WINDOW *pt_win, *newwin(); int num; ! void cpio(), error_win(); pt_win = newwin(5, 70, 5, 5); --- 22,27 ----- WINDOW *pt_win, *newwin(); int num; ! void error_win(); ! static void cpio(); pt_win = newwin(5, 70, 5, 5); *************** *** 80,84 { extern int fd; ! int cpid, n, cp_force(); char buf[CLIST_SIZ]; unsigned int alarm(), sleep(); --- 81,86 ----- { extern int fd; ! int cpid, n; ! static int cp_force(); char buf[CLIST_SIZ]; unsigned int alarm(), sleep(); *** old/port.c Fri Nov 16 14:51:28 1990 --- port.c Sun Dec 30 14:08:37 1990 *************** *** 27,30 #endif /* XENIX_LOCKS */ static int getty_status = 0; static char *lock_path = NULL; --- 27,36 ----- #endif /* XENIX_LOCKS */ + #ifdef SVR4_LOCKS + #include <sys/types.h> + #include <sys/stat.h> + #include <sys/mkdev.h> + #endif /* SVR4_LOCKS */ + static int getty_status = 0; static char *lock_path = NULL; *************** *** 41,44 register int i; int j, k, lfd, list[NUM_TTY], cmask, is_dev, progpid; char file[80], buf[80], message[80], *str_rep(), *last_c; void error_win(), line_set(), release_port(), send_str(); --- 47,51 ----- register int i; int j, k, lfd, list[NUM_TTY], cmask, is_dev, progpid; + static int set_getty(), checklock(), ck_speed(); char file[80], buf[80], message[80], *str_rep(), *last_c; void error_win(), line_set(), release_port(), send_str(); *************** *** 117,120 while (list[i] != -1) { /* create a lock file name */ sprintf(file, "%s/LCK..%s", LOCK_DIR, modem->tty[list[i]]); --- 124,133 ----- while (list[i] != -1) { /* create a lock file name */ + #ifdef SVR4_LOCKS + struct stat sbuf; + sprintf(buf, "/dev/%s", modem->tty[list[i]]); + stat(buf, &sbuf); + sprintf(file, "%s/LK.%03d.%03d.%03d", LOCK_DIR, major(sbuf.st_dev), major(sbuf.st_rdev), minor(sbuf.st_rdev)); + #else /* SVR4_LOCKS */ sprintf(file, "%s/LCK..%s", LOCK_DIR, modem->tty[list[i]]); #endif /* SVR4_LOCKS */ *************** *** 118,121 /* create a lock file name */ sprintf(file, "%s/LCK..%s", LOCK_DIR, modem->tty[list[i]]); #ifdef XENIX_LOCKS --- 131,135 ----- #else /* SVR4_LOCKS */ sprintf(file, "%s/LCK..%s", LOCK_DIR, modem->tty[list[i]]); + #endif /* SVR4_LOCKS */ #ifdef XENIX_LOCKS *************** *** 211,215 extern char *null_ptr; char buf[80]; ! void free_ptr(), hang_up(), reset_line(); /* --- 225,229 ----- extern char *null_ptr; char buf[80]; ! void free_ptr(), hang_up(), reset_line(), error_win(); /* *************** *** 367,370 int i, mod; char buf[60]; /* find the modem database */ mod = -1; --- 381,385 ----- int i, mod; char buf[60]; + void error_win(); /* find the modem database */ mod = -1; *** old/s_extrnl.c Fri Nov 16 14:51:28 1990 --- s_extrnl.c Sun Dec 30 14:09:38 1990 *************** *** 16,19 WINDOW *ext_win, *newwin(); int i, ret_code; char *str, *get_str(); void disp_ext(); --- 16,20 ----- WINDOW *ext_win, *newwin(); int i, ret_code; + static int ext_prompt(); char *str, *get_str(); static void disp_ext(); *************** *** 17,21 int i, ret_code; char *str, *get_str(); ! void disp_ext(); ext_win = newwin(23, 80, 0, 0); --- 18,22 ----- static int ext_prompt(); char *str, *get_str(); ! static void disp_ext(); ext_win = newwin(23, 80, 0, 0); *** old/s_gen.c Fri Nov 16 14:51:28 1990 --- s_gen.c Sun Dec 30 13:08:16 1990 *************** *** 95,98 ret_code++; } case 9: if ((ans = menu_prompt(g_win, 14, 50, "Aborted downloads", v_abort)) != NULL) { --- 95,99 ----- ret_code++; } + break; case 9: if ((ans = menu_prompt(g_win, 14, 50, "Aborted downloads", v_abort)) != NULL) { *** old/s_menu.c Fri Nov 16 14:51:28 1990 --- s_menu.c Sun Dec 30 15:39:55 1990 *************** *** 17,21 int ret_code; static int param_flag = 0, modem_flag = 0, ext_flag = 0; ! void top_line(); s_win = newwin(23, 80, 0, 0); --- 17,21 ----- int ret_code; static int param_flag = 0, modem_flag = 0, ext_flag = 0; ! static void top_line(); s_win = newwin(23, 80, 0, 0); *************** *** 142,146 */ ! void top_line(win) WINDOW *win; --- 142,146 ----- */ ! static void top_line(win) WINDOW *win; *** old/s_modem.c Fri Nov 16 14:51:29 1990 --- s_modem.c Sun Dec 30 14:10:31 1990 *************** *** 14,18 { WINDOW *mo_win, *newwin(); ! int i, j, ret_code, mod_prompt(); char *ans, *str_rep(), *str_prompt(), *menu_prompt(); void disp_modem(); --- 14,19 ----- { WINDOW *mo_win, *newwin(); ! int i, j, ret_code; ! static int mod_prompt(); char *ans, *str_rep(), *str_prompt(), *menu_prompt(); static void disp_modem(); *************** *** 16,20 int i, j, ret_code, mod_prompt(); char *ans, *str_rep(), *str_prompt(), *menu_prompt(); ! void disp_modem(); extern char *v_yn[]; /* the current modem */ --- 17,21 ----- static int mod_prompt(); char *ans, *str_rep(), *str_prompt(), *menu_prompt(); ! static void disp_modem(); extern char *v_yn[]; /* the current modem */ *************** *** 159,162 char ans; int i; /* print prompt lines */ mvwaddstr(win, 22, 0, "Press any key to change, or <CR> to accept"); --- 160,164 ----- char ans; int i; + void disp_modem(); /* print prompt lines */ mvwaddstr(win, 22, 0, "Press any key to change, or <CR> to accept"); *** old/s_tty.c Fri Nov 16 14:51:29 1990 --- s_tty.c Sun Dec 30 14:11:42 1990 *************** *** 16,21 char message[80], *str, *get_str(); int num, i, j, ret_code; ! void disp_tty(), create_modem(), del_modem(), error_win(); ! void del_tty(); tt_win = newwin(23, 80, 0, 0); --- 16,22 ----- char message[80], *str, *get_str(); int num, i, j, ret_code; ! static int tty_prompt(); ! void create_modem(), del_modem(), error_win(); ! static void disp_tty(), del_tty(); tt_win = newwin(23, 80, 0, 0); *** old/script.c Fri Nov 16 14:51:29 1990 --- script.c Thu Nov 29 19:06:17 1990 *************** *** 27,30 #ifdef BSD #include <sys/file.h> #else /* BSD */ --- 27,33 ----- #ifdef BSD + #ifndef SIGCLD + #define SIGCLD SIGCHLD + #endif /* SIGCLD */ #include <sys/file.h> #else /* BSD */ *************** *** 37,41 { extern int fd, errno; ! SIG_TYPE (*istat)(), (*qstat)(); int epid, dup_pipe[2], want_out; char buf[80], *ttyname(), *strcpy(), *path, *findfile(); --- 40,44 ----- { extern int fd, errno; ! SIG_TYPE (*istat)(), (*qstat)(), (*cstat)(); int epid, dup_pipe[2], want_out; char buf[80], *path, *findfile(); *************** *** 39,43 SIG_TYPE (*istat)(), (*qstat)(); int epid, dup_pipe[2], want_out; ! char buf[80], *ttyname(), *strcpy(), *path, *findfile(); void _exit(), error_win(), input_off(), do_input(); --- 42,46 ----- SIG_TYPE (*istat)(), (*qstat)(), (*cstat)(); int epid, dup_pipe[2], want_out; ! char buf[80], *path, *findfile(); void _exit(), error_win(), input_off(), do_input(); *************** *** 78,84 setpgrp(); #endif /* BSD */ - /* recreate the device name */ - strcpy(buf, ttyname(fd)); - close(fd); /* swap the stdin */ close(0); --- 81,84 ----- setpgrp(); #endif /* BSD */ /* swap the stdin */ close(0); *************** *** 86,101 /* swap the stdout */ close(1); ! #ifdef UNIXPC ! /* ! * Some strange things here... The OBM uses the second parameter of ! * open() to determine if the the port should be in the DATA mode or ! * the VOICE mode. Therefore, we must always open with read and write. ! */ ! if (!strncmp(buf, "/dev/ph", 7)) ! open(buf, O_RDWR); ! else ! #endif /* UNIXPC */ ! ! open(buf, O_WRONLY); #ifdef SETUGID setgid(getgid()); --- 86,90 ----- /* swap the stdout */ close(1); ! dup(fd); #ifdef SETUGID setgid(getgid()); *************** *** 108,111 istat = signal(SIGINT, SIG_IGN); qstat = signal(SIGQUIT, SIG_IGN); /* --- 97,101 ----- istat = signal(SIGINT, SIG_IGN); qstat = signal(SIGQUIT, SIG_IGN); + cstat = signal(SIGCLD, SIG_IGN); /* *************** *** 134,138 break; /* see if the process it still active */ - #ifdef BSD if ((kill(epid, 0) == -1) && errno == ESRCH) #else /* BSD */ --- 124,127 ----- break; /* see if the process it still active */ if ((kill(epid, 0) == -1) && errno == ESRCH) break; *************** *** 136,142 #ifdef BSD if ((kill(epid, 0) == -1) && errno == ESRCH) - #else /* BSD */ - if ((kill(-epid, 0) == -1) && errno == ESRCH) - #endif /* BSD */ break; } --- 125,128 ----- /* see if the process it still active */ if ((kill(epid, 0) == -1) && errno == ESRCH) break; } *************** *** 144,147 signal(SIGINT, istat); signal(SIGQUIT, qstat); /* shut down the duplication of input */ status->dup_fd = -1; --- 130,134 ----- signal(SIGINT, istat); signal(SIGQUIT, qstat); + signal(SIGCLD, cstat); /* shut down the duplication of input */ status->dup_fd = -1; *** old/terminal.c Fri Nov 16 14:51:29 1990 --- terminal.c Fri Nov 16 14:52:59 1990 *************** *** 428,431 { extern int fd; void send_str(), st_line(), line_set(); char buf[80]; --- 428,432 ----- { extern int fd; + int junk; void send_str(), st_line(), line_set(); char buf[80]; *************** *** 468,472 sleep(1); sprintf(buf, "/dev/%s", modem->tty[modem->t_cur]); ! close(open(buf, O_RDWR)); } --- 469,474 ----- sleep(1); sprintf(buf, "/dev/%s", modem->tty[modem->t_cur]); ! junk = open(buf, O_RDWR); ! close(junk); } *** old/tty_att.c Fri Nov 16 14:51:29 1990 --- tty_att.c Sun Dec 30 13:40:34 1990 *************** *** 14,18 #include "param.h" ! struct termio hold; /* --- 14,18 ----- #include "param.h" ! static struct termio hold; /* *************** *** 126,129 reset_line() { ioctl(fd, TCSETAF, &hold); return; --- 126,131 ----- reset_line() { + extern int fd; + ioctl(fd, TCSETAF, &hold); return; *** old/tty_ucb.c Fri Nov 16 14:51:30 1990 --- tty_ucb.c Sun Dec 30 13:40:40 1990 *************** *** 10,14 #include "param.h" ! struct sgttyb hold; /* --- 10,14 ----- #include "param.h" ! static struct sgttyb hold; /* *************** *** 113,116 reset_line() { ioctl(fd, TIOCSETP, &hold); return; --- 113,118 ----- reset_line() { + extern int fd; + ioctl(fd, TIOCSETP, &hold); return; *** old/vcs.c Fri Nov 16 14:51:30 1990 --- vcs.c Sun Dec 30 16:02:17 1990 *************** *** 29,33 extern int vcs_codes[NUM_VCS][VCS_SIZE], vcs_leadin[NUM_VCS]; extern int num_leadin; ! static int vcs_buf[VCS_SIZE]; static int ptr = 0; register int i; --- 29,33 ----- extern int vcs_codes[NUM_VCS][VCS_SIZE], vcs_leadin[NUM_VCS]; extern int num_leadin; ! static int vcs_buf[VCS_SIZE], match_codes(); static int ptr = 0; register int i; *************** *** 186,189 extern int vcs_leadin[NUM_VCS], num_leadin, max_row, max_col; int i, j, k, match, temp[VCS_SIZE]; char *p, *strcpy(), buf[VCS_SIZE], *getenv(); char *tparm(); /* comment out, if required */ --- 186,190 ----- extern int vcs_leadin[NUM_VCS], num_leadin, max_row, max_col; int i, j, k, match, temp[VCS_SIZE]; + static int substr(); char *p, *strcpy(), buf[VCS_SIZE], *getenv(); char *tparm(); /* comment out, if required */ *************** *** 188,192 char *p, *strcpy(), buf[VCS_SIZE], *getenv(); char *tparm(); /* comment out, if required */ ! void fake_it(); #ifdef OLDCURSES --- 189,193 ----- char *p, *strcpy(), buf[VCS_SIZE], *getenv(); char *tparm(); /* comment out, if required */ ! static void fake_it(); #ifdef OLDCURSES *************** *** 457,460 * the padding removed. */ static void fake_it(s) --- 458,462 ----- * the padding removed. */ + static void fake_it(s) *************** *** 461,465 char *s; { ! int fake_putc(); putc_cnt = 0; --- 463,467 ----- char *s; { ! static int fake_putc(); putc_cnt = 0; *** old/waitfor.c Fri Nov 16 14:51:30 1990 --- waitfor.c Sun Dec 30 15:44:51 1990 *************** *** 98,102 /* ARGSUSED */ ! static int wf_force(dummy) int dummy; --- 98,102 ----- /* ARGSUSED */ ! int wf_force(dummy) int dummy; *** old/x_ascii.c Fri Nov 16 14:51:30 1990 --- x_ascii.c Sun Dec 30 14:24:05 1990 *************** *** 23,27 int cr_lf; char *file, *strtok(); ! void send_ascii(), rcv_ascii(), line_set(), st_line(), suspend(); void load_vs(), ascii_mode(), input_off(), term_mode(); unsigned int sleep(); --- 23,27 ----- int cr_lf; char *file, *strtok(); ! void line_set(), st_line(), suspend(); void load_vs(), ascii_mode(), input_off(), term_mode(); static void send_ascii(), rcv_ascii(); *************** *** 25,28 void send_ascii(), rcv_ascii(), line_set(), st_line(), suspend(); void load_vs(), ascii_mode(), input_off(), term_mode(); unsigned int sleep(); --- 25,29 ----- void line_set(), st_line(), suspend(); void load_vs(), ascii_mode(), input_off(), term_mode(); + static void send_ascii(), rcv_ascii(); unsigned int sleep(); *************** *** 177,180 FILE *fp, *my_fopen(); int i, strip_cr, strip_lf, add_cr, add_lf, got_first; unsigned int delay; char c, buf[80]; --- 178,182 ----- FILE *fp, *my_fopen(); int i, strip_cr, strip_lf, add_cr, add_lf, got_first; + static int bgetc_line(); unsigned int delay; char c, buf[80]; *************** *** 260,264 unsigned int sec; { ! int c, bl_force(); unsigned int alarm(); --- 262,267 ----- unsigned int sec; { ! int c; ! static int buf_read(), bl_force(); unsigned int alarm(); *** old/x_batch.c Fri Nov 16 14:51:30 1990 --- x_batch.c Sun Dec 30 15:34:38 1990 *************** *** 20,24 char *name; { ! char *new_name, *fix_name(); unsigned char sum, calc_sum(); --- 20,25 ----- char *name; { ! char *new_name; ! static char *fix_name(); unsigned char sum, calc_sum(); *************** *** 85,89 unsigned char sum, calc_sum(); char temp_name[13]; ! void change_name(), unfix_name(); err_method = default_err; --- 86,90 ----- unsigned char sum, calc_sum(); char temp_name[13]; ! static void change_name(), unfix_name(); err_method = default_err; *************** *** 109,112 wrefresh(win); err_count++; case ACK: /* ready to go... */ got_it++; --- 110,114 ----- wrefresh(win); err_count++; + break; case ACK: /* ready to go... */ got_it++; *************** *** 118,121 err_count++; } } if (!got_it) --- 120,125 ----- err_count++; } + if (got_it) + break; } if (!got_it) *************** *** 229,232 int code, length_is_at; long atol(); file_length = 0L; --- 233,237 ----- int code, length_is_at; long atol(); + static void change_name(); file_length = 0L; *************** *** 261,265 */ ! void change_name(win, str) WINDOW *win; --- 266,270 ----- */ ! static void change_name(win, str) WINDOW *win; *************** *** 323,327 */ ! char * fix_name(path) char *path; --- 328,332 ----- */ ! static char * fix_name(path) char *path; *************** *** 368,372 */ ! void unfix_name(cpm_name) char *cpm_name; --- 373,377 ----- */ ! static void unfix_name(cpm_name) char *cpm_name; *************** *** 375,379 register int i, n; int dot; ! char temp[15]; file_name[0] = '\0'; --- 380,384 ----- register int i, n; int dot; ! char temp[15], *strcpy(); file_name[0] = '\0'; *** old/x_extrnl.c Fri Nov 16 14:51:30 1990 --- x_extrnl.c Thu Nov 29 19:05:22 1990 *************** *** 20,23 #ifdef BSD #include <sys/file.h> #else /* BSD */ --- 20,26 ----- #ifdef BSD + #ifndef SIGCLD + #define SIGCLD SIGCHLD + #endif /* SIGCLD */ #include <sys/file.h> #else /* BSD */ *************** *** 31,35 extern int fd, errno; WINDOW *xt_win, *newwin(); ! SIG_TYPE (*istat)(), (*qstat)(); int epid, want_out; char buf[80], *ttyname(), *strcpy(); --- 34,38 ----- extern int fd, errno; WINDOW *xt_win, *newwin(); ! SIG_TYPE (*istat)(), (*qstat)(), (*cstat)(); int epid, want_out; unsigned int sleep(); *************** *** 33,37 SIG_TYPE (*istat)(), (*qstat)(); int epid, want_out; - char buf[80], *ttyname(), *strcpy(); unsigned int sleep(); void _exit(), input_off(); --- 36,39 ----- SIG_TYPE (*istat)(), (*qstat)(), (*cstat)(); int epid, want_out; unsigned int sleep(); void _exit(), input_off(); *************** *** 40,43 /* a full window */ xt_win = newwin(LINES, COLS, 0, 0); touchwin(xt_win); wrefresh(xt_win); --- 42,46 ----- /* a full window */ xt_win = newwin(LINES, COLS, 0, 0); + nl(); touchwin(xt_win); wrefresh(xt_win); *************** *** 50,56 setpgrp(); #endif /* BSD */ - /* recreate the device name */ - strcpy(buf, ttyname(fd)); - close(fd); /* swap the stdin */ close(0); --- 53,56 ----- setpgrp(); #endif /* BSD */ /* swap the stdin */ close(0); *************** *** 55,69 /* swap the stdin */ close(0); ! #ifdef UNIXPC ! /* ! * Some strange things here... The OBM uses the second parameter of ! * open() to determine if the port should be in the DATA mode or ! * the VOICE mode. Therefore, we must always open with read and write. ! */ ! if (!strncmp(buf, "/dev/ph", 7)) ! open(buf, O_RDWR); ! else ! #endif /* UNIXPC */ ! open(buf, O_RDONLY); /* swap the stdout */ close(1); --- 55,59 ----- /* swap the stdin */ close(0); ! dup(fd); /* swap the stdout */ close(1); *************** *** 68,77 /* swap the stdout */ close(1); ! #ifdef UNIXPC ! if (!strncmp(buf, "/dev/ph", 7)) ! open(buf, O_RDWR); ! else ! #endif /* UNIXPC */ ! open(buf, O_WRONLY); #ifdef SETUGID setgid(getgid()); --- 58,62 ----- /* swap the stdout */ close(1); ! dup(fd); #ifdef SETUGID setgid(getgid()); *************** *** 83,86 istat = signal(SIGINT, SIG_IGN); qstat = signal(SIGQUIT, SIG_IGN); /* --- 68,72 ----- istat = signal(SIGINT, SIG_IGN); qstat = signal(SIGQUIT, SIG_IGN); + cstat = signal(SIGCLD, SIG_IGN); /* *************** *** 109,113 break; /* see if the process it still active */ - #ifdef BSD if ((kill(epid, 0) == -1) && errno == ESRCH) #else /* BSD */ --- 95,98 ----- break; /* see if the process it still active */ if ((kill(epid, 0) == -1) && errno == ESRCH) break; *************** *** 111,117 #ifdef BSD if ((kill(epid, 0) == -1) && errno == ESRCH) - #else /* BSD */ - if ((kill(-epid, 0) == -1) && errno == ESRCH) - #endif /* BSD */ break; } --- 96,99 ----- /* see if the process it still active */ if ((kill(epid, 0) == -1) && errno == ESRCH) break; } *************** *** 119,122 signal(SIGINT, istat); signal(SIGQUIT, qstat); /* the tty may have been clobbered */ sleep(1); --- 101,105 ----- signal(SIGINT, istat); signal(SIGQUIT, qstat); + signal(SIGCLD, cstat); /* the tty may have been clobbered */ sleep(1); *************** *** 122,125 sleep(1); fixterm(); clearok(curscr, TRUE); --- 105,109 ----- sleep(1); fixterm(); + nonl(); clearok(curscr, TRUE); *** old/x_menu.c Fri Nov 16 14:51:30 1990 --- x_menu.c Sun Dec 30 14:14:34 1990 *************** *** 21,26 extern char *null_ptr; WINDOW *xm_win, *newwin(); ! char buf[2048], *list, *get_names(), *get_extrnl(), *strcat(); ! char *strcpy(); int type, is_batch, i, ans, num_extrnl, n, ret_code; void xfer_win(), xfer_ascii(), do_extrnl(), error_win(); --- 21,26 ----- extern char *null_ptr; WINDOW *xm_win, *newwin(); ! char buf[2048], *list, *strcat(), *strcpy(); ! static char *get_names(), *get_extrnl(); int type, is_batch, i, ans, num_extrnl, n, ret_code; void xfer_win(), xfer_ascii(), do_extrnl(), error_win(); *** old/x_rcv.c Fri Nov 16 14:51:30 1990 --- x_rcv.c Sun Dec 30 14:15:17 1990 *************** *** 29,32 int i, default_err, is_batch, max_block, code, file_count, got_hdr; int hours, mins, secs, len; long block, recv, partial; float percent, performance; --- 29,33 ----- int i, default_err, is_batch, max_block, code, file_count, got_hdr; int hours, mins, secs, len; + static int send_first(); long block, recv, partial; float percent, performance; *** old/x_send.c Fri Nov 16 14:51:30 1990 --- x_send.c Sun Dec 30 14:15:56 1990 *************** *** 27,30 int small_blocks, err_count, got_it, num, is_batch, code; int max_block, default_err; long size, block, sent, xmit_size; char *file, *strtok(), *name, *strrchr(); --- 27,31 ----- int small_blocks, err_count, got_it, num, is_batch, code; int max_block, default_err; + static int rcv_first(); long size, block, sent, xmit_size; char *file, *strtok(), *name, *strrchr(); *************** *** 445,448 int i, err_count; void cancel_xfer(); err_count = 0; --- 446,450 ----- int i, err_count; void cancel_xfer(); + unsigned int sleep(); err_count = 0; *** old/xmodem.c Fri Nov 16 14:51:31 1990 --- xmodem.c Sun Dec 30 15:35:20 1990 *************** *** 101,105 { extern int fd; ! int gl_force(); char c; unsigned int alarm(); --- 101,105 ----- { extern int fd; ! static int gl_force(); char c; unsigned int alarm(); *************** *** 151,155 { extern int fd; ! int n, rl_force(); unsigned int try, alarm(); --- 151,156 ----- { extern int fd; ! int n; ! static int rl_force(); unsigned int try, alarm(); *************** *** 242,245 FILE *fp, *tempfp, *my_fopen(); register int num; char *mktemp(), tempfile[128], buf[BUFSIZ], *strcpy(); char *s, *strrchr(), *strcat(); --- 243,247 ----- FILE *fp, *tempfp, *my_fopen(); register int num; + static int uid_link(), uid_unlink(); char *mktemp(), tempfile[128], buf[BUFSIZ], *strcpy(); char *s, *strrchr(), *strcat(); *************** *** 301,304 } uid_link(path1, path2) char *path1, *path2; --- 303,307 ----- } + static int uid_link(path1, path2) char *path1, *path2; *************** *** 342,345 } uid_unlink(path) char *path; --- 345,349 ----- } + static int uid_unlink(path) char *path; End of Patch