Commit Graph

82 Commits

Author SHA1 Message Date
FRIGN
1513c2b766 Refactor unexpand(1) code and manpage, adding tablist support
as already seen for expand(1), only twice as complicated.
2015-02-08 21:24:22 +01:00
FRIGN
28b4b25076 Refactor uname(1) code and manpage
remove stdlib.h-include which was there for no reason and clear
up the manpage.
2015-02-07 22:15:56 +01:00
FRIGN
018d60c6bf Refactor tty(1) code and manpage 2015-02-07 22:00:28 +01:00
FRIGN
79e45395e5 Refactor cmp(1) code and manpage
The algorithm had some areas which had potential for improvement.
This should make cmp(1) faster.
There have been changes to behaviour as well:

1) If argv[0] and argv[1] are the same, cmp(1) returns Same.
2) POSIX specifies the format of the difference-message to be:
      "%s %s differ: char %d, line %d\n", file1, file2,
      <byte number>, <line number>
   However, as cmp(1) operates on bytes, not characters, I changed
   it to
      "%s %s differ: byte %d, line %d\n", file1, file2,
      <byte number>, <line number>
   This is one example where the standard just keeps the old format
   for backwards-compatibility. As this is harmful, this change
   makes sense in the sense of consistentcy (and because we take
   the difference of char and byte very seriously in sbase, as
   opposed to GNU coreutils).

The manpage has been annotated, reflecting the second change, and
sections shortened where possible.
Thus I marked cmp(1) as finished in README.
2015-02-07 21:05:33 +01:00
Hiltjo Posthuma
949f930280 split: fixes
- -b argument required, don't allow -b <= 0.
- -l argument required, don't allow -l <= 0.
- usage() and argument parsing: sort flags.
- don't write 0 size file, get rid of goto reproducable with:
  printf 'a' | split -b 1.
- close FILE *in if != stdin.
- mark split as finished in README.
- codestyle fixes.
2015-02-01 16:30:12 +01:00
FRIGN
8ab096d2a4 Finish up wc(1)
Use size_t for all counts, fix the manpage and refactor the code.
Here's yet another place where GNU coreutils fail:

sbase:
$ echo "GNU/Turd sucks" | wc -cm
    15

coreutils:
$ echo "GNU/Turd sucks" | wc -cm
     15      15

Take a bloody guess which behaviour is correct[0].

[0]: http://pubs.opengroup.org/onlinepubs/009604499/utilities/wc.html
2015-02-01 03:01:11 +01:00
sin
d75cc2e556 POSIX doesn't specify yes(1) so mark it as such in README 2015-02-01 01:27:44 +00:00
FRIGN
f40608ef09 Finish up yes(1) by adding multiple string support 2015-02-01 02:13:47 +01:00
FRIGN
5a20d0e9d7 Finish up cols(1) 2015-02-01 00:55:22 +01:00
FRIGN
7cdb24d085 Finish up setsid(1) 2015-02-01 00:47:32 +01:00
FRIGN
7faf732d0b Edit readlink.1 and document missing flags 2015-02-01 00:43:43 +01:00
FRIGN
a645f52843 Finish up printenv(1) 2015-02-01 00:23:38 +01:00
FRIGN
93a0e759c9 Finish up mktemp(1) 2015-02-01 00:14:19 +01:00
FRIGN
01195fa7e5 Finish up hostname(1) 2015-02-01 00:03:03 +01:00
FRIGN
bcf264f9cd Finish up chroot(1) and md5sum(1) 2015-01-31 23:54:51 +01:00
FRIGN
329936053b Add mandoc-manpage for sleep(1) and refactor the code a bit
and mark it as finished in README.
2015-01-30 13:41:36 +01:00
FRIGN
dc7f392339 Add mandoc-manpage for rmdir(1)
and mark it as finished in README.
2015-01-30 13:30:03 +01:00
FRIGN
97ad252d5d Add mandoc-manpage for rm(1)
and mark it as finished in README.
2015-01-30 11:34:05 +01:00
FRIGN
0d32a8963f Mark renice(1) as finished in README 2015-01-29 23:58:44 +01:00
FRIGN
d4e2067d3d Add mandoc-manpage for paste(1)
and mark it as finished in README.
2015-01-29 21:26:09 +01:00
FRIGN
cdbc0d5035 Add UTF8-support to paste(1) and refactor parallel()
Hopefully it now is clearer what the heck is going on.
2015-01-29 20:15:50 +01:00
FRIGN
7b6d918b78 Add mandoc-manpage for nohup(1)
and mark it as finished in README.
2015-01-28 23:55:57 +01:00
FRIGN
20b5d7c0d4 Add mandoc-manpage for nice(1)
and mark it as finished in README.
2015-01-28 22:40:40 +01:00
FRIGN
7437901098 Add mandoc-manpage for mv(1)
and mark it as finished in README.
Make it clear that -i has not been implemented yet and drop the
flag in the code instead of erroring out.
2015-01-28 22:06:50 +01:00
FRIGN
befec8cf67 Add mandoc-manpage for mkfifo(1) and add full mode support
and mark it as finished in the README.

Previously, it would only parse octal mode strings. Given
we have the parsemode()-function in util.h anyway, why not
also use it?
2015-01-28 20:55:50 +01:00
FRIGN
58dac5cf0a Add mandoc-manpage for mkdir(1) and clean up code
and mark it as finished in the README.
2015-01-26 15:30:56 +01:00
FRIGN
1d28e5b981 Add mandoc-manpage for logname(1)
and mark it as finished in README.
2015-01-26 15:06:50 +01:00
FRIGN
00e7f4e38a Add mandoc-manpage for ln(1)
and mark it as finished in the README.
2015-01-26 14:54:22 +01:00
FRIGN
7067089798 Fix alphabetical order in README 2015-01-26 13:12:44 +01:00
FRIGN
0bb5f5f453 Add mandoc-manpage for link(1)
and mark it as finished in the README.
2015-01-25 22:44:47 +01:00
FRIGN
741d8c9a76 Add mandoc-manpage for head(1) and clean up code
and mark it as finished in the README.
2015-01-25 22:01:26 +01:00
FRIGN
d6bcbf521b Mark fold(1) and grep(1) as finished in the README 2015-01-25 21:33:28 +01:00
FRIGN
b98bf41ecc Add mandoc-manpage for expr(1)
and mark it as finished in README.
Upon further checking, expr(1) turns out to be implicitly UTF-8 compliant.
2015-01-25 16:49:46 +01:00
FRIGN
692c11bf2b Add tablist support and a mandoc-manpage to expand(1)
and mark it as finished in the README.

This is another example showing how broken the GNU coreutils are:

$ echo -e "äää\tüüü\tööö" | gnu-expand -t "5,10,20"
äää    üüü    ööö
$ echo -e "äää\tüüü\tööö" | sbase-expand -t "5,10,20"
äää  üüü  ööö

This is due to the fact that they are still not UTF8-aware and
actually see "ä" as two single characters, expanding the "äää" with
4 spaces to a tab of length 10.
The correct way however is to expand the "äää" with 2 spaces to a
tab of length 5.
One can only imagine how this silently breaks a lot of code around
the world.
WHAT WERE THEY THINKING?
2015-01-25 14:31:02 +01:00
sin
6ba882ec39 We don't need GNU make to build on OpenBSD 2015-01-24 12:30:20 +00:00
FRIGN
616379f8ca Add mandoc-manpage for env(1)
and mark it as finished in the README.
2015-01-24 00:22:06 +01:00
FRIGN
22c6502b67 Add mandoc-manpage for echo(1)
and mark it as finished in the README.
2015-01-23 23:49:24 +01:00
FRIGN
8ac1165125 Mark insane POSIX flags
which we are not planning to include into sbase.
What's left to discuss is how we're going to handle them in the
tools (dump usage() or silently ignore them).
2015-01-23 23:31:46 +01:00
FRIGN
ac208e23ca Add mandoc-manpage for dirname(1)
and mark it as finished in the README.
2015-01-23 23:17:54 +01:00
FRIGN
743707a7b4 Mark non-UTF8-tools as non-finished
This makes clearer that these tools might require some more work.
2015-01-23 23:00:20 +01:00
FRIGN
c208c6328a Add mandoc-manpage for date(1) and clean up code
and mark it as finished in README.
2015-01-23 22:54:25 +01:00
FRIGN
b53469bc67 Mark tee(1) as finished in the README 2015-01-23 22:04:19 +01:00
FRIGN
0489895bb5 Add mandoc-manpage for tee(1)
and mark it as done in the README,
as the -i-flag has been added previously.
2015-01-23 22:02:45 +01:00
FRIGN
733b33f1c7 Add UTF-8-delimiter-support to cut(1)
Now you can specify a multibyte-delimiter to cut, which should
definitely be possible for the end-user (Fuck POSIX).
Looking at GNU/coreutils' cut(1)[0], which basically ignores the difference
between characters and bytes, the -n-option and which is bloated as hell,
one has to wonder why they are still default. This is insane!
Things like this personally keep me motivated to make sbase better
every day.

[0]: http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/cut.c;hb=HEAD
     NSFW! You have been warned.
2015-01-22 12:32:50 +01:00
sin
dc70eb7976 ls: Implement -c and update manpage
Update usage + README as well.  Apparently some of the options (
-H and -L) had already been implemented but not reflected in the
program usage line.
2015-01-20 16:50:37 +00:00
sin
b1f750d96e Update README for touch 2015-01-20 11:22:09 +00:00
FRIGN
8b623f8593 Also indent the headings 2015-01-18 19:41:14 +01:00
FRIGN
07cfc6ee42 Add column to mark UTF-8 support
One major milestone is to have the sbase-tools supporting UTF-8.
Tools like cut(1) with the -n flag don't make sense otherwise.
And while the gnu coreutils cut(1) blatantly ignores such an
important aspect, we will not tolerate this madness and mark it
as a TODO in the main README.
Since most tools inherently support UTF-8 anyway, this just concerns
tools which mangle with text or search in it in special ways.
2015-01-18 19:36:13 +01:00
FRIGN
76ca226e81 Add mandoc-manpage for cut(1) and clean up code
and mark it as finished in README.
2015-01-18 11:30:31 +01:00
FRIGN
f9a1e11661 Add mandoc-manpage for comm(1) and clean up code
and mark it as finished in README.
2015-01-17 23:10:07 +00:00