aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/applets.src.h21
-rw-r--r--include/libbb.h2
2 files changed, 22 insertions, 1 deletions
diff --git a/include/applets.src.h b/include/applets.src.h
index 2ddf120ad..a9db5d160 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -22,41 +22,60 @@ s - suid type:
22 BB_SUID_REQUIRE or BB_SUID_MAYBE applet. 22 BB_SUID_REQUIRE or BB_SUID_MAYBE applet.
23*/ 23*/
24 24
25#define NOUSAGE_STR "\b"
26
27#define dummy_trivial_usage NOUSAGE_STR \
28
29#define dummy_full_usage "" \
30
25#if defined(PROTOTYPES) 31#if defined(PROTOTYPES)
26# define APPLET(name,l,s) int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 32# define APPLET(name,l,s) int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
27# define APPLET_ODDNAME(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 33# define APPLET_ODDNAME(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
28# define APPLET_NOEXEC(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 34# define APPLET_NOEXEC(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
29# define APPLET_NOFORK(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 35# define APPLET_NOFORK(name,main,l,s,help) int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
36# define APPLET_SCRIPTED(name,main,l,s,help)
30 37
31#elif defined(NAME_MAIN) 38#elif defined(NAME_MAIN)
32# define APPLET(name,l,s) name name##_main 39# define APPLET(name,l,s) name name##_main
33# define APPLET_ODDNAME(name,main,l,s,help) name main##_main 40# define APPLET_ODDNAME(name,main,l,s,help) name main##_main
34# define APPLET_NOEXEC(name,main,l,s,help) name main##_main 41# define APPLET_NOEXEC(name,main,l,s,help) name main##_main
35# define APPLET_NOFORK(name,main,l,s,help) name main##_main 42# define APPLET_NOFORK(name,main,l,s,help) name main##_main
43# define APPLET_SCRIPTED(name,main,l,s,help) name scripted_main
36 44
37#elif defined(MAKE_USAGE) && ENABLE_FEATURE_VERBOSE_USAGE 45#elif defined(MAKE_USAGE) && ENABLE_FEATURE_VERBOSE_USAGE
38# define APPLET(name,l,s) MAKE_USAGE(#name, name##_trivial_usage name##_full_usage) 46# define APPLET(name,l,s) MAKE_USAGE(#name, name##_trivial_usage name##_full_usage)
39# define APPLET_ODDNAME(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage) 47# define APPLET_ODDNAME(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage)
40# define APPLET_NOEXEC(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage) 48# define APPLET_NOEXEC(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage)
41# define APPLET_NOFORK(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage) 49# define APPLET_NOFORK(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage)
50# define APPLET_SCRIPTED(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage help##_full_usage)
42 51
43#elif defined(MAKE_USAGE) && !ENABLE_FEATURE_VERBOSE_USAGE 52#elif defined(MAKE_USAGE) && !ENABLE_FEATURE_VERBOSE_USAGE
44# define APPLET(name,l,s) MAKE_USAGE(#name, name##_trivial_usage) 53# define APPLET(name,l,s) MAKE_USAGE(#name, name##_trivial_usage)
45# define APPLET_ODDNAME(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage) 54# define APPLET_ODDNAME(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage)
46# define APPLET_NOEXEC(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage) 55# define APPLET_NOEXEC(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage)
47# define APPLET_NOFORK(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage) 56# define APPLET_NOFORK(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage)
57# define APPLET_SCRIPTED(name,main,l,s,help) MAKE_USAGE(#name, help##_trivial_usage)
48 58
49#elif defined(MAKE_LINKS) 59#elif defined(MAKE_LINKS)
50# define APPLET(name,l,c) LINK l name 60# define APPLET(name,l,c) LINK l name
51# define APPLET_ODDNAME(name,main,l,s,help) LINK l name 61# define APPLET_ODDNAME(name,main,l,s,help) LINK l name
52# define APPLET_NOEXEC(name,main,l,s,help) LINK l name 62# define APPLET_NOEXEC(name,main,l,s,help) LINK l name
53# define APPLET_NOFORK(name,main,l,s,help) LINK l name 63# define APPLET_NOFORK(name,main,l,s,help) LINK l name
64# define APPLET_SCRIPTED(name,main,l,s,help) LINK l name
54 65
55#elif defined(MAKE_SUID) 66#elif defined(MAKE_SUID)
56# define APPLET(name,l,s) SUID s l name 67# define APPLET(name,l,s) SUID s l name
57# define APPLET_ODDNAME(name,main,l,s,help) SUID s l name 68# define APPLET_ODDNAME(name,main,l,s,help) SUID s l name
58# define APPLET_NOEXEC(name,main,l,s,help) SUID s l name 69# define APPLET_NOEXEC(name,main,l,s,help) SUID s l name
59# define APPLET_NOFORK(name,main,l,s,help) SUID s l name 70# define APPLET_NOFORK(name,main,l,s,help) SUID s l name
71# define APPLET_SCRIPTED(name,main,l,s,help) SUID s l name
72
73#elif defined(MAKE_SCRIPTS)
74# define APPLET(name,l,s)
75# define APPLET_ODDNAME(name,main,l,s,help)
76# define APPLET_NOEXEC(name,main,l,s,help)
77# define APPLET_NOFORK(name,main,l,s,help)
78# define APPLET_SCRIPTED(name,main,l,s,help) SCRIPT name
60 79
61#else 80#else
62 static struct bb_applet applets[] = { /* name, main, location, need_suid */ 81 static struct bb_applet applets[] = { /* name, main, location, need_suid */
@@ -64,6 +83,7 @@ s - suid type:
64# define APPLET_ODDNAME(name,main,l,s,help) { #name, #main, l, s }, 83# define APPLET_ODDNAME(name,main,l,s,help) { #name, #main, l, s },
65# define APPLET_NOEXEC(name,main,l,s,help) { #name, #main, l, s, 1 }, 84# define APPLET_NOEXEC(name,main,l,s,help) { #name, #main, l, s, 1 },
66# define APPLET_NOFORK(name,main,l,s,help) { #name, #main, l, s, 1, 1 }, 85# define APPLET_NOFORK(name,main,l,s,help) { #name, #main, l, s, 1, 1 },
86# define APPLET_SCRIPTED(name,main,l,s,help) { #name, #main, l, s },
67#endif 87#endif
68 88
69#if ENABLE_INSTALL_NO_USR 89#if ENABLE_INSTALL_NO_USR
@@ -84,3 +104,4 @@ INSERT
84#undef APPLET_ODDNAME 104#undef APPLET_ODDNAME
85#undef APPLET_NOEXEC 105#undef APPLET_NOEXEC
86#undef APPLET_NOFORK 106#undef APPLET_NOFORK
107#undef APPLET_SCRIPTED
diff --git a/include/libbb.h b/include/libbb.h
index a32608ebd..aa9e9d019 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1322,8 +1322,8 @@ void bb_logenv_override(void) FAST_FUNC;
1322#endif 1322#endif
1323 1323
1324/* Embedded script support */ 1324/* Embedded script support */
1325int find_script_by_name(const char *name) FAST_FUNC;
1326char *get_script_content(unsigned n) FAST_FUNC; 1325char *get_script_content(unsigned n) FAST_FUNC;
1326int scripted_main(int argc, char** argv);
1327 1327
1328/* Applets which are useful from another applets */ 1328/* Applets which are useful from another applets */
1329int bb_cat(char** argv) FAST_FUNC; 1329int bb_cat(char** argv) FAST_FUNC;