Commit Graph

68 Commits (f5baf2630ab0cf51306bb94311e7eed84caa730d)

Author SHA1 Message Date
FRIGN a88906b423 Rever the strmem() addition and add a TODO element
strmem() was not very well thought out. The thing is the following:
If the string contains a zero character, we want to match it, and not
stop right there in place.

The "real" solution is to use memmem() where needed and replace all
functions that assume zero-terminated-strings from standard input, which
could lead to early string-breakoffs.
This requires a strict tracking of string lengths.
2016-02-26 09:54:46 +00:00
Mattias Andrée db952ed18c New command with corresponding man page. Includes the flags:
-s strip binary
-d create directory
-D create missing directories
-t DIR target directory
-m MODE permission bits
-o USER set owner
-g GROUP set group

Installed files are copied, and default mode is 755.

Signed-off-by: Mattias Andrée <>
2016-02-15 09:41:58 +00:00
Mattias Andrée b445614f70 Add pathchk(1)
New command, including man page.
UTF-8 compatible and should be POSIX-compliant.

Signed-off-by: Mattias Andrée <>
2016-02-11 10:01:58 +00:00
Roberto E. Vargas Caballero 1de650edf5 Add ed(1) - the standard text editor 2015-12-14 12:14:52 +00:00
sin f76dee45e5 Update TODO regarding imported programs
We haven't imported anything in a while and there are no plans to
import anything else.
2015-11-06 10:52:49 +00:00
FRIGN 05996b997c Add getconf(1)
The logic is simple, it's just a pain in the ass to fill the
Some lines had to be commented out, as glibc/musl apparently
have not fully implemented the mandatory variables for the
2013 corrigendum of POSIX 2008.

Also added a manpage and the necessary entries in README.

I also removed it from the TODO.
2015-10-01 17:17:23 +01:00
Greg Reagle fd0d1e4567 Created od, with improvements suggested by FRIGN 2015-09-30 19:44:10 +01:00
Wolfgang Corcoran-Mathe cd0b771cbb Add join(1) 2015-04-20 11:24:12 +01:00
sin ef08e52e9b Revert "Add command(1) to TODO"
It must be a shell builtin.  Thanks emg.
2015-04-03 19:37:07 +01:00
sin 2ef65fe317 Add command(1) to TODO
Potentially useful in certain situations, not for the 0.1 release
2015-04-03 16:54:46 +01:00
sin e37e3e916a Remove file(1) from TODO
We'll probably develop this outside of sbase.  A simple script that
parses /etc/magic and generates magic.h would be sufficient.

The table can be huge and we do not want to bloat up binary size
only for file(1).
2015-03-06 11:26:28 +00:00
FRIGN 2fa6dc8159 Remove "make" from TODO
Make is part of the toolchain and not in the scope of sbase. There
are already numerous sane make-implementations around.
2015-03-04 22:41:21 +01:00
FRIGN 1cdb424ac6 Remove tabs(1) from TODO
It needs to be in ubase due to terminfo.
Thanks Roberto!
2015-02-26 10:36:55 +01:00
sin 71f49d7c04 tput should be in ubase 2015-02-25 22:03:56 +00:00
Evan Gates 76e6aacd60 Add initial find(1) implementation
No manpage yet.
2015-02-20 10:17:16 +00:00
FRIGN bafd41e1cf Add printf(1)
This is a particularly interesting program.
I managed to implement everything according to POSIX except how
octal escapes are specified in the standard, which is yet another
format compared to the one demanded for tr(1).
This not only confuses people, it also adds unnecessary cruft
for no real gain.
So in order to be able to use unescape() easily and for consistency,
I used our initial format \o[oo] instead of \0[ooo].

Marked as optional is UTF-8 support for %c in the POSIX specification.
Given how well-developed libutf has become, doing this here was more
or less trivial, putting us yet again ahead of the competition.
2015-02-15 14:46:58 +01:00
FRIGN bf518929b9 Remove runetype and to*rune section from TODO 2015-02-14 21:56:19 +01:00
Evan Gates bc07f1b9b5 Add initial implementation of sed(1)
No manpage yet.
2015-02-10 10:35:22 +00:00
FRIGN 1004778757 Update TODO with current roadmap 2015-02-08 23:28:00 +01:00
sin 09dad0083b Update TODO 2014-12-21 00:01:58 +00:00
sin 153b8428b1 Nuke another freelist() 2014-12-16 21:02:03 +00:00
sin 5d1e46fefa Implement POSIX 2008 compliant logger(1) 2014-12-04 11:36:40 +00:00
sin 64e7504314 Update TODO 2014-11-21 12:54:20 +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 409ec7194f Add install(1) to TODO 2014-11-18 19:55:11 +00:00
sin 25e3e068ed Add note about UTF-8 support in TODO 2014-11-16 13:25:08 +00:00
sin 25a375b707 Update TODO 2014-11-16 12:59:34 +00:00
sin 35d467d971 Add make to TODO 2014-11-14 17:59:51 +00:00
sin 2869adf458 Update TODO 2014-11-13 16:33:47 +00:00
sin 73115682ed Mention programs that were imported from OpenBSD
These need replacing or cleaning up at some point.
2014-10-21 17:50:43 +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 bae62cda71 Update TODO 2014-10-16 11:20:04 +01:00
sin 4ff6c585f8 Update TODO 2014-10-16 11:01:49 +01:00
sin 8311023781 Fix test(1) semantics
Evan Gates says:

After writing my own test[0] I checked and sbase already has test. I'm
including a patch to remove test from the TODO. I also noticed that
sbase's test handles a few specific cases incorrectly (documentation
at [1]).

test ! = foo
When there are 3 arguments and the second is a valid binary primary
test should perform that binary test. Only if the second argument is
not a valid binary primary and the first is ! should test negate the
two argument test. I've attached a patch that should fix this.

test ! ! !
test ! ! ! !
When there are 3 arguments and the second is not a valid primary and
the first is !, test should return the negation of the remaining two
argument test. In this case sbase's test works correctly for ! and ! !
but fails afterwards as it's not recursive. I don't yet have a patch
for this but I'm working on one.

Then again both of these areas may be places in which worse is better.
[0] 11329f3834/test.c?at=master
2014-10-16 10:13:05 +01:00
sin 618aecd2ec Import expr(1) from OpenBSD
Cleanup + manpage to be done.
2014-09-29 13:44:49 +01:00
sin 015cecfd8d Update README for printf(1) and remove from TODO 2014-09-28 15:13:09 +01:00
sin 7872986dd2 Add at(1) to TODO 2014-07-07 07:37:19 +01:00
Tuukka Kataja 8b87d0098a Add unexpand(1) 2014-06-09 17:00:13 +01:00
Hiltjo Posthuma 9ad06c3aef update TODO file
Signed-off-by: Hiltjo Posthuma <>
2014-04-12 20:33:50 +01:00
sin 08ff1c56e7 Update TODO 2014-01-30 11:44:29 +00:00
sin 9a1c5783c1 Remove mktemp(1) from TODO
We already have mktemp(1) implemented.
2014-01-04 13:41:47 +00:00
sin 18f9f3e141 Remove xargs(1) from TODO
We already have a barebones version.
2014-01-04 13:40:42 +00:00
sin 8f931fba13 Remove passwd from TODO
This cannot be made portably so we'll implement this in ubase.
2013-11-12 13:12:42 +00:00
sin 777f958426 Update TODO
We are not going to support logname(1).
2013-10-29 17:20:13 +00:00
sin 6a680269bf Add more commands to TODO 2013-10-18 15:19:04 +01:00
sin fc9c4d9123 Update TODO based on people's suggestions 2013-10-18 10:02:23 +01:00
sin 84ba9cb87e Remove cut from TODO 2013-10-16 14:14:18 +01:00