Line | |
---|
1 | #include "awk.h"
|
---|
2 |
|
---|
3 | static NODE *
|
---|
4 | do_check_arg(tree)
|
---|
5 | NODE *tree;
|
---|
6 | {
|
---|
7 | int ret = 0, argc;
|
---|
8 | NODE *arg1, *arg2, *arg3;
|
---|
9 |
|
---|
10 | argc = get_curfunc_arg_count();
|
---|
11 | printf("arg count: defined = %d, supplied = %d\n", tree->param_cnt, argc);
|
---|
12 |
|
---|
13 | arg1 = get_scalar_argument(tree, 0, FALSE);
|
---|
14 | arg2 = get_array_argument(tree, 1, FALSE);
|
---|
15 | arg3 = get_scalar_argument(tree, 2, TRUE); /* optional */
|
---|
16 | if (argc > 3) { /* try to use an extra arg */
|
---|
17 | NODE *arg4;
|
---|
18 | arg4 = get_array_argument(tree, 3, TRUE);
|
---|
19 | }
|
---|
20 | if (arg3 != NULL)
|
---|
21 | printf("3rd arg present\n\n");
|
---|
22 | else
|
---|
23 | printf("no 3rd arg\n\n");
|
---|
24 | /* Set the return value */
|
---|
25 | set_value(tmp_number((AWKNUM) ret));
|
---|
26 |
|
---|
27 | /* Just to make the interpreter happy */
|
---|
28 | return tmp_number((AWKNUM) 0);
|
---|
29 | }
|
---|
30 |
|
---|
31 | /* dlload --- load new builtins in this library */
|
---|
32 |
|
---|
33 | NODE *
|
---|
34 | dlload(tree, dl)
|
---|
35 | NODE *tree;
|
---|
36 | void *dl;
|
---|
37 | {
|
---|
38 | make_builtin("check_arg", do_check_arg, 3);
|
---|
39 | return tmp_number((AWKNUM) 0);
|
---|
40 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.