tls: code shrink
[oweals/busybox.git] / shell / shell_common.h
index f06bc41208a1ce22cf6c60e9054fd0f967078d19..a1323021d914d4dafe6d8e7c25b795f077252738 100644 (file)
 
 PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
-extern const char defifsvar[]; /* "IFS= \t\n" */
+extern const char defifsvar[] ALIGN1; /* "IFS= \t\n" */
 #define defifs (defifsvar + 4)
 
+extern const char defoptindvar[] ALIGN1; /* "OPTIND=1" */
+
 int FAST_FUNC is_well_formed_var_name(const char *s, char terminator);
 
 /* Builtins */
 
+struct builtin_read_params {
+       int        read_flags;
+       void FAST_FUNC (*setvar)(const char *name, const char *val);
+       char       **argv;
+       const char *ifs;
+       const char *opt_n;
+       const char *opt_p;
+       const char *opt_t;
+       const char *opt_u;
+       const char *opt_d;
+};
 enum {
        BUILTIN_READ_SILENT = 1 << 0,
        BUILTIN_READ_RAW    = 1 << 1,
 };
+//TODO? do not provide bashisms if not asked for:
+//#if !ENABLE_HUSH_BASH_COMPAT && !ENABLE_ASH_BASH_COMPAT
+//#define shell_builtin_read(setvar,argv,ifs,read_flags,n,p,t,u,d)
+//     shell_builtin_read(setvar,argv,ifs,read_flags)
+//#endif
 const char* FAST_FUNC
-shell_builtin_read(void FAST_FUNC (*setvar)(const char *name, const char *val),
-       char       **argv,
-       const char *ifs,
-       int        read_flags,
-       const char *opt_n,
-       const char *opt_p,
-       const char *opt_t,
-       const char *opt_u
-);
+shell_builtin_read(struct builtin_read_params *params);
 
 int FAST_FUNC
 shell_builtin_ulimit(char **argv);