Commit Graph

206 Commits

Author SHA1 Message Date
Evan Gates a2e704c8c9 use parameter expansion instead of basename in Makefile 2015-02-21 09:22:21 +00:00
Evan Gates 654997c320 add [ alias for test 2015-02-21 09:22:16 +00:00
Evan Gates 76e6aacd60 Add initial find(1) implementation
No manpage yet.
2015-02-20 10:17:16 +00:00
FRIGN 73577f10a0 Scrap chartorunearr(), introducing utftorunestr()
Interface and function as proposed by cls.

The reasoning behind this function is that cls expressed his
interest to keep memory allocation out of libutf, which is a
very good motive.
This simplifies the function a lot and should also increase the
speed a bit, but the most important factor here is that there's
no malloc anywhere in libutf, making it a lot smaller and more
robust with a smaller attack-surface.

Look at the paste(1) and tr(1) changes for an idiomatic way to
allocate the right amount of space for the Rune-array.
2015-02-11 21:32:09 +01:00
FRIGN 7c578bf5b0 Scrap writerune(), introducing fputrune()
Interface and function as proposed by cls.
Code is also shorter, everything else analogous to fgetrune().
2015-02-11 20:58:00 +01:00
FRIGN a5ae899a48 Scrap readrune(), introducing fgetrune()
Interface as proposed by cls, but internally rewritten after a few
considerations.
The code is much shorter and to the point, aligning itself with other
standard functions. It should also be much faster, which is not bad.
2015-02-11 20:16:49 +01:00
FRIGN f9846a9a6b Split up is*rune() and to*rune() functions into individual source files
This optimizes the binary size for each tool that uses these functions.
Previously, if a program just used one single function, maybe even a
one-liner, it would statically compile in all lookup-tables, bloating
the binary by up to 20K.
All these changes are derived from a local libutf where I do the
primary changes. So I hope that I can merge these things into libutf
sooner or later, as discussed on the ml.
2015-02-11 15:48:18 +01:00
Evan Gates bc07f1b9b5 Add initial implementation of sed(1)
No manpage yet.
2015-02-10 10:35:22 +00:00
Eon S. Jeon 6b93b14fba support llvm-ar
llvm-ar doesn't understand flags prefixed with dashes.
2015-02-03 10:08:26 +00:00
Hiltjo Posthuma 66e1bbccf3 Makefile: stricter regex replace for sbase VERSION 2015-02-01 16:33:46 +01:00
sin 0934e7f6ed Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
Hiltjo Posthuma 4a920a5960 remove sbase-VERSION from man page, fix sponge.1 date 2015-01-31 14:20:02 +01:00
FRIGN fd562481f3 Convert estrto{l, ul} to estrtonum
Enough with this insanity!
2015-01-30 16:52:44 +01:00
sin add25a464f Add strtonum() in preparation to nuking estrtol() and friends 2015-01-30 13:48:33 +00:00
sin b90ca482a0 Add estrtoul() 2015-01-30 13:24:41 +00:00
FRIGN b8b9d983c8 Add unescape() to libutil
formerly known as resolveescapes(), it is of central use to numerous
programs.
This drops a lot of LOC.
2015-01-29 21:52:44 +01:00
sin bc9c752df5 Import strsep() from musl libc 2015-01-25 17:48:11 +00:00
FRIGN a582cb8a2f Rewrite tr(1) in a sane way
tr(1) always used to be a saddening part of sbase, which was
inherently broken and crufted.
But to be fair, the POSIX-standard doesn't make it very simple.
Given the current version was unfixable and broken by design, I
sat down and rewrote tr(1) very close to the concept of set theory
and the POSIX-standard with a few exceptions:

 - UTF-8: not allowed in POSIX, but in my opinion a must. This
          finally allows you to work with UTF-8 streams without
          problems or unexpected behaviour.
 - Equivalence classes: Left out, even GNU coreutils ignore them
                        and depending on LC_COLLATE, which sucks.
 - Character classes: No experiments or environment-variable-trickery.
                      Just plain definitions derived from the POSIX-
                      standard, working as expected.

I tested this thoroughly, but expect problems to show up in some
way given the wide range of input this program has to handle.
The only thing left on the TODO is to add support for literal
expressions ('\n', '\t', '\001', ...) and probably rethinking
the way [_*n] is unnecessarily restricted to string2.
2015-01-10 14:26:30 +00:00
sin e296329773 Rename crond to cron 2014-12-16 11:04:07 +00:00
sin 8d2c5dd9a3 Import crond from http://git.2f30.org/scron/tree/ 2014-12-09 16:05:38 +00:00
sin 5d1e46fefa Implement POSIX 2008 compliant logger(1) 2014-12-04 11:36:40 +00:00
sin f141da6190 Bring back OpenBSD make compatibility in Makefile
Thanks @quing
2014-12-01 17:37:44 +00:00
Evan Gates 1bd598c9ed sort BIN, that was bugging me 2014-12-01 17:18:56 +00:00
sin d13e5c2be3 Remove redundant deletions from clean target 2014-11-30 11:57:38 +00:00
sin 5b5bb82ec0 Factor out readrune and writerune 2014-11-21 16:31:16 +00:00
sin ce86a05f36 Import strcasestr() from musl and remove -D_GNU_SOURCE 2014-11-20 23:46:06 +00:00
sin 5197affac5 Remove col(1)
Not quite necessary to have this in sbase at the moment.  We can do
a clean implementation when required.

This implementation also has some bugs that they have been fixed
in OpenBSD -current but I am too lazy to backport (we also had local
changes to col(1)).

printf(1) as imported from OpenBSD will stay for now because I need
it for booting my system.
2014-11-20 13:57:52 +00:00
sin 0d7c2351b4 Remove csplit(1)
Get rid of it for now as it is not really widely used.  We can do
a simple implementation when time comes.

Remove the table from README because it is not easy to edit unless
you use emacs.
2014-11-20 13:52:18 +00:00
sin 2c42905f63 Make libutf.a and libutil.a different 2014-11-19 10:51:29 +00:00
Evan Gates 84b08427a1 remove agetline 2014-11-18 21:05:28 +00:00
Evan Gates cca0522872 clear suffix list then add only .o and .c in that order to avoid use of builtin .c inference rule skipping .c.o 2014-11-18 20:18:05 +00:00
sin fda3ed9a56 Remove .POSIX from Makefile 2014-11-18 19:28:04 +00:00
sin 027052f5e5 Rename util/ to libutil/ 2014-11-17 16:48:34 +00:00
sin cb7cbde722 Add compat.h 2014-11-17 15:46:28 +00:00
sin 56709a2414 Import libutf from http://git.suckless.org/libutf 2014-11-17 15:46:01 +00:00
sin ba70777b56 Remove binlib and bin from PHONY 2014-11-17 14:46:52 +00:00
sin 74ac827587 Require GNU make to build sbase
We seem to have problems building individual tools across various
make implementations.  If anyone can step up and fix this we will
remove the dependency on GNU make.
2014-11-17 13:54:24 +00:00
sin a84cbe9e1c Avoid messed up output because of trailing spaces 2014-11-17 13:22:54 +00:00
sin ba89dc565f Add .PHONY targets 2014-11-17 13:02:32 +00:00
sin 0d0624b855 Use $(RANLIB) in Makefile 2014-11-17 12:24:03 +00:00
sin 2ee3ae5994 Use LIB, LIBSRC and LIBOBJ and derive SRC, OBJ and MAN from BIN 2014-11-17 12:14:25 +00:00
sin 4a97e0b526 List libutil.a first to be a bit more clear 2014-11-17 10:50:45 +00:00
sin 1b0d2c1ab3 Make clean more verbose 2014-11-17 10:39:02 +00:00
sin e1c044e298 Do not append CPPFLAGS to CFLAGS 2014-11-17 10:38:37 +00:00
sin 2fd6e769dd Rename util.a to libutil.a 2014-11-17 10:37:07 +00:00
sin 9a9d6bb0dc Make build process more verbose 2014-11-17 10:36:39 +00:00
Hiltjo Posthuma ce90cc57d4 util: add eregcomp: show descriptive error message on regcomp error 2014-11-16 14:36:41 +00:00
sin 67fcc79046 Use queue.h in grep(1) 2014-11-16 12:39:15 +00:00
sin 2982d88533 Import ealloc.c from ubase 2014-11-14 18:10:05 +00:00
sin 3de142ba70 Delete dist when cleaning 2014-11-14 14:41:05 +00:00
sin 300eedc50a Add README and TODO to dist target 2014-11-14 11:58:42 +00:00
sin ee55fbe9e9 Just make $(HDR) a prereq for $(OBJ)
The result is always correct but it might do redundant builds.
Not really an issue as sbase builds very fast.  The alternative is
to track the header deps manually but this is already incomplete and
unlikely to be kept up to date.
2014-11-13 18:28:18 +00:00
sin 2c7516c716 Sort HDR in Makefile 2014-11-13 18:21:19 +00:00
Evan Gates 5cf965ffbf return exit status of command in sbase-box 2014-11-08 13:50:55 +00:00
Hiltjo Posthuma b6b8fe9591 separate humansize into a util function
also show 1 decimal of human size string like: 4M -> 4.4M
2014-10-18 23:56:51 +01:00
Brandon Mulcahy 7a73da6864 Add logname(1) 2014-10-17 15:36:27 +01:00
Markus Teich 314885836c Add link(1) 2014-10-17 15:36:16 +01:00
sin c0b9a8533f Import csplit(1) from OpenBSD
Modified slightly to conform to the sbase style.
2014-10-16 12:22:36 +01:00
sin d1a1c42eb3 Update only the modified objects in util.a 2014-10-16 11:33:05 +01:00
sin a6793ced1b Another EXIT_SUCCESS nuked 2014-10-02 23:49:19 +01:00
sin a48b850d3f Import col(1) from OpenBSD with minor modifications
Remove getopt, use arg.h.
2014-09-29 19:52:31 +01:00
sin 618aecd2ec Import expr(1) from OpenBSD
Cleanup + manpage to be done.
2014-09-29 13:44:49 +01:00
sin fe41494ed3 Import printf(1) from OpenBSD 2014-09-28 15:12:15 +01:00
Tuukka Kataja 8b87d0098a Add unexpand(1) 2014-06-09 17:00:13 +01:00
Hiltjo Posthuma 2ab2d2ee3b remove afgets
Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
2014-06-01 18:03:20 +01:00
Hiltjo Posthuma d12e953f18 add agetline, separate estrtod to util
Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
2014-06-01 18:01:45 +01:00
Hiltjo Posthuma 560340341f make parsemode() generic
use for uudecode and chmod

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
2014-04-09 15:40:32 +01:00
sin bc0de5e7e5 Rename mc(1) to cols(1)
There is an obvious name collision with the popular file manager
midnight commander.
2014-03-12 14:47:38 +00:00
sin 17338bfbb8 id(1) is not portable - move it to ubase 2014-02-27 14:30:21 +00:00
sin 386aa62b94 Remove who(1) from sbase
It now lives in ubase.
2014-02-14 15:08:52 +00:00
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 aab53ef197 Add uuencode(1) 2014-01-31 15:29:11 +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 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 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
Silvan Jegen 38f429a3d2 Add the tr program including man page 2014-01-20 11:22:28 +00:00
sin 4bdf9a9658 Add initial version of xargs(1) 2014-01-04 00:04:05 +00:00
sin 34f7a688cb Add barebones mktemp(1) 2013-11-13 11:06:55 +00:00
sin 09fcbfc338 Add primitive du(1)
Defaults to a 512-byte blocksize.
2013-10-16 18:18:02 +01:00
sin cabbf6141e Allow sbase-box to be called as sbase-box tool args... 2013-10-08 23:32:29 +01:00
Truls Becken 576a5ce55e Add cut(1) 2013-10-08 20:41:32 +01:00
sin bf17657544 Remove chvt(1) from sbase as it is not portable
chvt(1) has been moved to ubase.
2013-10-07 16:43:48 +01:00
sin ddec3259aa Add setsid(1) by arg 2013-10-05 14:58:55 +01:00
sin 7be94fd3c8 Add hostname(1) 2013-10-05 14:58:55 +01:00
sin d0c87f6d3e Add stat(1) 2013-10-05 14:58:55 +01:00
sin 0ed2a55003 Add strings(1) 2013-10-05 14:58:55 +01:00
sin cd592c9f23 Add initial support for id(1) 2013-10-05 14:58:55 +01:00
sin 36afa1e169 Replace VERSION in manpages with the actual version 2013-10-05 13:51:45 +01:00
sin 87cde4bcb2 Print the available targets for sbase-box 2013-10-05 13:51:45 +01:00
sin 9e5718282a Add sha512sum(1) 2013-08-04 11:00:34 -04:00
sin 4da54928e7 Add sha256sum(1) 2013-07-20 13:20:16 -04:00
David Galos 0fcb939408 Compatibility with OpenBSD. Thanks, Steve Dee! 2013-07-18 15:28:08 -04:00
David Galos 2c75eb98d9 Adding tar. 2013-07-18 11:15:35 -04:00
sin 9ac01f59be Add crypt.[ch] and update md5sum and sha1sum
Factor out the code from md5sum and sha1sum into a util function.

Use FILE * instead of a file descriptor.  This will make it a bit
easier/more consistent when we implement support for the -c option.
2013-07-18 09:51:17 -04:00
stateless eec1b415d5 Add sha1sum
No support for -c at the moment.
2013-07-05 17:31:43 -04:00
stateless 50054a652c Add md5sum
No support for -c at the moment.
2013-07-05 17:29:43 -04:00
David Galos 1fbe4e95ed Adding mknod(1) 2013-07-03 02:02:36 -04:00
David Galos eadefcf0f8 Adding sponge(1). Thanks, Jakob Kramer. 2013-07-02 13:24:35 -04:00
Jesse Ogle 0f523ec9c6 Added cal and updated Makefile
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-06-19 21:13:28 +02:00
stateless e28c17c7cc Add expand(1)
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-06-19 20:01:10 +02:00