aboutsummaryrefslogtreecommitdiffstats
path: root/builtins/let.c
diff options
context:
space:
mode:
authorcvpcs <root@cvpcs.org>2010-06-03 02:20:07 -0500
committercvpcs <root@cvpcs.org>2010-06-03 02:20:07 -0500
commita013d4e66d2545c04e2599aa2e4a4fc50468153d (patch)
tree415d0a5af06f28f3e3b6b389ff6818e3ee774ff8 /builtins/let.c
parent772f20abb0a3a0979c440114bf3a1cff5b3cef03 (diff)
downloadexternal_bash-a013d4e66d2545c04e2599aa2e4a4fc50468153d.zip
external_bash-a013d4e66d2545c04e2599aa2e4a4fc50468153d.tar.gz
external_bash-a013d4e66d2545c04e2599aa2e4a4fc50468153d.tar.bz2
first successful build of bash-4.1
Diffstat (limited to 'builtins/let.c')
-rw-r--r--builtins/let.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/builtins/let.c b/builtins/let.c
new file mode 100644
index 0000000..ea3caf3
--- /dev/null
+++ b/builtins/let.c
@@ -0,0 +1,66 @@
+/* let.c, created from let.def. */
+#line 66 "./let.def"
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
+# include <unistd.h>
+#endif
+
+#include "../bashintl.h"
+
+#include "../shell.h"
+#include "common.h"
+
+/* Arithmetic LET function. */
+int
+let_builtin (list)
+ WORD_LIST *list;
+{
+ intmax_t ret;
+ int expok;
+
+ /* Skip over leading `--' argument. */
+ if (list && list->word && ISOPTION (list->word->word, '-'))
+ list = list->next;
+
+ if (list == 0)
+ {
+ builtin_error (_("expression expected"));
+ return (EXECUTION_FAILURE);
+ }
+
+ for (; list; list = list->next)
+ {
+ ret = evalexp (list->word->word, &expok);
+ if (expok == 0)
+ return (EXECUTION_FAILURE);
+ }
+
+ return ((ret == 0) ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
+}
+
+#ifdef INCLUDE_UNUSED
+int
+exp_builtin (list)
+ WORD_LIST *list;
+{
+ char *exp;
+ intmax_t ret;
+ int expok;
+
+ if (list == 0)
+ {
+ builtin_error (_("expression expected"));
+ return (EXECUTION_FAILURE);
+ }
+
+ exp = string_list (list);
+ ret = evalexp (exp, &expok);
+ (void)free (exp);
+ return (((ret == 0) || (expok == 0)) ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
+}
+#endif