dsp 
							
						 
					 
					
						
						
							
						
						2e98468788 
					 
					
						
						
							
							check for valid octal input and crude range check on that for validity  
						
						
						
						
					 
					
						2014-02-01 19:50:52 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						31894adad2 
					 
					
						
						
							
							Use printf() instead of fprintf() in uuencode(1)  
						
						
						
						
					 
					
						2014-01-31 15:55:38 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						cb5733ea41 
					 
					
						
						
							
							Make the buffer 45 bytes exactly for uuencode(1)  
						
						
						
						
					 
					
						2014-01-31 15:45:26 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						b60882f206 
					 
					
						
						
							
							Use putchar() instead of fputc() in uuencode(1)  
						
						
						
						
					 
					
						2014-01-31 15:44:00 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						aab53ef197 
					 
					
						
						
							
							Add uuencode(1)  
						
						
						
						
					 
					
						2014-01-31 15:29:11 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						04a32251e4 
					 
					
						
						
							
							Use uint32_t instead of unsigned int in cksum(1)  
						
						
						
						
					 
					
						2014-01-31 13:53:28 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						c96fc3a382 
					 
					
						
						
							
							Forgot to include these before  
						
						
						
						
					 
					
						2014-01-30 21:51:01 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						4ba6c37839 
					 
					
						
						
							
							Ensure we #undef strlcat and strlcpy  
						
						... 
						
						
						
						These may be implemented as macros so #undef them and use our own
implementation. 
						
						
					 
					
						2014-01-30 21:04:01 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						f4609e2836 
					 
					
						
						
							
							Remove stat(1) from sbase as it is not portable  
						
						... 
						
						
						
						This utility uses major()/minor() and they are not portable.
It belongs in ubase. 
						
						
					 
					
						2014-01-30 16:26:40 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						e37e2782a9 
					 
					
						
						
							
							Only use major()/minor() if they are available in tar(1)  
						
						... 
						
						
						
						Otherwise silently ignore them in the archive case.  This is the
same in principle as what we do in the unarchive case. 
						
						
					 
					
						2014-01-30 16:17:25 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						0a7791a25c 
					 
					
						
						
							
							Use recurse() in tar(1) instead of ftw(3)  
						
						
						
						
					 
					
						2014-01-30 14:55:38 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						94e97f19cd 
					 
					
						
						
							
							No need to use enprintf() with EXIT_FAILURE  
						
						... 
						
						
						
						eprintf() does just that. 
						
						
					 
					
						2014-01-30 14:55:26 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						b1b225c9ee 
					 
					
						
						
							
							No need to print the name of the program  
						
						... 
						
						
						
						The name is printed automatically.  Add some missing newlines
as well. 
						
						
					 
					
						2014-01-30 14:55:18 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						fb12183c52 
					 
					
						
						
							
							Add strlcpy()/strlcat()  
						
						... 
						
						
						
						Refactor recurse() routine in preparation to moving tar(1) over
to use it instead of the ftw() interface. 
						
						
					 
					
						2014-01-30 14:55:05 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						08ff1c56e7 
					 
					
						
						
							
							Update TODO  
						
						
						
						
					 
					
						2014-01-30 11:44:29 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						c83aef2cda 
					 
					
						
						
							
							Use preprocessor conditionals to check if makedev() is present  
						
						... 
						
						
						
						makedev() is not portable and is typically implemented as a
macro.  If it exists use it, otherwise silently ignore character
and block devices. 
						
						
					 
					
						2014-01-28 17:22:48 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						203b52c38a 
					 
					
						
						
							
							Use getpriority()/setpriority() instead of deprecated nice()  
						
						... 
						
						
						
						This is now similar to how renice(1) is implemented. 
						
						
					 
					
						2014-01-28 17:20:20 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						43057f3a39 
					 
					
						
						
							
							Remove mknod(1) from sbase  
						
						... 
						
						
						
						mknod(1) is not POSIX and it is not portable so it should be
in ubase instead of sbase. 
						
						
					 
					
						2014-01-28 16:53:53 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						7028920ff4 
					 
					
						
						
							
							Rename saved_errno' to savederrno'  
						
						
						
						
					 
					
						2014-01-27 15:18:42 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						6a18e77962 
					 
					
						
						
							
							Ensure we return a proper error value in setsid(1)  
						
						
						
						
					 
					
						2014-01-27 15:18:30 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						a0fbe3278a 
					 
					
						
						
							
							Add Markus Teich to LICENSE  
						
						
						
						
					 
					
						2014-01-25 22:53:14 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						eef1cef1d1 
					 
					
						
						
							
							Add more people to LICENSE  
						
						... 
						
						
						
						Hopefully, I've not missed anyone. 
						
						
					 
					
						2014-01-25 22:50:54 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						e31b8b76ee 
					 
					
						
						
							
							Add Silvan Jegen to LICENSE  
						
						
						
						
					 
					
						2014-01-25 22:45:28 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						e9a4af87bd 
					 
					
						
						
							
							Staticise functions in tr(1)  
						
						
						
						
					 
					
						2014-01-25 22:07:40 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						db2c54bee6 
					 
					
						
						
							
							oops that should have been enprintf()  
						
						
						
						
					 
					
						2014-01-24 16:46:56 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						b58951b4f0 
					 
					
						
						
							
							snprintf() returns the # of chars printed *excluding* '\0'  
						
						
						
						
					 
					
						2014-01-24 16:23:13 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						30620afb6c 
					 
					
						
						
							
							Check return value of snprintf in mktemp(1)  
						
						
						
						
					 
					
						2014-01-24 16:19:46 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						5be9c21ce4 
					 
					
						
						
							
							Use xrealpath() in du(1)  
						
						
						
						
					 
					
						2014-01-23 21:17:24 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						3ef662c988 
					 
					
						
						
							
							Check snprintf() return value  
						
						
						
						
					 
					
						2014-01-23 21:17:08 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						cc2d762798 
					 
					
						
						
							
							Use the width of the output device by default in mc(1)  
						
						... 
						
						
						
						If that fails, fallback to 65 characters as before.  If the -c
option is specified then just use that. 
						
						
					 
					
						2014-01-21 11:23:16 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						fe6144793f 
					 
					
						
						
							
							Check mmap() return value and unmap at the end  
						
						
						
						
					 
					
						2014-01-20 11:28:21 +00:00 
						 
				 
			
				
					
						
							
							
								Silvan Jegen 
							
						 
					 
					
						
						
							
						
						38f429a3d2 
					 
					
						
						
							
							Add the tr program including man page  
						
						
						
						
					 
					
						2014-01-20 11:22:28 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						cb005c150d 
					 
					
						
						
							
							Fix naming covention for uniq(1)  
						
						
						
						
					 
					
						2014-01-20 10:49:28 +00:00 
						 
				 
			
				
					
						
							
							
								sin 
							
						 
					 
					
						
						
							
						
						13128a7aa0 
					 
					
						
						
							
							Remove dead debug code  
						
						
						
						
					 
					
						2014-01-18 11:50:51 +00:00 
						 
				 
			
				
					
						
							
							
								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