kent@xanth.UUCP (Kent Paul Dolan) (10/10/87)
New (to me) Amiga gotcha:
Made a new disk with format.
Copied a bunch of stuff onto it with kermit, say files A, B, C, D, E, F
Decided it would look better all in one directory.
Made a new directory, say G.
Decided a copy and delete would be faster than 6 renames.
1> Copy : G all
^^^ oops!
Copy copies A to G/A.
Copy creates new directory G/G.
Copy copies G/A to G/G/A.
Copy creates new directory G/G/G.
Copy copies G/G/A to G/G/G/A.
Copy creates new directory G/G/G/G.
Copy copies G/G/G/A to G/G/G/G/A.
.
.
.
Panicked operator hits control-C.
Luckily,
1> delete G all
cleans up the mess in one try.
Remind you of the meta-genies out of Hofstader's _Goedel, Escher, Bach,
an Eternal Golden Braid_? ;-)
(Keep the flames, that's how you spell Godel when your typefont
doesn't include an umlauted "o". ;-)
Wasn't anybody's fault but mine; thought you'd enjoy a laugh (and a
lesson) at my expense.
Kent, the man from xanth.rokicki@rocky.STANFORD.EDU (Tomas Rokicki) (10/10/87)
> 1> Copy : G all > ^^^ oops! >Copy copies A to G/A. >Copy creates new directory G/G. >Copy copies G/A to G/G/A. >Copy creates new directory G/G/G. >Copy copies G/G/A to G/G/G/A. >Copy creates new directory G/G/G/G. >Copy copies G/G/G/A to G/G/G/G/A. Gee, I wish I had thought of this when I *wanted* to do this. (I was experimenting with how long it takes to seek down different directory levels; how much overhead is there in sticking another level of directories?) So, I used EMACS to create a script for me. Of course, having REXX at the time would have made it a one-liner . . . > (Keep the flames, that's how you spell Godel when your typefont > doesn't include an umlauted "o". ;-) Nope, you spell it G\"odel in non-published stuff. Thanks for the article! In response, I give you one from me: The easiest way to lock up a CLI is to type: * It tries to load standard input as an executable! (You can usually get out of it after a while, though . . .) Or this one: Manx's memcpy() routine is broken if you compile with long ints; it's only good for memory areas < 64K; the code looks like: bra .in .loop move.b (a0)+,(a1)+ .in dbra d0,.loop when it should look like this: bra .in .loop2 swap d0 .loop move.b (a0)+,(a1)+ .in dbra d0,.loop swap d0 dbra d0,.loop2 I can't remember if it checks the direction of the copy first. Jim, you out there? And there's more. Why doesn't `WaitForChar()' return before the delay if the user hits ^\ (the EOF sequence?) And, despite what Peck's book says, the second parameter is in microseconds, so don't give it a value less than 20000! And then there's the raging SetSignal() controversy . . . -tom