Commit Graph

467 Commits

Author SHA1 Message Date
dsp
7008d751b2 Initial commit of the uudecode tool and man page
Currently it operates only on regular files and does not
support Base64.
2014-02-02 20:50:31 +00:00
sin
d69ca7c9c3 Add FRIGN to LICENSE 2014-02-01 20:16:56 +00:00
FRIGN
a4d9b7b11e Use PRIu32 and avoid cast 2014-02-01 20:16:14 +00:00
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