summaryrefslogtreecommitdiffstats
path: root/args.h
diff options
context:
space:
mode:
Diffstat (limited to 'args.h')
-rw-r--r--args.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/args.h b/args.h
index c1455fd6..54c00bf2 100644
--- a/args.h
+++ b/args.h
@@ -130,6 +130,11 @@ INLINE int args_two_more(struct args *args, cnum index)
cdr(args->list);
}
+INLINE int args_more_nozap(struct args *args, cnum index, val list)
+{
+ return list || index < args->fill;
+}
+
void args_normalize_exact(struct args *args, cnum fill);
void args_normalize_least(struct args *args, cnum fill);
void args_normalize_fill(struct args *args, cnum minfill, cnum maxfill);
@@ -173,6 +178,13 @@ INLINE val args_get(struct args *args, cnum *arg_index)
return pop(&args->list);
}
+INLINE val args_get_nozap(struct args *args, cnum *arg_index, val *list)
+{
+ if (*arg_index < args->fill)
+ return args->arg[(*arg_index)++];
+ return pop(list);
+}
+
INLINE cnum args_count(struct args *args)
{
return args->fill + c_num(length_list(args->list));