aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/xargs/xargs.c
Commit message (Collapse)AuthorAgeFilesLines
* xargs: compile yesexpr as EREYuri Pankov2020-12-121-1/+1
| | | | | | | | | | | | yesexpr is an extended regular expression for quite some time now, use appropriate flag when compiling it. PR: 238762 Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D27509 Notes: svn path=/head/; revision=368580
* xargs: add some long options for GNU compatibilityKyle Evans2020-09-211-1/+18
| | | | | | | | | | These are low-effort to add, so let's just do it. Reported by: "LukeShu" on Hacker News (-r / --no-run-if-empty) MFC after: 1 week Notes: svn path=/head/; revision=365954
* xargs: Fix exit status expression when a child process fails to exec.Mark Johnston2020-04-031-1/+1
| | | | | | | | | PR: 244327 Submitted by: thomas.duffy.99@alumni.brown.edu MFC after: 1 week Notes: svn path=/head/; revision=359596
* General further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-0/+2
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326025
* Renumber copyright clause 4Warner Losh2017-02-281-1/+1
| | | | | | | | | | | | Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is too pedantic, so give up on that point. Submitted by: Jan Schaumann <jschauma@stevens.edu> Pull Request: https://github.com/freebsd/freebsd/pull/96 Notes: svn path=/head/; revision=314436
* Fix type mismatches for malloc(3) and Co.Ulrich Spörlein2015-12-291-2/+2
| | | | | | | | | | | | This is rather pedantic, as for most architectures it holds that sizeof(type *) == sizeof(type **) Found by: clang static analyzer Reviewed by: ed Differential Revision: https://reviews.freebsd.org/D4722 Notes: svn path=/head/; revision=292864
* fix regression in xargs -Px (introduced in r286289) and add regression testsAllan Jude2015-08-081-5/+1
| | | | | | | | | | | PR: 202152 Submitted by: jbeich (original), Nikolai Lifanov (final) Reviewed by: jbeich Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D3330 Notes: svn path=/head/; revision=286461
* xargs now takes -P0, creating as many concurrent processes as possibleAllan Jude2015-08-041-2/+13
| | | | | | | | | | | | | | PR: 199976 Submitted by: Nikolai Lifanov <lifanov@mail.lifanov.com> Reviewed by: mjg, bjk Approved by: bapt (mentor) MFC after: 1 month Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D2616 Notes: svn path=/head/; revision=286289
* Convert atoi(3) to stronum(3) which allows to arguments and report proper errorsBaptiste Daroussin2015-07-141-6/+13
| | | | | | | | | to the users Obtained from: OpenBSD Notes: svn path=/head/; revision=285552
* Style(9) changes fo xargs.cEitan Adler2013-05-101-2/+4
| | | | Notes: svn path=/head/; revision=250431
* xargs: Before exiting, wait for all invocations of the utility.Jilles Tjoelker2012-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 Notes: svn path=/head/; revision=233038
* xargs: Remove an unclear comment that only tried to repeat what the code didJilles Tjoelker2012-02-261-4/+0
| | | | | | | Reported by: bde Notes: svn path=/head/; revision=232201
* xargs: Fix comma splice in error message.Jilles Tjoelker2012-02-261-2/+2
| | | | | | | Reported by: bde Notes: svn path=/head/; revision=232187
* xargs: If a utility exits with 255 or a signal, write an error message.Jilles Tjoelker2012-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 Notes: svn path=/head/; revision=232108
* Remove the advertising clause from UCB copyrighted files in usr.bin. ThisJoel Dahl2010-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 Notes: svn path=/head/; revision=216370
* Various syntactic tweaks to satisfy style(9). No change to execution.Stephen McKay2010-11-211-14/+14
| | | | | | | Submitted by: gcooper@ Notes: svn path=/head/; revision=215642
* xargs can be fooled by exiting children that it did not start, causingStephen McKay2010-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. Notes: svn path=/head/; revision=215615
* NUL terminate buffer from fgetln(3). From fgsch@OpenBSD.Juli Mallett2006-01-011-0/+1
| | | | Notes: svn path=/head/; revision=153960
* Whitespace after switch.Juli Mallett2006-01-011-3/+3
| | | | | | | Inspired by: OpenBSD Notes: svn path=/head/; revision=153959
* Check the entire length of the current argument for the EOF string with -E,Juli Mallett2005-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 Notes: svn path=/head/; revision=153934
* Add a FreeBSD-specific -S flag which controls the maximum size of an argumentJuli Mallett2005-12-301-6/+15
| | | | | | | having replacements done in it via -I. Notes: svn path=/head/; revision=153918
* Add -r option for GNU compatibility.Dag-Erling Smørgrav2005-12-071-1/+4
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=153196
* MFC 1.22: Fix -0 vs -L/-I processing, mainly so that 'xargs -0 -I []' willGarance A Drosehn2005-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 Notes: svn path=/head/; revision=142604
* Call setlocale() with category LC_ALL instead of LC_MESSAGES. We needTim J. Robbins2004-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. Notes: svn path=/head/; revision=132008
* - Use _PATH_TTY and _PATH_DEVNULL macros.Maxime Henrion2003-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 Notes: svn path=/head/; revision=116302
* Use waitpid, instead of wait3, which is more portable.Juli Mallett2003-06-131-2/+2
| | | | | | | | | Submitted by: "Todd C. Miller" <Todd.Miller@courtesan.com> Obtained from: OpenBSD Reviewed by: tjr Notes: svn path=/head/; revision=116287
* Remove redundant return; from void function.Juli Mallett2003-06-131-1/+0
| | | | | | | | Submitted by: "Todd C. Miller" <Todd.Miller@courtesan.com> Obtained from: OpenBSD Notes: svn path=/head/; revision=116285
* Don't shaddow exp(3).David E. O'Brien2003-05-031-6/+5
| | | | Notes: svn path=/head/; revision=114591
* Migrate to a new way of dealing with building from old revisions ofWarner Losh2003-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. Notes: svn path=/head/; revision=113136
* Simplify compatibility ifdef.Warner Losh2003-04-041-4/+7
| | | | Notes: svn path=/head/; revision=113045
* When -o isn't specified, open /dev/null as stdin.Maxime Henrion2003-03-281-2/+5
| | | | | | | Suggested by: jhb Notes: svn path=/head/; revision=112746
* Add a new -o option to tell xargs(1) to reopen /dev/tty as stdin inMaxime Henrion2003-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 Notes: svn path=/head/; revision=112514
* Extend our -R extension which sets the number of arguments in which -I willJuli Mallett2003-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 Notes: svn path=/head/; revision=111581
* De-typo usage string.Juli Mallett2003-02-261-1/+1
| | | | Notes: svn path=/head/; revision=111580
* Add the -P option which executes multiple copies of the specified utilityTim J. Robbins2002-12-211-18/+48
| | | | | | | in parallel. Idea from GNU xargs. Notes: svn path=/head/; revision=108156
* Take __FreeBSD_version into account when BOOTSTRAPPING.Ruslan Ermilov2002-11-131-5/+7
| | | | Notes: svn path=/head/; revision=106852
* Fix typos; each file has at least one s/seperat/separat/Jens Schweikhardt2002-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 Notes: svn path=/head/; revision=101677
* Declare environ as char **environ like in environ(7), not char *environ[].Tim J. Robbins2002-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 Notes: svn path=/head/; revision=99199
* Stylistic nit:Juli Mallett2002-06-221-5/+5
| | | | | | | | main()'s argv argument is char*[], and functions that may inherit that arg should use char*[] as well. Notes: svn path=/head/; revision=98617
* Err, duh, free(3) doesn't set its argument to NULL... Fix realloc of a freedJuli Mallett2002-06-041-1/+3
| | | | | | | chunk. Notes: svn path=/head/; revision=97794
* Restructure sanity checks so that -I and -J just override eachother, ratherJuli Mallett2002-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 Notes: svn path=/head/; revision=97620
* Allow the input line to be NULL, and teach strnsubst() that NULL means to useJuli Mallett2002-05-301-3/+3
| | | | | | | a nil-string. Notes: svn path=/head/; revision=97619
* Simplify prerun() in the case where there are no arguments. Can't do -I or -JJuli Mallett2002-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. Notes: svn path=/head/; revision=96797
* xargs.c,v 1.33 broke the upgrade path from old versions of 4.x and 5.0.Ruslan Ermilov2002-05-101-1/+9
| | | | Notes: svn path=/head/; revision=96351
* -I and -J both set the same variable, replstr, to the string to replace withJuli Mallett2002-05-061-0/+2
| | | | | | | | a line of input, and both work differently, so prevent them from both being passed to xargs(1). Notes: svn path=/head/; revision=96092
* Modify the -p implementation to use a user's locale, so they can respond toJuli Mallett2002-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 Notes: svn path=/head/; revision=96057
* Fix a typo.Juli Mallett2002-05-051-2/+3
| | | | | | | | | Submitted by: Carl Schmidt <cschmidt@slackerbsd.org> Wrap an obscenely long line while I'm here. Notes: svn path=/head/; revision=96055
* In an effort to make this utility easier to work with at a source level, moveJuli Mallett2002-05-051-139/+152
| | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=96050
* Grouping changes.Juli Mallett2002-05-041-2/+2
| | | | | | | Submitted by: Carl Schmidt <cschmidt@slackerbsd.org> Notes: svn path=/head/; revision=96014
* Don't use pointers as booleans.Juli Mallett2002-05-041-3/+3
| | | | Notes: svn path=/head/; revision=96013