hush: fix "wait -n" to wait for a _job_, not a _process_
[oweals/busybox.git] / shell / shell_common.h
index a9e9a22395757f3f235d8899695b644355f898f9..a1323021d914d4dafe6d8e7c25b795f077252738 100644 (file)
  * Copyright (c) 2010 Denys Vlasenko
  * Split from ash.c
  *
- * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 #ifndef SHELL_COMMON_H
 #define SHELL_COMMON_H 1
 
 PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
-#define IFS_BROKEN 1
-
-#if IFS_BROKEN
-extern const char defifsvar[]; /* "IFS= \t\n" */
+extern const char defifsvar[] ALIGN1; /* "IFS= \t\n" */
 #define defifs (defifsvar + 4)
-#else
-extern const char defifs[]; /* " \t\n" */
-#endif
+
+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(struct builtin_read_params *params);
+
+int FAST_FUNC
+shell_builtin_ulimit(char **argv);
 
 POP_SAVED_FUNCTION_VISIBILITY