sin 
							
						 
					 
					
						
						
							
						
						7969fcd2c2 
					 
					
						
						
							
							No need to dynamically allocate *cmd[]  
						
						
						
						
					 
					
						2014-01-16 11:53:13 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						1bc2296bac 
					 
					
						
						
							
							Double NARGS  
						
						... 
						
						
						
						I just ran a simple one-liner[1] to find the average filepath
length on my system (absolute paths) and that came up with a value
~90 characters.  Assume this is out by a factor of two, we still
have potentially 5000 more arguments that we can put into the buffer.
Surely one might run xargs(1) on something that is not a filename.
We just choose to accomodate the common use-case as much as possible.
[1] find / 2>/dev/null | awk '{print length($0)}' \
	| awk '{a+=$1}END{print "average filepath length: ",a/NR}' 
						
						
					 
					
						2014-01-16 11:01:10 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						b744ad5216 
					 
					
						
						
							
							If there's no newline we don't count the last word - fix it  
						
						
						
						
					 
					
						2014-01-10 22:52:00 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						fbd786d22a 
					 
					
						
						
							
							Correctly handle leftover input  
						
						... 
						
						
						
						We cannot rely on ungetc() pushing back more than 1 character
reliably on all systems, so just note if we have leftover input and
process it in the next run. 
						
						
					 
					
						2014-01-08 20:49:52 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						1963a7cfb3 
					 
					
						
						
							
							Group related declaration  
						
						
						
						
					 
					
						2014-01-08 20:49:39 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						602fd49b53 
					 
					
						
						
							
							Allocate the arg buffer in once place  
						
						
						
						
					 
					
						2014-01-08 20:35:25 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						2d64fa9483 
					 
					
						
						
							
							Rename runcmd() to spawn()  
						
						
						
						
					 
					
						2014-01-08 20:35:19 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						574e3d48ed 
					 
					
						
						
							
							No need to check for a positive `argbpos'  
						
						... 
						
						
						
						No need to deinput a separator. 
						
						
					 
					
						2014-01-08 20:35:12 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						cec487585c 
					 
					
						
						
							
							Rename pusharg() to deinputstr()  
						
						
						
						
					 
					
						2014-01-08 20:35:05 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						e96144118e 
					 
					
						
						
							
							Error out if a single argument cannot fit into the argument space  
						
						
						
						
					 
					
						2014-01-08 20:34:56 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						e585133012 
					 
					
						
						
							
							Rename fillbuf() to fillargbuf()  
						
						
						
						
					 
					
						2014-01-07 14:58:02 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						20c0a0b1e7 
					 
					
						
						
							
							Factor out waiting for children into a separate function  
						
						
						
						
					 
					
						2014-01-07 14:52:29 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						e27c55aec3 
					 
					
						
						
							
							Implement -E eofstr for xargs(1)  
						
						
						
						
					 
					
						2014-01-07 12:03:50 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						7a5369ae04 
					 
					
						
						
							
							Update xargs(1) manpage to mention the possible exit codes  
						
						
						
						
					 
					
						2014-01-07 12:03:37 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						59222b9193 
					 
					
						
						
							
							Exit with error code 123 if one or more invocations of cmd failed  
						
						
						
						
					 
					
						2014-01-06 18:53:30 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						3aec0ac2a4 
					 
					
						
						
							
							Use a return value to signal an invalid backslash  
						
						... 
						
						
						
						Just for consistency with the rest of the code. 
						
						
					 
					
						2014-01-06 18:22:00 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						bb4d7a0e7e 
					 
					
						
						
							
							Don't allow backslash at EOF  
						
						
						
						
					 
					
						2014-01-06 18:17:44 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						0511ecfd84 
					 
					
						
						
							
							If eatspace() encounters EOF don't try to read again from stdin  
						
						
						
						
					 
					
						2014-01-06 18:13:27 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						ef57a609ca 
					 
					
						
						
							
							Exit with error 125 if the process is killed by a signal  
						
						
						
						
					 
					
						2014-01-06 18:05:52 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						2dc105ebbc 
					 
					
						
						
							
							Use saved errno in case weprintf() fails internally  
						
						
						
						
					 
					
						2014-01-04 14:07:34 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						567869a8fe 
					 
					
						
						
							
							Check the exit status and return it from the parent process  
						
						
						
						
					 
					
						2014-01-04 14:02:40 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						7ec616e1e5 
					 
					
						
						
							
							Exit with proper error codes  
						
						... 
						
						
						
						We still have a few error codes to do, namely when the process
is killed or stopped by a signal or when one or more invocations
of the command returned a nonzero exit status. 
						
						
					 
					
						2014-01-04 13:53:59 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						9a1c5783c1 
					 
					
						
						
							
							Remove mktemp(1) from TODO  
						
						... 
						
						
						
						We already have mktemp(1) implemented. 
						
						
					 
					
						2014-01-04 13:41:47 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						18f9f3e141 
					 
					
						
						
							
							Remove xargs(1) from TODO  
						
						... 
						
						
						
						We already have a barebones version. 
						
						
					 
					
						2014-01-04 13:40:42 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						4bdf9a9658 
					 
					
						
						
							
							Add initial version of xargs(1)  
						
						
						
						
					 
					
						2014-01-04 00:04:05 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						71cbd12ede 
					 
					
						
						
							
							Revert "Fix relocation error on OpenBSD (amd64) when compiling with pcc"  
						
						... 
						
						
						
						This reverts commit 06d43e4832 
						
						
					 
					
						2013-12-21 13:39:29 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						1851c02a95 
					 
					
						
						
							
							Show usage instead of exiting silently on an invalid option  
						
						
						
						
					 
					
						2013-12-12 13:30:25 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						aff51008ea 
					 
					
						
						
							
							Add -R as a synonym to -r for cp(1)  
						
						... 
						
						
						
						List the available options in the usage line as well. 
						
						
					 
					
						2013-12-12 13:30:17 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						7f6d5653c6 
					 
					
						
						
							
							Add -R as a synonym to -r for rm(1)  
						
						... 
						
						
						
						Some scripts require this. 
						
						
					 
					
						2013-12-12 13:15:47 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						544857623b 
					 
					
						
						
							
							Add -n support to sort(1)  
						
						
						
						
					 
					
						2013-12-12 13:10:59 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						0b6b84886c 
					 
					
						
						
							
							Add newline at end of file  
						
						
						
						
					 
					
						2013-12-04 17:42:33 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						5534e60703 
					 
					
						
						
							
							Implement -G support for id(1)  
						
						
						
						
					 
					
						2013-12-01 17:29:53 +00:00 
						 
				 
			
				
					
						
							
							
								Rob Pilling 
							
						 
					 
					
						
						
							
						
						d453be2ae1 
					 
					
						
						
							
							id(1) can handle uid arguments  
						
						
						
						
					 
					
						2013-12-01 14:29:16 +00:00 
						 
				 
			
				
					
						
							
							
								Rob Pilling 
							
						 
					 
					
						
						
							
						
						fd8c3b6438 
					 
					
						
						
							
							curproc() isn't needed in id(1)  
						
						
						
						
					 
					
						2013-12-01 14:29:01 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						dac77d3089 
					 
					
						
						
							
							Add support to display user and group info for any user  
						
						... 
						
						
						
						Currently we only handle login names - it should be trivial to
fix to allow for parsing UIDs as well. 
						
						
					 
					
						2013-12-01 10:43:56 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						137ebef3ac 
					 
					
						
						
							
							Factor out code printing information for the current process  
						
						
						
						
					 
					
						2013-12-01 10:43:29 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						f1f0fba630 
					 
					
						
						
							
							Forgot to remove argc from function decl  
						
						... 
						
						
						
						Thanks FRIGN for noticing this. 
						
						
					 
					
						2013-11-30 21:12:40 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						38ca9a24c2 
					 
					
						
						
							
							Be a bit more consistent and use uint8_t instead of unsigned char  
						
						
						
						
					 
					
						2013-11-30 20:59:09 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						abd5a0e573 
					 
					
						
						
							
							We do not name parameters in declarations  
						
						
						
						
					 
					
						2013-11-30 20:58:49 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						7808f4161d 
					 
					
						
						
							
							Implement -m for mkfifo(1)  
						
						
						
						
					 
					
						2013-11-30 20:58:15 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						651dbdd700 
					 
					
						
						
							
							Rename __ARG_H__ to ARG_H__  
						
						... 
						
						
						
						__* is reserved so do not use it. 
						
						
					 
					
						2013-11-25 21:29:20 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						7a2105f5bd 
					 
					
						
						
							
							Forgot to update manpage for mktemp(1)  
						
						
						
						
					 
					
						2013-11-14 19:50:07 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						91a643411d 
					 
					
						
						
							
							Check for TMPDIR and if set use it  
						
						
						
						
					 
					
						2013-11-14 19:47:22 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						a7b8eee6c0 
					 
					
						
						
							
							Add dsp@2f30.org to LICENSE  
						
						
						
						
					 
					
						2013-11-14 19:01:08 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						ee8084cec0 
					 
					
						
						
							
							Fix indentation  
						
						
						
						
					 
					
						2013-11-14 19:00:52 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						078fce3f77 
					 
					
						
						
							
							Always print the program name  
						
						... 
						
						
						
						This is generally very useful for sbase, especially when we
hit some case that is not implemented and we want to know which
program failed. 
						
						
					 
					
						2013-11-14 19:00:28 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						3b3dffd24f 
					 
					
						
						
							
							_brk, _argc and _argv are reserved for the implementation  
						
						... 
						
						
						
						Thanks to nsz@port70.net  for reporting this, the mail excerpt below.
"actually __.* and _[A-Z].* are reserved for any usage and _.* is
reserved for file scope identifiers"
We just rename them to brk_, argc_ and argv_. 
						
						
					 
					
						2013-11-14 10:44:56 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						56a62c605f 
					 
					
						
						
							
							Implement -q support for mktemp(1)  
						
						
						
						
					 
					
						2013-11-13 15:27:41 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						b8edf3b4ee 
					 
					
						
						
							
							Add weprintf() and replace fprintf(stderr, ...) calls  
						
						... 
						
						
						
						There is still some programs left to be updated for this.
Many of these programs would stop on the first file that they
could not open. 
						
						
					 
					
						2013-11-13 11:41:43 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						34f7a688cb 
					 
					
						
						
							
							Add barebones mktemp(1)  
						
						
						
						
					 
					
						2013-11-13 11:06:55 +00:00