(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) (FILECREATED " 1-Feb-98 09:38:26" ("compiled on " |{DSK}disk2>jdstools>lc3>lispcore3.0>internal>library>GIVE-AND-TAKE.;3|) "31-Jan-98 19:10:48" "COMPILE-FILEd" |in| "Medley 31-Jan-98 ..." |dated| "31-Jan-98 19:12:50") (FILECREATED " 3-Feb-91 14:11:40" |{PELE:MV:ENVOS}INTERNAL>LIBRARY>GIVE-AND-TAKE.;4| 14607 |changes| |to:| (COMMANDS "take") (FUNCTIONS TAKE-FILE) |previous| |date:| "15-Jun-90 14:20:18" |{PELE:MV:ENVOS}INTERNAL>LIBRARY>GIVE-AND-TAKE.;3|) (RPAQQ GIVE-AND-TAKECOMS ((COMMANDS "give?" "taken?" "give" "take" "steal") (FUNCTIONS GIVE-OR-TAKE-FIND ADD-DEFAULT-REGISTRY SEND-STEAL-MESSAGE GIVE-FILE TAKE-FILE TAKEN?) (VARIABLES *GIVE-AND-TAKE-DIRECTORIES*) (PROP FILETYPE GIVE-AND-TAKE))) |exec-give?| :D8 (L (1 $$MACRO-ENV 0 $$MACRO-FORM)) gi (10 TAKEN?) (4 :GIVE?) () (SET-DOCUMENTATION "give?" (QUOTE COMMANDS) NIL) (PUTHASH "give?" (QUOTE (NIL |exec-give?| :EVAL)) *EXEC-COMMAND-TABLE*) |exec-taken?| :D8 (L (1 $$MACRO-ENV 0 $$MACRO-FORM)) 2@!g jº¹H°dýnJkØZñ¨hl4 ¿µêJI(41 \\LISPERROR 14 CL:SYMBOL-FUNCTION) (9 TAKEN?) () (SET-DOCUMENTATION "taken?" (QUOTE COMMANDS) NIL) (PUTHASH "taken?" (QUOTE ((&REST ARGS) |exec-taken?| :EVAL)) *EXEC-COMMAND-TABLE*) |exec-give| :D8 (L (1 $$MACRO-ENV 0 $$MACRO-FORM)) @Hµi ¡hHX°ï(16 GIVE-FILE) NIL () (SET-DOCUMENTATION "give" (QUOTE COMMANDS) NIL) (PUTHASH "give" (QUOTE ((&REST FILES) |exec-give| :EVAL)) *EXEC-COMMAND-TABLE*) |exec-take| :D8 (L (1 $$MACRO-ENV 0 $$MACRO-FORM)) @Hµi ¡hHX°ï(16 TAKE-FILE) NIL () (SET-DOCUMENTATION "take" (QUOTE COMMANDS) NIL) (PUTHASH "take" (QUOTE ((&REST FILES) |exec-take| :EVAL)) *EXEC-COMMAND-TABLE*) |exec-steal| :D8 (L (1 $$MACRO-ENV 0 $$MACRO-FORM)) @Hµii ¡hHX°î(17 TAKE-FILE) NIL () (SET-DOCUMENTATION "steal" (QUOTE COMMANDS) NIL) (PUTHASH "steal" (QUOTE ((&REST FILES) |exec-steal| :EVAL)) *EXEC-COMMAND-TABLE*) GIVE-OR-TAKE-FIND :D8 (L (0 FILENAME)) @i` µio@ h(25 CL:FORMAT 11 FINDFILE) (6 *GIVE-AND-TAKE-DIRECTORIES*) ( 19 "~A does not exist and so cannot be taken or given.~%") ADD-DEFAULT-REGISTRY :D8 (L (0 NAME) F 0 DEFAULTREGISTRY) o@ ¡P¡@@oP (27 CONCAT 10 STRPOS) NIL ( 21 "." 4 ".") SEND-STEAL-MESSAGE :D8 (L (2 FILE 1 AUTHOR 0 THIEF)) hoA@B  (24 LAFITE.SENDMESSAGE 19 MKSTRING 14 CL:FORMAT) NIL ( 5 "Subject: File stolen To: ~A ~A just stole the file ~A from you. The STEAL command") GIVE-FILEA0001 :D8 (P 1 SI::*CATCH-RETURN-FROM* P 0 SI::*DUMMY-FOR-CATCH* F 2 NAME F 3 SI::NLSETQ-VALUE) <i@gggkgR gho hcg(48 OPENSTREAM 32 PACKFILENAME.STRING) (57 :NORMAL 37 INPUT 25 BODY 19 VERSION 14 STATUS 9 EXTENSION) ( 43 (DON\'TCACHE)) GIVE-FILE :D8 (L (0 FILENAME) P 6 *CONDITION-HANDLER-BINDINGS* P 5 SI::*NLSETQFLAG* P 4 *PROCEED-CASES* P 3 SI::NLSETQ-VALUE P 0 NAME F 7 *PROCEED-CASES* F 8 *CONDITION-HANDLER-BINDINGS*) Ÿ@ !H¡h`WioWL gð´KYd ®¿ioH h Z ²I ioH iioHJI I h(155 CLOSEF 149 CL:FORMAT 143 CL:READ 127 CL:FORMAT 115 DELFILE 110 CLOSEF 102 CL::SIMPLE-STRING-EQUAL 97 ADD-DEFAULT-REGISTRY 92 USERNAME 86 ADD-DEFAULT-REGISTRY 81 CL:READ 74 CL:FORMAT 60 STREAMP 41 GIVE-FILEA0001 5 GIVE-OR-TAKE-FIND) (47 :NORMAL 20 SI::NLSETQ-PROCEED-CASE) ( 135 "Sorry, but you can't give what you haven't taken.~%~A was taken by ~A on ~A.~%" 121 "~A is now unlocked.~%" 68 "Sorry, but you can't give what you haven't taken.~%~A has not been taken by anyone, including you.~%" 29 (CL:ERROR . SI::NLSETQHANDLER)) (SET-DOCUMENTATION (QUOTE GIVE-FILE) (QUOTE CL:FUNCTION) "Find the file named and look for a STATUS file associated with it. If found and this user wrote it, then remove it, thus unlocking the file." ) TAKE-FILEA0001A0002 :D8 (L (1 GROSS-LIST-HACK 0 NAME)) TA³Mio@ Ad³d ²¿AA ¹HIA —A ¿A´ A h(79 DELFILE 65 CLOSEF? 57 STREAMP 44 FULLNAME 30 STREAMP 17 CL:FORMAT) NIL ( 11 "Interrupted during processing of ~A. Take aborted.~%") TAKE-FILEA0001A0003 :D8 (P 1 SI::*CATCH-RETURN-FROM* P 0 SI::*DUMMY-FOR-CATCH* F 2 GROSS-LIST-HACK F 3 SI::NLSETQ-VALUE) 3i@gkgR gho hcg(39 OPENSTREAM 23 PACKFILENAME.STRING) (48 :NORMAL 28 INPUT 15 BODY 9 VERSION) ( 34 (DON\'TCACHE)) TAKE-FILEA0001A0004 :D8 (P 1 SI::*CATCH-RETURN-FROM* P 0 SI::*DUMMY-FOR-CATCH* F 4 GROSS-LIST-HACK F 5 NAME F 6 SUCCESS F 7 SI::NLSETQ-VALUE) Ri@"T T »Z ²ioUK ¿ic ŽioUJK hcg(70 CL:FORMAT 50 CL:FORMAT 35 CL::SIMPLE-STRING-EQUAL 30 ADD-DEFAULT-REGISTRY 25 USERNAME 18 CL:READ 11 CL:READ) (79 :NORMAL) ( 61 "Sorry, but ~A was already taken by ~A on ~A.~%" 43 "You've already had ~A taken, since ~A.~%") TAKE-FILEA0001 :D8 (NAME SI::*UNWIND-PROTECT* P 17 *CONDITION-HANDLER-BINDINGS* P 16 SI::*NLSETQFLAG* P 15 *PROCEED-CASES* P 14 SI::NLSETQ-VALUE P 3 SUCCESS P 1 NAME P 0 GROSS-LIST-HACK I 0 SI::*CLEANUP-FORMS* F 18 FILENAME F 19 SI::*RESETFORMS* F 20 *PROCEED-CASES* F 21 *CONDITION-HANDLER-BINDINGS* F 22 STEAL) hdihÑ W$ Y¡hggghgI ZgIHhhdW&c&¿H½Jgho ¼ML¿H_ ¾ON¿Hg kÿ¢± _¿_¿HoOO ¿H ¿ioIOO ¿I _ÁÉg'²(IOÁÉg'_ ®ioIO ¿i±H ¿H ¿H_¿`W(ioW*O gð´O_¿OO¿H ¨io±·W,²wioIHg ¿gghdi hgHg hgIhh ¿H ¿H ¿W$h °D`W(ioW*O gð´OhðH ¿io ¿h»HiK(530 CL:FORMAT 517 CLOSEF 496 TAKE-FILEA0001A0004 464 TAKE-FILE 455 DELFILE 450 FULLNAME 442 CLOSEF 434 ADD.PROCESS 412 GETFILEINFO 392 USERNAME 373 CL:FORMAT 368 GETFILEINFO 335 STREAMP 306 TAKE-FILEA0001A0003 271 DELFILE 262 CLOSEF 250 CL:FORMAT 235 CL::SIMPLE-STRING-EQUAL 199 ROOTFILENAME 192 CL:FORMAT 174 CLOSEF 166 CL:FORMAT 144 DATE 139 ADD-DEFAULT-REGISTRY 134 USERNAME 123 FILENAMEFIELD 103 FULLNAME 89 OPENSTREAM 48 PACKFILENAME.STRING 16 GIVE-OR-TAKE-FIND) (502 :NORMAL 474 SI::NLSETQ-PROCEED-CASE 420 QUOTE 407 AUTHOR 400 QUOTE 384 QUOTE 379 SEND-STEAL-MESSAGE 363 AUTHOR 312 :NORMAL 284 SI::NLSETQ-PROCEED-CASE 225 FILEDATES 210 FILE 118 VERSION 78 OUTPUT 54 TAKE-FILEA0001A0002 41 BODY 35 VERSION 30 STATUS 25 EXTENSION) ( 525 "Bad situation: Only an illegal status file exists.~%Try again in a moment or try to fix the problem.~%" 483 (CL:ERROR . SI::NLSETQHANDLER) 355 "Stealing ~A (and sending ~A a message about it).~%" 342 "Bad situation: Illegal versions of the status file exist.~&Try again in a moment or try to fix the problem.~%" 293 (CL:ERROR . SI::NLSETQHANDLER) 242 "Warning: File ~A is different from loaded file ~A~%" 181 "~A is now locked by ~A at ~A.~%" 157 "~S ~S~%" 84 (DON\'TCACHE)) TAKE-FILE :D8 (P 2 RESETSTATE P 1 SI::*RESETFORMS* P 0 LISPXHIST I 1 STEAL I 0 FILENAME F 3 LISPXHIST) S!g ¿$(23 SI::RESETUNWIND 18 \\MVLIST 13 TAKE-FILEA0001) (8 SI::RESETUNWIND) () TAKEN?A0001 :D8 (NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 4 DIR F 5 AUTHOR F 6 GIVE?)  gTgogo oo 1H Y¡hHg ºU²UJkhih` ²ÖK³&i ¿oi ¿Ti ¿i ¿i»Ig i ¿lhi ¿Hg i ¿l(hi ¿Ji ¿V©i ¿±ÿdhdohi gð¢±ÿKghghgI  ¿±ÿ*(262 GIVE-FILE 257 PACKFILENAME.STRING 223 ASKUSER 204 TERPRI 195 PRIN1 187 TAB 177 PRIN1 171 \\GENERATEFILEINFO 159 TAB 149 PRIN1 143 FILENAMEFIELD 129 TERPRI 122 PRIN1 114 PRIN1 102 TERPRI 91 STRPOS 70 \\GENERATEFILEINFO 55 \\GENERATENEXTFILE 46 \\GENERATEFILES 31 PACKFILENAME.STRING) (250 BODY 244 VERSION 238 EXTENSION 228 Y 166 CREATIONDATE 138 NAME 85 UPPERCASEARRAY 65 AUTHOR 20 EXTENSION 10 NAME 4 DIRECTORY) ( 215 " Give? " 108 " " 41 (RESETLST) 36 (AUTHOR CREATIONDATE) 25 "STATUS" 15 "*") TAKEN? :D8 (L (0 |-args-|) P 10 RESETSTATE P 9 SI::*RESETFORMS* P 8 LISPXHIST P 7 DIR P 6 GIVE? P 3 AUTHOR F 11 LISPXHIST) ñ eHkJIó²Bh!Hk½¼MdLó²H¿hKµU»oK ²hKkoK kÙ °QJdagð¥lÔZ°®kØa°®agð•MkØa°°MlÔ]°¢o ³Ko «Ko ‘h»oi ¿Kµoi ¿i `°'dW! g ¿$µÚh(227 SI::RESETUNWIND 222 \\MVLIST 217 TAKEN?A0001 190 TERPRI 183 PRIN1 168 PRIN1 154 CL::SIMPLE-STRING-EQUAL 142 CL::SIMPLE-STRING-EQUAL 129 CL::SIMPLE-STRING-EQUAL 75 SUBSTRING 68 STRPOS 53 STRPOS 41 USERNAME) (212 SI::RESETUNWIND 195 *GIVE-AND-TAKE-DIRECTORIES* 104 :GIVE? 85 :BY) ( 177 "any" 162 "Looking for files taken by " 149 "*" 137 "ALL" 124 "ANY" 62 "." 47 ".") (CL:PROCLAIM (QUOTE (GLOBAL *GIVE-AND-TAKE-DIRECTORIES*))) (OR (BOUNDP (QUOTE *GIVE-AND-TAKE-DIRECTORIES*)) (CL:SETQ *GIVE-AND-TAKE-DIRECTORIES* (QUOTE ( "{Pele:mv:envos}Sources>" "{Pele:mv:envos}Library>" "{Pele:mv:envos}Internal>Library>" "{Pele:mv:envos}Lispcore>" "{Pele:mv:envos}Test>")))) (PUTPROPS GIVE-AND-TAKE FILETYPE CL:COMPILE-FILE) (PUTPROPS GIVE-AND-TAKE COPYRIGHT ("Venue & Xerox Corporation" 1986 1990 1991)) NIL