sin
d1e19e972a
tar: No need to zero-fill variables with global storage
2015-04-23 15:32:00 +01:00
sin
ab267a87eb
tar: Use raw I/O instead of standard file streams
...
As part of refactoring tar to add support for compression through
gzip/bzip2, it makes sense to avoid intermixing file stream I/O with
raw I/O.
2015-04-23 15:32:00 +01:00
sin
fb1595a69c
tar: Use remove() instead of unlink() so we can work on directories too
2015-04-23 15:32:00 +01:00
sin
3419f94d83
tar: Staticise symbols
2015-04-23 12:38:53 +01:00
sin
ce4a10abe7
tar: Apply mtime at the end otherwise it gets reverted
...
Consider the following scenario:
1) create a/
2) apply mtime to a/
3) create a/b # reverts mtime on a
TODO: utimes() does not work on symlinks.
2015-04-23 12:37:39 +01:00
sin
aab2e273bd
tar: Add skipblk() and simplify code
2015-04-23 12:37:38 +01:00
sin
201e71be2b
tar: Skip over git's global pax header crap
2015-04-23 00:05:23 +01:00
sin
7a0d9fb3ea
tar: Skip over data before processing the next entry
...
When we selectively process entries from the archive, ensure that
we jump over the data section of each uninteresting entry before going
on to process the next entry. Not doing so, leaves the file stream
pointer in the wrong place.
2015-04-22 23:24:39 +01:00
sin
2fc73e410c
xargs: Don't print trailing spaces when -t is set
2015-04-21 18:00:48 +01:00
sin
10b57e8a3d
Actually print <space> to stream in putword() too
2015-04-21 18:00:47 +01:00
sin
c914a2feca
Update putword() to accept a FILE *
2015-04-21 18:00:47 +01:00
sin
504855ff96
expr: Don't interpret any arguments
...
expr -1 '<' 1 failed previously.
There is no need to have usage at all, any errors will be flagged
up as necessary further down.
2015-04-21 17:09:20 +01:00
sin
0925bf95ac
tar: Cast to proper type, no functional change
2015-04-21 16:20:31 +01:00
sin
22c0ae67a4
tar: Don't error out if we can't pull pw/gr entries
2015-04-21 16:18:46 +01:00
sin
e6c532a47a
tar: Briefly update manpage and usage for the latest changes
2015-04-21 15:43:52 +01:00
sin
258d0793ac
tar: Allow extracting only a given list of files
...
tar -xf foo.tar a b c
2015-04-21 15:43:52 +01:00
sin
fde9e29d05
tar: Don't assume that name, linkname and prefix are null-terminated
2015-04-21 15:43:52 +01:00
sin
f1261b57d9
Add support to tar multiple files in a single run
2015-04-21 15:43:52 +01:00
sin
542f645bc2
Convert chown() failure to a warning in tar(1)
...
This particular change does not have any immediate shortcomings.
We still print a warning to alert the user.
Exiting on a chown() failure caused problems when untarring
inside a restricted user namespace on Linux where the uid/gid
mappings were limited.
2015-04-21 09:17:26 +01:00
Hiltjo Posthuma
ce145a39a7
expr: fix, first parse then enfshut
2015-04-21 09:11:36 +01:00
FRIGN
7be2449aa9
tr(1): Show an error when classes and non-classes are mixed
2015-04-20 20:41:11 +01:00
Hiltjo Posthuma
bfcf46ac5e
tr: fix "isdigit" check
2015-04-20 20:41:11 +01:00
sin
b9d60bee87
Move mkdirp() to libutil
2015-04-20 18:04:08 +01:00
sin
31af8555a7
Add LICENSE header to fshut.c
2015-04-20 18:04:08 +01:00
sin
6e30efb9bb
Fix mkdir -p with a leading /
2015-04-20 17:47:14 +01:00
Hiltjo Posthuma
9c03736696
tar: error if strdup fails (estrdup)
2015-04-20 17:32:54 +01:00
sin
71eeb21feb
Use strtol() instead of strtoul() in tar(1)
2015-04-20 16:36:03 +01:00
sin
97905f6991
Fix tar(1) handling of archives with improper internal order
...
Not all archives are packed in such way to be generated without
having to recursively generate the output path.
For now, reuse the function from mkdir.c and later move it to
libutil.
2015-04-20 16:36:03 +01:00
sin
3ef6d4e4c9
Fix tar(1) handling of <space> terminated fields
...
Numeric fields can be <space> terminated. Ensure those are
patched with NULs so we can perform string operations.
There is more work to be done in this area, namely some fields like
name, linkname and prefix are not always null-terminated.
2015-04-20 16:36:03 +01:00
sin
d6885987e5
Fix mkdir -p and allow -m to be specified along with -p
...
The mkdirp() function would not create the entire path but it just
happened to work because of the extra mkdir in the main loop.
2015-04-20 16:36:02 +01:00
sin
684b6fe8f2
Enable -lrt by default
2015-04-20 11:44:20 +01:00
sin
d412dad470
Simplify condition in wc(1)
2015-04-20 11:26:38 +01:00
Wolfgang Corcoran-Mathe
cd0b771cbb
Add join(1)
2015-04-20 11:24:12 +01:00
FRIGN
f83d7bc647
Add SILENT flag to recurse()
...
recurse() is getting smarter every day. I expect it to pass the Turing
test in a few months.
Along the way, it was reported that "rm -f" on nonexistant files reports
their missing as an internal recurse()-error.
So recurse() knows when to shut up, I added the SILENT flag to fix all
these things.
2015-04-20 11:12:40 +01:00
FRIGN
7b2465c101
Add maxdepth to recurse()
...
This also makes more sense.
2015-04-20 11:12:40 +01:00
FRIGN
e14d9412f8
Properly handle recursion in recurse()
...
The restructuring of recurse() in the last few weeks actually broke
the recursion-flags in different tools.
As a long-term goal, the recursor should have a field "maxdepth"
which should be "1" for the non-Rflag-case. "0" stands for unlimited.
2015-04-20 11:12:40 +01:00
Hiltjo Posthuma
e2edbdcb87
sed: use reallocarray (non-issue)
2015-04-17 19:01:02 +01:00
Evan Gates
1dbb848037
intptr_t is an optional type, use intmax_t
2015-04-14 16:42:43 +01:00
sin
ea819714c2
Don't close stdin early in sed(1)
...
Fix by emg.
2015-04-09 15:33:57 +01:00
Hiltjo Posthuma
dd395693d4
sed: remove unused strnacpy()
2015-04-08 15:32:56 +01:00
Jakob Kramer
403b047a30
sort: allow keys where start_col > end_col
...
Useful in (rare) cases like:
$ printf 'aaaa c\nx a\n0 b\n' | sort -k 2,1.3
And this is how POSIX wants it.
2015-04-06 17:15:54 +01:00
Jakob Kramer
061932a31b
sort: allow 0 as key's end_char
2015-04-06 17:15:54 +01:00
Jakob Kramer
bddb7200b8
sort: apply -b only to "custom" keys
2015-04-06 17:15:54 +01:00
Jakob Kramer
2d9d224a1b
sort: add support for delimiter strings
...
Instead of just single characters. This also fixes
some bugs in columns(). Example bug:
$ printf "a b\nc b x\n" | sort -k 2,2 -k 1,1
2015-04-06 17:15:54 +01:00
Dionysis Grigoropoulos
ada69106b7
du: Reset size counter for each file read
2015-04-06 08:57:46 +01:00
FRIGN
d8e829a88d
Solve little output issue in du(1)
...
Don't run the size throug nblks() twice.
2015-04-06 08:57:46 +01:00
sin
bb2c0cff45
Fix function definition style for fshut.c
2015-04-05 09:16:50 +01:00
FRIGN
343923b1cc
Add Dionysis Grigoropoulos alias erethon to LICENSE
2015-04-05 09:16:50 +01:00
Dionysis Grigoropoulos
feb77a3b8d
wc: Print number of bytes by default
...
According to POSIX, wc should by default print the number of bytes and
not the number of chars
2015-04-05 09:13:56 +01:00
FRIGN
3eee8e1509
Remove DEBUG-define for eprintf.c
...
Prepend program name only when fmt doesn't begin with "usage".
2015-04-05 09:13:56 +01:00