summaryrefslogtreecommitdiffstats
path: root/usr.bin/xargs/xargs.c
Commit message (Collapse)AuthorAgeFilesLines
* MFC: r285552allanjude2016-01-121-8/+22
| | | | | | | | | | | | | | | | | | | Use strtonum(3) instead of atoi(3) MFC: r286289 Introduce -P0, creating as many concurrent processes as possible Relnotes: yes MFC: r286461 Fix regression in xargs -Px, add more regression tests MFC: r287004 MFC: r287005 Fix the racy xargs -P0 -n2 test added in r286289 PR: 199976 Submitted by: Nikolai Lifanov <lifanov@mail.lifanov.com>
* Style(9) changes fo xargs.ceadler2013-05-101-2/+4
|
* xargs: Before exiting, wait for all invocations of the utility.jilles2012-03-161-37/+73
| | | | | | | This only has an effect with -P, otherwise errors are only detected when the utility is not running. Submitted by: Matthew Story
* xargs: Remove an unclear comment that only tried to repeat what the code didjilles2012-02-261-4/+0
| | | | Reported by: bde
* xargs: Fix comma splice in error message.jilles2012-02-261-2/+2
| | | | Reported by: bde
* xargs: If a utility exits with 255 or a signal, write an error message.jilles2012-02-241-4/+7
| | | | | | | | If a utility called by xargs exits with status 255 or because of a signal, POSIX requires writing an error message. PR: 165155 Submitted by: Matthew Story matthewstory gmail com
* Remove the advertising clause from UCB copyrighted files in usr.bin. Thisjoel2010-12-111-4/+0
| | | | | | | | | is in accordance with the information provided at ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change Also add $FreeBSD$ to a few files to keep svn happy. Discussed with: imp, rwatson
* Various syntactic tweaks to satisfy style(9). No change to execution.mckay2010-11-211-14/+14
| | | | Submitted by: gcooper@
* xargs can be fooled by exiting children that it did not start, causingmckay2010-11-211-5/+118
| | | | | | | | | | it to kick off a new command before the previous has finished, resulting in corrupted (interleaved) output. It is also fooled by non-exiting children it did not start, failing to exit until all extraneous children have exited. This patch makes xargs keep track of children it starts, ignoring pre-existing ones.
* NUL terminate buffer from fgetln(3). From fgsch@OpenBSD.jmallett2006-01-011-0/+1
|
* Whitespace after switch.jmallett2006-01-011-3/+3
| | | | Inspired by: OpenBSD
* Check the entire length of the current argument for the EOF string with -E,jmallett2005-12-311-1/+1
| | | | | | | | | | | | | but don't expect a proper ASCII string to exist right here right now, don't use strcmp(3) which checks for a NUL. As we're still building the argument up, the next character might be garbage. It would probably be just as safe to temporarily write a NUL there, but if we've reached the end of argument memory that might not be the best idea, I think. It's unclear. Doing it this way seems to meet the most with the original intent. PR: 85696 Prodded by: stefanf
* Add a FreeBSD-specific -S flag which controls the maximum size of an argumentjmallett2005-12-301-6/+15
| | | | having replacements done in it via -I.
* Add -r option for GNU compatibility.des2005-12-071-1/+4
| | | | MFC after: 2 weeks
* MFC 1.22: Fix -0 vs -L/-I processing, mainly so that 'xargs -0 -I []' willgad2005-02-271-2/+9
| | | | | | | do something sensible (namely: treat then '\0' as the EOL character, when deciding what "a line" is for -N). Note that -I implies -N. MFC after: 3 days
* Call setlocale() with category LC_ALL instead of LC_MESSAGES. We needtjr2004-07-121-1/+1
| | | | | | LC_CTYPE and LC_COLLATE to correctly interpret regular expressions returned by nl_langinfo(YESEXPR), and it doesn't hurt to include the rest.
* - Use _PATH_TTY and _PATH_DEVNULL macros.mux2003-06-131-5/+9
| | | | | | | | | | | - Don't fail if we can't open /dev/null since this can happen if xargs is jail'ed or chroot'ed. These fixes were submitted by Todd Miller from the OpenBSD project. There was one problem in those fixes that broke -o, which is corrected here and should be committed to the OpenBSD repo by Todd soon. MFC in: 3 days
* Use waitpid, instead of wait3, which is more portable.jmallett2003-06-131-2/+2
| | | | | | Submitted by: "Todd C. Miller" <Todd.Miller@courtesan.com> Obtained from: OpenBSD Reviewed by: tjr
* Remove redundant return; from void function.jmallett2003-06-131-1/+0
| | | | | Submitted by: "Todd C. Miller" <Todd.Miller@courtesan.com> Obtained from: OpenBSD
* Don't shaddow exp(3).obrien2003-05-031-6/+5
|
* Migrate to a new way of dealing with building from old revisions ofimp2003-04-051-14/+1
| | | | | | | | | | | | | | | | | FreeBSD. This method attempts to centralize all the necessary hacks or work arounds in one of two places in the tree (src/Makefile.inc1 and src/tools/build). We build a small compatibility library (libbuild.a) as well as selectively installing necessary include files. We then include this directory when building host binaries. This removes all the past release compatibilty hacks from various places in the tree. We still build on tip of stable and current. I will work with those that want to support more, although I anticipate it will just work. Many thanks to ru@, obrien@ and jhb@ for providing valuable input at various stage of implementation, as well as for working together to positively effect a change for the better.
* Simplify compatibility ifdef.imp2003-04-041-4/+7
|
* When -o isn't specified, open /dev/null as stdin.mux2003-03-281-2/+5
| | | | Suggested by: jhb
* Add a new -o option to tell xargs(1) to reopen /dev/tty as stdin inmux2003-03-231-3/+12
| | | | | | | | | | | | the child process, before executing the command. This is very useful when you do stuff like ``find ... | xargs interactive_application''. Without -o, the application would inherit the pipe as its stdin, and you thus lose any control over it. This flag has been carefully chosen to not conflit with other options of other xargs utilities like GNU xargs. Reviewed by: jmallett
* Extend our -R extension which sets the number of arguments in which -I willjmallett2003-02-261-3/+6
| | | | | | | replace to support magic values less than zero, which mean to just go nuts and expand as many as we want. MFC after: 2 weeks
* De-typo usage string.jmallett2003-02-261-1/+1
|
* Add the -P option which executes multiple copies of the specified utilitytjr2002-12-211-18/+48
| | | | in parallel. Idea from GNU xargs.
* Take __FreeBSD_version into account when BOOTSTRAPPING.ru2002-11-131-5/+7
|
* Fix typos; each file has at least one s/seperat/separat/schweikh2002-08-111-2/+2
| | | | | | | | | | (I skipped those in contrib/, gnu/ and crypto/) While I was at it, fixed a lot more found by ispell that I could identify with certainty to be errors. All of these were in comments or text, not in actual code. Suggested by: bde MFC after: 3 days
* Declare environ as char **environ like in environ(7), not char *environ[].tjr2002-07-011-1/+1
| | | | | | | | This corrects a problem whereby xargs could not walk the environment table to count the amount of space it used, and treated it as if it were empty. This problem was introduced in rev 1.15. MFC after: 2 days
* Stylistic nit:jmallett2002-06-221-5/+5
| | | | | main()'s argv argument is char*[], and functions that may inherit that arg should use char*[] as well.
* Err, duh, free(3) doesn't set its argument to NULL... Fix realloc of a freedjmallett2002-06-041-1/+3
| | | | chunk.
* Restructure sanity checks so that -I and -J just override eachother, ratherjmallett2002-05-301-5/+6
| | | | | | | than triggering a usage(). Allow -R and -I to be specified in any order, and thus change how -R checks for -I not being given and triggering a usage(). Partially requested by: gad
* Allow the input line to be NULL, and teach strnsubst() that NULL means to usejmallett2002-05-301-3/+3
| | | | a nil-string.
* Simplify prerun() in the case where there are no arguments. Can't do -I or -Jjmallett2002-05-171-1/+1
| | | | | substitution if `utility' is not specified and we're using the buildin echo; It has no arguments for us to abuse.
* xargs.c,v 1.33 broke the upgrade path from old versions of 4.x and 5.0.ru2002-05-101-1/+9
|
* -I and -J both set the same variable, replstr, to the string to replace withjmallett2002-05-061-0/+2
| | | | | a line of input, and both work differently, so prevent them from both being passed to xargs(1).
* Modify the -p implementation to use a user's locale, so they can respond tojmallett2002-05-051-12/+60
| | | | | | | | | | | | the prompt in their native language. Also make the prompt fit what POSIX asks for (?...). This should not affect use of -p with yes(1) [as every locale I know of matches 'y' as YESEXPR as well], but that's what -t is for anyway. -p is meant to be really used interactively. Submitted by: tjr, jmallett
* Fix a typo.jmallett2002-05-051-2/+3
| | | | | | Submitted by: Carl Schmidt <cschmidt@slackerbsd.org> Wrap an obscenely long line while I'm here.
* In an effort to make this utility easier to work with at a source level, movejmallett2002-05-051-141/+154
| | | | | | | | | | | | | | out the parse loop to a seperate function, and move local variables around as is needed. To keep the state of some variables and keep from having huge arg lists to functions, make a bunch global. Change use of err(3) in situations where malloc(3) will be setting errno to errx(3) since assuming malloc(3) sets errno is non-portable, and provides no more useful information in the context of FreeBSD. Submitted by: bde (err/errx), Carl Schmidt <cschmidt@slackerbsd.org> (some of the movement of the input loop to a function) Approved by: src/tools/regression/usr.bin/xargs
* Grouping changes.jmallett2002-05-041-2/+2
| | | | Submitted by: Carl Schmidt <cschmidt@slackerbsd.org>
* Don't use pointers as booleans.jmallett2002-05-041-3/+3
|
* Replace calloc(3) with malloc(3), and set the tail of thejmallett2002-05-041-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | argument list to NULL, to terminate the arguments passed to execvp(2). Thanks to: bde (for pointing out some missing parens) And with apologies to Ozzy Osbourne: On his way to dinner It took him by surprise When an email from bde Said his code was full of lies Style (indentation) And his bracing were all wrong He casted to size_t When he should have cast to long I don't mind Single letter identifiers Unwrapped Line Over 80 chars Far over 80 chars Who can we get to send diffs We need Bruce D. Evans Shows you comparason to his We need Bruce D. Evans again
* Move substitution out to a function, prerun(), and replace use of run() withjmallett2002-05-031-85/+78
| | | | | | | it. It handles everything (right now) that needs done before run(), except the -J case, because while that would be easy, I don't quite understand -J. Reviewed by: src/tools/regression/usr.bin/xargs
* Get rid of bogus holder for realloc(3).jmallett2002-05-031-6/+5
|
* Rewrite the loop that handles substitution in the -I case, and try to makejmallett2002-05-031-15/+75
| | | | | | | | | it easier to understand. Making it easy to understand isn't all that easy, so litter the code with comments so some other poor soul can come along some day and work on this if they see fit to do so. Avoid calling strlen(3) to check for a nil-string, when we can just check for *str=='\0'. Approved by: src/tools/regression/usr.bin/xargs/
* Rename `lflag' to `Lflag' to match the option's case.jmallett2002-05-031-6/+6
|
* Revert revision 1.22. I incorrectly modified the Berkeley identifiers.jmallett2002-05-031-3/+12
| | | | Requested by: bde, mike
* __COPYRIGHT() and __SCCSID().jmallett2002-05-021-12/+3
|
* An explicit cast to size_t for an inline integer, since the two are not thejmallett2002-05-021-2/+2
| | | | | | | same on Alpha and lint(1) pointed that out. lint(1) on the same architecture pointed out how silly a cast to (u_int) to malloc(3)'s argument was. Change that to size_t.
OpenPOWER on IntegriCloud