aboutsummaryrefslogtreecommitdiff
path: root/lib/lib.c
AgeCommit message (Collapse)Author
2016-03-29Fix exit code of things like sed -i that use tempfile_handler().Rob Landley
(The sigatexit() handler list code now calls the handlers on the normal exit path, so _exit(1) from the handler is wrong; exit_signal() modifies toys.exitval if necessary.)
2016-03-13Split out _xexit() from xexit() and give sigatexit() multiple callbacks.Rob Landley
2016-03-02For years the man pages have said to #include <sys/types.h> to getRob Landley
major/minor/makedev, but glibc has vowed to break existing programs (https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html) and replace it with _another_ non-standard header (not in posix or lsb), so let's just add functions to lib/ that do the transform ourselves.
2016-02-19Implement "insmod -".Elliott Hughes
Also use finit_module if available. Given that "insmod -" requires init_module, maybe this isn't a worthwhile optimization. Given that "insmod /actual/file.ko" is the common use case, maybe it is. Fix a bug in readfileat where *plen would be corrupted if you didn't supply your own buffer (because ibuf is 0 in that case, not a pointer to the start of the allocated space).
2016-02-14Implement file(1).Elliott Hughes
Unlike the POSIX file(1), there's no magic file here, just hard-coded common (non-obsolete) file formats. Personally most of my use of file(1) is as a one-line readelf(1) summarizer, so although I assume a full POSIX file(1) is out of scope (because just the database would likely be larger than all the rest of toybox), a subset that only supports in-use file types actually covers most of the use cases I encounter personally. Also fix peek_be/peek_le.
2016-02-10Factor out strnstr() since posix hasn't got it, and add a config option forRob Landley
the deeply sad passwd heuristics that don't even check numbers and punctuation.
2016-01-22Factor out insanitize() from seq.c to next_printf() in lib.Rob Landley
2016-01-20First stab at making readfileat() realloc() in a loop to read long files.Rob Landley
2016-01-17Extend utf8 fontmetrics so ps can use them.Rob Landley
Also, I forgot to check in uuid_show() last time.
2016-01-16Move create_uuid() to lib and xpoll() to lib/net.c.Rob Landley
2016-01-10Fix perror_exit_raw.Elliott Hughes
Some things are worse when you remove the 'p'.
2016-01-08Fix cat -.Elliott Hughes
Commit 4b4ab6a50998 broke loopfiles' handling of "-". This broke the existing cat tests, so no new test is necessary here.
2016-01-05Add error_msg_raw() and friends, replace error_msg("%s", s) uses, enable formatRob Landley
checking, and fix up format checking complaints. Added out(type, value) function to stat to avoid a zillion printf typecasts.
2015-12-29Add strafter() to lib.Rob Landley
2015-12-27Add scan_key_getsize() doing the ANSI probe, switch scan_key() to TAGGED_ARRAY,Rob Landley
and add test_scankey.
2015-11-26Split do_ps() into get_ps() and show_ps() as a start on implementing --sort.Rob Landley
Change readfileat() to pass back length of read.
2015-11-02If chomp() needs to test it found \n, should also test it's at end of string.Rob Landley
2015-11-02Add ps -Z.Elliott Hughes
As with ls, it doesn't seem like -Z should be guarded behind LSM availability. On a non-SELinux system, the label is always "unconfined".
2015-09-29help_exit() tweak.Rob Landley
2015-09-11Replace toys.exithelp with help_exit() in lib.Rob Landley
2015-09-07Remove prompt argument from yesno(), caller can fprintf(stderr, "blah") itself.Rob Landley
This fixes the build break, the change to yesno() prototype accidentally got checked in last commit. (Oops, sorry.)
2015-09-06Switch HR_SI to HR_1000, make binary the default, make HR_B only affect bytes,Rob Landley
and update the tests.
2015-09-03Make human_readable() handle base 1024 units without floating point.Rob Landley
Rounds correctly via brute force, displayed digits are decimal even when working with powers of 2, shows at most 3 significant (decimal) digits. (So no "1023M" nonsense, that's 1.0G.)
2015-08-08Different tools have different ideas about what human-readable outputElliott Hughes
looks like. dd uses "7 MB" where du uses "7M", for example. this patch adds flags, similar to the BSD humanize_number. most callers will pass 0.
2015-08-08First pass at proper bunzip2 command line handling.Rob Landley
2015-08-01Move strlower() from find to lib.Rob Landley
2015-07-10Add a basename_r() and use it in names_to_pid() to avoid basename() overwritingRob Landley
itself on some inputs. (Which makes killall really impolite. Bug report from Nicholas Noury via Elliott Hughes.)
2015-05-08Move not-curses code into interstingtimes.cRob Landley
2015-04-30Remove redundant numlen.Rob Landley
2015-04-27Some infrastructure hexedit needs. (Poor man's curses.)Rob Landley
2015-04-19Cleanup getprop, add qstrcmp() to lib for qsort (because posix-2008 brokeRob Landley
alphasort), add compile-time probe for config symbol TOYBOX_ON_ANDROID.
2015-04-16terminal_size should use LINES, not ROWS.Elliott Hughes
The shell's pseudo-variable is called LINES. This is true of at least bash and mksh.
2015-04-03Add readfileat() to libRob Landley
2015-03-23Tweak of Elliott Hughes's fix for an off by one error in human_readableRob Landley
(137 returned "137 KB".)
2015-01-18Remove trailing whitespace.Rob Landley
2015-01-01strtol() doesn't return error indicator for overflow, it just sets errno. So ↵Rob Landley
add estrtol() (which clears errno first), and xstrtol() (which error_exit()s on overflow).
2014-12-22Allocate space for null terminator.Rob Landley
2014-12-13Add base64.Rob Landley
The tizen guys wanted this. Yeah, I know there's base64 code in uuencode/uudecode, but that this has -i, input lines aren't of fixed length, encode/decode are in same file, there's no prefix/suffix code, it always writes to stdout... Eliminating the code duplication wouldn't be worth the if/else I'd have to add, so I just did a new one. Factored out the base64 table init into lib.c though: that was worth sharing.
2014-12-13Remove more strncpy() calls.Rob Landley
The semantics of strncat() and strncpy() are non-obvious, so let's not use 'em. Both zero all their remaining buffer space, and with strncat() the size is the space left at the _end_ of the string (not the size of the buffer) so it's way too easy to stomp memory you don't own. As long as we have to measure stuff ourselves to get it right, just use memcpy().
2014-10-27O_CLOEXEC was confusing the O_RDONLY test in loopfiles(), resulting in ↵Rob Landley
attempts to read from stdout instead of stdin for "-" or no arguments.
2014-10-18Factor out printf-style escape parsing logic from echo.c.Rob Landley
2014-10-14Use O_CLOEXEC instead of O_RDONLY to signal loopfiles_rw() to close filehandles.Rob Landley
2014-08-15If string_to_mode() is called on a base mode with S_ISDIR() and such set, ↵Rob Landley
pass those extra bits through.
2014-07-21Little endian and big endian versions of peek (for host.c).Rob Landley
2014-07-19find needs "c" suffix to -size.Rob Landley
2014-06-24find_in_path() is supposed to work with a NULL path, but didn't. Fix it.Rob Landley
2014-06-09Forgot to check in strstart().Rob Landley
2014-05-21Add generic_signal() handler, which sets toys.signal and writes byte to ↵Rob Landley
toys.signalfd if set.
2014-05-06Switch human_readable() to just outputing decimal kilo/mega/gigabytes, make ↵Rob Landley
du use it, move it from lib/pending.c to lib.c.
2014-05-02In function readfile(), the buffer buf is free'd when readall() fails. This ↵Ashwini Sharma
free can cause a crash, if the buffer passed by user of function is not malloc'ed one. names_to_pid() is one usecase example here.