mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
add sexp_user_exception_ls variadic convenience
This commit is contained in:
parent
fc6e5da915
commit
af43c3214f
2 changed files with 17 additions and 0 deletions
|
@ -1749,6 +1749,7 @@ SEXP_API sexp sexp_open_output_string_op (sexp ctx, sexp self, sexp_sint_t n);
|
|||
SEXP_API sexp sexp_get_output_string_op (sexp ctx, sexp self, sexp_sint_t n, sexp port);
|
||||
SEXP_API sexp sexp_make_exception (sexp ctx, sexp kind, sexp message, sexp irritants, sexp procedure, sexp source);
|
||||
SEXP_API sexp sexp_user_exception (sexp ctx, sexp self, const char *msg, sexp x);
|
||||
SEXP_API sexp sexp_user_exception_ls (sexp ctx, sexp self, const char *msg, int n, ...);
|
||||
SEXP_API sexp sexp_file_exception (sexp ctx, sexp self, const char *msg, sexp x);
|
||||
SEXP_API sexp sexp_type_exception (sexp ctx, sexp self, sexp_uint_t type_id, sexp x);
|
||||
SEXP_API sexp sexp_xtype_exception (sexp ctx, sexp self, const char *msg, sexp x);
|
||||
|
|
16
sexp.c
16
sexp.c
|
@ -758,6 +758,22 @@ sexp sexp_user_exception (sexp ctx, sexp self, const char *ms, sexp ir) {
|
|||
return res;
|
||||
}
|
||||
|
||||
sexp sexp_user_exception_ls (sexp ctx, sexp self, const char *msg, int n, ...) {
|
||||
int i;
|
||||
va_list ap;
|
||||
sexp_gc_var2(res, ir);
|
||||
sexp_gc_preserve2(ctx, res, ir);
|
||||
va_start(ap, n);
|
||||
for (i=0, ir=SEXP_NULL; i < n; ++i) {
|
||||
ir = sexp_cons(ctx, va_arg(ap, sexp), ir);
|
||||
}
|
||||
ir = sexp_nreverse(ctx, ir);
|
||||
res = sexp_user_exception(ctx, self, msg, ir);
|
||||
sexp_gc_release2(ctx);
|
||||
va_end(ap);
|
||||
return res;
|
||||
}
|
||||
|
||||
sexp sexp_file_exception (sexp ctx, sexp self, const char *ms, sexp ir) {
|
||||
sexp_gc_var1(res);
|
||||
sexp_gc_preserve1(ctx, res);
|
||||
|
|
Loading…
Add table
Reference in a new issue