(FILECREATED "12-Mar-85 14:57:28" ("compiled on " {ERIS}LIBRARY>TCPFTP.;8) " 7-Mar-85 12:37:06" recompiled changes: \TCPFTP.LOGIN \TCPFTP.OPENFILE \TCP.BYE \TCPFTP.TRANSFER.COMPLETE in "INTERLISP-D 7-Mar-85 ..." dated " 7-Mar-85 12:42:22") (FILECREATED "12-Mar-85 14:50:02" {ERIS}LIBRARY>TCPFTP.;8 24493 changes to: (FNS \TCPFTP.LOGIN \TCPFTP.OPENFILE \TCP.BYE \TCPFTP.TRANSFER.COMPLETE) (VARS TCPFTPCOMS) previous date: " 9-Mar-85 18:26:09" {ERIS}LIBRARY>TCPFTP.;5) ARPACMD D1 (P 1 OUTC P 0 INC I 5 WANTARG I 4 DISCARD I 3 WANT I 2 ARG I 1 CMD I 0 TCPFTPCON F 2 FTPDEBUGLOG F 3 FTPDEBUGFLG) ö@@A²@S²AR ¿oR ¿BR ¿AI ¿oI ¿BI ¿I ¿I ¿SŸR ¿S˜oR ¿H b¿SžAR ¿oR ¿AEð¦EŸAE›H l-ð“A AH l-ðœH ¿H Að²õACð¨C›AdC—¿H AADð¨D›AdD—¿H °ŽAd¡´AldÛdlð¤dlð–¿A °dlð¤dlð˜¿Hi ¿H ±ÿV(361Q DISCARDLINE 354Q ERROR 351Q GETLINE 327Q FTPHELP 271Q DISCARDLINE 246Q DISCARDLINE 221Q \TCPFTP.INPUT 214Q DISCARDLINE 200Q FTPHELP 152Q PRIN1 141Q PRIN1 127Q \TCPFTP.INPUT 122Q PRIN1 107Q TERPRI 100Q FORCEOUTPUT 73Q TELNET.EOL 66Q PRIN3 60Q PRIN3 47Q PRIN3 41Q PRIN1 33Q PRIN1 22Q PRIN1) NIL ( 146Q " " 116Q "< " 54Q " " 27Q " ") FTPHELP D1 (I 0 ARG) @o (7 ERROR) NIL ( 4 " unrecognized response from remote FTP server") CMDREADCODE D1 (I 0 IN) @ @ @ (16Q PACK* 13Q CMDREAD 7 CMDREAD 3 CMDREAD) NIL () CMDREAD D1 (P 0 CH I 0 IN F 1 FTPDEBUGFLG F 2 FTPDEBUGLOG) @ Q”HR H(13Q BOUT) NIL () DISCARDLINE D1 (P 0 CH I 0 IN) /`²"@ @ Xl ð—` h`H ¿°é@ l ð²ûh(41Q BOUT 30Q TERPRI 10Q \BACKFILEPTR) (35Q FTPDEBUGLOG 25Q FTPDEBUGLOG 2 FTPDEBUGFLG) () GETLINE D1 (P 2 CH P 1 STRING P 0 POS I 1 FLG I 0 IN) -klP @ Zl ð³HdlPó¦¿IHJ+¿HkÔ¸°èIkHkÙ (52Q SUBSTRING 5 ALLOCSTRING) NIL () \TCPFTP.INPUT D1 (P 2 CH P 1 GOTCODE P 0 CODE I 0 STREAM) 9j!Jl-ð³.Jjð³)Jl ð³#@ ºI³l0Jó³Jl9ó«Hl ÖJl0ÕÔ¸°Ôi¹°ÐHNIL NIL () TELNET.EOL D1 (I 0 STREAM) @l @l @ (17Q FORCEOUTPUT 13Q BOUT 5 BOUT) NIL () \TCPFTP.GET.OSTYPE D1 (P 1 ENTRY P 0 HOST I 0 DEVICE F 2 \HOSTNAMES) &@ÉHR ˜Hg µH`d”É(25Q GETHOSTINFO 15Q FASSOC) (41Q HOSTS.TXT.ENTRY 33Q \IP.HOSTNAMES 22Q OSTYPE 3 FDEV) () \TCPFTP.HOSTNAMEP D1 (P 2 FILINGNAME P 1 FULLHOSTNAME P 0 SERVER I 1 DEVICE I 0 HOST) ¯@ AH¡h@ Yid µ‚±’@o ZI`` dI¿dg¿dg¿dg¿dg ¿dg¿dg2¿dg¿dg¿dg¿dg¿dg ¿dg¿hddHh»dK(¿`É*¼dL*¿b A(253Q \DEFINEDEVICE 60Q NCREATE2 45Q PACK* 27Q \GETDEVICEFROMNAME 21Q MKATOM 16Q U-CASE 3 DODIP.HOSTP) (236Q FDEV 233Q \TCP.DEVICE 206Q NILL 177Q \TCPFTP.GENERATEFILES 170Q \TCPFTP.DIRECTORYNAMEP 161Q \TCPFTP.GETFILENAME 152Q NILL 143Q \TCPFTP.DELETEFILE 134Q \TCPFTP.GETEOFPTR 125Q NILL 116Q NILL 107Q \TCPFTP.CLOSEFILE 100Q NILL 71Q \TCPFTP.OPENFILE 55Q \TCP.DEVICE 52Q FDEVTYPE#) ( 42Q " Filing") \GET.TCPFTP.CONNECTION D1 (P 1 INSTREAM P 0 DEVINFO I 0 DEVICE) 0@É(HY`ð²I žI ©I šI ¿°ø@ ´@(52Q \TCPFTP.OPEN.CONNECTION 40Q READP 33Q EOFP 26Q OPENP) (17Q STREAMTYPE# 3 FDEV) () \TCPFTP.OPEN.CONNECTIONA0001 D1 (I 0 STREAM) (2 ZERO) NIL () \TCPFTP.OPEN.CONNECTION D1 (P 1 INSTREAM P 0 DEVINFO I 0 DEVICE) C@É(Hlhgg Ydg"I´HI¿HI ¿I lÜð´@ (100Q \TCPFTP.LOGIN 67Q \TCPFTP.INPUT 61Q TCP.OTHER.STREAM 32Q TCP.OPEN) (42Q \TCPFTP.OPEN.CONNECTIONA0001 37Q STREAM 26Q INPUT 23Q ACTIVE 3 FDEV) () \TCPFTP.LOGIN D1 (P 2 INFO P 1 HOST P 0 DEVINFO I 0 DEVICE) ž@É(!HY¿I ºHoJo dlæð¤dlÊð‘idnKð²0¿HoJ o dlæð³ádnKð¥dnð–¿I °°¿°)dnLð²'¿HooI dlæð³ªnLð³Œhnð²÷I ±ÿu(231Q LOGIN 215Q FTPHELP 176Q ARPACMD 173Q PROMPTFORWORD 170Q CONCAT 136Q LOGIN 107Q ARPACMD 100Q \DECRYPT.PWD 42Q ARPACMD 23Q \INTERNAL/GETPASSWORD) (3 FDEV) ( 164Q "Account for logging into " 160Q "ACCT" 104Q (346Q 513Q 1022Q) 73Q "PASS" 37Q (312Q 346Q 513Q 514Q 1022Q) 31Q "USER") \TCPFTP.DELETEFILEA0001 D1 (NAME ERRORSET F 0 DEVINFO F 1 NAME F 2 OSTYPE) PoghgQ R o h(32Q ARPACMD 23Q REPACKFILENAME.STRING 17Q PACKFILENAME.STRING) (13Q BODY 7 HOST) ( 27Q (310Q 342Q 372Q) 4 "DELE") \TCPFTP.DELETEFILE D1 (P 2 CODE P 1 OSTYPE P 0 DEVINFO I 1 DEVICE I 0 NAME) ,AÉ(A A o dlúðªdlâð¥dlÈð´@(27Q \TCPFTP.DELETEFILEA0001 20Q \GET.TCPFTP.CONNECTION 11Q \TCPFTP.GET.OSTYPE) (3 FDEV) ( 24Q (\TCPFTP.DELETEFILEA0001)) \TCPFTP.DIRECTORYNAMEPA0001 D1 (NAME ERRORSET F 0 DEVINFO F 1 RESETVARSLST F 2 RESETY F 3 DEVICE F 4 HOST/DIR) ÛgggggoggPhhhggoggPhhhhgoggPhogggoggPhhhggoggPhhhhgoggPhohhhhQc¿S Tg ci(325Q \TCPFTP.CONNECT 322Q FILENAMEFIELD 313Q \GET.TCPFTP.CONNECTION) (317Q DIRECTORY 251Q QUOTE 246Q of 237Q replace 214Q QUOTE 211Q of 202Q fetch 177Q CLOSEF 160Q QUOTE 155Q of 146Q fetch 143Q OPENP 140Q AND 121Q QUOTE 116Q of 107Q replace 64Q QUOTE 61Q of 52Q fetch 47Q CLOSEF 30Q QUOTE 25Q of 16Q fetch 13Q OPENP 10Q AND 5 RESETSTATE 2 COND) ( 261Q (with NIL) 243Q (TCPFTPCON TCPOUT) 206Q (TCPFTPCON TCPOUT) 152Q (TCPFTPCON TCPOUT) 131Q (with NIL) 113Q (TCPFTPCON TCPIN) 56Q (TCPFTPCON TCPIN) 22Q (TCPFTPCON TCPIN)) \TCPFTP.DIRECTORYNAMEP D1 (P 3 RESETZ P 2 RESETY P 1 LISPXHIST P 0 DEVINFO I 1 DEVICE I 0 HOST/DIR F 4 LISPXHIST F 5 RESETVARSLST) +AÉ(T!Uog ‘h‚g[ K“J(46Q ERROR! 41Q RESETRESTORE 27Q \TCPFTP.DIRECTORYNAMEPA0001) (35Q ERROR 24Q INTERNAL 3 FDEV) ( 21Q (\TCPFTP.DIRECTORYNAMEPA0001)) \TCPFTP.ENDOFSTREAMOP D1 (I 1 SILENTLY I 0 STREAM) @ Aµ@ (12Q \EOSERROR 3 \TCPFTP.TRANSFER.COMPLETE) NIL () \TCPFTP.GENERATEFILESA0001 D1 (NAME ERRORSET F 0 DEVINFO F 1 PATTERN F 2 OSTYPE) PoghgQ R l– h(30Q ARPACMD 23Q REPACKFILENAME.STRING 17Q PACKFILENAME.STRING) (13Q BODY 7 HOST) ( 4 "NLST") \TCPFTP.GENERATEFILES D1 (P 4 CODE P 3 DATASTREAM P 2 DATASTREAMEVENT P 1 OSTYPE P 0 DEVINFO I 3 OPTIONS I 2 DESIREDPROPS I 1 PATTERN I 0 DEVICE) C@É(@ 1@ Hg Zo \dl–ð´@Jg ´ ggH(65Q \TCPFTP.WAIT.FOR.DATACONNECTION 45Q \TCPFTP.GENERATEFILESA0001 36Q BLOCK 32Q \TCPFTP.SPAWN.DATACONNECTION 23Q \GET.TCPFTP.CONNECTION 14Q \TCPFTP.GET.OSTYPE) (75Q NILL 72Q \TCPFTP.GENERATENEXTFILE 62Q INPUT 27Q INPUT 3 FDEV) ( 42Q (\TCPFTP.GENERATEFILESA0001)) \TCPFTP.GENERATENEXTFILEA0001 D1 (NAME ERRORSET L (0 NIL) P 1 R F 2 DATASTREAM) BRoHd³.g hdI ¿ggI ¿ohI ¿Ii¿H h(75Q READ 60Q SETSEPR 46Q SETSYNTAX 33Q SETBRK 22Q COPYREADTABLE) (42Q OTHER 37Q %% 17Q ORIG) ( 53Q (15Q 12Q 37Q) 4 (NIL)) \TCPFTP.GENERATENEXTFILE D1 (P 2 NAME P 1 CODE P 0 DATASTREAM I 1 NAMEONLY I 0 GENFILESTATE) N@!Hg ŸH ªo Zµ%@hdo Ylúð§Idlâð²¿H ´H hg  (113Q FTPHELP 107Q REPACKFILENAME.STRING 77Q CLOSEF 71Q OPENP 50Q ARPACMD 32Q \TCPFTP.GENERATENEXTFILEA0001 22Q EOFP 15Q OPENP) (104Q D 12Q INPUT) ( 45Q (342Q 372Q) 27Q (\TCPFTP.GENERATENEXTFILEA0001)) \TCPFTP.GETFILENAMEA0001 D1 (NAME ERRORSET F 0 DEVINFO F 1 NAME F 2 OSTYPE) PoghgQ R l– h(30Q ARPACMD 23Q REPACKFILENAME.STRING 17Q PACKFILENAME.STRING) (13Q BODY 7 HOST) ( 4 "NLST") \TCPFTP.GETFILENAME D1 (P 12Q FILE P 6 ALLPOSSIBILITIES P 5 GENERATOR P 4 CODE P 3 DATASTREAM P 2 DATASTREAMEVENT P 1 OSTYPE P 0 DEVINFO I 2 DEVICE I 1 RECOG I 0 NAME) ‚ BÉ(B RB Hg Zo \dl–ð´=BJg [´2ggH]´&@ M _µO^´g@g gN _¿Oµ Oh__¿°ÎO&_¿°Æ(145Q PACK* 135Q FILENAMEFIELD 110Q \GENERATENEXTFILE 62Q \TCPFTP.WAIT.FOR.DATACONNECTION 42Q \TCPFTP.GETFILENAMEA0001 33Q BLOCK 27Q \TCPFTP.SPAWN.DATACONNECTION 20Q \GET.TCPFTP.CONNECTION 11Q \TCPFTP.GET.OSTYPE) (140Q } 132Q HOST 126Q { 73Q NILL 70Q \TCPFTP.GENERATENEXTFILE 57Q INPUT 24Q INPUT 3 FDEV) ( 37Q (\TCPFTP.GETFILENAMEA0001)) \TCPFTP.CONNECT D1 (P 0 DEVINFO I 1 DIRECTORY I 0 DEVICE) 1@É(HogA @ o dlÈð¥dlúð´i(42Q ARPACMD 33Q REPACKFILENAME.STRING 30Q \TCPFTP.GET.OSTYPE 24Q PACKFILENAME.STRING) (20Q DIRECTORY 3 FDEV) ( 37Q (310Q 372Q 702Q 1046Q) 15Q "CWD") \TCPFTP.OPENFILEA0001 D1 (NAME ERRORSET F 0 DEVINFO F 1 FTPCMD F 2 FILENAME) PQRo h(11Q ARPACMD) NIL ( 6 (175Q 226Q 342Q 372Q 651Q 652Q 702Q 703Q 1046Q)) \TCPFTP.OPENFILE D1 (P 11Q FTPCMD P 10Q CODE P 7 STREAMDEV P 6 DATASTREAM P 5 DATASTREAMEVENT P 4 TYPE P 3 DEVINFO P 2 FILENAME P 1 OSTYPE P 0 HOST I 4 DEVICE I 3 PARAMETERS I 2 RECOG I 1 ACCESS I 0 NAME F 12Q DEFAULTFILETYPE)  DÉD ghg@ I DÉ(»gC µWQ D Lgð™KooˆKoolÈ ¿KAdgð“¿g ]Adgð–¿o° gð•o°Agð”o‡oA _o _dl}ð§ddl–ð²N¿DMAdgð“¿g ^d²8g"N@NÉ_dOg¿g Ngg NnÂð§Odn&ð‘h (420Q FTPHELP 374Q STREAMADDPROP 303Q \TCPFTP.WAIT.FOR.DATACONNECTION 243Q \TCPFTP.OPENFILEA0001 232Q ERROR 156Q BLOCK 152Q \TCPFTP.SPAWN.DATACONNECTION 132Q ARPACMD 74Q \GET.TCPFTP.CONNECTION 57Q FASSOC 36Q REPACKFILENAME.STRING 32Q PACKFILENAME.STRING 14Q \TCPFTP.GET.OSTYPE) (371Q \TCPFTP.TRANSFER.COMPLETE 366Q AFTERCLOSE 360Q NILL 352Q NILL 347Q FDEV 342Q FDEV 332Q STREAM 323Q STREAM 315Q \TCPFTP.ENDOFSTREAMOP 312Q STREAM 300Q APPEND 272Q OUTPUT 213Q APPEND 177Q OUTPUT 163Q INPUT 147Q APPEND 141Q OUTPUT 100Q TEXT 53Q TYPE 45Q FDEV 26Q BODY 22Q HOST 3 FDEV) ( 240Q (\TCPFTP.OPENFILEA0001) 226Q "ACCESS must be one of INPUT, OUTPUT, or APPEND" 221Q "APPE" 205Q "STOR" 172Q "RETR" 125Q "L 8" 121Q "TYPE" 113Q "A N" 107Q "TYPE") \TCPFTP.CLOSE D1 (P 0 DEVINFO I 0 DEVICE) ,@É(Hg –H ¿Hg ´H h(50Q CLOSEF 41Q OPENP 30Q CLOSEF 21Q OPENP) (36Q INPUT 16Q OUTPUT 3 FDEV) () \TCPFTP.FLUSH D1 (P 0 INSTREAM I 0 DEVICE) @É(H ´ H ´H ¿°÷(23Q READP 15Q READP) (3 FDEV) () \TCPFTP.INIT D1 NIL eh`dg¿dg¿dg¿dg:¿dg8¿dg6¿dg4¿dg2¿dg0¿dg.¿dg*¿dg$¿dg¿ (142Q \DEFINEDEVICE) (134Q NILL 125Q \GENERIC.READP 116Q NILL 107Q \IS.NOT.RANDACCESSP 100Q \ILLEGAL.DEVICEOP 71Q \IS.NOT.RANDACCESSP 62Q \ILLEGAL.DEVICEOP 53Q \GENERIC.BINS 44Q \GENERIC.BOUTS 35Q \GENERIC.RENAMEFILE 26Q NILL 17Q \TCPFTP.HOSTNAMEP 10Q TCPFTP 3 FDEVTYPE#) () \TCP.BYE D1 (P 2 INSTREAM P 1 DEVINFO P 0 DEVICE I 0 HOST) N@hi !Hd”É(YºI´7J ”J ¿°øIooo I —I ¿J I i(112Q CLOSEF 104Q CLOSEF 77Q CLOSEF 67Q OPENP 60Q ARPACMD 32Q READP 5 \GETDEVICEFROMNAME) (16Q FDEV) ( 55Q (335Q 764Q) 51Q "" 45Q "QUIT") \TCPFTP.OPEN.DATA.CONNECTION D1 (P 0 TCB I 2 EVENT I 1 ACCESS I 0 TCPFTPCON) ;@É @@HÈkÙHÈgA B`ð”B ¿@(63Q NOTIFY.EVENT 47Q TCP.OPEN) (55Q EVENTTYPE# 42Q PASSIVE 35Q TCP.CONTROL.BLOCK 25Q TCP.CONTROL.BLOCK 4 STREAM) () \TCPFTP.SPAWN.DATACONNECTION D1 (P 1 PROCESS P 0 EVENT I 1 ACCESS I 0 TCPFTPCON F 2 RESETVARSLST) =gg@hgAhHh YgggIhhhhRcH(37Q ADD.PROCESS 2 CREATE.EVENT) (51Q DEL.PROCESS 46Q RESETSTATE 43Q AND 22Q QUOTE 13Q QUOTE 10Q \TCPFTP.OPEN.DATA.CONNECTION) () \TCPFTP.TRANSFER.COMPLETE D1 (P 0 DEVICE I 0 DATASTREAM) L@É@gh H´8@ɳ/@g —@ ¿HÉ(hdo @i@hh(72Q ARPACMD 52Q TCP.CLOSE.SENDER 47Q TCP.OTHER.STREAM 42Q OPENP 20Q STREAMPROP) (105Q STREAM 76Q STREAM 57Q FDEV 37Q INPUT 27Q STREAM 14Q AFTERCLOSE 3 STREAM) ( 67Q (342Q 372Q)) \TCPFTP.WAIT.FOR.DATACONNECTION D1 (P 1 STREAM P 0 TCPFTPCON I 2 ACCESS I 1 EVENT I 0 DEVICE) *@É(Ao HB ´HYd@I(30Q OPENP 20Q AWAIT.EVENT) (43Q STREAM 3 FDEV) ( 15Q 352300Q) (PRETTYCOMPRINT TCPFTPCOMS) (RPAQQ TCPFTPCOMS ((COMS (* * FNS from Larry's Interlisp-10 LISPUSERS package) (FNS ARPACMD FTPHELP CMDREADCODE CMDREAD DISCARDLINE GETLINE \TCPFTP.INPUT TELNET.EOL) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA FTPHELP)))) (COMS (* * FNS for the Interlisp-D streams facility) (FNS \TCPFTP.GET.OSTYPE \TCPFTP.HOSTNAMEP \GET.TCPFTP.CONNECTION \TCPFTP.OPEN.CONNECTION \TCPFTP.LOGIN \TCPFTP.DELETEFILE \TCPFTP.DIRECTORYNAMEP \TCPFTP.ENDOFSTREAMOP \TCPFTP.GENERATEFILES \TCPFTP.GENERATENEXTFILE \TCPFTP.GETFILENAME \TCPFTP.CONNECT \TCPFTP.OPENFILE \TCPFTP.CLOSE \TCPFTP.FLUSH \TCPFTP.INIT) (RECORDS TCPDATASTREAM TCPFTPCON)) (COMS (* * Data connection handling) (FNS \TCP.BYE \TCPFTP.OPEN.DATA.CONNECTION \TCPFTP.SPAWN.DATACONNECTION \TCPFTP.TRANSFER.COMPLETE \TCPFTP.WAIT.FOR.DATACONNECTION)) (FILES (SYSLOAD FROM VALUEOF LISPUSERSDIRECTORIES) TCP FILENAMES) (P (\TCPFTP.INIT)) (ADVISE \CANONICAL.HOSTNAME) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA))))) (ACCESSFNS TCPDATASTREAM ((TCPCONTROLDEVICE (fetch (STREAM F3) of DATUM) (replace (STREAM F3) of DATUM with NEWVALUE)) (SEENEOS (fetch (STREAM F4) of DATUM) (replace (STREAM F4) of DATUM with NEWVALUE)))) (RECORD TCPFTPCON (TCPIN TCPOUT DATASTREAM TCPHOST)) (FILESLOAD (SYSLOAD FROM VALUEOF LISPUSERSDIRECTORIES) TCP FILENAMES) (\TCPFTP.INIT) (PUTPROPS \CANONICAL.HOSTNAME READVICE (NIL (AROUND NIL (COND ((NUMBERP NAME) NAME) (T *))))) (READVISE \CANONICAL.HOSTNAME) (PUTPROPS TCPFTP COPYRIGHT ("Xerox Corporation" 1985)) NIL