home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.misc
- subject: v12i082: ECU 2.80 part 29/29
- from: wht%n4hgf@gatech.edu (Warren Tucker)
- Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 12, Issue 82
- Submitted-by: wht%n4hgf@gatech.edu (Warren Tucker)
- Archive-name: ecu2.80/part29
-
- ---- Cut Here and unpack ----
- #!/bin/sh
- # This is part 29 of ecu280
- if touch 2>&1 | fgrep '[-amc]' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- # ============= models/sz_update.ep ==============
- echo "x - extracting models/sz_update.ep (Text)"
- sed 's/^X//' << 'SHAR_EOF' > models/sz_update.ep &&
- X# CHK=0x4068
- X#--------------------------------------------------------------
- X# sz_update.ep - update local directory
- X#
- X# parameters:
- X# %argv(1) = remote directory to copy to
- X# %argv(2) = local directory to copy from
- X# %argv(3) = file list to send
- X# %argv(4) = remote username needed, if any, else null
- X# if %argv(4) not null, 'su_'+%argv(4)+".ep" must
- X# exist to su to remote
- X# %argv(5) name of superior procedure
- X#
- X#--------------------------------------------------------------
- X#+:EDITS:*/
- X#:07-11-1989-16:55-wht-get cmd became lgets
- X#:06-28-1989-19:36-wht-use named variables
- X#:06-25-1989-13:56-wht-new do command syntax
- X#:06-25-1989-12:33-wht-new if/while syntax
- X#:06-22-1989-13:30-wht-creation
- X
- X# variable usage
- X mkvar $i_csave # color settings at entry to procedure
- X mkvar $i_suflag # true if su occurred
- X mkvar $i_rtnflag # return code
- X mkvar $s_origdir(128) # original working directory
- X mkvar $s_ruser(16) # remote username we started with before su
- X mkvar $s_rdir(128) # remote directory we started with
- X mkvar $s_xtitle(64) # title for xfer
- X
- X $i_csave=%colors # get colors at entry
- X
- X $s_xtitle = 'Connected to '+%rname
- X ifs %argv(5) != ''
- X $s_xtitle = $s_xtitle+' - procedure '+%argv(5)
- X
- X# check to make sure we are connected
- X ifi %conn == 0
- X {
- X color red; echo 'not connected to anyone!'
- X goto SORRY
- X }
- X color lt_blue; echo 'Connected to '+%rname
- X
- X# save local current directory and change to target
- X $s_origdir=%dir
- X color brown
- X ifs $s_origdir == %argv(2)
- X echo -n 'local directory already '
- X else
- X {
- X cd %argv(2)
- X echo -n 'local directory set to '
- X }
- X color yellow; echo %dir
- X
- X# make sure remote username ok
- X ifs %argv(4) == '' goto REMOTE_CD # if any remote username
- X do 'bsd_uname' # get $s0=username
- X ifi $i0 == 0 goto SORRY # test failure
- X $s_ruser = $s0 # save original remote username
- X ifs $s0 != %argv(4)
- X { # need to su
- X color brown
- X echo -n 'remote username '
- X color yellow
- X echo -n $s0
- X color brown
- X echo ' ... su to '+%argv(4)+' now'
- X color gray
- X do 'su_'+%argv(4) # call proc, which calls su.ep
- X lookfor '% ' 50 # su leaves prompt in buffer: swallow
- X do 'bsd_uname' # make sure we su'd
- X ifi $i0 == 0 goto SORRY
- X ifs $s0 != %argv(4) # failed to su?
- X {
- X color red;echo 'su to '+%argv(4)+' failed'
- X goto SORRY
- X }
- X $i_suflag = 1 #remember we su'd
- X } # now we are proper username on remote
- X
- X# establish proper remote working directory
- XREMOTE_CD
- X color gray
- X $s0 = 'pwd';do 'oneline' # save old remote ...
- X $s_rdir = $s0 # ... directory in $s_rdir
- X ifs $s_rdir != %argv(1) # if cd needed, do it
- X {
- X send 'cd '+%argv(1) # remote cd
- X lookfor -e '\n' 50 # echo command
- X lookfor '% ' 50 # swallow prompt
- X $s0 = 'pwd'
- X do 'oneline' # make sure we got there
- X ifs $s0 != %argv(1) # dir change failed
- X {
- X color red;echo 'remote cd failed'
- X goto SORRY;
- X }
- X }
- X color brown; echo -n 'remote directory '
- X color yellow; echo %argv(1)
- X
- X# transfer files
- X color lt_blue
- X echo 'sz -n -f '+%argv(3)
- X icolor $i_csave # restore colors at entry
- X sz -nfl $s_xtitle %argv(3)
- X ifi $i0 != 0 # whoops
- X {
- X color red; echo -n '\nTRANSFER FAILED ... '
- X ifi $i0 == 0x100 echo 'interrupt'
- X ifi $i0 != 0x100 echo 'termination status '+%itos($i0,04d)
- X goto SORRY
- X }
- X lookfor '% ' 50 # swallow prompt
- X goto RETURN
- X
- XSORRY # whoops
- X color red;echo 'sz_update failed ... sorry'
- X $i_rtnflag = 1 # return error
- X
- XRETURN
- X echo ''
- X color brown; echo -n 'remote user name '
- X color yellow
- X ifi $i_suflag != 0 # we su'd
- X {
- X send -n %chr(0x04) # will force a new prompt from remote
- X echo -n $s_ruser
- X color brown; echo ' restored (sent ^D to '+%argv(4)+' shell)'
- X lookfor '% ' 50 # swallow prompt
- X }
- X else
- X color brown; echo 'unchanged'
- X
- X ifs $s_rdir != %argv(1) # if we did a remote cd
- X {
- X send 'cd '+$s_rdir # restore original
- X lookfor '\n'
- X color brown; echo -n 'remote working directory '
- X color yellow; echo -n $s_rdir
- X color brown; echo ' restored'
- X }
- X else
- X {
- X send '' # spark a prompt
- X color brown; echo -n 'remote working directory '
- X color yellow; echo -n $s_rdir
- X color brown; echo ' unchanged'
- X }
- X
- X color brown; echo -n 'local working directory '
- X color yellow; echo -n $s_origdir
- X color brown
- X ifs $s_origdir != %dir # restore original directory
- X {
- X cd $s_origdir
- X echo ' restored'
- X }
- X else
- X echo ' unchanged'
- X
- X icolor $i_csave # restore colors at entry
- X echo ''
- X return $i_rtnflag # return selected error code (bomb procedure if error)
- SHAR_EOF
- $TOUCH -am 0507232990 models/sz_update.ep &&
- chmod 0644 models/sz_update.ep ||
- echo "restore of models/sz_update.ep failed"
- set `wc -c models/sz_update.ep`;Wc_c=$1
- if test "$Wc_c" != "4479"; then
- echo original size 4479, current size $Wc_c
- fi
- # ============= models/szall.ep ==============
- echo "x - extracting models/szall.ep (Text)"
- sed 's/^X//' << 'SHAR_EOF' > models/szall.ep &&
- X# CHK=0xE67C
- X
- X do 'put_mpad1'
- X lookfor '% ' 40
- X do 'put_kdir12'
- X lookfor '% ' 40
- X do 'put_sim'
- X lookfor '% ' 40
- X do 'put_ecu'
- SHAR_EOF
- $TOUCH -am 0507232990 models/szall.ep &&
- chmod 0644 models/szall.ep ||
- echo "restore of models/szall.ep failed"
- set `wc -c models/szall.ep`;Wc_c=$1
- if test "$Wc_c" != "127"; then
- echo original size 127, current size $Wc_c
- fi
- # ============= models/tty1a.mi ==============
- echo "x - extracting models/tty1a.mi (Text)"
- sed 's/^X//' << 'SHAR_EOF' > models/tty1a.mi &&
- X# CHK=0x10FF
- X#+-----------------------------------------------------------------
- X# tty1a.mi - Microcom AX/9624c
- X# Copyright 1989 Warren H. Tucker, III. All Rights Reserved
- X#------------------------------------------------------------------
- X#+:EDITS:*/
- X#:11-03-1989-16:21-wht------ unet2 -----
- X#:07-02-1989-20:51-wht-beef up init
- X#:06-17-1989-22:02-wht-creation
- X
- Xinit_>2400:atq0e1v1x4s0=0s2=43s7=30\q1\x1\n3
- Xinit_default:atq0e1v1x4s0=0s2=43s7=30\q0\x0\n0
- Xdial_default:atdt
- Xautoanswer:atq1s0=1
- SHAR_EOF
- $TOUCH -am 1103162189 models/tty1a.mi &&
- chmod 0644 models/tty1a.mi ||
- echo "restore of models/tty1a.mi failed"
- set `wc -c models/tty1a.mi`;Wc_c=$1
- if test "$Wc_c" != "495"; then
- echo original size 495, current size $Wc_c
- fi
- # ============= models/tty2d.mi ==============
- echo "x - extracting models/tty2d.mi (Text)"
- sed 's/^X//' << 'SHAR_EOF' > models/tty2d.mi &&
- X# CHK=0xFA63
- X#+-----------------------------------------------------------------
- X# tty2d.mi - USR Courier 2400
- X# Copyright 1989 Warren H. Tucker, III. All Rights Reserved
- X#------------------------------------------------------------------
- X#+:EDITS:*/
- X#:11-03-1989-16:21-wht------ unet2 -----
- X#:07-02-1989-20:51-wht-beef up init
- X#:06-17-1989-22:02-wht-creation
- X
- Xinit_default:atq0e1v1x4s0=0s2=43s7=30s11=47
- Xdial_default:atdt
- Xautoanswer:atq1s0=1
- SHAR_EOF
- $TOUCH -am 1103162189 models/tty2d.mi &&
- chmod 0644 models/tty2d.mi ||
- echo "restore of models/tty2d.mi failed"
- set `wc -c models/tty2d.mi`;Wc_c=$1
- if test "$Wc_c" != "446"; then
- echo original size 446, current size $Wc_c
- fi
- # ============= models/unixlogin.ep ==============
- echo "x - extracting models/unixlogin.ep (Text)"
- sed 's/^X//' << 'SHAR_EOF' > models/unixlogin.ep &&
- X# CHK=0x5E90
- X#+-----------------------------------------------------------------
- X# unixlogin.ep - ecu UNIX login procedure
- X# wht%n4hgf@gatech.edu
- X#
- X# %argv(1) = remote name
- X# %argv(2) = user name
- X# %argv(3) = password
- X# %argv(4) = term type
- X# %argv(5) = optional number of breaks needed
- X#+-----------------------------------------------------------------
- X#+:EDITS:*/
- X#:07-11-1989-16:55-wht-get cmd became lgets
- X#:07-09-1989-23:50-wht-add breaks
- X#:06-28-1989-19:36-wht-use named variables
- X#:06-25-1989-13:56-wht-new do command syntax
- X#:06-25-1989-12:33-wht-new if/while syntax
- X#:06-23-1989-19:46-wht-improved hayes dialer reduces need to report dial fail
- X#:06-19-1989-22:50-wht-use while and if statements
- X#:06-14-1989-15:58-wht-add login capability when already connected
- X#:06-11-1989-23:37-wht-creation
- X
- X mkvar $i_csave,$i_ltimeout,$i_retries
- X
- X $i_csave = %colors
- X $i_ltimeout = 30 # 3 seconds wait for first login prompt
- X $i_retries=3
- X
- X color red; echo -n '\nauto-logon to '
- X color yellow; echo -n %argv(1)
- X color red; echo ' on '+%date+' at '+%time+'\n'
- X
- X ifi %argc < 5 # not enough args
- X {
- X color red
- X echo %argv(0)+' needs 5 arguments (got '+%itos(%argc)+')'
- X goto SORRY
- X }
- X mkvar $i_breaks
- X ifi %argc > 5 $i_breaks = %stoi(%argv(5))
- X
- X ifi %conn == 0 goto DIAL
- X
- X ifs %rname == %argv(1)
- X {
- X color brown; echo -n 'already connected to '
- X color yellow; echo %rname
- X send ''
- X goto SEND_BREAKS
- X }
- X
- XHANGUP
- X ifi %conn <> 0 echo 'hanging up on '+%rname; hangup
- X
- XDIAL
- X color green
- X dial %argv(1); set $i1=$i0 #save dial result in $i1
- X ifi $i1 == 2 color red; echo 'interrupted'; goto SORRY
- X ifi $i1 != 0 goto SORRY
- X
- X# send breaks?
- XSEND_BREAKS
- X ifi $i_breaks > 0
- X {
- X whilei $i_breaks > 0
- X {
- X color blue; echo 'sending break to remote'
- X nap 20
- X lbreak
- X $i_breaks = $i_breaks - 1
- X }
- X flush
- X lookfor '\n' 50
- X }
- X
- X# get login prompt from remote UNIX system: "login: "
- XGET_LOGIN_PROMPT
- X set $i_retries = 6 # retry count
- X
- XGET_LOGIN_PROMPT_RETRY # retry get login prompt
- X whilei $i_retries > 0
- X {
- X color cyan
- X lookfor -e 'login: ' $i_ltimeout
- X ifi $i0 == 1 break # go send username
- X $i_ltimeout = 50 # later login waits 5 secs
- X set $i_retries = $i_retries - 1 # read and decrement retry
- X ifi $i_retries == 0 goto SORRY # but not if retry exhausted
- X color yellow
- X echo 'sending prompt stimulus'
- X color green
- X send '' # kick off another login prompt
- X }
- X
- X# give username to remote
- XSEND_USERNAME
- X nap 3 # system not always ready when it says
- X send %argv(2)
- X
- X# get password prompt: "Password:"
- XGET_PASSWORD_PROMPT
- X lookfor -e 'Password:' 50
- X ifi $i0 != 1 # did not find 'Password: '
- X {
- X send ''
- X gotob GET_LOGIN_PROMPT_RETRY
- X }
- X
- X# send the password
- X nap 3 # system not always ready when it says
- X send %argv(3)
- X
- X# get term type prompt "TERM = (ansi) "
- X# also handle incorect login retry and 'Sorry' hangup indication
- XGET_TERMTYPE_PROMPT
- X ifs %argv(4) == '' # if no term type, don't wait for prompt
- X {
- X $i0 = 0 # return good status
- X goto SETCOLOR_AND_RETURN_STATUS
- X }
- X lgets -re $s0 100 50 ') '
- X ifi %instr($s0,'Sorry') > 0 hangup;goto SORRY
- X ifi %instr($s0,'incorrect') > 0 # exhausted retry?
- X {
- X set $i_retries=$i_retries-1
- X ifi $i_retries > 0 goto SEND_USERNAME
- X goto SORRY
- X }
- X# send terminal type
- X ifi %instr($s0,'TERM') < 0
- X lookfor -e ') ' 30
- X send %argv(4)
- X lookfor -e '\n' 50
- X set $i0=0
- X goto SETCOLOR_AND_RETURN_STATUS
- X
- X# procedure failed
- XSORRY
- X set $i0=1
- X
- XSETCOLOR_AND_RETURN_STATUS
- X icolor $i_csave
- X ifi $i0 == 0 ifi %conn !=0 prompt %rname+' >'
- X return $i0
- X
- X# vi:set tabstop=4 shiftwidth=4:
- SHAR_EOF
- $TOUCH -am 0507233390 models/unixlogin.ep &&
- chmod 0644 models/unixlogin.ep ||
- echo "restore of models/unixlogin.ep failed"
- set `wc -c models/unixlogin.ep`;Wc_c=$1
- if test "$Wc_c" != "3550"; then
- echo original size 3550, current size $Wc_c
- fi
- # ============= zgcc ==============
- echo "x - extracting zgcc (Text)"
- sed 's/^X//' << 'SHAR_EOF' > zgcc &&
- X#!/bin/csh
- X#zgcc -- build prototyping "LINT_ARGS"
- Xecho C sources in $1';' result file $2
- Xunset noclobber
- Xrm -f zg.t
- Xif (-e /unix)
- X echo 'building old-style prototypes for XENIX compiler compatibility'
- X echo 'unnamed struct/union as parameter warning probably about FILE :-('
- Xendif
- Xforeach i(`cat $1`)
- Xif (-e /unix)
- X cc -DBUILDING_LINT_ARGS -Zg $argv[3-] $i | mkoldproto > zg1.t
- Xelse
- X cc -DBUILDING_LINT_ARGS -Zg $argv[3-] $i > zg1.t
- Xendif
- Xsort zg1.t > zg2.t
- Xecho '/*' $i '*/' >> zg.t
- Xcat zg2.t >> zg.t
- Xend
- Xafterlint zg.t $2
- Xrm -f zg.t zg?.t
- Xfcrc -u $2
- Xecho Output in $2
- SHAR_EOF
- $TOUCH -am 0402132790 zgcc &&
- chmod 0755 zgcc ||
- echo "restore of zgcc failed"
- set `wc -c zgcc`;Wc_c=$1
- if test "$Wc_c" != "570"; then
- echo original size 570, current size $Wc_c
- fi
- # ============= mkoldproto.l ==============
- echo "x - extracting mkoldproto.l (Text)"
- sed 's/^X//' << 'SHAR_EOF' > mkoldproto.l &&
- X/* CHK=0x5793 */
- X%{
- Xchar *rev = "1.00";
- X/*+-------------------------------------------------------------------------
- X mkoldproto.c.{l,c} - make "old" style prototypes from "new" kind
- X
- Xcc -Zg source.c | mkproto > lint_args.h
- X
- Xtakes prototypes of the style
- Xvoid change_report(char *original);
- Xand emits
- Xvoid change_report(char *);
- XThe UNIX V compiler makes the new kind, accepts the old and new kind,
- Xbut there are a lot of compilers which don't like the new kind.
- X
- XWarning, this program will make mush out of "old" style prototypes
- Xfed to it.
- X--------------------------------------------------------------------------*/
- X/*+:EDITS:*/
- X/*:11-27-1989-18:31-wht-creation */
- X
- Xint verbose = 0;
- X
- X/*+-------------------------------------------------------------------------
- X change_report(original)
- X--------------------------------------------------------------------------*/
- Xvoid
- Xchange_report(original)
- Xchar *original;
- X{
- X fputs("fixing: ",stderr);
- X while(*original)
- X {
- X if((*original >= ' ') && (*original <= '~'))
- X fputc(*original,stderr);
- X else
- X fprintf(stderr,"<%02x>",*original);
- X original++;
- X }
- X fputs("\n",stderr);
- X} /* end of change_report */
- X
- X
- X/*+-------------------------------------------------------------------------
- X main(argc,argv,envp)
- X--------------------------------------------------------------------------*/
- Xmain(argc,argv,envp)
- Xint argc;
- Xchar **argv;
- Xchar **envp;
- X{
- Xregister int itmp;
- Xregister int iargv;
- Xint fileiargv = 0;
- X
- X if(argc > 1)
- X {
- X for(iargv = 1; iargv < argc; iargv++)
- X {
- X if(argv[iargv][0] == '-')
- X {
- X switch(itmp = (argv[iargv][1]))
- X {
- X case 'v':
- X verbose = 1;
- X break;
- X default:
- X break;
- X }
- X }
- X else
- X {
- X if(yyin != stdin)
- X {
- X fprintf(stderr,"only 1 filename, please\n");
- X exit(1);
- X }
- X if( (yyin = fopen(argv[iargv],"r")) == NULL)
- X {
- X perror(argv[iargv]);
- X exit(1);
- X }
- X fileiargv = iargv;
- X }
- X }
- X }
- X
- X if(verbose && fileiargv)
- X fprintf(stderr,"%s:\n",argv[fileiargv]);
- X
- X yylex();
- X
- X exit(0);
- X} /* end of main */
- X
- X/* vi: set tabstop=4 shiftwidth=4: */
- X%}
- XW [ \t]
- XSTRING \"([^"\n]|\\\")*\"
- XOPCHARS ["'+-*/=|!&%^?><:\]]
- XIDENT [a-zA-Z0-9_]+
- XU "unsigned"
- XI "int"
- XL "long"
- XS "short"
- XC "char"
- XR "register"
- XST "static"
- XI8 "INT8"
- XI16 "INT16"
- XI32 "INT32"
- XUN_ST ("union "|"struct "){IDENT}
- XDECLTAB1 ({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t]{IDENT}
- XDECLTAB2 ({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t ][\t ]+{IDENT}
- X%START COMMENT PREPROC
- X%%
- X<PREPROC>.*\n {ECHO;
- X BEGIN 0;
- X }
- X^"#" {
- X ECHO;
- X BEGIN PREPROC;
- X }
- X<COMMENT>([^*\n]|"*"+[^*/\n])* ECHO;
- X<COMMENT>([^*\n]|"*"+[^*/\n])*"*"*"*/" {ECHO;
- X BEGIN 0;
- X }
- X<COMMENT>.|\n ECHO;
- X"/*" {
- X ECHO;
- X BEGIN COMMENT;
- X }
- X"extern " {
- X ;
- X }
- X"* " {
- X fprintf(yyout,"*");
- X }
- X{IDENT}"," {
- X register char *cptr = yytext + yyleng - 1;
- X if(verbose)
- X change_report(yytext);
- X while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))
- X *cptr-- = 0;
- X fprintf(yyout,",",yytext);
- X }
- X{IDENT}")" {
- X register char *cptr = yytext + yyleng - 1;
- X if(verbose)
- X change_report(yytext);
- X while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))
- X *cptr-- = 0;
- X fprintf(yyout,")",yytext);
- X }
- X{STRING} ECHO;
- X"'"."'" ECHO;
- X.|\n ECHO;
- X
- SHAR_EOF
- $TOUCH -am 1127134189 mkoldproto.l &&
- chmod 0644 mkoldproto.l ||
- echo "restore of mkoldproto.l failed"
- set `wc -c mkoldproto.l`;Wc_c=$1
- if test "$Wc_c" != "3418"; then
- echo original size 3418, current size $Wc_c
- fi
- exit 0
-
-