Rob Landley [Sun, 23 Jun 2013 04:30:07 +0000 (23:30 -0500)]
Implement mv as an extension of cp.
Rob Landley [Sat, 22 Jun 2013 20:36:25 +0000 (15:36 -0500)]
Option type @ counts number of occurrences, it doesn't take an argument.
Rob Landley [Sat, 22 Jun 2013 19:23:06 +0000 (14:23 -0500)]
Generate FLAG_longopt macros for --longopts with no corresponding short option.
Rob Landley [Tue, 18 Jun 2013 23:13:06 +0000 (18:13 -0500)]
Add pivot_root.
Rob Landley [Mon, 17 Jun 2013 04:08:09 +0000 (23:08 -0500)]
Test cases for split.
Rob Landley [Mon, 17 Jun 2013 01:02:38 +0000 (20:02 -0500)]
Misc website updates.
Rob Landley [Mon, 17 Jun 2013 01:00:11 +0000 (20:00 -0500)]
Typo fix
Rob Landley [Mon, 17 Jun 2013 00:59:51 +0000 (19:59 -0500)]
Add xexit() and make error_exit() use it.
Rob Landley [Sun, 16 Jun 2013 21:37:43 +0000 (16:37 -0500)]
Implement split.
Rob Landley [Sun, 16 Jun 2013 07:23:59 +0000 (02:23 -0500)]
Upgrade modinfo to support multiple modules, and add tests, from Isaac Dunham.
Rob Landley [Sat, 15 Jun 2013 05:49:06 +0000 (00:49 -0500)]
Force 64 bit math in expr, from Daniel Verkamp
Rob Landley [Sat, 8 Jun 2013 19:11:41 +0000 (14:11 -0500)]
Yet more ifconfig cleanup.
Rob Landley [Wed, 5 Jun 2013 05:59:01 +0000 (00:59 -0500)]
Start of expr, by Daniel Verkamp.
Rob Landley [Mon, 3 Jun 2013 01:51:17 +0000 (20:51 -0500)]
More ifconfig cleanup, described on list.
Rob Landley [Sun, 2 Jun 2013 05:54:55 +0000 (00:54 -0500)]
Move stat from pending to other, default y.
Rob Landley [Sun, 2 Jun 2013 05:52:14 +0000 (00:52 -0500)]
Stat cleanup.
Move ftname out of GLOBALS into 'F' handler. Make 'i' zero pad output (zeroes
in middle of ID can get lost).
Rob Landley [Sun, 2 Jun 2013 05:24:24 +0000 (00:24 -0500)]
Stat cleanup.
lib: rename format_mode() to mode_to_string() (echoing string_to_mode), make it
take a normal char * argument.
stat: collapse big switch/case statements that only have one line each
into if/else staircase (much fewer lines of code). Remove return type
(other stat implementations print ? for unknown escapes, so do that here).
Inline do_stat() and do_statfs(). Set default string in normal local
variable "format". Remove unnecessary struct d. Restructure stat logic to
"if (flagf && !statfs()) else if (!flagf && !stat()) else perror_msg();"
Teach %N to add -> symlink. Judicious use of putchar() instead of xputc to
let FILE * do its job collating output.
Rob Landley [Sun, 2 Jun 2013 03:36:48 +0000 (22:36 -0500)]
Add peek/poke to header file.
Rob Landley [Sun, 2 Jun 2013 01:47:16 +0000 (20:47 -0500)]
Stat cleanup.
Put global stat info in a union so we don't have to malloc it and thus don't need an explicit size tracked in main(). Make date_stat_format() take a timespec and take advantage of stat having an embedded timespec (nanosecond printing), typecast the long long prints for XYZ because on some 32 bit platforms it's an int.
Rob Landley [Sun, 2 Jun 2013 01:41:35 +0000 (20:41 -0500)]
Enable readfile() and add peek() and poke() functions.
Rob Landley [Tue, 28 May 2013 05:28:45 +0000 (00:28 -0500)]
Stat cleanup.
From the mailing list:
Ok, first thing: clean up the help text. I realize what's there is copied verbatim from the man page, but that man page sucks. ("modification time" vs "change time"?) Took a bit of finagling to fit it in 80x24, but just made it.
GLOBALS() indent was still tab, change to two spaces. And I tend to put a blank line between options lib/args.c automatically fills out and normal globals.
We never do anything with date_stat_format() but immediately print it, might as well make the function do it.
The types[] array in do_stat() is a rough edge. Hmmm... there's no else case that sets the type in case it was unknown (such as 0). In theory, this never happens. In practice it means I can cheat slightly, given this observation:
$ find linux -name stat.h | xargs grep 'S_IF[A-Z]*[ \t]'
linux/include/uapi/linux/stat.h:#define S_IFMT
00170000
linux/include/uapi/linux/stat.h:#define S_IFSOCK 0140000
linux/include/uapi/linux/stat.h:#define S_IFLNK 0120000
linux/include/uapi/linux/stat.h:#define S_IFREG 0100000
linux/include/uapi/linux/stat.h:#define S_IFBLK 0060000
linux/include/uapi/linux/stat.h:#define S_IFDIR 0040000
linux/include/uapi/linux/stat.h:#define S_IFCHR 0020000
linux/include/uapi/linux/stat.h:#define S_IFIFO 0010000
I.E. the only place the I_IFBLAH constants occur a stat.h header in current linux code is in the generic stuff, it doesn't vary per target. (The access permission bits are actually subtly standardized in posix due to the command line arguments to chmod, although I'm sure cygwin finds a way to break. But the type fields, not so much. But linux has to be binary compatible with itself foreverish, and that's all I really care about.)
So, we have ALMOST have this going by twos, except there's no 8 and there is a 1. so let's make the 1 the default, feed a blank string into the 8... No, duh: octal. So it's actually 2, 4, 6, 8, 10, 12. So make the loop look like:
filetype = statf->st_mode & S_IFMT;
TT.ftname = types;
for (i = 1; filetype != (i*8192) && i < 7; i++)
TT.ftname += strlen(TT.ftname)+1;
Yes that's linux-specific, and I think I'm ok with that.
Printing all zeroes and pretending that's nanosecond resolution... either support it or don't. Let's see, supporting it is stat->st_atim.tv_nsec and similar... no mention of nanoseconds in strftime() (et tu, posix2008?) so pass it as a second argument and append it by hand... (Need to test that against musl...)
When we hit an unknown type in print_it() we print the literal character, which is right for %% but what about an unknown option?
$ stat -c %q /
?
Eh, I guess that's a "don't care". It didn't die with an error, that's the important thing.
I have a horrible idea for compressing the switch/case blocks, but should probably check this in and get some sleep for right now...
Felix Janda [Sun, 26 May 2013 07:48:13 +0000 (09:48 +0200)]
stat: Separate stat and statfs
Felix Janda [Sat, 25 May 2013 19:58:14 +0000 (21:58 +0200)]
stat: Add support for stat'ing multiple files
Rob Landley [Mon, 27 May 2013 18:39:03 +0000 (13:39 -0500)]
Tests for touch (needs more work).
Rob Landley [Mon, 27 May 2013 18:38:09 +0000 (13:38 -0500)]
Tests for losetup.
Rob Landley [Tue, 21 May 2013 05:23:23 +0000 (00:23 -0500)]
More ifconfig cleanup, inlining show_ip_addr(), hex_to_binary(), and set_hw_address().
Rob Landley [Tue, 21 May 2013 01:50:25 +0000 (20:50 -0500)]
Next round of ifconfig cleanup, to be described on mailing list.
Rob Landley [Sun, 19 May 2013 05:48:19 +0000 (00:48 -0500)]
Yet more ifconfig cleanup. (As described on the mailing list [CLEANUP] thread.)
Rob Landley [Sun, 19 May 2013 05:14:45 +0000 (00:14 -0500)]
xioctl() error message should use hex ioctl number; that's what headers list.
Ivo van Poorten [Sun, 19 May 2013 03:33:40 +0000 (22:33 -0500)]
Make groups handle multiple usernames on command line.
Rob Landley [Wed, 15 May 2013 01:42:54 +0000 (20:42 -0500)]
Tighten up lsusb, default to "y".
Rob Landley [Wed, 15 May 2013 01:22:23 +0000 (20:22 -0500)]
Silence warning and comment a subtle bit.
Andre Renaud [Tue, 14 May 2013 22:42:11 +0000 (17:42 -0500)]
Attached is a pretty simple implementation of lsub. It doesn't implement any of the flags/options, but does the raw output.
Ivo van poorten [Tue, 14 May 2013 05:03:26 +0000 (00:03 -0500)]
add groups implementation to id.c
Rob Landley [Mon, 13 May 2013 02:09:16 +0000 (21:09 -0500)]
Ifconfig cleanup to option parsing.
Rob Landley [Fri, 10 May 2013 23:57:01 +0000 (18:57 -0500)]
Convert getmountlist() to xgetmountlist().
Rob Landley [Fri, 10 May 2013 23:54:14 +0000 (18:54 -0500)]
Web page tweaks.
Rob Landley [Thu, 9 May 2013 04:19:45 +0000 (23:19 -0500)]
Add --help option to toybox command when TOYBOX_HELP is enabled.
Rob Landley [Wed, 8 May 2013 03:50:33 +0000 (22:50 -0500)]
Another stab at recapitulating phylogeny in a README file.
Rob Landley [Wed, 8 May 2013 03:03:31 +0000 (22:03 -0500)]
Some work I did over the weekend on nbd_client, not sure where I left off...
Felix Janda [Tue, 30 Apr 2013 19:11:43 +0000 (21:11 +0200)]
generated/help.h depends on CONFIG_TOYBOX_HELP
Rob Landley [Tue, 30 Apr 2013 05:31:01 +0000 (00:31 -0500)]
Fix bare longopts to set unique optflag bits.
Rob Landley [Mon, 29 Apr 2013 21:00:40 +0000 (16:00 -0500)]
The host sort on many distros behaves stupidly, and sorts stuff in non-ascii order by default. Make it stop.
Rob Landley [Mon, 29 Apr 2013 17:30:28 +0000 (12:30 -0500)]
Fix xabspath when last path component exists but we haven't got permissions to open it (ala readlink -f /dev/sda as a normal user). Spotted by Ashwini Sharma.
Rob Landley [Mon, 29 Apr 2013 15:53:09 +0000 (10:53 -0500)]
Fix conflicting types for show_help().
Felix Janda [Fri, 26 Apr 2013 21:15:29 +0000 (23:15 +0200)]
Fix find -mtime
Felix Janda [Mon, 22 Apr 2013 21:18:05 +0000 (23:18 +0200)]
stat: Remove unimplemented options and clean up help text
Felix Janda [Mon, 22 Apr 2013 20:29:43 +0000 (22:29 +0200)]
Add library function for the file permission formatting in ls and stat
idunham [Sat, 27 Apr 2013 05:57:11 +0000 (00:57 -0500)]
Add firmware field to modinfo output.
Rob Landley [Fri, 26 Apr 2013 07:41:05 +0000 (02:41 -0500)]
Add posix headers to toynet.h, move xioctl() to lib.c, introduce lib/net.c and move xsocket() to it.
Rob Landley [Fri, 26 Apr 2013 06:59:13 +0000 (01:59 -0500)]
Remove leaked global path_mounts.
Rob Landley [Fri, 26 Apr 2013 06:47:59 +0000 (01:47 -0500)]
Eliminate leaked global bunzip_errors.
Rob Landley [Fri, 26 Apr 2013 06:46:03 +0000 (01:46 -0500)]
Quick sniff test to find leaked global variables.
Rob Landley [Thu, 25 Apr 2013 05:19:51 +0000 (00:19 -0500)]
And another round of ifconfig cleanup.
Rob Landley [Thu, 25 Apr 2013 02:52:08 +0000 (21:52 -0500)]
Yet more drive-by cleanup of ifconfig.
Rob Landley [Wed, 24 Apr 2013 08:04:31 +0000 (03:04 -0500)]
Isaac Dunham pointed out that the kernel treats - and _ as identical in module names, so modinfo should too. Made it use mmap() while I was there, and some cosmetic refactoring.
Rob Landley [Mon, 22 Apr 2013 06:56:26 +0000 (01:56 -0500)]
Forgot to check in a header that moved from ifconfig to toynet.h.
Felix Janda [Sun, 21 Apr 2013 21:45:35 +0000 (23:45 +0200)]
More find cleanup
Felix Janda [Sat, 20 Apr 2013 15:25:41 +0000 (17:25 +0200)]
More find cleanup
Rob Landley [Sun, 21 Apr 2013 17:15:59 +0000 (12:15 -0500)]
Fix some comments from way back when toybox first started (in 2006), when I was still cleaning busybox-isms out of my head...
Felix Janda [Fri, 19 Apr 2013 22:18:17 +0000 (00:18 +0200)]
stat cleanup
Felix Janda [Fri, 19 Apr 2013 19:29:36 +0000 (21:29 +0200)]
stat: Reindent from 4 to 2 spaces
Rob Landley [Sun, 21 Apr 2013 04:33:48 +0000 (23:33 -0500)]
More ifconfig cleanup.
Rob Landley [Sat, 20 Apr 2013 18:43:55 +0000 (13:43 -0500)]
ifconfig cleanup (Reorder functions to eliminate need for prototypes, put main at end).
Rob Landley [Sat, 20 Apr 2013 18:30:45 +0000 (13:30 -0500)]
Commit 818 simplified the license text in the source tarball, this gets the web copy.
Felix Janda [Thu, 18 Apr 2013 20:37:09 +0000 (22:37 +0200)]
find: Improve operator processing
Rob Landley [Sat, 20 Apr 2013 01:08:35 +0000 (20:08 -0500)]
Another round of ifconfig cleanup.
Rob Landley [Wed, 17 Apr 2013 05:15:12 +0000 (00:15 -0500)]
Add -f to chmod (just turns off -v).
Rob Landley [Wed, 17 Apr 2013 04:49:47 +0000 (23:49 -0500)]
More ifconfig cleanup.
Rob Landley [Wed, 17 Apr 2013 04:09:50 +0000 (23:09 -0500)]
Fix the help commit I screwed up, and replace leading tabs with spaces.
Rob Landley [Wed, 17 Apr 2013 04:01:22 +0000 (23:01 -0500)]
More ifconfig cleanup.
Rob Landley [Wed, 17 Apr 2013 03:55:14 +0000 (22:55 -0500)]
Isaac Dunham's help string cleanup.
Rob Landley [Wed, 17 Apr 2013 03:45:47 +0000 (22:45 -0500)]
Make genconfig use CFLAGS because building against a libc that isn't installed on the host may need --static to run the results.
Felix Janda [Sun, 14 Apr 2013 10:45:36 +0000 (12:45 +0200)]
Add tests for find's expression parsing
Rob Landley [Mon, 15 Apr 2013 02:43:22 +0000 (21:43 -0500)]
Move guts of help command into show_help() in lib/help.c, with config TOYBOX_HELP controlling infrastructure.
Rob Landley [Sun, 14 Apr 2013 17:35:25 +0000 (12:35 -0500)]
Tweak help text.
Isaac Dunham [Sun, 14 Apr 2013 07:58:12 +0000 (02:58 -0500)]
ifconfig uses __caddr_t in one location; this is not guaranteed to work everywhere. It does not compile OOB on musl, so I changed it to the portable equivalent, char *. This compiles on musl, and should compile anywhere.
Rob Landley [Sat, 13 Apr 2013 01:12:02 +0000 (20:12 -0500)]
Convert tabs to spaces.
Isaac Dunham [Sat, 13 Apr 2013 01:08:47 +0000 (20:08 -0500)]
xzcat: more cleanup and some shrinking.
-drop __always_inline (c. 1.5k of binary size),
-remove the xz_dec_bcj_end and memzero macros
(memeq is left because of negative returns),
-disable XZ_DEC_SINGLE and XZ_DEC_PREALLOC, since we aren't using them.
(160 bytes)
-Merge xz_dec_lzma2_end into xz_dec_end
-Move xz_crc32 to where it's defined.
(That does not seem to be duplicated elsewhere in toybox.)
Rob Landley [Fri, 12 Apr 2013 01:44:27 +0000 (20:44 -0500)]
uuencode tweak: output a non-whitespace character for 0 in traditional mode.
Rob Landley [Thu, 11 Apr 2013 22:32:01 +0000 (17:32 -0500)]
More ifconfig cleanup.
Rob Landley [Thu, 11 Apr 2013 17:04:43 +0000 (12:04 -0500)]
More xzcat cleanup.
Isaac Dunham [Thu, 11 Apr 2013 16:31:51 +0000 (11:31 -0500)]
More of same.
Actually, it's not quite the same:
-use crc_init(xz_crc32_table,1) -- I guessed on this one based on a match between magic constants, then tested it. First try was wrong, but this works.
(This is the sole difference in terms of actual _code_, as opposed to cleaning up defines and the like--here, it adds 48 bytes to final size if xzcat is the only toy, but drops 32 bytes if bzcat is also enabled...)
-Move some crc64 code to where the comments are. This puts them near the area where they're used.
-Remove some relics of separate files (we had half a dozen "this file is in the public domain" notices, a duplicate include, and used extern declarations for functions in the samefile)
Rob Landley [Thu, 11 Apr 2013 03:30:02 +0000 (22:30 -0500)]
More cleanup on find.
Rob Landley [Thu, 11 Apr 2013 00:58:21 +0000 (19:58 -0500)]
Redo find's indenting from tabs to two spaces.
Felix Janda [Wed, 10 Apr 2013 17:25:06 +0000 (19:25 +0200)]
Partial cleanup of find
- Remove unnecessary headers
- dump_node is not used anywhere
- exec_buf is unused
- Replace SUCCESS with 1 and simplify code accordingly
- a==0 -> !a
- Simplify an incremation pattern using pre-increments
- Add static keyword to functions
- Make error messages print to stderr
Rob Landley [Wed, 10 Apr 2013 06:48:24 +0000 (01:48 -0500)]
Some xzcat cleanup by Isaac Dunham.
Rob Landley [Sun, 7 Apr 2013 00:57:54 +0000 (19:57 -0500)]
Fix argument parsing so -- doesn't include itself in output.
Rob Landley [Fri, 5 Apr 2013 05:35:05 +0000 (00:35 -0500)]
More ifconfig cleanups, mostly removing unused code.
Rob Landley [Fri, 5 Apr 2013 01:27:08 +0000 (20:27 -0500)]
Drive-by cleanup on ifconfig.
Rob Landley [Fri, 5 Apr 2013 00:39:44 +0000 (19:39 -0500)]
An ifconfig bugfix from the original submitter.
Rob Landley [Tue, 2 Apr 2013 06:58:18 +0000 (01:58 -0500)]
Kyungwan Han submitted ifconfig.
Rob Landley [Tue, 2 Apr 2013 06:34:34 +0000 (01:34 -0500)]
Clean uudecode up the rest of the way, move pending->posix and default y.
Rob Landley [Fri, 29 Mar 2013 04:33:27 +0000 (23:33 -0500)]
More uudecode cleanup.
Rob Landley [Fri, 29 Mar 2013 03:29:50 +0000 (22:29 -0500)]
More uudecode cleanup.
Rob Landley [Fri, 29 Mar 2013 00:28:27 +0000 (19:28 -0500)]
Change uuencode test to match what other uuencode implementations actually produce.
Rob Landley [Thu, 28 Mar 2013 03:34:28 +0000 (22:34 -0500)]
Where I left off on analysis of other multicall binaries...
Rob Landley [Wed, 27 Mar 2013 05:52:17 +0000 (00:52 -0500)]
Incremental cleanup of uudecode.
Rob Landley [Wed, 27 Mar 2013 05:10:58 +0000 (00:10 -0500)]
Fix the USE() macro around NEWTOY, tweak help text, remove unnecessary wrapper, tweak whitespace and curly brackets.
Rob Landley [Wed, 27 Mar 2013 05:04:43 +0000 (00:04 -0500)]
uudecode test should just call "uudecode" (not multiplexer via a path), and first test shouldn't succeed if toybox isn't even there.