Mercurial > hg > toybox
annotate toys.h @ 1249:b13728c24a58 draft
modprobe: cleanup, incorporate Ashwini's fix for alias loading
Move <fnmatch.h> to toys.h, since it's POSIX.
Avoid duplicating code in an if/else block.
Terser error messages, spelling.
Don't always print the state.
author | Isaac Dunham <ibid.ag@gmail.com> |
---|---|
date | Wed, 09 Apr 2014 17:26:09 -0500 |
parents | 63db77909fc8 |
children | c47218ccbfdf |
rev | line source |
---|---|
1
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
1 /* Toybox infrastructure. |
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
2 * |
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
3 * Copyright 2006 Rob Landley <rob@landley.net> |
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
4 */ |
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
5 |
1235
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
6 // Stuff that needs to go before the standard headers |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
7 |
233
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
8 #include "generated/config.h" |
63
69efffcacd70
Add fdprintf(). Remove reread() and rewrite() which handle -EINTR, which
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
9 #include "lib/portability.h" |
69efffcacd70
Add fdprintf(). Remove reread() and rewrite() which handle -EINTR, which
Rob Landley <rob@landley.net>
parents:
53
diff
changeset
|
10 |
1235
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
11 // General posix-2008 headers |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
12 #include <ctype.h> |
94
884c03c29f21
Teach build to build only the toys/*.c selected in .config, and teach
Rob Landley <rob@landley.net>
parents:
82
diff
changeset
|
13 #include <dirent.h> |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
14 #include <errno.h> |
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
15 #include <fcntl.h> |
1249
b13728c24a58
modprobe: cleanup, incorporate Ashwini's fix for alias loading
Isaac Dunham <ibid.ag@gmail.com>
parents:
1235
diff
changeset
|
16 #include <fnmatch.h> |
114
ce6956dfc0cf
Add sync and an incomplete version of mdev.
Rob Landley <rob@landley.net>
parents:
94
diff
changeset
|
17 #include <grp.h> |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
18 #include <inttypes.h> |
2
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
19 #include <limits.h> |
533 | 20 #include <libgen.h> |
21 #include <math.h> | |
114
ce6956dfc0cf
Add sync and an incomplete version of mdev.
Rob Landley <rob@landley.net>
parents:
94
diff
changeset
|
22 #include <pwd.h> |
1235
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
23 #include <regex.h> |
533 | 24 #include <sched.h> |
37
14d27eab3acf
Add my old micro-bunzip library. Needs some cleanup...
Rob Landley <rob@landley.net>
parents:
35
diff
changeset
|
25 #include <setjmp.h> |
2
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
26 #include <stdarg.h> |
696
99ca30ad3d2b
Add rebound support to intercept error_exit() and longjmp instead.
Rob Landley <rob@landley.net>
parents:
694
diff
changeset
|
27 #include <stddef.h> |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
28 #include <stdint.h> |
1
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
29 #include <stdio.h> |
2
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
30 #include <stdlib.h> |
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
31 #include <string.h> |
574
d8effa95a5f0
Georgi pointed out that some overly-pedantic C libraries require you to include both "string.h" and "strings.h". (Most don't.)
Rob Landley <rob@landley.net>
parents:
572
diff
changeset
|
32 #include <strings.h> |
114
ce6956dfc0cf
Add sync and an incomplete version of mdev.
Rob Landley <rob@landley.net>
parents:
94
diff
changeset
|
33 #include <sys/mman.h> |
541
ff71169e8440
Yet another header for technical susv4 compliance.
Rob Landley <rob@landley.net>
parents:
533
diff
changeset
|
34 #include <sys/resource.h> |
4
732b055e17f7
Add xmsprintf(), xgetcwd(), xgetcwd(), find_in_path().
landley@driftwood
parents:
3
diff
changeset
|
35 #include <sys/stat.h> |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
36 #include <sys/statvfs.h> |
728
dfeb3daad8f3
Add header that musl libc needs.
Rob Landley <rob@landley.net>
parents:
712
diff
changeset
|
37 #include <sys/time.h> |
600
58d2fd7484bd
More header fiddling: crypt.h is silly, SUSv4 requires crypt() to be prototyped in unistd.h. The fact glibc refuses to do so without a wacky #define is a glibc bug, treat it as such.
Rob Landley <rob@landley.net>
parents:
574
diff
changeset
|
38 #include <sys/times.h> |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
39 #include <sys/types.h> |
533 | 40 #include <sys/utsname.h> |
7
fc9c0503d5e2
Implement df. Add -Wall to build and fix up warnings. Add copyright notices.
landley@driftwood
parents:
4
diff
changeset
|
41 #include <sys/wait.h> |
572
8a88a9e3c30b
Adding initial version of login.c
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
564
diff
changeset
|
42 #include <syslog.h> |
600
58d2fd7484bd
More header fiddling: crypt.h is silly, SUSv4 requires crypt() to be prototyped in unistd.h. The fact glibc refuses to do so without a wacky #define is a glibc bug, treat it as such.
Rob Landley <rob@landley.net>
parents:
574
diff
changeset
|
43 #include <time.h> |
218
bc87305c391f
Make touch work reliably when file doesn't exist and clean up headers a bit.
Rob Landley <rob@landley.net>
parents:
145
diff
changeset
|
44 #include <unistd.h> |
bc87305c391f
Make touch work reliably when file doesn't exist and clean up headers a bit.
Rob Landley <rob@landley.net>
parents:
145
diff
changeset
|
45 #include <utime.h> |
533 | 46 #include <utmpx.h> |
710
cfdaead45479
Make internalization support optional
Felix Janda <felix.janda@posteo.de>
parents:
696
diff
changeset
|
47 |
1235
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
48 // Posix networking |
1104
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
49 |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
50 #include <arpa/inet.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
51 #include <netdb.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
52 #include <net/if.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
53 #include <netinet/in.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
54 #include <netinet/tcp.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
55 #include <poll.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
56 #include <sys/socket.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
57 #include <sys/un.h> |
e11684e3bbc5
Merge toynet.h into toys.h: musl supports it and micromanaging uClibc config options isn't very interesting anymore.
Rob Landley <rob@landley.net>
parents:
1076
diff
changeset
|
58 |
1235
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
59 // Internationalization support (also in POSIX and LSB) |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
60 |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
61 #include <locale.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
62 #include <wchar.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
63 #include <wctype.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
64 |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
65 // LSB 4.1 headers |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
66 #include <pty.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
67 #include <sys/ioctl.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
68 #include <sys/statfs.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
69 #include <sys/sysinfo.h> |
63db77909fc8
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
Rob Landley <rob@landley.net>
parents:
1232
diff
changeset
|
70 |
2
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
71 #include "lib/lib.h" |
82 | 72 #include "toys/e2fs.h" |
1
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
73 |
234
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
74 // Get list of function prototypes for all enabled command_main() functions. |
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
75 |
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
76 #define NEWTOY(name, opts, flags) void name##_main(void); |
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
77 #define OLDTOY(name, oldname, opts, flags) |
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
78 #include "generated/newtoys.h" |
1006
d7bd69bec519
Forgot to check in toys.h when generated/oldtoys.h went in. (Oops.)
Rob Landley <rob@landley.net>
parents:
873
diff
changeset
|
79 #include "generated/oldtoys.h" |
1076
1c15ba60aa64
Switch flag generation from shell to C.
Rob Landley <rob@landley.net>
parents:
1043
diff
changeset
|
80 #include "generated/flags.h" |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
81 #include "generated/globals.h" |
234
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
82 |
21
6475d6c46066
Add pwd. Consolidate toy list information under toylist.h.
Rob Landley <rob@landley.net>
parents:
20
diff
changeset
|
83 // These live in main.c |
2
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
84 |
67b517913e56
Infrastructure, first drop of toy shell, and a bit of work on df.
landley@driftwood
parents:
1
diff
changeset
|
85 struct toy_list *toy_find(char *name); |
3
266a462ed18c
Next drop of toysh, plus more infratructure.
landley@driftwood
parents:
2
diff
changeset
|
86 void toy_init(struct toy_list *which, char *argv[]); |
266a462ed18c
Next drop of toysh, plus more infratructure.
landley@driftwood
parents:
2
diff
changeset
|
87 void toy_exec(char *argv[]); |
1
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
88 |
564
9530899eee51
Comment and whitespace changes.
Rob Landley <rob@landley.net>
parents:
541
diff
changeset
|
89 // Flags describing command behavior. |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
90 |
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
91 #define TOYFLAG_USR (1<<0) |
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
92 #define TOYFLAG_BIN (1<<1) |
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
93 #define TOYFLAG_SBIN (1<<2) |
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
94 #define TOYMASK_LOCATION ((1<<4)-1) |
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
95 |
345 | 96 // This is a shell built-in function, running in the same process context. |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
97 #define TOYFLAG_NOFORK (1<<4) |
345 | 98 |
564
9530899eee51
Comment and whitespace changes.
Rob Landley <rob@landley.net>
parents:
541
diff
changeset
|
99 // Start command with a umask of 0 (saves old umask in this.old_umask) |
257 | 100 #define TOYFLAG_UMASK (1<<5) |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
101 |
564
9530899eee51
Comment and whitespace changes.
Rob Landley <rob@landley.net>
parents:
541
diff
changeset
|
102 // This command runs as root. |
370 | 103 #define TOYFLAG_STAYROOT (1<<6) |
104 #define TOYFLAG_NEEDROOT (1<<7) | |
105 #define TOYFLAG_ROOTONLY (TOYFLAG_STAYROOT|TOYFLAG_NEEDROOT) | |
106 | |
873
d90f14e011b8
Fix some comments from way back when toybox first started (in 2006), when I was still cleaning busybox-isms out of my head...
Rob Landley <rob@landley.net>
parents:
747
diff
changeset
|
107 // Array of available commands |
345 | 108 |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
109 extern struct toy_list { |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
110 char *name; |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
111 void (*toy_main)(void); |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
112 char *options; |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
113 int flags; |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
114 } toy_list[]; |
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
115 |
564
9530899eee51
Comment and whitespace changes.
Rob Landley <rob@landley.net>
parents:
541
diff
changeset
|
116 // Global context shared by all commands. |
1
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
117 |
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
118 extern struct toy_context { |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
119 struct toy_list *which; // Which entry in toy_list is this one? |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
1104
diff
changeset
|
120 char **argv; // Original command line arguments |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
1104
diff
changeset
|
121 char **optargs; // Arguments left over from get_optflags() |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
1104
diff
changeset
|
122 jmp_buf *rebound; // longjmp here instead of exit when do_rebound set |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
1104
diff
changeset
|
123 unsigned optflags; // Command line option flags from get_optflags() |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
124 int exitval; // Value error_exit feeds to exit() |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
125 int optc; // Count of optargs |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
126 int exithelp; // Should error_exit print a usage message first? |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
686
diff
changeset
|
127 int old_umask; // Old umask preserved by TOYFLAG_UMASK |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
1104
diff
changeset
|
128 int toycount; // Total number of commands in this build |
1
59d58fab67c6
Next snapshot. Tries to grab something out of lib in order to build, I have
landley@driftwood
parents:
diff
changeset
|
129 } toys; |
25
eb46bb5626cb
New option parsing infrastructure (doesn't use getopt). Hook it up to
Rob Landley <rob@landley.net>
parents:
21
diff
changeset
|
130 |
1043
acf7bb2b99e2
Introduce libbuf analogous to toybuf but for use by lib/*.c. Change readfile() semantics to be able to read into an existing buffer, or malloc its own if that's NULL.
Rob Landley <rob@landley.net>
parents:
1008
diff
changeset
|
131 // Two big temporary buffers: one for use by commands, one for library functions |
25
eb46bb5626cb
New option parsing infrastructure (doesn't use getopt). Hook it up to
Rob Landley <rob@landley.net>
parents:
21
diff
changeset
|
132 |
1043
acf7bb2b99e2
Introduce libbuf analogous to toybuf but for use by lib/*.c. Change readfile() semantics to be able to read into an existing buffer, or malloc its own if that's NULL.
Rob Landley <rob@landley.net>
parents:
1008
diff
changeset
|
133 extern char toybuf[4096], libbuf[4096]; |
237
7cb15eae1664
Zap toylist.h, moving contents of global structures into DEFINE_GLOBALS()
Rob Landley <rob@landley.net>
parents:
234
diff
changeset
|
134 |
1008 | 135 extern char **environ; |
136 | |
674
7e846e281e38
New build infrastructure to generate FLAG_ macros and TT alias, #define FOR_commandname before #including toys.h to trigger it. Rename DEFINE_GLOBALS() to just GLOBALS() (because I could never remember if it was DECLARE_GLOBALS). Convert existing commands to use new infrastructure, and replace optflag constants with FLAG_ macros where appropriate.
Rob Landley <rob@landley.net>
parents:
647
diff
changeset
|
137 #define GLOBALS(...) |
647
3258d9233753
Replace TOY_LIST_LEN with more generic ARRAY_LEN()
Rob Landley <rob@landley.net>
parents:
627
diff
changeset
|
138 |
3258d9233753
Replace TOY_LIST_LEN with more generic ARRAY_LEN()
Rob Landley <rob@landley.net>
parents:
627
diff
changeset
|
139 #define ARRAY_LEN(array) (sizeof(array)/sizeof(*array)) |