Date: Tue, 24 Apr 2001 16:29:36 -0700 From: Dima Dorfman <dima@unixfreak.org> To: Garance A Drosihn <drosih@rpi.edu> Cc: freebsd-current@FreeBSD.ORG Subject: Re: cp -d dir patch for review (or 'xargs'?) Message-ID: <20010424232937.1ACA13E2A@bazooka.unixfreak.org> In-Reply-To: <p05100c04b709061b102a@[128.113.24.47]>; from drosih@rpi.edu on "Sun, 22 Apr 2001 19:01:40 -0400"
next in thread | previous in thread | raw e-mail | index | archive | help
Garance A Drosihn <drosih@rpi.edu> writes: > At 1:19 PM -0700 4/21/01, Dima Dorfman wrote: > >Does that mean everyone is blind and missed my arrogant > >cross-post of the amazingly short patch to do this, or > >are we just interested in discussing it and not testing > >the implementation? ;-) > > Well, I'm in the middle of a massive reorganization of > all my machines at home (to fit in a new G4 Cube!), so > I'm not paying as much attention to this as I would like. > I think it's really great that Dima has volunteered to do > the work... :-) > > From what I have been following, you had one patch to add > the '-I' and '-i' options, and a different patch to add > the newly proposed '-Y' option. Right? No, not quite. It's the same patch. The second one just has the 'Y' option renamed to 'I' because I thought they did the same thing: they don't. > > The '-I' option is of interest because it is used in some > other OS's, and is even defined in some standards, such as > the SingleUnixSpec. From that: > > -I replstr > Insert mode: utility will be executed for each line from > standard input, taking the entire line as a single argument, > inserting it in arguments for each occurrence of replstr. > A maximum of five arguments in arguments can each contain > one or more instances of replstr. Any blank characters at > the beginning of each line are ignored. Constructed arguments > cannot grow larger than 255 bytes. Option -x is forced on. > > I think that if we're going to add a '-I', then we should > follow that description. Note that '-I', by definition, > forces '-n 1'. It will always pick up only one file from > the input to xargs per command that xarg will generate. > It allows things like: Adding support for 'I' the way it's described above wouldn't be a trivial as it was to add 'Y'. The latter adds about 15 lines, while the former may involve some restructuring of the code. Xargs compiles the arguments to <utility> as an array of pointers. It also has assumptions that argv is only touched in the begining. It wasn't a problem for -Y since it doesn't support the replstr being embedded in an argument (e.g., for a replstr of "{}", "something{}" will not work as one arugment, only "{}" will), and it didn't have to touch argv more than twice (I just added a small loop before all invocations of run()). With -I, it'd probably be necessary to put a large chuck of what is now main() inside a loop. It's not exactly rocket science, but not something I can whip up in an hour, either. I'll see what I can do probably later this week. Dima Dorfman dima@unixfreak.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010424232937.1ACA13E2A>