Date: Sat, 25 May 2002 11:24:29 +0300 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: djgpp AT delorie DOT com Message-Id: <2110-Sat25May2002112429+0300-eliz@is.elta.co.il> X-Mailer: emacs 21.2.50 (via feedmail 8 I) and Blat ver 1.8.9 In-reply-to: <3CEE7DCE.BD8CACAE@yahoo.com> (message from CBFalconer on Fri, 24 May 2002 19:00:56 GMT) Subject: Re: GNU Pascal (gpc) 2.1 released References: <3CED528D DOT 7DCF9660 AT yahoo DOT com> <3CED6BA6 DOT 48D4D0FE AT phekda DOT freeserve DOT co DOT uk> <200205241404 DOT g4OE4Qt03777 AT envy DOT delorie DOT com> <3CEE7DCE DOT BD8CACAE AT yahoo DOT com> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: CBFalconer > Newsgroups: comp.os.msdos.djgpp > Date: Fri, 24 May 2002 19:00:56 GMT > > Which means that "rm @foo" cannot mean to remove the file "@foo", > because if it exists it is an extended command line, and if it > doesn't it becomes an argument. So, at least for rm, that usage > makes no sense. You assume that all arguments to `rm' are file names. That is not true. While today none of the known non-file arguments can begin with a @, that may change as rm is developed and maintained. > BTW a thought occurs to me - if the @ mechanism is to effectively > extend command lines, what is the effect of multiple @ in a single > command, e.g. "rm @foo @bar"? They are all expanded one by one, using the same code. In other words, the startup code loops through all the arguments it got from DOS, and processes each one with the code that expands wildcards, reads response files, etc. For details, see the file src/libc/crt0/c1args.c from djlsr203.zip.