blob: ea3caf36723de53504a48f2b057fcde209869938 [file] [log] [blame]
Dan Pasanenc6e37862014-10-02 14:08:59 -05001/* let.c, created from let.def. */
2#line 66 "./let.def"
3
4#include <config.h>
5
6#if defined (HAVE_UNISTD_H)
7# ifdef _MINIX
8# include <sys/types.h>
9# endif
10# include <unistd.h>
11#endif
12
13#include "../bashintl.h"
14
15#include "../shell.h"
16#include "common.h"
17
18/* Arithmetic LET function. */
19int
20let_builtin (list)
21 WORD_LIST *list;
22{
23 intmax_t ret;
24 int expok;
25
26 /* Skip over leading `--' argument. */
27 if (list && list->word && ISOPTION (list->word->word, '-'))
28 list = list->next;
29
30 if (list == 0)
31 {
32 builtin_error (_("expression expected"));
33 return (EXECUTION_FAILURE);
34 }
35
36 for (; list; list = list->next)
37 {
38 ret = evalexp (list->word->word, &expok);
39 if (expok == 0)
40 return (EXECUTION_FAILURE);
41 }
42
43 return ((ret == 0) ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
44}
45
46#ifdef INCLUDE_UNUSED
47int
48exp_builtin (list)
49 WORD_LIST *list;
50{
51 char *exp;
52 intmax_t ret;
53 int expok;
54
55 if (list == 0)
56 {
57 builtin_error (_("expression expected"));
58 return (EXECUTION_FAILURE);
59 }
60
61 exp = string_list (list);
62 ret = evalexp (exp, &expok);
63 (void)free (exp);
64 return (((ret == 0) || (expok == 0)) ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
65}
66#endif