diff options
author | cvpcs <root@cvpcs.org> | 2010-06-03 02:20:07 -0500 |
---|---|---|
committer | cvpcs <root@cvpcs.org> | 2010-06-03 02:20:07 -0500 |
commit | a013d4e66d2545c04e2599aa2e4a4fc50468153d (patch) | |
tree | 415d0a5af06f28f3e3b6b389ff6818e3ee774ff8 /builtins/let.c | |
parent | 772f20abb0a3a0979c440114bf3a1cff5b3cef03 (diff) | |
download | external_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.c | 66 |
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 |