$ od -c -N 50000 [phylum]<LISP>Lyric>LIBRARY>WHEREIS!1
0000000 ( D E F I N E - F I L E - I N F
0000020 O 247 R E A D T A B L E " X C
0000040 L " 247 P A C K A G E " I N T
0000060 E R L I S P " ) \r 006 001 ( f i l e
0000100 c r e a t e d " 2 9 - O c t -
0000120 8 6 1 3 : 1 7 : 3 3 " 006 004 {
0000140 e r i s } < l i s p c o r e > l
0000160 i b r a r y > w h e r e i s . \
0000200 ; 6 006 001 2 1 8 2 9 \r \r
0000220 | p r e v i o u s | |
0000240 d a t e : | " 5 - O c t - 8
0000260 6 1 6 : 3 6 : 3 0 " { e r i
0000300 s } < l i s p c o r e > l i b r
0000320 a r y > w h e r e i s . \ ; 5 )
0000340 \r \r \r ; C o p y r i g h t (
0000360 c ) 1 9 8 3 , 1 9 8 4 , 1
0000400 9 8 6 b y X e r o x C o r
0000420 p o r a t i o n . A l l r
0000440 i g h t s r e s e r v e d . \r
0000460 \r ( p r e t t y c o m p r i n t
0000500 w h e r e i s c o m s ) \r \r (
0000520 r p a q q 006 002 w h e r e i s c
0000540 o m s 006 001 ( ( * \ ; " W H
0000560 E R E I S f r o m a h a s
0000600 h f i l e " ) \r
0000620 ( f i l
0000640 e s h a s h ) \r
0000660 ( f n
0000700 s h a s h f i l e - w h e r e
0000720 i s c l o s e w h e r e i s
0000740 w h e r e i s n o t i c e w h
0000760 e r e i s n o t i c e 1 ) \r
0001000
0001020 ( a d d v a r s ( w h e r
0001040 e i s . h a s h ) ) \r
0001060 (
0001100 g l o b a l v a r s w h e r e
0001120 i s . h a s h ) \r
0001140 ( d e
0001160 c l a r e \ : d o n t e v a l
0001200 @ l o a d d o c o p y ( p
0001220 ( m o v d ' h a s h f i l e -
0001240 w h e r e i s ' w h e r e i s
0001260 ) ) \r
0001300 ( a
0001320 d d v a r s ( a r o u n d e x
0001340 i t f n s c l o s e w h e r e
0001360 i s ) ) ) \r
0001400 ( c o m s
0001420 ( * \ ; " P o s s i b l y
0001440 o b s o l e t e n o w t h a
0001460 t d i r e c t o r y e n u m
0001500 e r a t e s h i g h e s t v
0001520 e r s i o n o k " ) \r
0001540
0001560 ( f n s \ \ r e m
0001600 o v e o l d v e r s i o n s ) )
0001620 \r
0001640 ( l o c a l v a r s
0001660 . t ) ) ) \r \r \r \r 006 004 ( * \
0001700 ; " W H E R E I S f r o m
0001720 a h a s h f i l e " ) 006 001 \r \r
0001740 ( f i l e s l o a d h a s h )
0001760 \r ( d e f i n e q \r \r ( 006 004 h a
0002000 s h f i l e - w h e r e i s 006 001
0002020 \r ( l a m b d a ( n a m e
0002040 t y p e f i l e s f n ) 006
0002060 006 006 001
0002100
0002120 006 006 ( * | b v m : | " 2
0002140 8 - A p r - 8 6 1 2 : 2 4 " )
0002160 006 001 \r ( p r o g ( v a
0002200 l ) \r \r
0002220 006 006 ( * | i f
0002240 | f n | g i v e n , | a p
0002260 p l y * | t o | | e a c h |
0002300 | e l e m e n t | | a n d |
0002320 | r e t u r n | n i l ) 006 001
0002340 \r \r ( c o n
0002360 d \r (
0002400 ( e q n a m e t ) \r
0002420 \r
0002440 006 006 ( * t | a s | \ a
0002460 n a m e | h a s | \ a | s
0002500 p e c i a l | | m e a n i n g
0002520 | | t o | i n f i l e c o m
0002540 s ? | s o | | d o n ' t |
0002560 \r 006 001 006 006 |
0002600 p a s s | | t h r o u g h . |
0002620 ) 006 001 \r \r
0002640 ( r e t u r n n i l ) )
0002660 ) \r ( s e t
0002700 q t y p e ( g e t f i l e p
0002720 k g t y p e t y p e ) ) \r
0002740 ( | f o r | f
0002760 i l e | i n | ( o r ( l i
0003000 s t p f i l e s ) \r
0003020
0003040 f i l e l s
0003060 t ) \r
0003100 | d o | \r
0003120 ( c o n d \r
0003140
0003160 ( ( i n f i l e c o m s
0003200 ? n a m e t y p e ( f i l
0003220 e c o m s f i l e ) ) \r
0003240
0003260 ( c o n d \r
0003300
0003320 ( f n ( a p p l y * f n n
0003340 a m e f i l e ) ) ) \r
0003360
0003400 ( s e t q v a l ( c o n s
0003420 f i l e v a l ) ) ) ) ) \r
0003440 ( a n d \r
0003460 ( e q f i l
0003500 e s t ) \r
0003520 ( e q t y p e ' f n s ) \r
0003540 ( l i t a
0003560 t o m n a m e ) \r
0003600 ( p r o g n ( c o n
0003620 d \r
0003640 ( ( a n d w h e
0003660 r e i s . h a s h ( n l i s t
0003700 p w h e r e i s . h a s h ) )
0003720 \r
0003740
*
0004000 006 006
0004020 ( * | m a k e | | s u r e |
0004040 w h e r e i s . h a s h | i
0004060 s | \ a \r 006 001
0004100
*
0004160 006 006 | l i s t . | )
0004200 006 001 \r
0004220 ( s e t q w
0004240 h e r e i s . h a s h ( l i s
0004260 t w h e r e i s . h a s h ) )
0004300 ) ) \r
0004320 ( | f o r | w h i s
0004340 h s f i l e h n a m e h s f
0004360 i l e d e l p | o n | w h
0004400 e r e i s . h a s h | d o |
0004420 \r \r
0004440 006 006 ( * w h e r e
0004460 i s . h a s h | i s | \ a
0004500 | l i s t | | o f | | h a s
0004520 h | | f i l e | | n a m e s
0004540 | | o f f | | o f | | w h
0004560 i c h | \r 006 001
0004600 006 006 | t h e | | h a s h |
0004620 | f i l e | | s t r u c t u
0004640 r e | | i s | | l i n k e d
0004660 | | i n t o | | t h e | |
0004700 s y s t e m | | h a s h | \r
0004720 006 001 006 006 | a
0004740 r r a y . | | T h e | | f u
0004760 l l | | f i l e | | n a m e
0005000 | | i s | | h a s h e d . |
0005020 ) 006 001 \r \r
0005040 ( c
0005060 o n d \r
0005100
0005120 ( ( l i s t p ( s e t q h n
0005140 a m e ( c a r w h i s h s f
0005160 i l e ) ) ) \r
0005200
*
0005260 006 006 ( * | f i l e |
0005300 | a l r e a d y | | h a s |
0005320 | a n | \r 006 001
0005340
*
0005420 006 006 | a s s o c i a t
0005440 e d | | h a s h f i l e | |
0005460 d a t a t y p e | ) 006 001 \r
0005500
0005520 ( s e t q
0005540 h s f i l e ( c d r h n a m
0005560 e ) ) ) \r
0005600
0005620 ( ( s e t q h s f i l e (
0005640 f i n d f i l e h n a m e t
0005660 ) ) \r
0005700
0005720 ( c o n d \r
0005740
0005760 ( ( | f i n d | x
0006000 | i n | w h e r e i s . h a
0006020 s h | s u c h t h a t | \r
0006040
*
0006100 ( a n d ( l i s t
0006120 p x ) \r
0006140
*
0006200 ( e q h s f i l e ( h a
0006220 s h f i l e p r o p ( c d r
0006240 x ) \r
0006260
*
0006340 ' n a m e ) ) ) ) \r
0006360
*
0006440 006 006 ( * | L
0006460 o o k s | | l i k e | \ a
0006500 | d u p l i c a t e | \r 006 001
0006520
*
0006600 006 006 | e
0006620 n t r y | ) 006 001 \r
0006640
0006660 ( r p l a c
0006700 a w h i s h s f i l e ( s e
0006720 t q h s f i l e n i l ) ) \r
0006740
*
0007000 ( s e t q d e l p t ) ) \r
0007020
*
0007060 ( t ( s e t q h s f i l e
0007100 ( o p e n h a s h f i l e h s
0007120 f i l e ) ) \r
0007140 \r 006 006 ( *
0007160 | i f | | t h e | | d a t
0007200 a | | f i l e | | i s | |
0007220 e v e r | | c l o s e d , |
0007240 | b r e a k | | t h e | | l
0007260 i n k | | t o | \r 006 001
0007300 006 006 | t h e | |
0007320 h a s h | | f i l e | | s t
0007340 r u c t u r e . | ) 006 001 \r \r
0007360
*
0007420 ( w h e n c l o s e ( h a s
0007440 h f i l e p r o p h s f i l e
0007460 ' s t r e a m ) \r
0007500
*
0007540 ' b e f o r e \r
0007560
*
0007620 ( f u n c t i o n
0007640 ( l a m b d a ( s t r m ) \r
0007660
*
0007740 ( | f o r | t a i l
0007760 | o n | w h e r e i s . h a
0010000 s h | w h e n | \r
0010020
*
0010100 ( a n d ( l i s
0010120 t p ( c a r t a i l ) ) \r
0010140
*
0010240 ( e q s t r m ( h a s h f
0010260 i l e p r o p ( c d a r t a
0010300 i l ) \r
0010320
*
0010420 ' s t r e a m ) ) )
0010440 \r
0010460
*
0010520 | d
0010540 o | \r \r
0010560 006 006 ( * | r e
0010600 m o v e | | t h e | | h a s
0010620 h f i l e | | s t r u c t u r
0010640 e | | f o r | | t h i s |
0010660 | f i l e ' s | | e n t r y |
0010700 | o n | \r 006 001
0010720 006 006 w h e r e i s . h a s
0010740 h . ) 006 001 \r \r
0010760
*
0011040 ( r p l a c a t a i l
0011060 ( c a a r t a i l ) ) ) ) )
0011100 \r
0011120
0011140 ' c l o s
0011160 e a l l \r
0011200
0011220 '
0011240 n o ) \r
0011260
0011300 ( r p l a c a w
0011320 h i s h s f i l e ( c o n s
0011340 h n a m e h s f i l e ) ) ) )
0011360 ) \r
0011400 ( t
0011420 ( o r ( e q ' y ( a s k
0011440 u s e r 1 2 0 ' y ( c o n
0011460 c a t h n a m e \r
0011500
0011520 " , a f i l e o n
0011540 W H E R E I S . H A S H , n
0011560 o t f o u n d - - d o y
0011600 o u w a n t t o d e l e t
0011620 e a n d c o n t i n u e ? "
0011640 \r
0011660
*
0011740 ) \r
0011760
*
0012020 ' ( ( y " e s " ) \r
0012040
*
0012120 ( n " o " ) ) ) ) \r
0012140
*
0012200 ( e r r o r x ( l i s t 2
0012220 3 h n a m e ) ) ) \r
0012240
0012260 ( r p l a c
0012300 a w h i s h s f i l e ( s e
0012320 t q h s f i l e n i l ) ) \r
0012340
0012360 (
0012400 s e t q d e l p t ) ) ) \r
0012420
0012440 ( c o n d \r
0012460
0012500 ( h s f i l
0012520 e ( | f o r | f i l e | i
0012540 n s i d e | ( g e t h a s h f
0012560 i l e n a m e h s f i l e )
0012600 \r
0012620
0012640 | w h e
0012660 n | \r
0012700
0012720 ( n
0012740 o t ( f m e m b f i l e v
0012760 a l ) ) \r
0013000
*
0013040 | d o | \r
0013060
*
0013120 ( a n d f n ( a p p l y *
0013140 f n n a m e f i l e ) ) \r
0013160
*
0013220 ( | p u s h
0013240 | v a l f i l e ) ) ) ) \r
0013260
0013300 | f i n a l l y
0013320 | \r
0013340 ( c o n d
0013360 \r
0013400 ( d e
0013420 l p ( s e t q w h e r e i s
0013440 . h a s h ( d r e m o v e n
0013460 i l w h e r e i s . h a s h )
0013500 ) ) ) ) ) ) \r
0013520 ( r e t u r n ( a n d ( n
0013540 u l l f n ) \r
0013560 (
0013600 d r e v e r s e v a l ) ) ) )
0013620 ) ) \r \r ( 006 004 c l o s e w h e r
0013640 e i s 006 001 \r ( l a m b d a
0013660 ( f l g ) 006 006 006 001
0013700
*
0013740 006 006 ( * | b v m
0013760 : | " 2 8 - A p r - 8 6 1 2
0014000 : 3 3 " ) 006 001 \r
0014020 \r 006 006 (
0014040 * * | C l o s e | | t h e
0014060 | | w h e r e i s | | f i l
0014100 e | | o v e r | | l o g o u
0014120 t , | | s i n c e | | t h e
0014140 r e ' s | | n o | \r 006 001
0014160 006 006 | p o i n t
0014200 | | i n | | p a y i n g |
0014220 | t o | | k e e p | | i t |
0014240 | o p e n | ) 006 001 \r \r
0014260 ( a n d w h e r e i s . h a s
0014300 h ( s e l e c t q f l g \r
0014320
0014340 ( ( n i l b
0014360 e f o r e l o g o u t b e f o
0014400 r e s y s o u t b e f o r e m
0014420 a k e s y s ) \r
0014440
0014460 ( | f o r | h
0014500 f | i n | ( | f o r | w h
0014520 | i n | w h e r e i s . h a
0014540 s h | w h e n | ( l i s t p
0014560 w h ) \r
0014600
*
0014640 | c o l l e
0014660 c t | \r
0014700
*
0014760 006 006 ( * | G a t h e r | |
0015000 t h e | | h a s h f i l e |
0015020 | h a n d l e s | ) 006 001 \r
0015040
*
0015120 ( c d r w h ) ) \r
0015140
*
0015200 | d o | \r
0015220
0015240 ( n l
0015260 s e t q ( c l o s e h a s h f
0015300 i l e h f ) ) ) ) \r
0015320
0015340 n i l ) ) ) ) \r \r ( 006
0015360 004 w h e r e i s n o t i c e 006 001
0015400 \r ( l a m b d a ( f i l e
0015420 g r o u p s n e w f l g d a
0015440 t a b a s e f i l e s c r a t
0015460 c h d i r c o m p u t e . h i
0015500 g h e s t . v e r s i o n s . m
0015520 a n u a l l y ) 006 006 006 001 \r
0015540
*
0015620 006 006 ( * |
0015640 b v m : | " 5 - O c t - 8 6
0015660 1 6 : 3 6 " ) 006 001 006 006 006 001 \r
0015700
*
0015760 006 006 ( * | ; ; | " C o p i
0016000 e s t h e c u r r e n t w
0016020 h e r e i s h a s h - f i l e
0016040 i n t o a s c r a t c h
0016060 f i l e , t h e n n o t i c
0016100 e s t h e f i l e s i n
0016120 F I L E G R O U P T h e c o
0016140 p y i s s o t h a t t h
0016160 i s f u n c t i o n w i l l
0016200 e x e c u t e e v e n t h
0016220 o u g h s o m e o n e e l s
0016240 e i s r e a d i n g t h e
0016260 c u r r e n t d a t a b a s
0016300 e . T h e d a t a b a s e
0016320 i s c o p i e d t o a
0016340 s c r a t c h f i l e , t h
0016360 e n r e n a m e d t o b e
0016400 a n e w e r v e r s i o n
0016420 o f t h e p r e v i o u s
0016440 d a t a b a s e , w h i c h
0016460 i s d e l e t e d . T h
0016500 i s a l l o w s o t h e r s
0016520 t o u s e t h e o l d
0016540 d a t a b a s e w h i l e t
0016560 h e c o p y i n g i s g o
0016600 i n g o n . I f a n e
0016620 a r l i e r v e r s i o n o
0016640 f t h e s c r a t c h f i
0016660 l e e x i s t s , i t m e
0016700 a n s t h a t s o m e o n e
0016720 e l s e i s c u r r e n t
0016740 l y u p d a t i n g ( t h e
0016760 i r v e r s i o n d i s a p
0017000 p e a r s w h e n t h e y
0017020 c o m p l e t e s u c c e s s
0017040 f u l l y o r l o g o u t )
0017060 , s o w e w a i t f o r
0017100 t h e m t o f i n i s h .
0017120 " ) 006 001 006 006 006 001 \r
0017140
*
0017200 006 006 ( *
0017220 | ; ; | " C O M P U T E . H I
0017240 G H E S T . V E R S I O N S . M
0017260 A N U A L L Y m e a n s d o
0017300 n ' t t r u s t D I R E C T
0017320 O R Y t o g e t t h e h
0017340 i g h e s t v e r s i o n o
0017360 f a f i l e o n l y w h
0017400 e n e n u m e r a t i n g . "
0017420 ) 006 001 \r ( r e s e t l s
0017440 t ( p r o g ( ( d a t a b a
0017460 s e f i l e n a m e ( o r d
0017500 a t a b a s e f i l e ( | i f
0017520 | w h e r e i s . h a s h |
0017540 t h e n | 006 006 006 001 \r
0017560
*
0017620 006 006 (
0017640 * \ ; \r 006 001
0017660
*
0017720 006 006 " i f
0017740 t h e r e i s a l i s t
0017760 o f f i l e s , u s e t h
0020000 e t o p o n e . " ) 006 001 \r
0020020
*
0020100 ( | i
0020120 f | ( n l i s t p w h e r e
0020140 i s . h a s h ) \r
0020160
*
0020240 | t h
0020260 e n | w h e r e i s . h a s h
0020300 | e l s e i f | \r
0020320
*
0020400 ( n
0020420 l i s t p ( c a r w h e r e
0020440 i s . h a s h ) ) \r
0020460
*
0020540 | t
0020560 h e n | \r
0020600
*
0020660 ( c a r w h
0020700 e r e i s . h a s h ) \r
0020720
*
0021020 | e l s e | \r
0021040
*
0021120 ( c a a r
0021140 w h e r e i s . h a s h ) ) \r
0021160
*
0021240 | e
0021260 l s e | \r
0021300
*
0021360 ' w h e r e i s . h a s h
0021400 ) ) ) \r
0021420 ( s c r a t c
0021440 h v a l ( l i s t n i l ) )
0021460 \r
0021500 h f s c r a t c h
0021520 o l d w h ) \r
0021540 ( s e t
0021560 q o l d w h ( i n f i l e p
0021600 d a t a b a s e f i l e n a m
0021620 e ) ) 006 006 006 001 006 006 ( * \ ;
0021640 " c r e a t e s a s c r a
0021660 t c h f i l e " ) 006 001 \r
0021700
0021720 ( | i f | ( a n d o l d w
0021740 h ( n o t n e w f l g ) ) \r
0021760
0022000 | t h e n |
0022020 006 006 006 001
0022040
0022060 006 006 ( * \ ; " c o p y o
0022100 l d o n e " ) 006 001 \r
0022120
0022140 ( r e s e t s a v e
0022160 n i l ( l i s t ( f u n c t
0022200 i o n ( l a m b d a ( x ) \r
0022220
*
0022300 ( | i f |
0022320 ( c a r x ) \r
0022340
*
0022420 | t h e n |
0022440 \r
0022460
*
0022540 ( c l o s e f ? ( c a r
0022560 x ) ) \r
0022600
*
0022660 ( a n d r e s e t s
0022700 t a t e ( d e l f i l e \r
0022720
*
0023040 ( c a r x ) ) ) ) ) ) \r
0023060
*
0023120 s c r a
0023140 t c h v a l ) ) \r
0023160
0023200 ( r p l a c a s c r a t
0023220 c h v a l ( s e t q h f (
0023240 c l o s e f ( o p e n f i l e
0023260 ( s e t q s c r a t c h \r
0023300
*
0023400 ( p a c k f i l
0023420 e n a m e \r
0023440
*
0023540 ' d i r e c t o r y \r
0023560
*
0023660 ( f i l e n a m e f i
0023700 e l d \r
0023720
*
0024020 d a t a b a s e f i
0024040 l e n a m e \r
0024060
*
0024160 ' d i r e c t o
0024200 r y ) \r
0024220
*
0024300 ' n
0024320 a m e \r
0024340
*
0024420 ' n
0024440 e w w h e r e i s d a t a b a s
0024460 e \r
0024500
*
0024560 ' e x t
0024600 e n s i o n \r
0024620
*
0024720 ' s c r a t c h \r
0024740
*
0025040 ' t e m p o r a r y \r
0025060
*
0025160 ' s ) ) \r
0025200
*
0025300 ' o u t p u t \r
0025320
*
0025420 ' n e w ) ) ) ) 006 006 006 001 \r
0025440
*
0025500 006
0025520 006 ( * \ ; \r 006 001
0025540 006
0025560 006 " C o m p e n s a t e f o r
0025600 t h e f a c t t h a t P
0025620 A C K F I L E N A M E p r o d
0025640 u c e s v e r s i o n - 1
0025660 f o r t e m p o r a r y ; S
0025700 " ) 006 001 \r
0025720 (
0025740 a n d ( e q ( s y s t e m t
0025760 y p e ) \r
0026000
0026020 ' t o p s 2 0 )
0026040 \r
0026060
0026100 ( s e t q s c r a t c h ( p
0026120 a c k f i l e n a m e ' v e r
0026140 s i o n n i l ' b o d y s
0026160 c r a t c h ) ) ) 006 006 006 001 \r
0026200
*
0026260 006 006 ( * | ; ; | " I f t h
0026300 e r e i s a v e r s i o n
0026320 e a r l i e r t h a n t h
0026340 e o n e w e g o t , s o
0026360 m e o n e e l s e m u s t
0026400 h a v e i t , a n d w e
0026420 m u s t w a i t u n t i l
0026440 h e g e t s r i d o f i
0026460 t ( b y d e l e t i n g i
0026500 t ) " ) 006 001 \r
0026520
0026540 ( | b i n d | o l d v ( r
0026560 p t _ 1 ) \r
0026600
0026620 | u n t i l |
0026640 \r
0026660
0026700 ( e q h f ( s e t q o
0026720 l d v ( f u l l n a m e s c
0026740 r a t c h ' o l d e s t ) ) )
0026760 \r
0027000
0027020 | d o | \r
0027040
0027060 ( d i s m i s s
0027100 2 0 0 0 ) \r
0027120
0027140 ( o r ( n u l
0027160 l r p t ) \r
0027200
0027220 ( | i f
0027240 | ( e q r p t 5 ) \r
0027260
*
0027320 | t h e n | \r
0027340
*
0027400 ( | p r i n
0027420 t o u t | t t ( g e t f i
0027440 l e i n f o o l d v ' a u t
0027460 h o r ) \r
0027500
*
0027540 " s e e m s t
0027560 o b e u p d a t i n g t h
0027600 e d a t a b a s e r i g h t
0027620 n o w . " t \r
0027640
*
0027700 " I ' m
0027720 w a i t i n g f o r h i m
0027740 t o f i n i s h . " t t
0027760 ) \r
0030000
0030020 ( s e
0030040 t q r p t n i l ) \r
0030060
*
0030120 | e l s e | \r
0030140
*
0030200 ( | a d d |
0030220 r p t 1 ) ) ) ) \r
0030240
0030260 ( s e t q h f ( c o
0030300 p y h a s h f i l e o l d w h
0030320 h f n i l n i l t ) ) \r
0030340
0030360 ( c l o s e
0030400 f ? o l d w h ) \r
0030420
0030440 | e l s e i f | \r
0030460
0030500 ( a n d o l d w
0030520 h ( e q n e w f l g ' n o
0030540 c o p y ) ) \r
0030560
0030600 | t h e n | \r
0030620
0030640 ( s e t q h f ( o p e n
0030660 h a s h f i l e o l d w h '
0030700 b o t h n i l ) ) \r
0030720
0030740 ( s e t q s c r a t
0030760 c h d i r n i l ) \r
0031000
0031020 | e l s e | \r
0031040
0031060 ( r e s e t s a v e
0031100 n i l ( l i s t ( f u n c
0031120 t i o n ( l a m b d a ( x )
0031140 \r
0031160
*
0031220 ( | i f
0031240 | ( c a r x ) \r
0031260
*
0031340 | t h e n
0031360 | \r
0031400
*
0031460 ( s e t q x ( c l o s
0031500 e h a s h f i l e ( c a r x
0031520 ) ) ) \r
0031540
*
0031620 ( a n d r e s e t s
0031640 t a t e ( d e l f i l e x )
0031660 ) ) ) ) \r
0031700
*
0031740 s c r a t c h v a l ) )
0031760 \r
0032000 ( r p l a
0032020 c a s c r a t c h v a l ( s
0032040 e t q h f ( c r e a t e h a
0032060 s h f i l e \r
0032100
*
0032140 ( |
0032160 i f | s c r a t c h d i r |
0032200 t h e n | ( p a c k f i l e n
0032220 a m e . s t r i n g \r
0032240
*
0032340 ' d i r e
0032360 c t o r y s c r a t c h d i r
0032400 \r
0032420
*
0032520 ' b o d y \r
0032540
*
0032640 d a t a b a s e
0032660 f i l e n a m e ) \r
0032700
*
0032760 | e l s e | d a
0033000 t a b a s e f i l e n a m e ) \r
0033020
*
0033100 ' s m a l l e x p
0033120 r n i l ( o r ( n u m b e
0033140 r p n e w f l g ) \r
0033160
*
0033260 2 0 0 0 0 ) ) ) ) \r
0033300
0033320 ( s e t q n
0033340 e w f l g t ) ) 006 006 006 001
0033360 006 006 ( * | ; ; | "
0033400 M u s t l e a v e t h e n
0033420 e w f i l e o p e n - - o t
0033440 h e r w i s e , t h e u s e
0033460 r m i g h t l o s e a c c
0033500 e s s t o i t b e f o r e
0033520 h e s t a r t s t o d o
0033540 t h e n o t i c i n g . " )
0033560 006 001 \r
0033600 ( | f o r | x
0033620 | i n | ( | f o r | f i l e
0033640 s p e c | i n s i d e | f i
0033660 l e g r o u p s | b i n d |
0033700 t e m | j o i n | \r
0033720
*
0033760 ( | i f | ( s e t q
0034000 t e m ( i n f i l e p f i l
0034020 e s p e c ) ) \r
0034040
*
0034100 | t h e n | 006 006 006
0034120 001 006 006 ( * \ ;
0034140 " a n i n d i v i d u a l
0034160 f i l e " ) 006 001 \r
0034200
*
0034240 ( l i s t t e
0034260 m ) \r
0034300
*
0034340 | e l s e | 006 006 006 001 \r
0034360
*
0034420 006
0034440 006 ( * | ; ; | " a s p e c
0034460 i f i c a t i o n f o r a
0034500 g r o u p o f f i l e s ,
0034520 e x p a n d i t . D e f a
0034540 u l t t o * . ; - - i .
0034560 e . , h i g h e s t v e r s
0034600 i o n o n l y o f t h e
0034620 e x t e n s i o n l e s s f i
0034640 l e s o n t h i s d i r .
0034660 " ) 006 001 \r
0034700
*
0034740 ( s e t q t e m ( d
0034760 i r e c t o r y ( p a c k f i
0035000 l e n a m e . s t r i n g ' b
0035020 o d y \r
0035040
*
0035140 f i l e s p e c ' n a m e "
0035160 * " \r
0035200
*
0035260 ' e
0035300 x t e n s i o n " " ' v e r
0035320 s i o n " " ) \r
0035340
*
0035420 ) ) \r
0035440
*
0035500 ( | i f |
0035520 c o m p u t e . h i g h e s t
0035540 . v e r s i o n s . m a n u a l
0035560 l y | t h e n | \r
0035600
*
0035640 (
0035660 006 002 \ \ r e m o v e o l d v e r
0035700 s i o n s 006 001 t e m ) \r
0035720
*
0036000 | e l s e | t e m ) ) ) \r
0036020
0036040 | d o | \r
0036060
0036100 ( e r s e
0036120 t q ( | p r i n t o u t | t
0036140 ( 006 002 w h e r e i s n o t i c
0036160 e 1 006 001 x h f ) \r
0036200
*
0036240 - 2 ) ) ) \r
0036260 (
0036300 s e t q h f ( c l o s e h a
0036320 s h f i l e h f ) ) \r
0036340
0036360 ( r p l a c a s c r a t c h v
0036400 a l n i l ) 006 006 006 001
0036420 006 006 ( * | ; ; | " T h i
0036440 s c l o s e s t h e f i l
0036460 e , b u t o t h e r u p d
0036500 a t e r s a r e s t i l l
0036520 l o c k e d o u t c a u s e
0036540 t h e y g o f o r a n
0036560 e w v e r s i o n a n d t
0036600 h e n t r i p o v e r o u
0036620 r o l d o n e . " ) 006 001 \r
0036640
0036660 ( c o n d \r
0036700
0036720 ( ( n o t n e w f l g ) \r
0036740
0036760 ( | i f | ( s e t
0037000 q h f ( r e n a m e f i l e
0037020 h f ( p a c k f i l e n a m
0037040 e ' v e r s i o n n i l '
0037060 b o d y \r
0037100
*
0037160 d a t a b a s e f i l e n
0037200 a m e ) ) ) \r
0037220
0037240 | t h e n | \r
0037260
0037300 ( d e l f i
0037320 l e o l d w h ) ) ) \r
0037340
0037360 ( s c r a t c h d i r (
0037400 s e t q h f ( r e n a m e f
0037420 i l e h f d a t a b a s e f
0037440 i l e n a m e ) ) ) ) 006 006 006 001 \r
0037460
*
0037540 006 006 ( * \ ; " N o w
0037560 o t h e r s c a n g e t i
0037600 n t o r e a d o r u p d
0037620 a t e . " ) 006 001 \r
0037640 ( r e
0037660 t u r n h f ) ) ) ) ) \r \r ( 006
0037700 004 w h e r e i s n o t i c e 1 006
0037720 001 \r ( l a m b d a ( f i l
0037740 e h f t r y h a r d ) 006 006 006
0037760 001
0040000
0040020 006 006 ( * | b v m : | "
0040040 5 - O c t - 8 6 1 6 : 0 8 "
0040060 ) 006 001 \r ( r e s e t l s
0040100 t ( p r o g ( n a m e m a
0040120 p d a t e v a l e n v s
0040140 t r e a m ) \r
0040160 ( r e s e
0040200 t s a v e n i l ( l i s t
0040220 ' c l o s e f ( s e t q s t
0040240 r e a m ( o p e n s t r e a m
0040260 f i l e ' i n p u t ' o l
0040300 d n i l \r
0040320
*
0040400 ' ( d o n
0040420 \ ' t . c h a n g e . r e a d .
0040440 d a t e \r
0040460
*
0040560 d o n \ ' t . c h a n g e
0040600 . d a t e ) ) ) ) ) \r
0040620 (
0040640 s e t q f i l e ( f u l l n
0040660 a m e s t r e a m ) ) \r
0040700
0040720 ( s e t f i l e p t r s t r
0040740 e a m 0 ) \r
0040760 ( c l : m
0041000 u l t i p l e - v a l u e - s e
0041020 t q ( e n v m a p ) \r
0041040
0041060 ( g e t - e n v
0041100 i r o n m e n t - a n d - f i l
0041120 e m a p s t r e a m t ) ) \r
0041140
0041160 ( o r m a p ( r e t
0041200 u r n ( l i s t f i l e "
0041220 - - c a n ' t f i n d f i l
0041240 e m a p " ) ) ) \r
0041260 ( | i
0041300 f | ( a n d ( n o t t r y
0041320 h a r d ) \r
0041340
0041360 ( e q u a l ( s e t
0041400 q d a t e ( f i l e d a t e
0041420 s t r e a m ) ) \r
0041440
*
0041500 ( g e t h a s h f i l e f i l
0041520 e h f ) ) \r
0041540
0041560 d a t e ) \r
0041600
0041620 | t h e n | 006 006 006 001
0041640
0041660 006 006 (
0041700 * \ ; " a l r e a d y a
0041720 n a l y z e d " ) 006 001 \r
0041740
0041760 ( r e t u r n ( l
0042000 i s t f i l e d a t e ) ) )
0042020 \r
0042040 ( s e t q n a m e
0042060 ( n a m e f i e l d f i l e
0042100 t ) ) \r
0042120 ( | f o r | x
0042140 | i n | ( c d r m a p ) \r
0042160
0042200 | d o | \r
0042220
0042240 ( | f o r
0042260 | y | i n | ( c d d r x
0042300 ) \r
0042320
0042340 | u n l e s s | \r
0042360
0042400 (
0042420 o r ( n u l l ( s e t q v
0042440 a l ( l o o k u p h a s h f i
0042460 l e ( c a r y ) \r
0042500
*
0042560 n a m e h f
0042600 ' ( i n s e r t r e t r i e v
0042620 e ) ) ) ) \r
0042640
0042660 ( e q
0042700 n a m e v a l ) \r
0042720
*
0042760 ( a n d ( l i s t p v a l )
0043000 \r
0043020
0043040 ( f m e
0043060 m b n a m e v a l ) ) ) \r
0043100
*
0043140 | d o | 006 006 006 001
0043160 006 006 ( * | ; ; | "
0043200 t h e f i r s t L O O K U P
0043220 H A S H F I L E s t o r e s
0043240 N A M E a s v a l u e i f
0043260 t h e r e w a s n o p r
0043300 e v i o u s v a l u e , e l
0043320 s e r e t u r n s p r e v i
0043340 o u s v a l u e . I f t
0043360 h a t v a l u e w a s n o
0043400 n - n u l l a n d d i d n
0043420 o t c o n t a i n N A M E ,
0043440 n o w h a v e t o s t o
0043460 r e u n i o n o f N A M E
0043500 a n d w h a t w a s t h
0043520 e r e . " ) 006 001 \r
0043540
0043560 ( p u t h
0043600 a s h f i l e ( c a r y ) \r
0043620
*
0043660 ( n c o n c 1
0043700 ( o r ( l i s t p v a l )
0043720 \r
0043740
*
0044000 ( l i s t v a l )
0044020 ) \r
0044040
*
0044100 n a m e ) \r
0044120
*
0044160 h f ) ) ) \r
0044200 ( p u t h
0044220 a s h f i l e f i l e d a t
0044240 e h f ) \r
0044260 ( r e t u r
0044300 n f i l e ) ) ) ) ) \r ) \r \r (
0044320 a d d t o v a r 006 002 w h e r e
0044340 i s . h a s h 006 001 ) \r ( d e c
0044360 l a r e \ : d o e v a l @ c o
0044400 m p i l e d o n t c o p y \r \r
0044420 ( g l o b a l v a r s w h e r
0044440 e i s . h a s h ) \r ) \r ( d e c
0044460 l a r e \ : d o n t e v a l @
0044500 l o a d d o c o p y \r ( m o
0044520 v d ' h a s h f i l e - w h e
0044540 r e i s ' w h e r e i s ) \r \r
0044560 \r ( a d d t o v a r 006 002 a r o
0044600 u n d e x i t f n s 006 001 c l o
0044620 s e w h e r e i s ) \r ) \r \r \r \r
0044640 006 004 ( * \ ; " P o s s i b l
0044660 y o b s o l e t e n o w t
0044700 h a t d i r e c t o r y e n
0044720 u m e r a t e s h i g h e s t
0044740 v e r s i o n o k " ) 006 001 \r
0044760 \r ( d e f i n e q \r \r ( 006 004 \ \
0045000 r e m o v e o l d v e r s i o n
0045020 s 006 001 \r ( l a m b d a ( f
0045040 u l l f i l e l s t ) 006 006 006 001
0045060
*
0045120 006 006 ( * | r r b |
0045140 " 2 2 - F e b - 8 4 1 8 : 1 2
0045160 " ) 006 001 \r \r
0045200 006 006 ( * |
0045220 r e m o v e s | | a l l | |
0045240 b u t | | t h e | | n e w e
0045260 s t | | v e r s i o n | | o
0045300 f | | a n y | | f i l e |
0045320 | o n | \r 006 001
0045340 006 006 f u l l f i l e l s t .
0045360 | S l o w | | v e r s i o n
0045400 | | a s | | t e m p o r a r
0045420 y | | u n t i l | d i r e c
0045440 t o r y | h a s | \ a | w
0045460 a y | \r 006 001
0045500 006 006 | o f | | a s k i n g |
0045520 | f o r | | o n l y | | t
0045540 h e | | m o s t | | r e c e
0045560 n t | | v e r s i o n . | ) 006
0045600 001 \r \r ( p r o g ( ( e
0045620 x p a n d e d f i l e l s t (
0045640 | f o r | f i l e | i n |
0045660 f u l l f i l e l s t | c o l
0045700 l e c t | ( u n p a c k f i l
0045720 e n a m e f i l e ) ) ) \r
0045740 u n i q u e l
0045760 s t f i l e ) \r
0046000 ( | f o r | e x p t a i
0046020 l | o n | e x p a n d e d f
0046040 i l e l s t | d o |
0046060 006 006 ( * | s k i p
0046100 | | d e l e t e d | | f i l
0046120 e s . | ) 006 001 \r
0046140 ( a n d ( s
0046160 e t q f i l e ( c a r e x
0046200 p t a i l ) ) \r
0046220 ( p
0046240 r o g ( ( x d i r e c t o r y
0046260 ( l i s t g e t f i l e '
0046300 d i r e c t o r y ) ) \r
0046320
0046340 ( x n a m e
0046360 ( l i s t g e t f i l e ' n
0046400 a m e ) ) \r
0046420
0046440 ( x e x t e n s i o n (
0046460 l i s t g e t f i l e ' e x
0046500 t e n s i o n ) ) \r
0046520
0046540 ( x v e r s i o n
0046560 ( l i s t g e t f i l e '
0046600 v e r s i o n ) ) ) \r
0046620 \r
0046640 006 006 ( * | g o | | t h r u |
0046660 | t h e | | l i s t | | o
0046700 f | | e x p a n d e d | | f
0046720 i l e s | | a n d | | s e e
0046740 | | i f | | t h e r e | \r
0046760 006 001 006 006 | a
0047000 r e | | a n y | | o t h e r
0047020 | | f i l e s | | o n | |
0047040 t h e | | l i s t | | w i t
0047060 h | | t h e | | s a m e |
0047100 | n a m e . | \r 006 001
0047120 006 006 i \ f | s o | |
0047140 a n d | | i t | | i s | |
0047160 o l d e r , | | d e l e t e |
0047200 | i t . | \r 006 001
0047220 006 006 i \ f | s o | | a
0047240 n d | | i t | | i s | | n
0047260 e w e r , | | d o n ' t | |
0047300 c o p y | | t h i s | | g u
0047320 y | | o n t o | | t h e |
0047340 \r 006 001 006 006 |
0047360 r e s u l t | | l i s t . | )
0047400 006 001 \r \r
0047420
0047440 ( | f o r | e f l t a i l |
0047460 o n | ( c d r e x p t a i l
0047500 ) \r
0047520
0047540 | d o | \r
0047560
0047600 ( s e
0047620 t q f i l e ( c a r e f l
0047640 t a i l ) ) \r
0047660
0047700 ( c o n d \r
0047720
*
0047760 ( ( a n d ( e q
0050000 ( l i s t g e t f i l e ' n
0050020 a m e ) \r
0050040
*
0050100 x n a m e ) \r
0050120
*
0050160 ( e q ( l i s
0050200 t g e t f i l e ' e x t e n
0050220 s i o n ) \r
0050240
*
0050300 x e x t e n s i o n
0050320 ) \r
0050340
0050360 ( e
0050400 q ( l i s t g e t f i l e
0050420 ' d i r e c t o r y ) \r
0050440
*
0050500 x d i r
0050520 e c t o r y ) ) \r
0050540
*
0050600 ( c o n d \r
0050620
*
0050660 ( ( i g r e a t e r p ( l i s
0050700 t g e t f i l e ' v e r s i
0050720 o n ) \r
0050740
*
0051000 x v e r s i o n )
0051020 006 006 ( * x f i l e | s h o
0051040 u l d | | b e | | d e l e t
0051060 e d | ) 006 001 \r
0051100
*
0051140 ( r e t u r n n i l ) ) \r
0051160
*
0051220 ( t \r
0051240 \r
0051260 006 006 ( * | m a r k | |
0051300 i t | | d e l e t e d . | |
0051320 D o n ' t | | w a n t | | t
0051340 o | | p l a y | | a r o u n
0051360 d | | w i t h | | t h e |
0051400 \r 006 001 006 006 |
0051420 p o i n t e r s | | b e c a u
0051440 s e | | t h e | | e n c l o
0051460 s i n g | f o r | i s | |
0051500 u s i n g | | t h e | | s a
0051520 m e | | l i s t . | ) 006 001 \r \r
0051540
*
0051600 ( r p
0051620 l a c a e f l t a i l n i l
0051640 ) ) ) ) ) \r
0051660
0051700 | f i n a l l
0051720 y | \r
0051740
0051760 ( s e t q u n i q
0052000 u e l s t ( c o n s ( c a r
0052020 e x p t a i l ) \r
0052040
*
0052120 u n i q u e l s t ) ) ) )
0052140 ) ) \r ( r e
0052160 t u r n ( | f o r | u f i l
0052200 e | i n | u n i q u e l s t
0052220 | c o l l e c t | ( p a c k
0052240 f i l e n a m e u f i l e ) )
0052260 ) ) ) ) \r ) \r ( d e c l a r e \
0052300 : d o e v a l @ c o m p i l e
0052320 d o n t c o p y \r \r ( l o c a
0052340 l v a r s . t ) \r ) \r ( p u
0052360 t p r o p s w h e r e i s c
0052400 o p y r i g h t ( " X e r o x
0052420 C o r p o r a t i o n " 1 9
0052440 8 3 1 9 8 4 1 9 8 6 ) ) \r (
0052460 d e c l a r e \ : d o n t c o
0052500 p y \r ( f i l e m a p ( n
0052520 i l ( 1 0 0 9 1 8 6 3 7 (
0052540 h a s h f i l e - w h e r e i s
0052560 1 0 1 9 . 6 0 3 4 ) ( c
0052600 l o s e w h e r e i s 6 0 3 6
0052620 . 6 8 9 2 ) ( w h e r e i
0052640 s n o t i c e \r 6 8 9 4 .
0052660 1 6 3 1 6 ) ( w h e r e i s n
0052700 o t i c e 1 1 6 3 1 8 . 1
0052720 8 6 3 5 ) ) ( 1 8 9 2 9 2 1
0052740 6 8 6 ( \ \ r e m o v e o l d
0052760 v e r s i o n s 1 8 9 3 9 .
0053000 2 1 6 8 4 ) ) ) ) ) \r s t o p
0053020 \r
0053021