OSDN Git Service

Merge remote-tracking branch 'toybox/master' into HEAD
authorElliott Hughes <enh@google.com>
Tue, 11 Jul 2017 16:04:11 +0000 (09:04 -0700)
committerElliott Hughes <enh@google.com>
Tue, 11 Jul 2017 16:04:29 +0000 (09:04 -0700)
Change-Id: I752a046ed45ada48db41a0b2b11428f5a344b90b

1  2 
generated/globals.h
generated/newtoys.h

index 5e4f8ce,0000000..18e101f
mode 100644,000000..100644
--- /dev/null
@@@ -1,1538 -1,0 +1,1537 @@@
-   int show_xfer;
-   int show_records;
 +// toys/android/getprop.c
 +
 +struct getprop_data {
 +  size_t size;
 +  char **nv; // name/value pairs: even=name, odd=value
 +  struct selabel_handle *handle;
 +};
 +
 +// toys/android/log.c
 +
 +struct log_data {
 +  char *tag;
 +  char *pri;
 +};
 +
 +// toys/example/hello.c
 +
 +struct hello_data {
 +  int unused;
 +};
 +
 +// toys/example/skeleton.c
 +
 +struct skeleton_data {
 +  union {
 +    struct {
 +      char *b_string;
 +      long c_number;
 +      struct arg_list *d_list;
 +      long e_count;
 +      char *also_string;
 +      char *blubber_string;
 +    } s;
 +    struct {
 +      long b_number;
 +    } a;
 +  };
 +
 +  int more_globals;
 +};
 +
 +// toys/lsb/dmesg.c
 +
 +struct dmesg_data {
 +  long level;
 +  long size;
 +
 +  int use_color;
 +  time_t tea;
 +};
 +
 +// toys/lsb/hostname.c
 +
 +struct hostname_data {
 +  char *fname;
 +};
 +
 +// toys/lsb/killall.c
 +
 +struct killall_data {
 +  char *sig;
 +
 +  int signum;
 +  pid_t cur_pid;
 +  char **names;
 +  short *err;
 +};
 +
 +// toys/lsb/md5sum.c
 +
 +struct md5sum_data {
 +  struct arg_list *c;
 +
 +  int sawline;
 +
 +  // Crypto variables blanked after summing
 +  unsigned state[5];
 +  unsigned oldstate[5];
 +  uint64_t count;
 +  union {
 +    char c[64];
 +    unsigned i[16];
 +  } buffer;
 +};
 +
 +// toys/lsb/mknod.c
 +
 +struct mknod_data {
 +  char *arg_context;
 +  char *m;
 +};
 +
 +// toys/lsb/mktemp.c
 +
 +struct mktemp_data {
 +  char *tmpdir;
 +};
 +
 +// toys/lsb/mount.c
 +
 +struct mount_data {
 +  struct arg_list *optlist;
 +  char *type;
 +  char *bigO;
 +
 +  unsigned long flags;
 +  char *opts;
 +  int okuser;
 +};
 +
 +// toys/lsb/passwd.c
 +
 +struct passwd_data {
 +  char *algo;
 +};
 +
 +// toys/lsb/pidof.c
 +
 +struct pidof_data {
 +  char *omit;
 +};
 +
 +// toys/lsb/seq.c
 +
 +struct seq_data {
 +  char *sep;
 +  char *fmt;
 +};
 +
 +// toys/lsb/su.c
 +
 +struct su_data {
 +  char *s;
 +  char *c;
 +};
 +
 +// toys/lsb/umount.c
 +
 +struct umount_data {
 +  struct arg_list *t;
 +
 +  char *types;
 +};
 +
 +// toys/net/ftpget.c
 +
 +struct ftpget_data {
 +  char *user;
 +  char *port;
 +  char *password;
 +
 +  int fd;
 +};
 +
 +// toys/net/ifconfig.c
 +
 +struct ifconfig_data {
 +  int sockfd;
 +};
 +
 +// toys/net/microcom.c
 +
 +struct microcom_data {
 +  char *s;
 +
 +  int fd;
 +  struct termios original_stdin_state, original_fd_state;
 +};
 +
 +// toys/net/netcat.c
 +
 +struct netcat_data {
 +  char *filename;        // -f read from filename instead of network
 +  long quit_delay;       // -q Exit after EOF from stdin after # seconds.
 +  char *source_address;  // -s Bind to a specific source address.
 +  long port;             // -p Bind to a specific source port.
 +  long idle;             // -W Wait # seconds for more data
 +  long wait;             // -w Wait # seconds for a connection.
 +};
 +
 +// toys/net/netstat.c
 +
 +struct netstat_data {
 +  struct num_cache *inodes;
 +  int wpad;
 +};;
 +
 +// toys/net/tunctl.c
 +
 +struct tunctl_data {
 +  char *user;
 +};
 +
 +// toys/other/acpi.c
 +
 +struct acpi_data {
 +  int ac, bat, therm, cool;
 +  char *cpath;
 +};
 +
 +// toys/other/base64.c
 +
 +struct base64_data {
 +  long columns;
 +
 +  unsigned total;
 +};
 +
 +// toys/other/blockdev.c
 +
 +struct blockdev_data {
 +  long bsz;
 +};
 +
 +// toys/other/chrt.c
 +
 +struct chrt_data {
 +  long pid;
 +};
 +
 +// toys/other/dos2unix.c
 +
 +struct dos2unix_data {
 +  char *tempfile;
 +};
 +
 +// toys/other/fallocate.c
 +
 +struct fallocate_data {
 +  long offset;
 +  long size;
 +};
 +
 +// toys/other/free.c
 +
 +struct free_data {
 +  unsigned bits;
 +  unsigned long long units;
 +  char *buf;
 +};
 +
 +// toys/other/hexedit.c
 +
 +struct hexedit_data {
 +  char *data;
 +  long long len, base;
 +  int numlen, undo, undolen;
 +  unsigned height;
 +};
 +
 +// toys/other/hwclock.c
 +
 +struct hwclock_data {
 +  char *fname;
 +
 +  int utc;
 +};
 +
 +// toys/other/ionice.c
 +
 +struct ionice_data {
 +  long pid;
 +  long level;
 +  long class;
 +};
 +
 +// toys/other/login.c
 +
 +struct login_data {
 +  char *hostname;
 +  char *username;
 +
 +  int login_timeout, login_fail_timeout;
 +};
 +
 +// toys/other/losetup.c
 +
 +struct losetup_data {
 +  char *jfile;
 +  long offset;
 +  long size;
 +
 +  int openflags;
 +  dev_t jdev;
 +  ino_t jino;
 +};
 +
 +// toys/other/lspci.c
 +
 +struct lspci_data {
 +  char *ids;
 +  long numeric;
 +
 +  FILE *db;
 +};
 +
 +// toys/other/makedevs.c
 +
 +struct makedevs_data {
 +  char *fname;
 +};
 +
 +// toys/other/mix.c
 +
 +struct mix_data {
 +   long right;
 +   long level;
 +   char *dev;
 +   char *chan;
 +};
 +
 +// toys/other/mkpasswd.c
 +
 +struct mkpasswd_data {
 +  long pfd;
 +  char *method;
 +  char *salt;
 +};
 +
 +// toys/other/mkswap.c
 +
 +struct mkswap_data {
 +  char *L;
 +};
 +
 +// toys/other/modinfo.c
 +
 +struct modinfo_data {
 +  char *field;
 +  char *knam;
 +  char *base;
 +
 +  long mod;
 +};
 +
 +// toys/other/nsenter.c
 +
 +struct nsenter_data {
 +  char *nsnames[6];
 +  long targetpid;
 +};
 +
 +// toys/other/oneit.c
 +
 +struct oneit_data {
 +  char *console;
 +};
 +
 +// toys/other/shred.c
 +
 +struct shred_data {
 +  long offset;
 +  long iterations;
 +  long size;
 +
 +  int ufd;
 +};
 +
 +// toys/other/stat.c
 +
 +struct stat_data {
 +  char *fmt;
 +
 +  union {
 +    struct stat st;
 +    struct statfs sf;
 +  } stat;
 +  char *file, *pattern;
 +  int patlen;
 +};
 +
 +// toys/other/swapon.c
 +
 +struct swapon_data {
 +  long priority;
 +};
 +
 +// toys/other/switch_root.c
 +
 +struct switch_root_data {
 +  char *console;
 +
 +  dev_t rootdev;
 +};
 +
 +// toys/other/timeout.c
 +
 +struct timeout_data {
 +  char *s_signal;
 +  char *k_timeout;
 +
 +  int nextsig;
 +  pid_t pid;
 +  struct timeval ktv;
 +  struct itimerval itv;
 +};
 +
 +// toys/other/truncate.c
 +
 +struct truncate_data {
 +  char *s;
 +
 +  long size;
 +  int type;
 +};
 +
 +// toys/other/xxd.c
 +
 +struct xxd_data {
 +  long s;
 +  long g;
 +  long l;
 +  long c;
 +};
 +
 +// toys/pending/arp.c
 +
 +struct arp_data {
 +    char *hw_type;
 +    char *af_type_A;
 +    char *af_type_p;
 +    char *interface;
 +    
 +    int sockfd;
 +    char *device;
 +};
 +
 +// toys/pending/arping.c
 +
 +struct arping_data {
 +    long count;
 +    unsigned long time_out;
 +    char *iface;
 +    char *src_ip;
 +
 +    int sockfd;
 +    unsigned long start, end;
 +    unsigned sent_at, sent_nr, rcvd_nr, brd_sent, rcvd_req, brd_rcv,
 +             unicast_flag;
 +};
 +
 +// toys/pending/bootchartd.c
 +
 +struct bootchartd_data {
 +  char buf[32];
 +  long smpl_period_usec;
 +  int proc_accounting;
 +  int is_login;
 +
 +  void *head;
 +};
 +
 +// toys/pending/brctl.c
 +
 +struct brctl_data {
 +    int sockfd;
 +};
 +
 +// toys/pending/compress.c
 +
 +struct compress_data {
 +  // Huffman codes: base offset and extra bits tables (length and distance)
 +  char lenbits[29], distbits[30];
 +  unsigned short lenbase[29], distbase[30];
 +  void *fixdisthuff, *fixlithuff;
 +
 +  // CRC
 +  void (*crcfunc)(char *data, int len);
 +  unsigned crc;
 +
 +  // Compressed data buffer
 +  char *data;
 +  unsigned pos, len;
 +  int infd, outfd;
 +
 +  // Tables only used for deflation
 +  unsigned short *hashhead, *hashchain;
 +};
 +
 +// toys/pending/crond.c
 +
 +struct crond_data {
 +  char *crontabs_dir;
 +  char *logfile;
 +  int loglevel_d;
 +  int loglevel;
 +
 +  time_t crontabs_dir_mtime;
 +  uint8_t flagd;
 +};
 +
 +// toys/pending/crontab.c
 +
 +struct crontab_data {
 +  char *user;
 +  char *cdir;
 +};
 +
 +// toys/pending/dd.c
 +
 +struct dd_data {
++  int show_xfer, show_records;
 +  unsigned long long bytes, c_count, in_full, in_part, out_full, out_part;
 +  struct timeval start;
 +  struct {
 +    char *name;
 +    int fd;
 +    unsigned char *buff, *bp;
 +    long sz, count;
 +    unsigned long long offset;
 +  } in, out;
 +};;
 +
 +// toys/pending/dhcp.c
 +
 +struct dhcp_data {
 +    char *iface;
 +    char *pidfile;
 +    char *script;
 +    long retries;
 +    long timeout;
 +    long tryagain;
 +    struct arg_list *req_opt;
 +    char *req_ip;
 +    struct arg_list *pkt_opt;
 +    char *fdn_name;
 +    char *hostname;
 +    char *vendor_cls;
 +};
 +
 +// toys/pending/dhcp6.c
 +
 +struct dhcp6_data {
 +  char *interface_name, *pidfile, *script;
 +  long retry, timeout, errortimeout;
 +  char *req_ip;
 +  int length, state, request_length, sock, sock1, status, retval, retries;
 +  struct timeval tv;
 +  uint8_t transction_id[3];
 +  struct sockaddr_in6 input_socket6;
 +};
 +
 +// toys/pending/dhcpd.c
 +
 +struct dhcpd_data {
 +    char *iface;
 +    long port;
 +};;
 +
 +// toys/pending/diff.c
 +
 +struct diff_data {
 +  long ct;
 +  char *start;
 +  struct arg_list *L_list;
 +
 +  int dir_num, size, is_binary, status, change, len[2];
 +  int *offset[2];
 +};
 +
 +// toys/pending/dumpleases.c
 +
 +struct dumpleases_data {
 +    char *file;
 +};
 +
 +// toys/pending/expr.c
 +
 +struct expr_data {
 +  char **tok; // current token, not on the stack since recursive calls mutate it
 +
 +  char *refree;
 +};
 +
 +// toys/pending/fdisk.c
 +
 +struct fdisk_data {
 +  long sect_sz;
 +  long sectors;
 +  long heads;
 +  long cylinders;
 +};
 +
 +// toys/pending/fold.c
 +
 +struct fold_data {
 +  int width;
 +};
 +
 +// toys/pending/fsck.c
 +
 +struct fsck_data {
 +  int fd_num;
 +  char *t_list;
 +
 +  struct double_list *devices;
 +  char *arr_flag;
 +  char **arr_type;
 +  int negate;
 +  int sum_status;
 +  int nr_run;
 +  int sig_num;
 +  long max_nr_run;
 +};
 +
 +// toys/pending/getfattr.c
 +
 +struct getfattr_data {
 +  char *n;
 +};
 +
 +// toys/pending/getty.c
 +
 +struct getty_data {
 +  char *issue_str;
 +  char *login_str;
 +  char *init_str;
 +  char *host_str; 
 +  long timeout;
 +  
 +  char *tty_name;  
 +  int  speeds[20];
 +  int  sc;              
 +  struct termios termios;
 +  char buff[128];
 +};
 +
 +// toys/pending/groupadd.c
 +
 +struct groupadd_data {
 +  long gid;
 +};
 +
 +// toys/pending/gzip.c
 +
 +struct gzip_data {
 +  int level;
 +};
 +
 +// toys/pending/host.c
 +
 +struct host_data {
 +  char *type_str;
 +};
 +
 +// toys/pending/iconv.c
 +
 +struct iconv_data {
 +  char *from;
 +  char *to;
 +
 +  void *ic;
 +};
 +
 +// toys/pending/ip.c
 +
 +struct ip_data {
 +  char stats, singleline, flush, *filter_dev, gbuf[8192];
 +  int sockfd, connected, from_ok, route_cmd;
 +  int8_t addressfamily, is_addr;
 +};
 +
 +// toys/pending/ipcrm.c
 +
 +struct ipcrm_data {
 +  struct arg_list *qkey;
 +  struct arg_list *qid;
 +  struct arg_list *skey;
 +  struct arg_list *sid;
 +  struct arg_list *mkey;
 +  struct arg_list *mid;
 +};
 +
 +// toys/pending/ipcs.c
 +
 +struct ipcs_data {
 +  int id;
 +};
 +
 +// toys/pending/klogd.c
 +
 +struct klogd_data {
 +  long level;
 +
 +  int fd;
 +};
 +
 +// toys/pending/last.c
 +
 +struct last_data {
 +  char *file;
 +
 +  struct arg_list *list;
 +};
 +
 +// toys/pending/logger.c
 +
 +struct logger_data {
 +  char *priority_arg;
 +  char *ident;
 +};
 +
 +// toys/pending/lsof.c
 +
 +struct lsof_data {
 +  struct arg_list *p;
 +
 +  struct stat *sought_files;
 +
 +  struct double_list *all_sockets;
 +  struct double_list *files;
 +  int last_shown_pid;
 +  int shown_header;
 +};
 +
 +// toys/pending/mke2fs.c
 +
 +struct mke2fs_data {
 +  // Command line arguments.
 +  long blocksize;
 +  long bytes_per_inode;
 +  long inodes;           // Total inodes in filesystem.
 +  long reserved_percent; // Integer precent of space to reserve for root.
 +  char *gendir;          // Where to read dirtree from.
 +
 +  // Internal data.
 +  struct dirtree *dt;    // Tree of files to copy into the new filesystem.
 +  unsigned treeblocks;   // Blocks used by dt
 +  unsigned treeinodes;   // Inodes used by dt
 +
 +  unsigned blocks;       // Total blocks in the filesystem.
 +  unsigned freeblocks;   // Free blocks in the filesystem.
 +  unsigned inodespg;     // Inodes per group
 +  unsigned groups;       // Total number of block groups.
 +  unsigned blockbits;    // Bits per block.  (Also blocks per group.)
 +
 +  // For gene2fs
 +  unsigned nextblock;    // Next data block to allocate
 +  unsigned nextgroup;    // Next group we'll be allocating from
 +  int fsfd;              // File descriptor of filesystem (to output to).
 +
 +  struct ext2_superblock sb;
 +};
 +
 +// toys/pending/modprobe.c
 +
 +struct modprobe_data {
 +  struct arg_list *dirs;
 +
 +  struct arg_list *probes;
 +  struct arg_list *dbase[256];
 +  char *cmdopts;
 +  int nudeps;
 +  uint8_t symreq;
 +};
 +
 +// toys/pending/more.c
 +
 +struct more_data {
 +  struct termios inf;
 +  int cin_fd;
 +};
 +
 +// toys/pending/openvt.c
 +
 +struct openvt_data {
 +  unsigned long vt_num;
 +};
 +
 +// toys/pending/ping.c
 +
 +struct ping_data {
 +  long wait_exit;
 +  long wait_resp;
 +  char *iface;
 +  long size;
 +  long count;
 +  long ttl;
 +
 +  int sock;
 +};
 +
 +// toys/pending/route.c
 +
 +struct route_data {
 +  char *family;
 +};
 +
 +// toys/pending/setfattr.c
 +
 +struct setfattr_data {
 +  char *x, *v, *n;
 +};
 +
 +// toys/pending/sh.c
 +
 +struct sh_data {
 +  char *command;
 +
 +  long lineno;
 +};
 +
 +// toys/pending/sulogin.c
 +
 +struct sulogin_data {
 +  long timeout;
 +  struct termios crntio;
 +};
 +
 +// toys/pending/syslogd.c
 +
 +struct syslogd_data {
 +  char *socket;
 +  char *config_file;
 +  char *unix_socket;
 +  char *logfile;
 +  long interval;
 +  long rot_size;
 +  long rot_count;
 +  char *remote_log;
 +  long log_prio;
 +
 +  struct unsocks *lsocks;  // list of listen sockets
 +  struct logfile *lfiles;  // list of write logfiles
 +  int sigfd[2];
 +};
 +
 +// toys/pending/tar.c
 +
 +struct tar_data {
 +  char *fname;
 +  char *dir;
 +  struct arg_list *inc_file;
 +  struct arg_list *exc_file;
 +  char *tocmd;
 +  struct arg_list *exc;
 +
 +  struct arg_list *inc, *pass;
 +  void *inodes, *handle;
 +};
 +
 +// toys/pending/tcpsvd.c
 +
 +struct tcpsvd_data {
 +  char *name;
 +  char *user;
 +  long bn;
 +  char *nmsg;
 +  long cn;
 +
 +  int maxc;
 +  int count_all;
 +  int udp;
 +};
 +
 +// toys/pending/telnet.c
 +
 +struct telnet_data {
 +  int port;
 +  int sfd;
 +  char buff[128];
 +  int pbuff;
 +  char iac[256];
 +  int piac;
 +  char *ttype;
 +  struct termios def_term;
 +  struct termios raw_term;
 +  uint8_t term_ok;
 +  uint8_t term_mode;
 +  uint8_t flags;
 +  unsigned win_width;
 +  unsigned win_height;
 +};
 +
 +// toys/pending/telnetd.c
 +
 +struct telnetd_data {
 +    char *login_path;
 +    char *issue_path;
 +    int port;
 +    char *host_addr;
 +    long w_sec;
 +
 +    int gmax_fd;
 +    pid_t fork_pid;
 +};
 +
 +// toys/pending/tftp.c
 +
 +struct tftp_data {
 +  char *local_file;
 +  char *remote_file;
 +  long block_size;
 +
 +  struct sockaddr_storage inaddr;
 +  int af;
 +};
 +
 +// toys/pending/tftpd.c
 +
 +struct tftpd_data {
 +  char *user;
 +
 +  long sfd;
 +  struct passwd *pw;
 +};
 +
 +// toys/pending/tr.c
 +
 +struct tr_data {
 +  short map[256]; //map of chars
 +  int len1, len2;
 +};
 +
 +// toys/pending/traceroute.c
 +
 +struct traceroute_data {
 +  long max_ttl;
 +  long port;
 +  long ttl_probes;
 +  char *src_ip;
 +  long tos;
 +  long wait_time;
 +  struct arg_list *loose_source;
 +  long pause_time;
 +  long first_ttl;
 +  char *iface;
 +
 +  uint32_t gw_list[9];
 +  int recv_sock;
 +  int snd_sock;
 +  unsigned msg_len;
 +  char *packet;
 +  uint32_t ident;
 +  int istraceroute6;
 +};
 +
 +// toys/pending/useradd.c
 +
 +struct useradd_data {
 +  char *dir;
 +  char *gecos;
 +  char *shell;
 +  char *u_grp;
 +  long uid;
 +
 +  long gid;
 +};
 +
 +// toys/pending/vi.c
 +
 +struct vi_data {
 +  struct linestack *ls;
 +  char *statline;
 +};
 +
 +// toys/pending/watch.c
 +
 +struct watch_data {
 +  int interval;
 +};
 +
 +// toys/pending/wget.c
 +
 +struct wget_data {
 +  char *filename;
 +};
 +
 +// toys/posix/chgrp.c
 +
 +struct chgrp_data {
 +  uid_t owner;
 +  gid_t group;
 +  char *owner_name, *group_name;
 +  int symfollow;
 +};
 +
 +// toys/posix/chmod.c
 +
 +struct chmod_data {
 +  char *mode;
 +};
 +
 +// toys/posix/cksum.c
 +
 +struct cksum_data {
 +  unsigned crc_table[256];
 +};
 +
 +// toys/posix/cmp.c
 +
 +struct cmp_data {
 +  int fd;
 +  char *name;
 +};
 +
 +// toys/posix/cp.c
 +
 +struct cp_data {
 +  union {
 +    struct {
 +      // install's options
 +      char *group;
 +      char *user;
 +      char *mode;
 +    } i;
 +    struct {
 +      char *preserve;
 +    } c;
 +  };
 +
 +  char *destname;
 +  struct stat top;
 +  int (*callback)(struct dirtree *try);
 +  uid_t uid;
 +  gid_t gid;
 +  int pflags;
 +};
 +
 +// toys/posix/cpio.c
 +
 +struct cpio_data {
 +  char *archive;
 +  char *pass;
 +  char *fmt;
 +};
 +
 +// toys/posix/cut.c
 +
 +struct cut_data {
 +  char *delim;
 +  char *flist;
 +  char *clist;
 +  char *blist;
 +
 +  void *slist_head;
 +  unsigned nelem;
 +  void (*do_cut)(int fd);
 +};
 +
 +// toys/posix/date.c
 +
 +struct date_data {
 +  char *file;
 +  char *setfmt;
 +  char *showdate;
 +
 +  unsigned nano;
 +};
 +
 +// toys/posix/df.c
 +
 +struct df_data {
 +  struct arg_list *fstype;
 +
 +  long units;
 +  int column_widths[5];
 +  int header_shown;
 +};
 +
 +// toys/posix/du.c
 +
 +struct du_data {
 +  long maxdepth;
 +
 +  unsigned long depth, total;
 +  dev_t st_dev;
 +  void *inodes;
 +};
 +
 +// toys/posix/env.c
 +
 +struct env_data {
 +  struct arg_list *u;
 +};;
 +
 +// toys/posix/expand.c
 +
 +struct expand_data {
 +  struct arg_list *tabs;
 +
 +  unsigned tabcount, *tab;
 +};
 +
 +// toys/posix/file.c
 +
 +struct file_data {
 +  int max_name_len;
 +};
 +
 +// toys/posix/find.c
 +
 +struct find_data {
 +  char **filter;
 +  struct double_list *argdata;
 +  int topdir, xdev, depth;
 +  time_t now;
 +};
 +
 +// toys/posix/grep.c
 +
 +struct grep_data {
 +  long m;
 +  struct arg_list *f;
 +  struct arg_list *e;
 +  long a;
 +  long b;
 +  long c;
 +  struct arg_list *M;
 +  struct arg_list *S;
 +
 +  char indelim, outdelim;
 +  int found;
 +};
 +
 +// toys/posix/head.c
 +
 +struct head_data {
 +  long bytes;
 +  long lines;
 +  int file_no;
 +};
 +
 +// toys/posix/id.c
 +
 +struct id_data {
 +  int is_groups;
 +};
 +
 +// toys/posix/kill.c
 +
 +struct kill_data {
 +  char *signame;
 +  struct arg_list *olist;
 +};
 +
 +// toys/posix/ls.c
 +
 +struct ls_data {
 +  long ll;
 +  char *color;
 +
 +  struct dirtree *files, *singledir;
 +
 +  unsigned screen_width;
 +  int nl_title;
 +  char *escmore;
 +};
 +
 +// toys/posix/mkdir.c
 +
 +struct mkdir_data {
 +  char *arg_mode;
 +  char *arg_context;
 +};
 +
 +// toys/posix/mkfifo.c
 +
 +struct mkfifo_data {
 +  char *m_string;
 +  char *Z;
 +
 +  mode_t mode;
 +};
 +
 +// toys/posix/nice.c
 +
 +struct nice_data {
 +  long priority;
 +};
 +
 +// toys/posix/nl.c
 +
 +struct nl_data {
 +  long w;
 +  char *s;
 +  char *n;
 +  char *b;
 +  long l;
 +  long v;
 +
 +  // Count of consecutive blank lines for -l has to persist between files
 +  long lcount;
 +};
 +
 +// toys/posix/od.c
 +
 +struct od_data {
 +  struct arg_list *output_base;
 +  char *address_base;
 +  long max_count;
 +  long width;
 +  long jump_bytes;
 +
 +  int address_idx;
 +  unsigned types, leftover, star;
 +  char *buf; // Points to buffers[0] or buffers[1].
 +  char *bufs[2]; // Used to detect duplicate lines.
 +  off_t pos;
 +};
 +
 +// toys/posix/paste.c
 +
 +struct paste_data {
 +  char *d;
 +
 +  int files;
 +};
 +
 +// toys/posix/patch.c
 +
 +struct patch_data {
 +  char *infile;
 +  long prefix;
 +  char *dir;
 +
 +  struct double_list *current_hunk;
 +  long oldline, oldlen, newline, newlen;
 +  long linenum;
 +  int context, state, filein, fileout, filepatch, hunknum;
 +  char *tempname;
 +};
 +
 +// toys/posix/ps.c
 +
 +struct ps_data {
 +  union {
 +    struct {
 +      struct arg_list *G;
 +      struct arg_list *g;
 +      struct arg_list *U;
 +      struct arg_list *u;
 +      struct arg_list *t;
 +      struct arg_list *s;
 +      struct arg_list *p;
 +      struct arg_list *O;
 +      struct arg_list *o;
 +      struct arg_list *P;
 +      struct arg_list *k;
 +    } ps;
 +    struct {
 +      long n;
 +      long d;
 +      long s;
 +      struct arg_list *u;
 +      struct arg_list *p;
 +      struct arg_list *o;
 +      struct arg_list *k;
 +      struct arg_list *O;
 +    } top;
 +    struct {
 +      char *L;
 +      struct arg_list *G;
 +      struct arg_list *g;
 +      struct arg_list *P;
 +      struct arg_list *s;
 +      struct arg_list *t;
 +      struct arg_list *U;
 +      struct arg_list *u;
 +      char *d;
 +
 +      void *regexes, *snapshot;
 +      int signal;
 +      pid_t self, match;
 +    } pgrep;
 +  };
 +
 +  struct sysinfo si;
 +  struct ptr_len gg, GG, pp, PP, ss, tt, uu, UU;
 +  struct dirtree *threadparent;
 +  unsigned width, height;
 +  dev_t tty;
 +  void *fields, *kfields;
 +  long long ticks, bits, time;
 +  int kcount, forcek, sortpos;
 +  int (*match_process)(long long *slot);
 +  void (*show_process)(void *tb);
 +};
 +
 +// toys/posix/renice.c
 +
 +struct renice_data {
 +  long nArgu;
 +};
 +
 +// toys/posix/sed.c
 +
 +struct sed_data {
 +  struct arg_list *f;
 +  struct arg_list *e;
 +
 +  // processed pattern list
 +  struct double_list *pattern;
 +
 +  char *nextline, *remember;
 +  void *restart, *lastregex;
 +  long nextlen, rememberlen, count;
 +  int fdout, noeol;
 +  unsigned xx;
 +};
 +
 +// toys/posix/sort.c
 +
 +struct sort_data {
 +  char *key_separator;
 +  struct arg_list *raw_keys;
 +  char *outfile;
 +  char *ignore1, ignore2;   // GNU compatability NOPs for -S and -T.
 +
 +  void *key_list;
 +  int linecount;
 +  char **lines;
 +};
 +
 +// toys/posix/split.c
 +
 +struct split_data {
 +  long lines;
 +  long bytes;
 +  long suflen;
 +
 +  char *outfile;
 +};
 +
 +// toys/posix/strings.c
 +
 +struct strings_data {
 +  long num;
 +  char *t;
 +};
 +
 +// toys/posix/tail.c
 +
 +struct tail_data {
 +  long lines;
 +  long bytes;
 +
 +  int file_no, ffd, *files;
 +};
 +
 +// toys/posix/tee.c
 +
 +struct tee_data {
 +  void *outputs;
 +};
 +
 +// toys/posix/touch.c
 +
 +struct touch_data {
 +  char *time;
 +  char *file;
 +  char *date;
 +};
 +
 +// toys/posix/ulimit.c
 +
 +struct ulimit_data {
 +  long pid;
 +};
 +
 +// toys/posix/uniq.c
 +
 +struct uniq_data {
 +  long maxchars;
 +  long nchars;
 +  long nfields;
 +  long repeats;
 +};
 +
 +// toys/posix/uudecode.c
 +
 +struct uudecode_data {
 +  char *o;
 +};
 +
 +// toys/posix/wc.c
 +
 +struct wc_data {
 +  unsigned long totals[4];
 +};
 +
 +// toys/posix/xargs.c
 +
 +struct xargs_data {
 +  long max_bytes;
 +  long max_entries;
 +  long L;
 +  char *eofstr;
 +  char *I;
 +
 +  long entries, bytes;
 +  char delim;
 +};
 +
 +extern union global_union {
 +      struct getprop_data getprop;
 +      struct log_data log;
 +      struct hello_data hello;
 +      struct skeleton_data skeleton;
 +      struct dmesg_data dmesg;
 +      struct hostname_data hostname;
 +      struct killall_data killall;
 +      struct md5sum_data md5sum;
 +      struct mknod_data mknod;
 +      struct mktemp_data mktemp;
 +      struct mount_data mount;
 +      struct passwd_data passwd;
 +      struct pidof_data pidof;
 +      struct seq_data seq;
 +      struct su_data su;
 +      struct umount_data umount;
 +      struct ftpget_data ftpget;
 +      struct ifconfig_data ifconfig;
 +      struct microcom_data microcom;
 +      struct netcat_data netcat;
 +      struct netstat_data netstat;
 +      struct tunctl_data tunctl;
 +      struct acpi_data acpi;
 +      struct base64_data base64;
 +      struct blockdev_data blockdev;
 +      struct chrt_data chrt;
 +      struct dos2unix_data dos2unix;
 +      struct fallocate_data fallocate;
 +      struct free_data free;
 +      struct hexedit_data hexedit;
 +      struct hwclock_data hwclock;
 +      struct ionice_data ionice;
 +      struct login_data login;
 +      struct losetup_data losetup;
 +      struct lspci_data lspci;
 +      struct makedevs_data makedevs;
 +      struct mix_data mix;
 +      struct mkpasswd_data mkpasswd;
 +      struct mkswap_data mkswap;
 +      struct modinfo_data modinfo;
 +      struct nsenter_data nsenter;
 +      struct oneit_data oneit;
 +      struct shred_data shred;
 +      struct stat_data stat;
 +      struct swapon_data swapon;
 +      struct switch_root_data switch_root;
 +      struct timeout_data timeout;
 +      struct truncate_data truncate;
 +      struct xxd_data xxd;
 +      struct arp_data arp;
 +      struct arping_data arping;
 +      struct bootchartd_data bootchartd;
 +      struct brctl_data brctl;
 +      struct compress_data compress;
 +      struct crond_data crond;
 +      struct crontab_data crontab;
 +      struct dd_data dd;
 +      struct dhcp_data dhcp;
 +      struct dhcp6_data dhcp6;
 +      struct dhcpd_data dhcpd;
 +      struct diff_data diff;
 +      struct dumpleases_data dumpleases;
 +      struct expr_data expr;
 +      struct fdisk_data fdisk;
 +      struct fold_data fold;
 +      struct fsck_data fsck;
 +      struct getfattr_data getfattr;
 +      struct getty_data getty;
 +      struct groupadd_data groupadd;
 +      struct gzip_data gzip;
 +      struct host_data host;
 +      struct iconv_data iconv;
 +      struct ip_data ip;
 +      struct ipcrm_data ipcrm;
 +      struct ipcs_data ipcs;
 +      struct klogd_data klogd;
 +      struct last_data last;
 +      struct logger_data logger;
 +      struct lsof_data lsof;
 +      struct mke2fs_data mke2fs;
 +      struct modprobe_data modprobe;
 +      struct more_data more;
 +      struct openvt_data openvt;
 +      struct ping_data ping;
 +      struct route_data route;
 +      struct setfattr_data setfattr;
 +      struct sh_data sh;
 +      struct sulogin_data sulogin;
 +      struct syslogd_data syslogd;
 +      struct tar_data tar;
 +      struct tcpsvd_data tcpsvd;
 +      struct telnet_data telnet;
 +      struct telnetd_data telnetd;
 +      struct tftp_data tftp;
 +      struct tftpd_data tftpd;
 +      struct tr_data tr;
 +      struct traceroute_data traceroute;
 +      struct useradd_data useradd;
 +      struct vi_data vi;
 +      struct watch_data watch;
 +      struct wget_data wget;
 +      struct chgrp_data chgrp;
 +      struct chmod_data chmod;
 +      struct cksum_data cksum;
 +      struct cmp_data cmp;
 +      struct cp_data cp;
 +      struct cpio_data cpio;
 +      struct cut_data cut;
 +      struct date_data date;
 +      struct df_data df;
 +      struct du_data du;
 +      struct env_data env;
 +      struct expand_data expand;
 +      struct file_data file;
 +      struct find_data find;
 +      struct grep_data grep;
 +      struct head_data head;
 +      struct id_data id;
 +      struct kill_data kill;
 +      struct ls_data ls;
 +      struct mkdir_data mkdir;
 +      struct mkfifo_data mkfifo;
 +      struct nice_data nice;
 +      struct nl_data nl;
 +      struct od_data od;
 +      struct paste_data paste;
 +      struct patch_data patch;
 +      struct ps_data ps;
 +      struct renice_data renice;
 +      struct sed_data sed;
 +      struct sort_data sort;
 +      struct split_data split;
 +      struct strings_data strings;
 +      struct tail_data tail;
 +      struct tee_data tee;
 +      struct touch_data touch;
 +      struct ulimit_data ulimit;
 +      struct uniq_data uniq;
 +      struct uudecode_data uudecode;
 +      struct wc_data wc;
 +      struct xargs_data xargs;
 +} this;
index 3d62e0d,0000000..46cc2db
mode 100644,000000..100644
--- /dev/null
@@@ -1,283 -1,0 +1,283 @@@
- USE_DD(NEWTOY(dd, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TOYBOX(NEWTOY(toybox, NULL, TOYFLAG_STAYROOT))
 +USE_SH(OLDTOY(-sh, sh, 0))
 +USE_SH(OLDTOY(-toysh, sh, 0))
 +USE_TRUE(OLDTOY(:, true, TOYFLAG_NOFORK|TOYFLAG_NOHELP))
 +USE_ACPI(NEWTOY(acpi, "abctV", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_GROUPADD(OLDTOY(addgroup, groupadd, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_USERADD(OLDTOY(adduser, useradd, TOYFLAG_NEEDROOT|TOYFLAG_UMASK|TOYFLAG_SBIN))
 +USE_ARP(NEWTOY(arp, "vi:nDsdap:A:H:[+Ap][!sd]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ARPING(NEWTOY(arping, "<1>1s:I:w#<0c#<0AUDbqf[+AU][+Df]", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_ASCII(NEWTOY(ascii, 0, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_BASE64(NEWTOY(base64, "diw#<0=76[!dw]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_BASENAME(NEWTOY(basename, "<1>2", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_BLKID(NEWTOY(blkid, 0, TOYFLAG_BIN))
 +USE_BLOCKDEV(NEWTOY(blockdev, "<1>1(setro)(setrw)(getro)(getss)(getbsz)(setbsz)#<0(getsz)(getsize)(getsize64)(flushbufs)(rereadpt)",TOYFLAG_USR|TOYFLAG_BIN))
 +USE_BOOTCHARTD(NEWTOY(bootchartd, 0, TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
 +USE_BRCTL(NEWTOY(brctl, "<1", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_BUNZIP2(NEWTOY(bunzip2, "cftkv", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_BZCAT(NEWTOY(bzcat, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_CAL(NEWTOY(cal, ">2", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_CAT(NEWTOY(cat, "u"USE_CAT_V("vte"), TOYFLAG_BIN))
 +USE_CATV(NEWTOY(catv, USE_CATV("vte"), TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SH(NEWTOY(cd, NULL, TOYFLAG_NOFORK))
 +USE_CHATTR(NEWTOY(chattr, NULL, TOYFLAG_BIN))
 +USE_CHCON(NEWTOY(chcon, "<2hvR", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_CHGRP(NEWTOY(chgrp, "<2hPLHRfv[-HLP]", TOYFLAG_BIN))
 +USE_CHMOD(NEWTOY(chmod, "<2?vRf[-vf]", TOYFLAG_BIN))
 +USE_CHOWN(OLDTOY(chown, chgrp, TOYFLAG_BIN))
 +USE_CHROOT(NEWTOY(chroot, "^<1", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_CHRT(NEWTOY(chrt, "^mp#<0iRbrfo[!ibrfo]", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_CHVT(NEWTOY(chvt, "<1", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_CKSUM(NEWTOY(cksum, "HIPLN", TOYFLAG_BIN))
 +USE_CLEAR(NEWTOY(clear, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_CMP(NEWTOY(cmp, "<2>2ls[!ls]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_COMM(NEWTOY(comm, "<2>2321", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_COMPRESS(NEWTOY(compress, "zcd9lrg[-cd][!zgLr]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_COUNT(NEWTOY(count, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_CP(NEWTOY(cp, "<2"USE_CP_PRESERVE("(preserve):;")"RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni]", TOYFLAG_BIN))
 +USE_CPIO(NEWTOY(cpio, "(no-preserve-owner)(trailer)mduH:p:|i|t|F:v(verbose)o|[!pio][!pot][!pF]", TOYFLAG_BIN))
 +USE_CROND(NEWTOY(crond, "fbSl#<0=8d#<0L:c:[-bf][-LS][-ld]", TOYFLAG_USR|TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_CRONTAB(NEWTOY(crontab, "c:u:elr[!elr]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT))
 +USE_CUT(NEWTOY(cut, "b:|c:|f:|d:sn[!cbf]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_DATE(NEWTOY(date, "d:D:r:u[!dr]", TOYFLAG_BIN))
++USE_DD(NEWTOY(dd, 0, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_DEALLOCVT(NEWTOY(deallocvt, ">1", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_NEEDROOT))
 +USE_GROUPDEL(OLDTOY(delgroup, groupdel, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_USERDEL(OLDTOY(deluser, userdel, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_DF(NEWTOY(df, "HPkht*a[-HPkh]", TOYFLAG_SBIN))
 +USE_DHCP(NEWTOY(dhcp, "V:H:F:x*r:O*A#<0=20T#<0=3t#<0=3s:p:i:SBRCaovqnbf", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
 +USE_DHCP6(NEWTOY(dhcp6, "r:A#<0T#<0t#<0s:p:i:SRvqnbf", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
 +USE_DHCPD(NEWTOY(dhcpd, ">1P#<0>65535fi:S46[!46]", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
 +USE_DIFF(NEWTOY(diff, "<2>2B(ignore-blank-lines)d(minimal)b(ignore-space-change)ut(expand-tabs)w(ignore-all-space)i(ignore-case)T(initial-tab)s(report-identical-files)q(brief)a(text)L(label)*S(starting-file):N(new-file)r(recursive)U(unified)#<0=3", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_DIRNAME(NEWTOY(dirname, "<1", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_DMESG(NEWTOY(dmesg, "w(follow)CSTtrs#<1n#c[!Ttr][!Cc][!Sw]", TOYFLAG_BIN))
 +USE_DOS2UNIX(NEWTOY(dos2unix, 0, TOYFLAG_BIN))
 +USE_DU(NEWTOY(du, "d#<0hmlcaHkKLsx[-HL][-kKmh]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_DUMPLEASES(NEWTOY(dumpleases, ">0arf:[!ar]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ECHO(NEWTOY(echo, "^?en", TOYFLAG_BIN))
 +USE_EGREP(OLDTOY(egrep, grep, TOYFLAG_BIN))
 +USE_EJECT(NEWTOY(eject, ">1stT[!tT]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ENV(NEWTOY(env, "^0iu*", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SH(NEWTOY(exit, NULL, TOYFLAG_NOFORK))
 +USE_EXPAND(NEWTOY(expand, "t*", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_EXPR(NEWTOY(expr, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FACTOR(NEWTOY(factor, 0, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FALLOCATE(NEWTOY(fallocate, ">1l#|o#", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FALSE(NEWTOY(false, NULL, TOYFLAG_BIN|TOYFLAG_NOHELP))
 +USE_FDISK(NEWTOY(fdisk, "C#<0H#<0S#<0b#<512ul", TOYFLAG_SBIN))
 +USE_FGREP(OLDTOY(fgrep, grep, TOYFLAG_BIN))
 +USE_FILE(NEWTOY(file, "<1hL[!hL]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FIND(NEWTOY(find, "?^HL[-HL]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FLOCK(NEWTOY(flock, "<1>1nsux[-sux]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FOLD(NEWTOY(fold, "bsuw#<1", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FREE(NEWTOY(free, "htgmkb[!htgmkb]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FREERAMDISK(NEWTOY(freeramdisk, "<1>1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_FSCK(NEWTOY(fsck, "?t:ANPRTVsC#", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FSFREEZE(NEWTOY(fsfreeze, "<1>1f|u|[!fu]", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_FSTYPE(NEWTOY(fstype, "<1", TOYFLAG_BIN))
 +USE_FSYNC(NEWTOY(fsync, "<1d", TOYFLAG_BIN))
 +USE_FTPGET(NEWTOY(ftpget, "<2>3P:cp:u:vgslLmMdD[-gs][!gslLmMdD][!clL]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_FTPPUT(OLDTOY(ftpput, ftpget, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_GETENFORCE(NEWTOY(getenforce, ">0", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_GETFATTR(NEWTOY(getfattr, "dhn:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_GETPROP(NEWTOY(getprop, ">2Z", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_GETTY(NEWTOY(getty, "<2t#<0H:I:l:f:iwnmLh",TOYFLAG_SBIN))
 +USE_GREP(NEWTOY(grep, "S(exclude)*M(include)*C#B#A#ZzEFHabhinorsvwclqe*f*m#x[!wx][!EFw]", TOYFLAG_BIN))
 +USE_GROUPADD(NEWTOY(groupadd, "<1>2g#<0S", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_GROUPDEL(NEWTOY(groupdel, "<1>2", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_GROUPS(NEWTOY(groups, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_GUNZIP(NEWTOY(gunzip, "cdfk123456789", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_GZIP(NEWTOY(gzip,     "cdfk123456789", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_REBOOT(OLDTOY(halt, reboot, TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_HEAD(NEWTOY(head, "?n#<0=10c#<0qv[-nc]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_HELLO(NEWTOY(hello, 0, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_HELP(NEWTOY(help, ""USE_HELP_EXTRAS("ah"), TOYFLAG_BIN))
 +USE_HEXEDIT(NEWTOY(hexedit, "<1>1r", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_HOST(NEWTOY(host, "<1>2avt:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_HOSTID(NEWTOY(hostid, ">0", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_HOSTNAME(NEWTOY(hostname, "bF:", TOYFLAG_BIN))
 +USE_HWCLOCK(NEWTOY(hwclock, ">0(fast)f(rtc):u(utc)l(localtime)t(systz)s(hctosys)r(show)w(systohc)[-ul][!rtsw]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ICONV(NEWTOY(iconv, "cst:f:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ID(NEWTOY(id, ">1"USE_ID_Z("Z")"nGgru[!"USE_ID_Z("Z")"Ggu]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_IFCONFIG(NEWTOY(ifconfig, "^?a", TOYFLAG_SBIN))
 +USE_INIT(NEWTOY(init, "", TOYFLAG_SBIN))
 +USE_INOTIFYD(NEWTOY(inotifyd, "<2", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_INSMOD(NEWTOY(insmod, "<1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_INSTALL(NEWTOY(install, "<1cdDpsvm:o:g:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_IONICE(NEWTOY(ionice, "^tc#<0>3=2n#<0>7=5p#", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_IORENICE(NEWTOY(iorenice, "?<1>3", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_IOTOP(NEWTOY(iotop, ">0AaKO" "k*o*p*u*s#<1=7d#=3<1n#<1bq", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT|TOYFLAG_LOCALE))
 +USE_IP(NEWTOY(ip, NULL, TOYFLAG_SBIN))
 +USE_IP(OLDTOY(ipaddr, ip, TOYFLAG_SBIN))
 +USE_IPCRM(NEWTOY(ipcrm, "m*M*s*S*q*Q*", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_IPCS(NEWTOY(ipcs, "acptulsqmi#", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_IP(OLDTOY(iplink, ip, TOYFLAG_SBIN))
 +USE_IP(OLDTOY(iproute, ip, TOYFLAG_SBIN))
 +USE_IP(OLDTOY(iprule, ip, TOYFLAG_SBIN))
 +USE_IP(OLDTOY(iptunnel, ip, TOYFLAG_SBIN))
 +USE_KILL(NEWTOY(kill, "?ls: ", TOYFLAG_BIN))
 +USE_KILLALL(NEWTOY(killall, "?s:lqvi", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_KILLALL5(NEWTOY(killall5, "?o*ls: [!lo][!ls]", TOYFLAG_SBIN))
 +USE_KLOGD(NEWTOY(klogd, "c#<1>8n", TOYFLAG_SBIN))
 +USE_LAST(NEWTOY(last, "f:W", TOYFLAG_BIN))
 +USE_LINK(NEWTOY(link, "<2>2", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_LN(NEWTOY(ln, "<1vnfs", TOYFLAG_BIN))
 +USE_LOAD_POLICY(NEWTOY(load_policy, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_LOG(NEWTOY(log, "<1p:t:", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_LOGGER(NEWTOY(logger, "st:p:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_LOGIN(NEWTOY(login, ">1f:ph:", TOYFLAG_BIN|TOYFLAG_NEEDROOT))
 +USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_LOSETUP(NEWTOY(losetup, ">2S(sizelimit)#s(show)ro#j:fdca[!afj]", TOYFLAG_SBIN))
 +USE_LS(NEWTOY(ls, USE_LS_COLOR("(color):;")"(full-time)(show-control-chars)ZgoACFHLRSabcdfhikl@mnpqrstux1[-Cxm1][-Cxml][-Cxmo][-Cxmg][-cu][-ftS][-HL][!qb]", TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_LSATTR(NEWTOY(lsattr, "vldaR", TOYFLAG_BIN))
 +USE_LSMOD(NEWTOY(lsmod, NULL, TOYFLAG_SBIN))
 +USE_LSOF(NEWTOY(lsof, "lp*t", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_LSPCI(NEWTOY(lspci, "emkn"USE_LSPCI_TEXT("@i:"), TOYFLAG_USR|TOYFLAG_BIN))
 +USE_LSUSB(NEWTOY(lsusb, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MAKEDEVS(NEWTOY(makedevs, "<1>1d:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MD5SUM(NEWTOY(md5sum, "bc*[!bc]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MDEV(NEWTOY(mdev, "s", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_UMASK))
 +USE_MICROCOM(NEWTOY(microcom, "<1>1s:X", TOYFLAG_BIN))
 +USE_MIX(NEWTOY(mix, "c:d:l#r#", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MKDIR(NEWTOY(mkdir, "<1"USE_MKDIR_Z("Z:")"vpm:", TOYFLAG_BIN|TOYFLAG_UMASK))
 +USE_MKE2FS(NEWTOY(mke2fs, "<1>2g:Fnqm#N#i#b#", TOYFLAG_SBIN))
 +USE_MKFIFO(NEWTOY(mkfifo, "<1"USE_MKFIFO_Z("Z:")"m:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MKNOD(NEWTOY(mknod, "<2>4m(mode):"USE_MKNOD_Z("Z:"), TOYFLAG_BIN|TOYFLAG_UMASK))
 +USE_MKPASSWD(NEWTOY(mkpasswd, ">2S:m:P#=0<0", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MKSWAP(NEWTOY(mkswap, "<1>1L:", TOYFLAG_SBIN))
 +USE_MKTEMP(NEWTOY(mktemp, ">1uqd(directory)p(tmpdir):", TOYFLAG_BIN))
 +USE_MODINFO(NEWTOY(modinfo, "<1b:k:F:0", TOYFLAG_BIN))
 +USE_MODPROBE(NEWTOY(modprobe, "alrqvsDbd*", TOYFLAG_SBIN))
 +USE_MORE(NEWTOY(more, 0, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_MOUNT(NEWTOY(mount, "?O:afnrvwt:o*[-rw]", TOYFLAG_BIN|TOYFLAG_STAYROOT))
 +USE_MOUNTPOINT(NEWTOY(mountpoint, "<1qdx[-dx]", TOYFLAG_BIN))
 +USE_MV(NEWTOY(mv, "<2vnF(remove-destination)fi[-ni]", TOYFLAG_BIN))
 +USE_NBD_CLIENT(OLDTOY(nbd-client, nbd_client, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_NBD_CLIENT(NEWTOY(nbd_client, "<3>3ns", 0))
 +USE_NETCAT(OLDTOY(nc, netcat, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_NETCAT(NEWTOY(netcat, USE_NETCAT_LISTEN("^tlL")"w#W#p#s:q#f:"USE_NETCAT_LISTEN("[!tlL][!Lw]"), TOYFLAG_BIN))
 +USE_NETSTAT(NEWTOY(netstat, "pWrxwutneal", TOYFLAG_BIN))
 +USE_NICE(NEWTOY(nice, "^<1n#", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_NL(NEWTOY(nl, "v#<1=1l#b:n:s:w#<0=6E", TOYFLAG_BIN))
 +USE_NOHUP(NEWTOY(nohup, "<1^", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_NPROC(NEWTOY(nproc, "(all)", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_NSENTER(NEWTOY(nsenter, "<1F(no-fork)t#<1(target)i:(ipc);m:(mount);n:(net);p:(pid);u:(uts);U:(user);", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_OD(NEWTOY(od, "j#vw#<1=16N#xsodcbA:t*", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ONEIT(NEWTOY(oneit, "^<1nc:p3[!pn]", TOYFLAG_SBIN))
 +USE_OPENVT(NEWTOY(openvt, "c#<1>63sw", TOYFLAG_BIN|TOYFLAG_NEEDROOT))
 +USE_PARTPROBE(NEWTOY(partprobe, "<1", TOYFLAG_SBIN))
 +USE_PASSWD(NEWTOY(passwd, ">1a:dlu", TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PASTE(NEWTOY(paste, "d:s", TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_PATCH(NEWTOY(patch, "(dry-run)"USE_TOYBOX_DEBUG("x")"d:ulp#i:R", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PGREP(NEWTOY(pgrep, "?cld:u*U*t*s*P*g*G*fnovxL:[-no]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PIDOF(NEWTOY(pidof, "<1so:", TOYFLAG_BIN))
 +USE_PING(NEWTOY(ping, "<1>1t#<0>255c#<0s#<0>65535I:W#<0w#<0q46[-46]", TOYFLAG_ROOTONLY|TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PIVOT_ROOT(NEWTOY(pivot_root, "<2>2", TOYFLAG_SBIN))
 +USE_PKILL(NEWTOY(pkill,    "?Vu*U*t*s*P*g*G*fnovxl:[-no]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PMAP(NEWTOY(pmap, "<1xq", TOYFLAG_BIN))
 +USE_REBOOT(OLDTOY(poweroff, reboot, TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_PRINTENV(NEWTOY(printenv, "0(null)", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PRINTF(NEWTOY(printf, "<1?^", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_PS(NEWTOY(ps, "k(sort)*P(ppid)*aAdeflMno*O*p(pid)*s*t*Tu*U*g*G*wZ[!ol][+Ae][!oO]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_PWD(NEWTOY(pwd, ">0LP[-LP]", TOYFLAG_BIN))
 +USE_PWDX(NEWTOY(pwdx, "<1a", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_READAHEAD(NEWTOY(readahead, NULL, TOYFLAG_BIN))
 +USE_READLINK(NEWTOY(readlink, "<1>1fenq[-fe]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_REALPATH(NEWTOY(realpath, "<1", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_REBOOT(NEWTOY(reboot, "fn", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_RENICE(NEWTOY(renice, "<1gpun#|", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_RESET(NEWTOY(reset, 0, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_RESTORECON(NEWTOY(restorecon, "<1DFnRrv", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_REV(NEWTOY(rev, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_RFKILL(NEWTOY(rfkill, "<1>2", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_RM(NEWTOY(rm, "fiRr[-fi]", TOYFLAG_BIN))
 +USE_RMDIR(NEWTOY(rmdir, "<1p", TOYFLAG_BIN))
 +USE_RMMOD(NEWTOY(rmmod, "<1wf", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_ROUTE(NEWTOY(route, "?neA:", TOYFLAG_BIN))
 +USE_RUNCON(NEWTOY(runcon, "<2", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_SED(NEWTOY(sed, "(help)(version)e*f*inEr[+Er]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE|TOYFLAG_NOHELP))
 +USE_SENDEVENT(NEWTOY(sendevent, "<4>4", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_SEQ(NEWTOY(seq, "<1>3?f:s:w[!fw]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SETENFORCE(NEWTOY(setenforce, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_SETFATTR(NEWTOY(setfattr, "hn:|v:x:|[!xv]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SETPROP(NEWTOY(setprop, "<2>2", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_SETSID(NEWTOY(setsid, "^<1t", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SH(NEWTOY(sh, "c:i", TOYFLAG_BIN))
 +USE_SHA1SUM(NEWTOY(sha1sum, "bc*[!bc]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SHA224SUM(OLDTOY(sha224sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SHA256SUM(OLDTOY(sha256sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SHA384SUM(OLDTOY(sha384sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SHA512SUM(OLDTOY(sha512sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SHRED(NEWTOY(shred, "<1zxus#<1n#<1o#<0f", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SKELETON(NEWTOY(skeleton, "(walrus)(blubber):;(also):e@d*c#b:a", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SKELETON_ALIAS(NEWTOY(skeleton_alias, "b#dq", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SLEEP(NEWTOY(sleep, "<1", TOYFLAG_BIN))
 +USE_SORT(NEWTOY(sort, USE_SORT_FLOAT("g")USE_SORT_BIG("S:T:m" "o:k*t:xbMcszdfi") "run", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SPLIT(NEWTOY(split, ">2a#<1=2>9b#<1l#<1[!bl]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_START(NEWTOY(start, "", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_STAT(NEWTOY(stat, "<1c:fLt", TOYFLAG_BIN)) 
 +USE_STOP(NEWTOY(stop, "", TOYFLAG_USR|TOYFLAG_SBIN))
 +USE_STRINGS(NEWTOY(strings, "t:an#=4<1fo", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_SU(NEWTOY(su, "lmpc:s:", TOYFLAG_BIN|TOYFLAG_ROOTONLY))
 +USE_SULOGIN(NEWTOY(sulogin, "t#<0=0", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_SWAPOFF(NEWTOY(swapoff, "<1>1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767d", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 +USE_SWITCH_ROOT(NEWTOY(switch_root, "<2c:h", TOYFLAG_SBIN))
 +USE_SYNC(NEWTOY(sync, NULL, TOYFLAG_BIN))
 +USE_SYSCTL(NEWTOY(sysctl, "^neNqwpaA[!ap][!aq][!aw][+aA]", TOYFLAG_SBIN))
 +USE_SYSLOGD(NEWTOY(syslogd,">0l#<1>8=8R:b#<0>99=1s#<0=200m#<0>71582787=20O:p:f:a:nSKLD", TOYFLAG_SBIN|TOYFLAG_STAYROOT))
 +USE_TAC(NEWTOY(tac, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TAIL(NEWTOY(tail, "?fc-n-[-cn]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TAR(NEWTOY(tar, "&(no-recursion)(numeric-owner)(no-same-permissions)(overwrite)(exclude)*(to-command):o(no-same-owner)p(same-permissions)k(keep-old)c(create)|h(dereference)x(extract)|t(list)|v(verbose)j(bzip2)z(gzip)O(to-stdout)m(touch)X(exclude-from)*T(files-from)*C(directory):f(file):[!txc][!jz]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TASKSET(NEWTOY(taskset, "<1^pa", TOYFLAG_BIN|TOYFLAG_STAYROOT))
 +USE_TCPSVD(NEWTOY(tcpsvd, "^<3c#=30<1C:b#=20<0u:l:hEv", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TEE(NEWTOY(tee, "ia", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TELNET(NEWTOY(telnet, "<1>2", TOYFLAG_BIN))
 +USE_TELNETD(NEWTOY(telnetd, "w#<0b:p#<0>65535=23f:l:FSKi[!wi]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TEST(NEWTOY(test, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TEST_HUMAN_READABLE(NEWTOY(test_human_readable, "<1>1ibs", TOYFLAG_BIN))
 +USE_TEST_MANY_OPTIONS(NEWTOY(test_many_options, "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba", TOYFLAG_BIN))
 +USE_TEST_SCANKEY(NEWTOY(test_scankey, 0, TOYFLAG_BIN))
 +USE_TFTP(NEWTOY(tftp, "<1b#<8>65464r:l:g|p|[!gp]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TFTPD(NEWTOY(tftpd, "rcu:l", TOYFLAG_BIN))
 +USE_TIME(NEWTOY(time, "<1^p", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TIMEOUT(NEWTOY(timeout, "<2^vk:s: ", TOYFLAG_BIN))
 +USE_TOP(NEWTOY(top, ">0m" "O*Hk*o*p*u*s#<1d#=3<1n#<1bq[!oO]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_TOUCH(NEWTOY(touch, "<1acd:mr:t:h[!dtr]", TOYFLAG_BIN))
 +USE_SH(OLDTOY(toysh, sh, TOYFLAG_BIN))
 +USE_TR(NEWTOY(tr, "^>2<1Ccsd[+cC]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TRACEROUTE(NEWTOY(traceroute, "<1>2i:f#<1>255=1z#<0>86400=0g*w#<0>86400=5t#<0>255=0s:q#<1>255=3p#<1>65535=33434m#<1>255=30rvndlIUF64", TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TRACEROUTE(OLDTOY(traceroute6,traceroute, TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TRUE(NEWTOY(true, NULL, TOYFLAG_BIN|TOYFLAG_NOHELP))
 +USE_TRUNCATE(NEWTOY(truncate, "<1s:|c", TOYFLAG_BIN))
 +USE_TTY(NEWTOY(tty, "s", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TUNCTL(NEWTOY(tunctl, "<1>1t|d|u:T[!td]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_TCPSVD(OLDTOY(udpsvd, tcpsvd, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ULIMIT(NEWTOY(ulimit, ">1P#<1SHavutsrRqpnmlifedc[-SH][!apvutsrRqnmlifedc]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_UMOUNT(NEWTOY(umount, "ndDflrat*v[!na]", TOYFLAG_BIN|TOYFLAG_STAYROOT))
 +USE_UNAME(NEWTOY(uname, "oamvrns[+os]", TOYFLAG_BIN))
 +USE_UNIQ(NEWTOY(uniq, "f#s#w#zicdu", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_UNIX2DOS(NEWTOY(unix2dos, 0, TOYFLAG_BIN))
 +USE_UNLINK(NEWTOY(unlink, "<1>1", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_UNSHARE(NEWTOY(unshare, "<1^f(fork);r(map-root-user);i:(ipc);m:(mount);n:(net);p:(pid);u:(uts);U:(user);", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_UPTIME(NEWTOY(uptime, ">0s", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_USERADD(NEWTOY(useradd, "<1>2u#<0G:s:g:h:SDH", TOYFLAG_NEEDROOT|TOYFLAG_UMASK|TOYFLAG_SBIN))
 +USE_USERDEL(NEWTOY(userdel, "<1>1r", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_USLEEP(NEWTOY(usleep, "<1", TOYFLAG_BIN))
 +USE_UUDECODE(NEWTOY(uudecode, ">1o:", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_UMASK))
 +USE_UUENCODE(NEWTOY(uuencode, "<1>2m", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_VCONFIG(NEWTOY(vconfig, "<2>4", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 +USE_VI(NEWTOY(vi, "<1>1", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_VMSTAT(NEWTOY(vmstat, ">2n", TOYFLAG_BIN))
 +USE_W(NEWTOY(w, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_WATCH(NEWTOY(watch, "^<1n#<0=2te", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_WC(NEWTOY(wc, "mcwl", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
 +USE_WGET(NEWTOY(wget, "f:", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_WHICH(NEWTOY(which, "<1a", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_WHO(NEWTOY(who, "a", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_WHOAMI(OLDTOY(whoami, logname, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_XARGS(NEWTOY(xargs, "^I:E:L#ptxrn#<1s#0", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_XXD(NEWTOY(xxd, ">1c#<1>4096=16l#g#<1=2prs#[!rs]", TOYFLAG_USR|TOYFLAG_BIN))
 +USE_XZCAT(NEWTOY(xzcat, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_YES(NEWTOY(yes, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 +USE_ZCAT(NEWTOY(zcat,     "cdfk123456789", TOYFLAG_USR|TOYFLAG_BIN))