wht@n4hgf.uucp (Warren Tucker) (01/06/91)
Submitted-by: wht@n4hgf.uucp (Warren Tucker) Posting-number: Volume 16, Issue 60 Archive-name: ecu3/patch01 Patch-To: ecu3: Volume 16, Issue 25-59 This is patch 1 to ECU 3. It provides speed improvements and fixes for non-ANSI terminal support. Also provided is an experimental make file for GCC 1.37.1 on UNIX systems. To apply, place this shar in the ECU distribution directory and unshar it. Then: 1. patch < PATCH01 2. make -or- make -f Make.xgcc 3. rm .orig or ~ files from patch when you are satisfied all is well #!/bin/sh # This is ecu3_PATCH01, a shell archive (shar 3.46) # made 01/02/1991 04:02 UTC by wht@n4hgf # Source directory /u1/src/ecu # # existing files WILL be overwritten # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 36829 -rw-r--r-- PATCH01 # 21 -rw-r--r-- patchlevel.h # 12403 -rw-r--r-- Make.xgcc # # ============= PATCH01 ============== echo 'x - extracting PATCH01 (Text)' sed 's/^X//' << 'SHAR_EOF' > 'PATCH01' && X: X#+------------------------------------------------------------------------- X# ECU 3.0 PATCH # 1 - Speed Improvements and Non-ANSI Fixes X# X# 1. Speed improvements in the receiver process have been made. X# a. memmove is used in mem_cpy (ecuutil.c); Duff's Device may be X# used if you do not have memmove (add a #define DUFF) X# b. memset is used in spaces (ecurcvr.c) X# c. #pragma intrinsic is used throughout for memset and memcpy X# (I am still suspicious/superstitious about intrinsics: X# they break badly with all but simple pointer arguments; X# I know how I use memset and memcpy; changers beware). X# X# 2. Attribute mapping with non-ANSI terminals works muuuch better X# now, as does ruling character->printable character mapping. X# X# 3. "bell notify" has been fixed to exclude the current terminal X# from getting the alarm (this used to work, but fell out somewhere) X# X# 4. various changes to make GCC happier X# X# created by gendiff x1.03 on 02 Jan 1991 03:55 UTC X#-------------------------------------------------------------------------- X*** /u4/src/ecu3/ecu.c Wed Dec 26 04:44:00 1990 X--- ecu.c Tue Jan 1 20:46:59 1991 X*************** X*** 121,126 X main() program forks to create rcvr process; then main() X becomes the xmtr process X ------------------------------------------------------------------------*/ X main(argc,argv,envp) X int argc; X char **argv; X X--- 121,127 ----- X main() program forks to create rcvr process; then main() X becomes the xmtr process X ------------------------------------------------------------------------*/ X+ int X main(argc,argv,envp) X int argc; X char **argv; X*** /u4/src/ecu3/ecu.h Mon Dec 24 22:26:00 1990 X--- ecu.h Tue Jan 1 22:52:04 1991 X*************** X*** 3,8 X wht@n4hgf.Mt-Park.GA.US X ------------------------------------------------------------------------*/ X /*+:EDITS:*/ X /*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */ X X #define ECULIBDIR "/usr/local/lib/ecu" X X--- 3,9 ----- X wht@n4hgf.Mt-Park.GA.US X ------------------------------------------------------------------------*/ X /*+:EDITS:*/ X+ /*:01-01-1991-21:36-wht@n4hgf-add GCC implies STDC */ X /*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */ X X #define ECULIBDIR "/usr/local/lib/ecu" X*************** X*** 7,12 X X #define ECULIBDIR "/usr/local/lib/ecu" X X #if defined(__STDC__) /* sigh ... malloc and such types */ X #define VTYPE void X #else X X--- 8,17 ----- X X #define ECULIBDIR "/usr/local/lib/ecu" X X+ #if defined(__GCC__) && !defined(__STDC__) X+ #define __STDC__ X+ #endif X+ X #if defined(__STDC__) /* sigh ... malloc and such types */ X #define VTYPE void X #else X*************** X*** 13,31 X #define VTYPE char X #endif X X- #if defined(M_UNIX) X- #undef M_XENIX /* we don't want this defined in UNIX world */ X- #undef NO_SELECT /* UNIX select(S) works */ X- #endif X- X- #if defined(M_I286) && !defined(NO_SELECT) X- #define NO_SELECT /* the last 286 XENIX I saw (2.2.1) had no select */ X- #endif X- X- #ifndef ECULIBDIR X- #define ECULIBDIR "/usr/lib/ecu" X- #endif X- X #if !defined(STDIO_H_INCLUDED) X #include <stdio.h> X #endif X X--- 18,23 ----- X #define VTYPE char X #endif X X #if !defined(STDIO_H_INCLUDED) X #include <stdio.h> X #endif X*************** X*** 43,48 X #include <termio.h> X #endif X X #include "ecuhangup.h" X #include "ecushm.h" X X X--- 35,55 ----- X #include <termio.h> X #endif X X+ #if defined(M_UNIX) X+ #undef M_XENIX /* we don't want this defined in UNIX world */ X+ #undef NO_SELECT /* UNIX select(S) works */ X+ #pragma intrinsic(memcpy) /* trust these intrinsics ... */ X+ #pragma intrinsic(memset) /* ... because we know how we use them */ X+ #endif X+ X+ #if defined(M_I286) && !defined(NO_SELECT) X+ #define NO_SELECT /* the last 286 XENIX I saw (2.2.1) had no select */ X+ #endif X+ X+ #ifndef ECULIBDIR X+ #define ECULIBDIR "/usr/lib/ecu" X+ #endif X+ X #include "ecuhangup.h" X #include "ecushm.h" X X*************** X*** 134,140 X char *delim; /* ending string for lgets_timeout_or_delim */ X int echo; /* echo incdoming chars to screen */ X } LRWT; X- X #include "stdio_lint.h" X #include "lint_args.h" X /* vi: set tabstop=4 shiftwidth=4: */ X X--- 141,146 ----- X char *delim; /* ending string for lgets_timeout_or_delim */ X int echo; /* echo incdoming chars to screen */ X } LRWT; X #include "stdio_lint.h" X #include "lint_args.h" X /* vi: set tabstop=4 shiftwidth=4: */ X*** /u4/src/ecu3/ecuDCE.c Mon Dec 24 22:27:00 1990 X--- ecuDCE.c Tue Jan 1 21:43:59 1991 X*************** X*** 656,661 X goto START_RCVR_PROCESS; X } X setcolor(colors_error); X CONNECT_FAILED: X pprintf("%s\n",result); X iv[0] = 1; X X--- 656,662 ----- X goto START_RCVR_PROCESS; X } X setcolor(colors_error); X+ #ifdef WHT X CONNECT_FAILED: X #endif X pprintf("%s\n",result); X*************** X*** 657,662 X } X setcolor(colors_error); X CONNECT_FAILED: X pprintf("%s\n",result); X iv[0] = 1; X DCE_report_iv_set(0); X X--- 658,664 ----- X setcolor(colors_error); X #ifdef WHT X CONNECT_FAILED: X+ #endif X pprintf("%s\n",result); X iv[0] = 1; X DCE_report_iv_set(0); X*************** X*** 749,755 X DCE_hangup(); X while(retries--) X { X- register itmp; X X #ifdef AUTO_DIAL_PROC X if(!isdigit(shm->Llogical[0]) && find_procedure(shm->Llogical)) X X--- 751,756 ----- X DCE_hangup(); X while(retries--) X { X X #ifdef AUTO_DIAL_PROC X if(!isdigit(shm->Llogical[0]) && find_procedure(shm->Llogical)) X*** /u4/src/ecu3/ecufinsert.c Mon Dec 24 22:28:00 1990 X--- ecufinsert.c Tue Jan 1 21:43:01 1991 X*************** X*** 62,67 X file_insert_clear_xoff() X { X #ifdef USE_XON_XOFF X ulong colors_at_entry = colors_current; X X lclear_xmtr_xoff(); X X--- 62,68 ----- X file_insert_clear_xoff() X { X #ifdef USE_XON_XOFF X+ #ifdef SAY_CLEARED_XOFF X ulong colors_at_entry = colors_current; X X setcolor(colors_alert); X*************** X*** 64,71 X #ifdef USE_XON_XOFF X ulong colors_at_entry = colors_current; X X- lclear_xmtr_xoff(); X- #ifdef SAY_CLEARED_XOFF X setcolor(colors_alert); X fputs("--> local XOFF cleared\r",se); X setcolor(colors_at_entry); X X--- 65,70 ----- X #ifdef SAY_CLEARED_XOFF X ulong colors_at_entry = colors_current; X X setcolor(colors_alert); X fputs("--> local XOFF cleared\r",se); X setcolor(colors_at_entry); X*************** X*** 70,75 X fputs("--> local XOFF cleared\r",se); X setcolor(colors_at_entry); X #endif X #endif X } /* end of file_insert_clear_xoff */ X X X--- 69,75 ----- X fputs("--> local XOFF cleared\r",se); X setcolor(colors_at_entry); X #endif X+ lclear_xmtr_xoff(); X #endif X } /* end of file_insert_clear_xoff */ X X*** /u4/src/ecu3/ecufork.c Mon Dec 24 22:29:00 1990 X--- ecufork.c Tue Jan 1 20:49:09 1991 X*************** X*** 59,64 X register shellpid; X register itmp; X register char *cptr; X char s40[40]; X int wait_status; X X X--- 59,65 ----- X register shellpid; X register itmp; X register char *cptr; X+ #if defined(FORK_DEBUG) X char s40[40]; X #endif X int wait_status; X*************** X*** 60,65 X register itmp; X register char *cptr; X char s40[40]; X int wait_status; X X int rcvr_alive = (rcvr_pid > 0); X X--- 61,67 ----- X register char *cptr; X #if defined(FORK_DEBUG) X char s40[40]; X+ #endif X int wait_status; X X int rcvr_alive = (rcvr_pid > 0); X*************** X*** 237,243 X int rcvr_alive = (rcvr_pid > 0); X int old_ttymode = get_ttymode(); X int wait_status = 0; X- extern int errno; X char *strrchr(); X X #if defined(FORK_DEBUG) X X--- 239,244 ----- X int rcvr_alive = (rcvr_pid > 0); X int old_ttymode = get_ttymode(); X int wait_status = 0; X char *strrchr(); X X #if defined(FORK_DEBUG) X*** /u4/src/ecu3/ecuicmhelp.c Mon Dec 24 22:29:00 1990 X--- ecuicmhelp.c Tue Jan 1 21:51:29 1991 X*************** X*** 318,324 X char **arg; X { X register char *cptr; X- char s128[128]; X char *getenv(); X X ff(se,"\r\n"); X X--- 318,323 ----- X char **arg; X { X register char *cptr; X char *getenv(); X X ff(se,"\r\n"); X*** /u4/src/ecu3/ecuicmhist.c Mon Dec 24 22:29:00 1990 X--- ecuicmhist.c Tue Jan 1 21:51:30 1991 X*************** X*** 52,58 X X if(!icmdh) X return; X! if(!(icmdh->icmd = strdup(icmd_buf))) X { X free((char *)icmdh); X return; X X--- 52,58 ----- X X if(!icmdh) X return; X! if(!(icmdh->icmd = (uchar *)strdup(icmd_buf))) X { X free((char *)icmdh); X return; X*** /u4/src/ecu3/eculine.c Mon Dec 24 22:30:00 1990 X--- eculine.c Tue Jan 1 21:44:36 1991 X*************** X*** 69,78 X uint rchar; X register int echo; X { X- extern int rcvr_log; X- extern FILE *rcvr_log_fp; X- extern char rcvr_log_file[]; /* if rcvr_log!= 0,log filename */ X- X if(process_rcvd_char(rchar)) X return; X X X--- 69,74 ----- X uint rchar; X register int echo; X { X if(process_rcvd_char(rchar)) X return; X X*** /u4/src/ecu3/ecuphone.c Mon Dec 24 22:32:00 1990 X--- ecuphone.c Tue Jan 1 21:51:31 1991 X*************** X*** 588,593 X (pde_marked_for_redial_count == 1) ? "y" : "ies"); X wstandend(dirw); X } X } /* end of dirw_display_config */ X X /*+----------------------------------------------------------------------- X X--- 588,594 ----- X (pde_marked_for_redial_count == 1) ? "y" : "ies"); X wstandend(dirw); X } X+ return(0); X } /* end of dirw_display_config */ X X /*+----------------------------------------------------------------------- X*************** X*** 1010,1016 X void X pde_cmd_down() X { X- register itmp; X register PDE *tpde; X X if((!curr_pde) || (curr_pde->next == (PDE *)0)) X X--- 1011,1016 ----- X void X pde_cmd_down() X { X register PDE *tpde; X X if((!curr_pde) || (curr_pde->next == (PDE *)0)) X*************** X*** 1051,1056 X pde_add_or_edit_read(prompt,edit,x,buf,max,delim) X max must not wrap around to another line X --------------------------------------------------------------------------*/ X pde_add_or_edit_read(prompt,edit,x,buf,max,delim) X char *prompt; X int edit; X X--- 1051,1057 ----- X pde_add_or_edit_read(prompt,edit,x,buf,max,delim) X max must not wrap around to another line X --------------------------------------------------------------------------*/ X+ void X pde_add_or_edit_read(prompt,edit,x,buf,max,delim) X char *prompt; X int edit; X*************** X*** 1115,1121 X register PDE *tpde; X int edit; X { X- register itmp; X int input_state = 0; X int changed; X char s50[50]; X X--- 1116,1121 ----- X register PDE *tpde; X int edit; X { X int input_state = 0; X int changed; X char s50[50]; X*************** X*** 1320,1327 X pde_cmd_add(tpde) X register PDE *tpde; X { X- register itmp; X- X if(tpde) X { X pde_list_add(tpde); X X--- 1320,1325 ----- X pde_cmd_add(tpde) X register PDE *tpde; X { X if(tpde) X { X pde_list_add(tpde); X*************** X*** 1436,1443 X void X pde_cmd_remove() X { X- register itmp; X- register PDE *tpde; X char s80[80]; X X if(!check_curr_pde()) X X--- 1434,1439 ----- X void X pde_cmd_remove() X { X char s80[80]; X X if(!check_curr_pde()) X*************** X*** 1466,1472 X void X pde_cmd_find() X { X- register itmp; X register PDE *tpde; X char findname[12]; X char delim; X X--- 1462,1467 ----- X void X pde_cmd_find() X { X register PDE *tpde; X char findname[12]; X char delim; X*************** X*** 1495,1500 X /*+------------------------------------------------------------------------- X pde_cmd_change_dir() X --------------------------------------------------------------------------*/ X pde_cmd_change_dir() X { X register itmp; X X--- 1490,1496 ----- X /*+------------------------------------------------------------------------- X pde_cmd_change_dir() X --------------------------------------------------------------------------*/ X+ void X pde_cmd_change_dir() X { X int itmp; X*************** X*** 1497,1504 X --------------------------------------------------------------------------*/ X pde_cmd_change_dir() X { X! register itmp; X! register PDE *tpde; X char newdirname[256]; X char buf[256]; X char delim; X X--- 1493,1499 ----- X void X pde_cmd_change_dir() X { X! int itmp; X char newdirname[256]; X char buf[256]; X char delim; X*************** X*** 1528,1535 X } X if(find_shell_chars(newdirname)) X { X- char *expcmd; X- X if(expand_cmd_with_wildlist(newdirname,&expcmd)) X { X dirw_bot_msg(expcmd); X X--- 1523,1528 ----- X } X if(find_shell_chars(newdirname)) X { X if(expand_cmd_with_wildlist(newdirname,&expcmd)) X { X dirw_bot_msg(expcmd); X*************** X*** 1724,1729 X /*+------------------------------------------------------------------------- X pde_cmd_set_wait() X --------------------------------------------------------------------------*/ X pde_cmd_set_wait() X { X char buf[64]; X X--- 1717,1723 ----- X /*+------------------------------------------------------------------------- X pde_cmd_set_wait() X --------------------------------------------------------------------------*/ X+ void X pde_cmd_set_wait() X { X char buf[64]; X*** /u4/src/ecu3/ecurcvr.c Wed Dec 26 05:15:00 1990 X--- ecurcvr.c Tue Jan 1 21:02:41 1991 X*************** X*** 8,20 X /* #define ANSI_DEBUG_NOBUF */ /* unbufferred logging */ X /* #define ANSI_DEBUG_LOGFILE "/dev/tty2h" */ X /* #define DEBUG_CURSOR */ X- #ifdef TEMP_HACK X- #define ANSI_DEBUG X- #define ANSI_DEBUG_2 X- #define ANSI_DEBUG_3 X- #define ANSI_DEBUG_LOGFILE "/t/ansi.log" X- #endif X- X /*+------------------------------------------------------------------------- X ecurcvr.c - rcvr process + ANSI filter + non-ANSI<->ANSI hoop jumping X wht@n4hgf.Mt-Park.GA.US X X--- 8,13 ----- X /* #define ANSI_DEBUG_NOBUF */ /* unbufferred logging */ X /* #define ANSI_DEBUG_LOGFILE "/dev/tty2h" */ X /* #define DEBUG_CURSOR */ X /*+------------------------------------------------------------------------- X ecurcvr.c - rcvr process + ANSI filter + non-ANSI<->ANSI hoop jumping X wht@n4hgf.Mt-Park.GA.US X*************** X*** 56,61 X X --------------------------------------------------------------------------*/ X /*+:EDITS:*/ X /*:12-21-1990-21:06-wht@n4hgf-CUF and CUB set non-ansi cursor incorrectly */ X /*:12-20-1990-16:27-wht@n4hgf-had SU and SD swapped */ X /*:11-30-1990-18:39-wht@n4hgf-non-ansi console rcvr appears to be working */ X X--- 49,55 ----- X X --------------------------------------------------------------------------*/ X /*+:EDITS:*/ X+ /*:12-26-1990-14:32-wht@n4hgf-use memset in spaces() */ X /*:12-21-1990-21:06-wht@n4hgf-CUF and CUB set non-ansi cursor incorrectly */ X /*:12-20-1990-16:27-wht@n4hgf-had SU and SD swapped */ X /*:11-30-1990-18:39-wht@n4hgf-non-ansi console rcvr appears to be working */ X*************** X*** 100,105 X FILE *wfp = (FILE *)0; X #endif X X /*+------------------------------------------------------------------------- X redisplay_rcvr_screen() - redisplay logical receiver screen X As of writing, this function is called only by the XMTR process X X--- 94,120 ----- X FILE *wfp = (FILE *)0; X #endif X X+ extern int tty_is_multiscreen; X+ uchar non_multiscreen_hi_map[128] = X+ { X+ /*80*/ 'c','u','e','a','a','a','a','c', /* the main purpose of this ... */ X+ /*88*/ 'e','e','e','i','i','i','a','a', /* ... is to map ruling ... */ X+ /*90*/ 'e','e','a','a','a','o','u','u', /* ... characters, but as ...*/ X+ /*98*/ 'y','o','u','X','#','Y','P','f', /* ... a side effect, also map ... */ X+ /*A0*/ 'a','i','o','u','n','n','a','o', /* ... others to reasonable, ... */ X+ /*A8*/ '?','-','-','%','%','|','<','>', /* ... near, amusing, or random ... */ X+ /*B0*/ '#','#','#','|','+','+','+','.', /* ... printing characters as well */ X+ /*B8*/ '.','+','|','.','\'','\'','\'','.', X+ /*C0*/ '`','+','+','+','-','+','+','+', X+ /*C8*/ '`','.','+','+','+','=','+','+', X+ /*D0*/ '+','+','+','`','`','.','.','+', X+ /*D8*/ '+','\'','.','#','_','|','|','-', X+ /*E0*/ 'a','b','F','T','E','o','u','t', X+ /*E8*/ 'I','0','O','o','o','o','e','n', X+ /*F0*/ '=','+','>','<','f','j','%','=', X+ /*F8*/ 'o','.','.','V','n','2','*',' ' X+ }; X+ X /*+------------------------------------------------------------------------- X redisplay_rcvr_screen() - redisplay logical receiver screen X As of writing, this function is called only by the XMTR process X*************** X*** 115,122 X { X tcap_cursor(y,0); X fwrite(&shm->screen[y][0], X! ((y != tcap_LINES - 1) ? tcap_COLS : tcap_COLS - 1), X! 1,se); X } X tcap_eeol(); X tcap_cursor(shm->cursor_y,shm->cursor_x); X X--- 130,136 ----- X { X tcap_cursor(y,0); X fwrite(&shm->screen[y][0], X! ((y != tcap_LINES - 1) ? tcap_COLS : tcap_COLS - 1),1,se); X } X tcap_eeol(); X tcap_cursor(shm->cursor_y,shm->cursor_x); X*************** X*** 143,148 X X /*+------------------------------------------------------------------------- X spaces(buf,buflen) - fill with spaces X --------------------------------------------------------------------------*/ X void X spaces(buf,buflen) X X--- 157,164 ----- X X /*+------------------------------------------------------------------------- X spaces(buf,buflen) - fill with spaces X+ X+ use Duff's Device X --------------------------------------------------------------------------*/ X void X spaces(buf,buflen) X*************** X*** 147,153 X void X spaces(buf,buflen) X register uchar *buf; X! register uint buflen; X { X #ifdef DEBUG_CURSOR X if((ulong)buf > (((ulong)shm->screen) + LINESxCOLS)) X X--- 163,169 ----- X void X spaces(buf,buflen) X register uchar *buf; X! uint buflen; X { X #ifdef DEBUG_CURSOR X if((ulong)buf > (((ulong)shm->screen) + LINESxCOLS)) X*************** X*** 170,177 X return; X #endif X X! while(buflen--) X! *buf++ = ' '; X } /* end of spaces */ X X /*+------------------------------------------------------------------------- X X--- 186,193 ----- X return; X #endif X X! memset(buf,SPACE,buflen); X! X } /* end of spaces */ X X /*+------------------------------------------------------------------------- X*************** X*** 235,241 X X if(!tty_is_ansi) X { X! cptr = ansibuf; X while(token = str_token(cptr,";")) X { X cptr = (char *)0; /* further calls to str_token need NULL */ X X--- 251,260 ----- X X if(!tty_is_ansi) X { X! ansibuf[ansilen - 1] = 0; /* get rid of 'm' */ X! cptr = ansibuf + 1; /* get rid of '[' */ X! if(!strlen(cptr)) X! goto SGR_0; X while(token = str_token(cptr,";")) X { X cptr = (char *)0; /* further calls to str_token need NULL */ X*************** X*** 242,247 X switch(atoi(token)) X { X case 0: /* normal */ X tcap_stand_end(); X tcap_blink_off(); X tcap_underscore_off(); X X--- 261,267 ----- X switch(atoi(token)) X { X case 0: /* normal */ X+ SGR_0: X tcap_stand_end(); X tcap_blink_off(); X tcap_underscore_off(); X*************** X*** 1069,1074 X /*+------------------------------------------------------------------------- X process_rcvd_char(rchar) X --------------------------------------------------------------------------*/ X process_rcvd_char(rchar) X register uint rchar; X { X X--- 1089,1095 ----- X /*+------------------------------------------------------------------------- X process_rcvd_char(rchar) X --------------------------------------------------------------------------*/ X+ int X process_rcvd_char(rchar) X register uint rchar; X { X*************** X*** 1213,1219 X void X rcvr() X { X- register itmp; X uchar rchar; X uchar nlchar = NL; X char *cptr; X X--- 1234,1239 ----- X void X rcvr() X { X uchar rchar; X uchar nlchar = NL; X X*************** X*** 1216,1222 X register itmp; X uchar rchar; X uchar nlchar = NL; X- char *cptr; X X #ifdef ANSI_DEBUG X char s80[80]; X X--- 1236,1241 ----- X { X uchar rchar; X uchar nlchar = NL; X X #ifdef ANSI_DEBUG X char s80[80]; X*************** X*** 1255,1261 X saved_cursor_y = shm->cursor_y; X saved_cursor_x = shm->cursor_x; X X! while(1) /* receive loop - keep tight as possible! */ X { X rchar = lgetc_rcvr(); X X X--- 1274,1281 ----- X saved_cursor_y = shm->cursor_y; X saved_cursor_x = shm->cursor_x; X X! /* receive loop - keep tight as possible! */ X! if(tty_is_multiscreen) X { X while(1) X { X*************** X*** 1257,1263 X X while(1) /* receive loop - keep tight as possible! */ X { X! rchar = lgetc_rcvr(); X X if(process_rcvd_char(rchar)) X continue; X X--- 1277,1285 ----- X /* receive loop - keep tight as possible! */ X if(tty_is_multiscreen) X { X! while(1) X! { X! rchar = lgetc_rcvr(); X X if(process_rcvd_char(rchar)) X continue; X*************** X*** 1259,1266 X { X rchar = lgetc_rcvr(); X X! if(process_rcvd_char(rchar)) X! continue; X X write(TTYERR,&rchar,1); X X X--- 1281,1288 ----- X { X rchar = lgetc_rcvr(); X X! if(process_rcvd_char(rchar)) X! continue; X X write(TTYERR,&rchar,1); X X*************** X*** 1262,1268 X if(process_rcvd_char(rchar)) X continue; X X! write(TTYERR,&rchar,1); X X if(shm->Ladd_nl_incoming && (rchar == CR)) X write(TTYERR,&nlchar,1); X X--- 1284,1290 ----- X if(process_rcvd_char(rchar)) X continue; X X! write(TTYERR,&rchar,1); X X if(shm->Ladd_nl_incoming && (rchar == CR)) X write(TTYERR,&nlchar,1); X*************** X*** 1264,1271 X X write(TTYERR,&rchar,1); X X! if(shm->Ladd_nl_incoming && (rchar == CR)) X! write(TTYERR,&nlchar,1); X X } X } /* end of rcvr */ X X--- 1286,1300 ----- X X write(TTYERR,&rchar,1); X X! if(shm->Ladd_nl_incoming && (rchar == CR)) X! write(TTYERR,&nlchar,1); X! } X! } X! else X! { X! while(1) X! { X! rchar = lgetc_rcvr(); X X if(rchar >= 0x80) X rchar = non_multiscreen_hi_map[rchar - 0x80]; X*************** X*** 1267,1272 X if(shm->Ladd_nl_incoming && (rchar == CR)) X write(TTYERR,&nlchar,1); X X } X } /* end of rcvr */ X X X--- 1296,1312 ----- X { X rchar = lgetc_rcvr(); X X+ if(rchar >= 0x80) X+ rchar = non_multiscreen_hi_map[rchar - 0x80]; X+ X+ if(process_rcvd_char(rchar)) X+ continue; X+ X+ write(TTYERR,&rchar,1); X+ X+ if(shm->Ladd_nl_incoming && (rchar == CR)) X+ write(TTYERR,&nlchar,1); X+ } X } X } /* end of rcvr */ X X*** /u4/src/ecu3/ecushm.c Mon Dec 24 22:33:00 1990 X--- ecushm.c Tue Jan 1 21:03:03 1991 X*************** X*** 108,113 X shmx_rc_report(prcvr_chars,prcvr_chars_this_connect) X xmtr calls to get rcvr stats X --------------------------------------------------------------------------*/ X shmx_rc_report(prcvd_chars,prcvd_chars_this_connect) X long *prcvd_chars; X long *prcvd_chars_this_connect; X X--- 108,114 ----- X shmx_rc_report(prcvr_chars,prcvr_chars_this_connect) X xmtr calls to get rcvr stats X --------------------------------------------------------------------------*/ X+ void X shmx_rc_report(prcvd_chars,prcvd_chars_this_connect) X long *prcvd_chars; X long *prcvd_chars_this_connect; X*** /u4/src/ecu3/ecusighdl.c Mon Dec 24 22:33:00 1990 X--- ecusighdl.c Tue Jan 1 21:06:57 1991 X*************** X*** 73,78 X start_rcvr_process(notify_flag) X int notify_flag; X { X char s40[40]; X extern ulong colors_current; X ulong colors_at_entry = colors_current; X X--- 73,79 ----- X start_rcvr_process(notify_flag) X int notify_flag; X { X+ #if defined(FORK_DEBUG) X char s40[40]; X #endif X extern ulong colors_current; X*************** X*** 74,79 X int notify_flag; X { X char s40[40]; X extern ulong colors_current; X ulong colors_at_entry = colors_current; X X X--- 75,81 ----- X { X #if defined(FORK_DEBUG) X char s40[40]; X+ #endif X extern ulong colors_current; X ulong colors_at_entry = colors_current; X X*************** X*** 115,127 X xmtr_signals(); X return(rcvr_pid); X } X! else X! { X! rcvr_pid = -1; /* no receiver active */ X! ff(se,"\r\n\ncould not fork for receive\r\n"); X! hangup(HANGUP_NO_FORK_FOR_RCVR); X! /*NOTREACHED*/ X! } X } /* end of start_rcvr_process */ X X /*+----------------------------------------------------------------------- X X--- 117,127 ----- X xmtr_signals(); X return(rcvr_pid); X } X! rcvr_pid = -1; /* no receiver active */ X! ff(se,"\r\n\ncould not fork for receive\r\n"); X! hangup(HANGUP_NO_FORK_FOR_RCVR); X! /*NOTREACHED*/ X! X } /* end of start_rcvr_process */ X X /*+----------------------------------------------------------------------- X*** /u4/src/ecu3/ecutty.c Mon Dec 24 22:34:00 1990 X--- ecutty.c Tue Jan 1 22:08:07 1991 X*************** X*** 69,75 X XFhome /* KDEk_HOME */ X }; X X! static char *dole_out_rd_char = (char *)0; X X extern int interrupt; X extern uint tcap_LINES; X X--- 69,75 ----- X XFhome /* KDEk_HOME */ X }; X X! static uchar *dole_out_rd_char = (uchar *)0; X X extern int interrupt; X extern uint tcap_LINES; X*************** X*** 561,567 X ioctl(TTYIN,TCXONC,(char *)1); /* restart tty output */ X X #if defined(M_XENIX) || defined(M_UNIX) X! dole_out_rd_char = (char *)0; /* see ttygetc() */ X #endif X X } /* end of ttyflush */ X X--- 561,567 ----- X ioctl(TTYIN,TCXONC,(char *)1); /* restart tty output */ X X #if defined(M_XENIX) || defined(M_UNIX) X! dole_out_rd_char = (uchar *)0; /* see ttygetc() */ X #endif X X } /* end of ttyflush */ X*************** X*** 590,596 X X if(dole_out_rd_char) /* handle (very unlikely) FAST typist */ X { X! if(itmp = *dole_out_rd_char++) X return(itmp); X else X dole_out_rd_char = (char *)0; X X--- 590,596 ----- X X if(dole_out_rd_char) /* handle (very unlikely) FAST typist */ X { X! if(itmp = (uint)*dole_out_rd_char++) X return(itmp); X else X dole_out_rd_char = (uchar *)0; X*************** X*** 593,599 X if(itmp = *dole_out_rd_char++) X return(itmp); X else X! dole_out_rd_char = (char *)0; X } X X GET_KEY: X X--- 593,599 ----- X if(itmp = (uint)*dole_out_rd_char++) X return(itmp); X else X! dole_out_rd_char = (uchar *)0; X } X X GET_KEY: X*** /u4/src/ecu3/ecuutil.c Mon Dec 24 22:35:00 1990 X--- ecuutil.c Tue Jan 1 22:18:37 1991 X*************** X*** 31,36 X X ------------------------------------------------------------------------*/ X /*+:EDITS:*/ X /*:12-04-1990-00:58-wht@n4hgf-allow alternating between str/arg_token */ X /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */ X X X--- 31,37 ----- X X ------------------------------------------------------------------------*/ X /*+:EDITS:*/ X+ /*:12-26-1990-14:32-wht@n4hgf-use memmove or Duff's Device in mem_cpy() */ X /*:12-04-1990-00:58-wht@n4hgf-allow alternating between str/arg_token */ X /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */ X X*************** X*** 52,57 X X /*+------------------------------------------------------------------------- X mem_cpy(dest,src,len) - memcpy() with non-destructive overlapping copy X --------------------------------------------------------------------------*/ X void X mem_cpy(dest,src,len) X X--- 53,60 ----- X X /*+------------------------------------------------------------------------- X mem_cpy(dest,src,len) - memcpy() with non-destructive overlapping copy X+ X+ use Duff's device for speed if memmove not available X --------------------------------------------------------------------------*/ X void X mem_cpy(dest,src,len) X*************** X*** 59,64 X register char *src; X register len; X { X if(dest > src) X { X dest += len; X X--- 62,71 ----- X register char *src; X register len; X { X+ #ifndef DUFF X+ memmove(dest,src,len); X+ #else /* for systems without memmove */ X+ register itmp = (len + 7) / 8; X if(dest > src) X { X dest += len; X*************** X*** 63,70 X { X dest += len; X src += len; X! while(len--) X! *--dest = *--src; X } X else X { X X--- 70,87 ----- X { X dest += len; X src += len; X! switch(len % 8) X! { X! case 0: do{ *--dest = *--src; X! case 7: *--dest = *--src; X! case 6: *--dest = *--src; X! case 5: *--dest = *--src; X! case 4: *--dest = *--src; X! case 3: *--dest = *--src; X! case 2: *--dest = *--src; X! case 1: *--dest = *--src; X! }while (--itmp > 0); X! } X } X else X { X*************** X*** 68,75 X } X else X { X! while(len--) X! *dest++ = *src++; X } X } /* end of mem_cpy */ X X X--- 85,102 ----- X } X else X { X! switch(len % 8) X! { X! case 0: do{ *dest++ = *src++; X! case 7: *dest++ = *src++; X! case 6: *dest++ = *src++; X! case 5: *dest++ = *src++; X! case 4: *dest++ = *src++; X! case 3: *dest++ = *src++; X! case 2: *dest++ = *src++; X! case 1: *dest++ = *src++; X! }while (--itmp > 0); X! } X } X #endif X } /* end of mem_cpy */ X*************** X*** 71,76 X while(len--) X *dest++ = *src++; X } X } /* end of mem_cpy */ X X /*+------------------------------------------------------------------------- X X--- 98,104 ----- X }while (--itmp > 0); X } X } X+ #endif X } /* end of mem_cpy */ X X /*+------------------------------------------------------------------------- X*************** X*** 74,80 X } /* end of mem_cpy */ X X /*+------------------------------------------------------------------------- X! errno_text(errno) X --------------------------------------------------------------------------*/ X char * X errno_text(errno) X X--- 102,108 ----- X } /* end of mem_cpy */ X X /*+------------------------------------------------------------------------- X! errno_text(err_no) X --------------------------------------------------------------------------*/ X char * X errno_text(err_no) X*************** X*** 77,84 X errno_text(errno) X --------------------------------------------------------------------------*/ X char * X! errno_text(errno) X! int errno; X { X static char errant[16]; X X X--- 105,112 ----- X errno_text(err_no) X --------------------------------------------------------------------------*/ X char * X! errno_text(err_no) X! int err_no; X { X static char errant[16]; X X*************** X*** 82,88 X { X static char errant[16]; X X! switch(errno) X { X case 0: return("0"); X case EPERM: return("EPERM"); X X--- 110,116 ----- X { X static char errant[16]; X X! switch(err_no) X { X case 0: return("0"); X case EPERM: return("EPERM"); X*************** X*** 195,202 X char *parsestr; X char *termchars; X { X- register int first = 1; X- register char *termptr; X register char *parseptr; X char *token; X X X--- 223,228 ----- X char *parsestr; X char *termchars; X { X register char *parseptr; X char *token; X X*** /u4/src/ecu3/ecuwinutil.c Mon Dec 24 22:36:00 1990 X--- ecuwinutil.c Tue Jan 1 21:51:32 1991 X*************** X*** 113,131 X #endif X windows_active = 1; X X- #ifdef WHT X- if(!tty_is_ansi) X- { X- sTL = vanilla_TL; X- sTR = vanilla_TR; X- sBL = vanilla_BL; X- sBR = vanilla_BR; X- sLT = vanilla_LT; X- sRT = vanilla_RT; X- sVR = vanilla_VR; X- sHR = vanilla_HR; X- } X- #else X if(!tty_is_multiscreen) X { X sTL = vanilla_TL; X X--- 113,118 ----- X #endif X windows_active = 1; X X if(!tty_is_multiscreen) X { X sTL = vanilla_TL; X*************** X*** 137,143 X sVR = vanilla_VR; X sHR = vanilla_HR; X } X- #endif X X } /* end of windows_start */ X X X--- 124,129 ----- X sVR = vanilla_VR; X sHR = vanilla_HR; X } X X } /* end of windows_start */ X X*** /u4/src/ecu3/ecuxenix.c Mon Dec 24 22:36:00 1990 X--- ecuxenix.c Tue Jan 1 21:35:04 1991 X*************** X*** 327,333 X int morse_frequency = 600; X char morse_char; X static int morse_ticks = 0; X- extern int errno; X X if(!tty_is_multiscreen) X { X X--- 327,332 ----- X int morse_frequency = 600; X char morse_char; X static int morse_ticks = 0; X X if(!tty_is_multiscreen) X { X*************** X*** 332,338 X if(!tty_is_multiscreen) X { X ring_bell(); X! return; X } X X if(!morse_ticks) X X--- 331,337 ----- X if(!tty_is_multiscreen) X { X ring_bell(); X! return(0); X } X X if(!morse_ticks) X*************** X*** 403,410 X X /*+------------------------------------------------------------------------- X bell_alarm(xbell_type) X! Under XENIX 2.2.1, ring bell on multiscreens; X! if morse driver included, use it X --------------------------------------------------------------------------*/ X int X bell_alarm(xbell_type) X X--- 402,408 ----- X X /*+------------------------------------------------------------------------- X bell_alarm(xbell_type) X! ring bell on multiscreens; if morse driver included, use it instead X --------------------------------------------------------------------------*/ X int X bell_alarm(xbell_type) X*************** X*** 413,419 X register notify_fd; X register fork_pid; X static long notify_time = 0L; X! char *ttname; X char devname[64]; X int devnum; X int ttnum; X X--- 411,417 ----- X register notify_fd; X register fork_pid; X static long notify_time = 0L; X! char *get_ttyname(); X char devname[64]; X int devnum; X int ttnum; X*************** X*** 422,428 X if(!tty_is_multiscreen) X { X ring_bell(); X! return; X } X X /* if happened less than 15 secs ago, forget it */ X X--- 420,426 ----- X if(!tty_is_multiscreen) X { X ring_bell(); X! return(0); X } X X ttnum = atoi(get_ttyname() + 8); X*************** X*** 425,430 X return; X } X X /* if happened less than 15 secs ago, forget it */ X if((time((long *)0) - notify_time) < 15L) X return(0); X X--- 423,430 ----- X return(0); X } X X+ ttnum = atoi(get_ttyname() + 8); X+ X /* if happened less than 15 secs ago, forget it */ X if((time((long *)0) - notify_time) < 15L) X return(0); X*************** X*** 460,465 X #if defined(MORSE) X } X #endif X } /* end of bell_alarm */ X X /*+------------------------------------------------------------------------- X X--- 460,466 ----- X #if defined(MORSE) X } X #endif X+ /*NOTREACHED*/ X } /* end of bell_alarm */ X X /*+------------------------------------------------------------------------- X*************** X*** 570,576 X { X register itmp; X register char *cptr; X- int iarg; X int mode = atoi(arg[1]); X LRWT lr; X char buf[1024]; X X--- 571,576 ----- X { X register itmp; X register char *cptr; X int mode = atoi(arg[1]); X LRWT lr; X char buf[1024]; X*** /u4/src/ecu3/ecuxfer.c Mon Dec 24 22:37:00 1990 X--- ecuxfer.c Tue Jan 1 21:51:33 1991 X*************** X*** 212,218 X } /* end of xfrw_get_single */ X X /*+------------------------------------------------------------------------- X! xfer_title_fragment(xfertype) X --------------------------------------------------------------------------*/ X char * X xfer_title_fragment() X X--- 212,218 ----- X } /* end of xfrw_get_single */ X X /*+------------------------------------------------------------------------- X! xfer_title_fragment() X --------------------------------------------------------------------------*/ X char * X xfer_title_fragment() X*************** X*** 866,872 X { X register itmp; X char execcmd[256]; X- int xfertype; X char bottom_label[64]; X X sprintf(bottom_label,"-C 'Connected to %s' ", X X--- 866,871 ----- X { X register itmp; X char execcmd[256]; X char bottom_label[64]; X X sprintf(bottom_label,"-C 'Connected to %s' ", X*** /u4/src/ecu3/hdbintf.c Mon Dec 24 22:39:00 1990 X--- hdbintf.c Tue Jan 1 22:22:14 1991 X*************** X*** 65,70 X ungetty_get_line() X { X int itmp; X char ungetty_log[80]; X int ungetty_pid; X int (*original_sighdlr)(); X X--- 65,71 ----- X ungetty_get_line() X { X int itmp; X+ #if defined(LOG_UNGETTY) X char ungetty_log[80]; X #endif X int ungetty_pid; X*************** X*** 66,71 X { X int itmp; X char ungetty_log[80]; X int ungetty_pid; X int (*original_sighdlr)(); X int wait_status; X X--- 67,73 ----- X int itmp; X #if defined(LOG_UNGETTY) X char ungetty_log[80]; X+ #endif X int ungetty_pid; X int (*original_sighdlr)(); X int wait_status; X*************** X*** 354,360 X getdlent() X { X int itmp; X- char *cptr; X #define MAX_DL_TOKENS 3 X char *tokens[MAX_DL_TOKENS]; X static struct dlent dle; X X--- 356,361 ----- X getdlent() X { X int itmp; X #define MAX_DL_TOKENS 3 X char *tokens[MAX_DL_TOKENS]; X static struct dlent dle; X*** /u4/src/ecu3/lint_args.h Mon Dec 24 22:47:00 1990 X--- lint_args.h Tue Jan 1 21:03:21 1991 X*************** X*** 135,143 X int dirw_display_config(void); X int lookup_logical_telno(void); X int pde_add_or_edit(struct phone_directory_entry *,int ); X! int pde_add_or_edit_read(char *,int ,int ,char *,int ,char *); X! int pde_cmd_change_dir(void); X! int pde_cmd_set_wait(void); X int pde_dial(struct phone_directory_entry *); X int pde_dial_cycle(void); X int pde_display(int ,struct phone_directory_entry *,int ); X X--- 135,143 ----- X int dirw_display_config(void); X int lookup_logical_telno(void); X int pde_add_or_edit(struct phone_directory_entry *,int ); X! void pde_add_or_edit_read(char *,int ,int ,char *,int ,char *); X! void pde_cmd_change_dir(void); X! void pde_cmd_set_wait(void); X int pde_dial(struct phone_directory_entry *); X int pde_dial_cycle(void); X int pde_display(int ,struct phone_directory_entry *,int ); X*************** X*** 224,230 X void setw_msg(char *,int ,char ,int *); X /* ecushm.c */ X int shm_init(void); X! int shmx_rc_report(long *,long *); X void shm_done(void); X void shmr_process_rcvr_SIGUSR2(void); X void shmr_set_xmtr_bn_1(void); X X--- 224,230 ----- X void setw_msg(char *,int ,char ,int *); X /* ecushm.c */ X int shm_init(void); X! void shmx_rc_report(long *,long *); X void shm_done(void); X void shmr_process_rcvr_SIGUSR2(void); X void shmr_set_xmtr_bn_1(void); SHAR_EOF chmod 0644 PATCH01 || echo 'restore of PATCH01 failed' Wc_c="`wc -c < 'PATCH01'`" test 36829 -eq "$Wc_c" || echo 'PATCH01: original size 36829, current size' "$Wc_c" # ============= patchlevel.h ============== echo 'x - extracting patchlevel.h (Text)' sed 's/^X//' << 'SHAR_EOF' > 'patchlevel.h' && X#define PATCHLEVEL 1 SHAR_EOF chmod 0644 patchlevel.h || echo 'restore of patchlevel.h failed' Wc_c="`wc -c < 'patchlevel.h'`" test 21 -eq "$Wc_c" || echo 'patchlevel.h: original size 21, current size' "$Wc_c" # ============= Make.xgcc ============== echo 'x - extracting Make.xgcc (Text)' sed 's/^X//' << 'SHAR_EOF' > 'Make.xgcc' && X# CHK=0xF880 X#+------------------------------------------------------------------- X# GCC Make.xgcc for ecu and related programs X# wht@n4hgf.Mt-Park.GA.US X# X# This is an experimental make file for GCC 1.37.1 for UNIX 386 only X# only ECU is made with GCC; the other make files will use (MSC) cc X# X# -traditional is used over -ansi because of at least the following X# 1. SCO's curses.h file contains an apostrophe in a #error X# pseudo-statement and gcc barfs on it (even though the statement X# is not included) X# X# 2. gcc complains about passing an unsigned char * to strlen(); yuk X#-------------------------------------------------------------------- X#+:EDITS:*/ X#:01-01-1991-20:30-wht@n4hgf-creation X XSHELL=/bin/sh XCC = gcc X X#-------------------- configurable parameters ----------------------- X#--> set LBIN to your local bin directory path XLBIN = /usr/local/bin X X#--> set ECUBINDIR to the desired location of the ecu library X# directory (normally /usr/lib/ecu) X#ECULIBDIR = /usr/lib/ecu XECULIBDIR = /usr/local/lib/ecu X X#--> leave commented unless you have my morse speaker driver X#MORSE=-DMORSE X X#--> uncomment if you have the crypt library. NOTE: minimal use is X# made of crypt ... Read the note in README. You probably want X# to leave this commented unless you want the best protection you X# can get against deviant mutant ninja hackers :-) X#CRYPT=-DCRYPT X#LCRYPT=-lcrypt X X#--> comment out if you have a working select(S) (for serial lines; X# 2.3.1 has a broken one that may be fixable: see README; 2.3.2 X# has a working select(S) for serial lines and a fix from SCO X# for pipes [ecu doesn't select() on pipes]) X#NOSEL=-DNO_SELECT X X#--> comment out if you do not want the automatic procedure execution X# feature when connecting to a system (see ecu.man dial command) XADPROC=-DAUTO_DIAL_PROC X#-------------------------------------------------------------------- X X#make some composites based on above XSYSTEM = UNIX/386 XU3C = -O -Wunused -Wswitch -Wcomment\ X -Wshadow -Wpointer-arith -Wcast-qual\ X -traditional -fstrength-reduce -fforce-mem -fforce-addr\ X -DM_I386 -DM_UNIX -DM_SYSV XCURSES = -DM_TERMCAP XCURSES_LIB = -ltcap -ltermlib X#ESIO=-DHAVE_ESIO XCOMFLAGS = $(U3C) XCFLAGS = -g $(CURSES) $(CRYPT) $(MORSE) $(NOSEL) $(ADPROC) $(COMFLAGS) $(ESIO) XLDFLAGS = -g -lx -lmalloc $(LCRYPT) $(CURSES_LIB) X XECUSHARNAME=ecu3 XMANSHARNAME=ecuman3 X X.SUFFIXES: X.SUFFIXES: .o .c .h .l XSHELL = /bin/sh X X.c.o:; /bin/time $(CC) -c $(CFLAGS) $*.c X XSHARFLS = \ XREADME \ XANCIENTHISTORY \ XESOTERIC \ XMake.ecu *.c *.h \ Xhelp/Make.xgcc help/*.{h,c,src} \ Xecufriend/{Make.xgcc,*.{c,h}} \ Xecuungetty/Make.xgcc ecuungetty/*.{c,h} \ Xmapkey/README mapkey/keys.usa.ecu.d\ Xbperr/bperr.c \ Xz/Make.xgcc z/*.{c,h} sea/Make.xgcc sea/*.{c,h,doc,imp} \ Xgendial/Make.xgcc gendial/*.{h,c} \ Xxsel386/* \ Xshar.fls */*.fls \ Xckermit/* doc/{*.txt,runoff} models/* zgcc mkoldproto.l' X XSRC = \ X bamboozle.c\ X cmdtbl.c\ X expresp.c\ X ecu.c\ X ecuLCK.c\ X ecuchdir.c\ X ecudump.c\ X ecufinsert.c\ X ecufkey.c\ X ecufork.c\ X ecuDCE.c\ X eculine.c\ X eculock.c\ X ecunumrev.c\ X ecuicmaux.c\ X ecuicmhelp.c\ X ecuicmhist.c\ X ecuicmd.c\ X ecuphone.c\ X ecuphrase.c\ X ecurcvr.c\ X ecuscrdump.c\ X ecusetup.c\ X ecushm.c\ X ecusighdl.c\ X ecutcap.c\ X ecutime.c\ X ecutty.c\ X ecuuclc.c\ X ecuusage.c\ X ecuutil.c\ X ecuwinutil.c\ X ecuxenix.c\ X ecuxfer.c\ X esdutil.c\ X feval.c\ X gint.c\ X gstr.c\ X hdbintf.c\ X logevent.c\ X nonansikey.c\ X pcmd.c\ X pcmdif.c\ X pcmdfile.c\ X pcmdtty.c\ X pcmdwhile.c\ X pcmdxfer.c\ X poutput.c\ X pprintf.c\ X proc.c\ X proc_error.c\ X procframe.c\ X regexp.c\ X utmpstat.c\ X var.c X XOBJ = \ X bamboozle.o\ X cmdtbl.o\ X expresp.o\ X ecu.o\ X ecuLCK.o\ X ecudump.o\ X ecuchdir.o\ X ecufinsert.o\ X ecufkey.o\ X ecufork.o\ X ecuDCE.o\ X eculine.o\ X eculock.o\ X ecunumrev.o\ X ecuicmaux.o\ X ecuicmhelp.o\ X ecuicmhist.o\ X ecuicmd.o\ X ecuphone.o\ X ecuphrase.o\ X ecurcvr.o\ X ecuscrdump.o\ X ecusetup.o\ X ecushm.o\ X ecusighdl.o\ X ecutcap.o\ X ecutime.o\ X ecutty.o\ X ecuuclc.o\ X ecuusage.o\ X ecuutil.o\ X ecuwinutil.o\ X ecuxenix.o\ X ecuxfer.o\ X esdutil.o\ X esiointf.o\ X feval.o\ X gint.o\ X gstr.o\ X hdbintf.o\ X logevent.o\ X nonansikey.o\ X pcmd.o\ X pcmdif.o\ X pcmdfile.o\ X pcmdtty.o\ X pcmdwhile.o\ X pcmdxfer.o\ X poutput.o\ X pprintf.o\ X proc.o\ X proc_error.o\ X procframe.o\ X regexp.o\ X utmpstat.o\ X var.o X Xall: check_tools ecuhelp ecu ecuug ecuz ecus X Xtools: $(LBIN)/sysdep $(LBIN)/afterlint $(LBIN)/mkoldproto X Xcheck_tools: X @[ -x $(LBIN)/sysdep ] || echo '"make tools" first, with write access to $(LBIN)' X @[ -x $(LBIN)/sysdep ] || exit 1 X touch check_tools X Xecuhelp: check_tools X cd help;make X Xecuz: check_tools X cd z;make X Xecus: check_tools X cd sea;make X Xbperr/bperr: check_tools bperr/bperr.c X cd bperr;make bperr X Xecu: check_tools $(OBJ) X echo 'char *makedate="'`date` $(SYSTEM)'";' >makedate.c X $(CC) -c $(CFLAGS) makedate.c; rm makedate.c X rm -rf $@ X $(CC) -o $@ $(COMFLAGS) makedate.o $(OBJ) $(LDFLAGS) X rm makedate.o X Xecuug: check_tools X cd ecuungetty;make CRYPT=$(CRYPT) LCRYPT=$(LCRYPT) X Xproc_error.c: ecuerror.h X make bperr/bperr X bperr/bperr X X$(OBJ): ecushm.h X Xecu.fls: $(SRC) Make.xgcc X ls $(SRC) >ecu.fls X Xlint: ecu.fls X echo ' ' > lint_args.h X csh zgcc ecu.fls lint_args.h $(CFLAGS) X XLint: X lint -ux *.c > ecu.lint X Xinstall: all ecuhelp ecuz ecus #run as root X cp ecu z/ecusz z/ecurz sea/ecusea $(LBIN) X -mkdir $(ECULIBDIR) X cd ecuungetty;make CRYPT=$(CRYPT) LCRYPT=$(LCRYPT) ECULIBDIR=$(ECULIBDIR)\ X install X cp models/*.mi help/ecuhelp.data $(ECULIBDIR) X @echo "--------------------------------------------------------------------" X @echo "| edit $(ECULIBDIR)/*.mi for your tty lines per ecu.man" X @echo "--------------------------------------------------------------------" X Xshar.fls: Make.xgcc X csh -c 'ls $(SHARFLS) | sort > shar.fls' X X# for shar 3.40 Xshar: X csh -c 'shar -x -F -m -c -s "wht@n4hgf.Mt-Park.GA.US" -a \ X-n$(ECUSHARNAME) -l55 -o/tmp/$(ECUSHARNAME) $(SHARFLS) X shar -x -F -m -c -s "wht%n4hgf@gatech.ecu" -a \ X-n$(MANSHARNAME) -L55 -o/tmp/$(MANSHARNAME) doc/ecu.man X XsharZ: X csh -c 'shar -x -F -m -C -c -s "wht@n4hgf.Mt-Park.GA.US" -a \ X-n$(ECUSHARNAME) -L50 -o/tmp/$(ECUSHARNAME)Z $(SHARFLS) X X$(LBIN)/sysdep: sysdep.c # uname -p undocumented on UNIX but works X @echo 'building sysdep for' `uname -p` X [ `uname -p` != i80286 ] || $(CC) -O -M2 sysdep.c -o $@ X [ `uname -p` = i80286 ] || $(CC) -O sysdep.c -o $@ X X$(LBIN)/afterlint: afterlint.c X $(CC) -O afterlint.c -o $@ X X$(LBIN)/mkoldproto: mkoldproto.l X lex mkoldproto.l X $(CC) lex.yy.c -ll -o $@ X rm lex.yy.? X X# X# X# X# MAKE DEPEND: regenerate .o:.h dependencies automatically X# Xdepend: X rm -f depend.tmp X if test '$(SRC)' ;\ X then (grep '^#include' $(SRC) \ X | sed -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\ X -e 's?:[^"]*"\([^"]*\)".*?: \1?'\ X -e 's?\(.*\)\.c?\1.o?'\ X -e 's?ecuerror.h?ecu.h?'\ X >> depend.tmp) ;\ X fi X X echo '/^# DO NOT DELETE THIS LINE' >exdep.tmp X echo '.+1,$$d' >>exdep.tmp X echo 'r depend.tmp' >> exdep.tmp X echo 'w' >> exdep.tmp X cp Make.xgcc Make.xgcc.new X ex Make.xgcc.new < exdep.tmp X rm exdep.tmp depend.tmp X echo '# DEPENDENCIES MUST END AT END OF FILE' >>Make.xgcc.new X echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Make.xgcc.new X echo '# see make depend above'>>Make.xgcc.new X mv Make.xgcc Make.xgcc.bak X mv Make.xgcc.new Make.xgcc X X# DO NOT DELETE THIS LINE Xcmdtbl.o: ecucmd.h Xexpresp.o: ecu.h Xexpresp.o: ecu.h Xexpresp.o: esd.h Xexpresp.o: var.h Xexpresp.o: proc.h Xecu.o: ecu.h Xecu.o: esd.h Xecu.o: proc.h Xecu.o: ecukey.h Xecu.o: ecuxkey.h Xecu.o: ecuhangup.h Xecu.o: patchlevel.h Xecu.o: /usr/include/sys/param.h XecuLCK.o: ecu.h XecuLCK.o: utmpstatus.h Xecuchdir.o: ecu.h Xecuchdir.o: ecukey.h Xecuchdir.o: /usr/include/pwd.h Xecudump.o: ecu.h Xecufinsert.o: ecu.h Xecufinsert.o: ecukey.h Xecufkey.o: ecu.h Xecufkey.o: ecukey.h Xecufkey.o: ecufkey.h Xecufkey.o: ecuxkey.h Xecufkey.o: ecufork.h Xecufork.o: ecu.h Xecufork.o: ecufork.h XecuDCE.o: ecu.h XecuDCE.o: ecukey.h XecuDCE.o: esd.h XecuDCE.o: var.h XecuDCE.o: ecupde.h XecuDCE.o: ecu.h XecuDCE.o: relop.h Xeculine.o: ecu.h Xeculine.o: ecukey.h Xeculine.o: ecuhangup.h Xeculock.o: ecu.h Xeculock.o: utmpstatus.h Xecuicmaux.o: ecu.h Xecuicmaux.o: ecu.h Xecuicmaux.o: ecucmd.h Xecuicmhelp.o: /usr/include/curses.h Xecuicmhelp.o: ecu.h Xecuicmhelp.o: ecucmd.h Xecuicmhelp.o: ecukey.h Xecuicmhelp.o: pc_scr.h Xecuicmhelp.o: stdio_lint.h Xecuicmhist.o: /usr/include/curses.h Xecuicmhist.o: pc_scr.h Xecuicmhist.o: ecu.h Xecuicmhist.o: ecukey.h Xecuicmhist.o: ecuxkey.h Xecuicmd.o: ecu.h Xecuicmd.o: esd.h Xecuicmd.o: ecufkey.h Xecuicmd.o: patchlevel.h Xecuicmd.o: ecucmd.h Xecuphone.o: /usr/include/curses.h Xecuphone.o: ecu.h Xecuphone.o: pc_scr.h Xecuphone.o: ecupde.h Xecuphone.o: ecukey.h Xecuphone.o: ecuxkey.h Xecuphone.o: ecuhangup.h Xecuphone.o: utmpstatus.h Xecuphone.o: dvent.h Xecuphone.o: esd.h Xecuphone.o: var.h Xecuphrase.o: ecu.h Xecurcvr.o: ecu.h Xecurcvr.o: ecukey.h Xecuscrdump.o: ecu.h Xecuscrdump.o: ecukey.h Xecuscrdump.o: pc_scr.h Xecusetup.o: /usr/include/curses.h Xecusetup.o: patchlevel.h Xecusetup.o: ecu.h Xecusetup.o: ecukey.h Xecusetup.o: ecuxkey.h Xecusetup.o: pc_scr.h Xecushm.o: ecu.h Xecushm.o: /usr/include/sys/ipc.h Xecushm.o: /usr/include/sys/shm.h Xecusighdl.o: ecu.h Xecusighdl.o: ecufork.h Xecutcap.o: ecu.h Xecutcap.o: ecukey.h Xecutcap.o: pc_scr.h Xecutime.o: /usr/include/sys/types.h Xecutime.o: /usr/include/time.h Xecutime.o: /usr/include/sys/timeb.h Xecutty.o: ecu.h Xecutty.o: esd.h Xecutty.o: ecufkey.h Xecutty.o: ecukey.h Xecutty.o: ecuxkey.h Xecutty.o: ecu.h Xecutty.o: ecuhangup.h Xecutty.o: /usr/include/sys/machdep.h Xecutty.o: ecutty.h Xecuusage.o: /usr/include/stdio.h Xecuusage.o: ecuhangup.h Xecuutil.o: ecu.h Xecuutil.o: ecuhangup.h Xecuutil.o: ecufork.h Xecuutil.o: /usr/include/pwd.h Xecuwinutil.o: /usr/include/curses.h Xecuwinutil.o: ecukey.h Xecuwinutil.o: ecuxkey.h Xecuwinutil.o: ecuhangup.h Xecuwinutil.o: pc_scr.h Xecuxenix.o: ecu.h Xecuxenix.o: ecukey.h Xecuxenix.o: ecufkey.h Xecuxenix.o: ecuxkey.h Xecuxenix.o: ecufork.h Xecuxenix.o: esd.h Xecuxfer.o: /usr/include/curses.h Xecuxfer.o: ecu.h Xecuxfer.o: ecukey.h Xecuxfer.o: ecuxkey.h Xecuxfer.o: ecu.h Xecuxfer.o: pc_scr.h Xesdutil.o: /usr/include/ctype.h Xesdutil.o: ecu.h Xesdutil.o: ecu.h Xesdutil.o: esd.h Xfeval.o: ecu.h Xfeval.o: ecu.h Xfeval.o: esd.h Xfeval.o: proc.h Xfeval.o: var.h Xgint.o: ecu.h Xgint.o: ecu.h Xgint.o: esd.h Xgint.o: var.h Xgstr.o: ecu.h Xgstr.o: ecu.h Xgstr.o: esd.h Xgstr.o: var.h Xhdbintf.o: ecu.h Xhdbintf.o: esd.h Xhdbintf.o: var.h Xhdbintf.o: ecuhangup.h Xhdbintf.o: utmpstatus.h Xhdbintf.o: ecuungetty.h Xhdbintf.o: dvent.h Xhdbintf.o: dlent.h Xhdbintf.o: dialprog.h Xhdbintf.o: /usr/include/errno.h Xhdbintf.o: /usr/include/utmp.h Xlogevent.o: /usr/include/stdio.h Xlogevent.o: /usr/include/sys/locking.h Xlogevent.o: stdio_lint.h Xlogevent.o: lint_args.h Xnonansikey.o: ecu.h Xnonansikey.o: ecukey.h Xnonansikey.o: ecufkey.h Xnonansikey.o: ecuxkey.h Xnonansikey.o: ecufork.h Xpcmd.o: ecu.h Xpcmd.o: ecu.h Xpcmd.o: ecuhangup.h Xpcmd.o: ecukey.h Xpcmd.o: esd.h Xpcmd.o: var.h Xpcmd.o: proc.h Xpcmdif.o: /usr/include/ctype.h Xpcmdif.o: ecu.h Xpcmdif.o: ecu.h Xpcmdif.o: esd.h Xpcmdif.o: var.h Xpcmdif.o: proc.h Xpcmdif.o: relop.h Xpcmdfile.o: ecu.h Xpcmdfile.o: ecukey.h Xpcmdfile.o: ecu.h Xpcmdfile.o: esd.h Xpcmdfile.o: var.h Xpcmdfile.o: proc.h Xpcmdtty.o: ecu.h Xpcmdtty.o: ecu.h Xpcmdtty.o: esd.h Xpcmdtty.o: ecutty.h Xpcmdwhile.o: /usr/include/ctype.h Xpcmdwhile.o: ecu.h Xpcmdwhile.o: ecu.h Xpcmdwhile.o: esd.h Xpcmdwhile.o: var.h Xpcmdwhile.o: proc.h Xpcmdwhile.o: relop.h Xpcmdxfer.o: ecu.h Xpcmdxfer.o: ecukey.h Xpcmdxfer.o: ecu.h Xpcmdxfer.o: esd.h Xpcmdxfer.o: var.h Xpcmdxfer.o: proc.h Xpoutput.o: ecu.h Xpoutput.o: ecukey.h Xpoutput.o: ecu.h Xpoutput.o: esd.h Xpprintf.o: /usr/include/stdio.h Xpprintf.o: /usr/include/varargs.h Xproc.o: /usr/include/ctype.h Xproc.o: ecu.h Xproc.o: ecu.h Xproc.o: esd.h Xproc.o: var.h Xproc.o: proc.h Xproc.o: ecucmd.h Xproc_error.o: ecu.h Xproc_error.o: ecu.h Xprocframe.o: /usr/include/ctype.h Xprocframe.o: ecu.h Xprocframe.o: ecukey.h Xprocframe.o: ecu.h Xprocframe.o: esd.h Xprocframe.o: var.h Xprocframe.o: proc.h Xregexp.o: /usr/include/stdio.h Xregexp.o: stdio_lint.h Xregexp.o: lint_args.h Xregexp.o: ecu.h Xregexp.o: esd.h Xregexp.o: var.h Xregexp.o: /usr/include/setjmp.h Xutmpstat.o: ecu.h Xutmpstat.o: ecuhangup.h Xutmpstat.o: utmpstatus.h Xutmpstat.o: ecuungetty.h Xutmpstat.o: dialprog.h Xutmpstat.o: /usr/include/errno.h Xutmpstat.o: /usr/include/utmp.h Xvar.o: ecu.h Xvar.o: esd.h Xvar.o: var.h Xvar.o: proc.h Xvar.o: ecukey.h Xvar.o: ecu.h X# DEPENDENCIES MUST END AT END OF FILE X# IF YOU PUT STUFF HERE IT WILL GO AWAY X# see make depend above SHAR_EOF chmod 0644 Make.xgcc || echo 'restore of Make.xgcc failed' Wc_c="`wc -c < 'Make.xgcc'`" test 12403 -eq "$Wc_c" || echo 'Make.xgcc: original size 12403, current size' "$Wc_c" exit 0 exit 0 # Just in case... -- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM Sterling Software, IMD UUCP: uunet!sparky!kent Phone: (402) 291-8300 FAX: (402) 291-4362 Please send comp.sources.misc-related mail to kent@uunet.uu.net.