summaryrefslogtreecommitdiff
path: root/libguile/values.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-07-04 17:48:06 +0200
committerAndy Wingo <wingo@pobox.com>2012-07-04 17:49:37 +0200
commite1c80e6b30eb665c74276af377b3861e91a32594 (patch)
treeb49d996e7b1736c65e522b0af39198ff7416864a /libguile/values.c
parent467be245cbd8992b69c53b9fafeb2828fe816a0b (diff)
downloadguile-e1c80e6b30eb665c74276af377b3861e91a32594.tar.gz
add scm_c_nvalues with docs; also, docs for scm_c_values
* libguile/values.h: * libguile/values.c (scm_c_nvalues): New function. * doc/ref/api-control.texi (Multiple Values): Add docs for scm_c_values and scm_c_nvalues. Fixes http://bugs.gnu.org/11764.
Diffstat (limited to 'libguile/values.c')
-rw-r--r--libguile/values.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libguile/values.c b/libguile/values.c
index ff56230fb..98a9df1c3 100644
--- a/libguile/values.c
+++ b/libguile/values.c
@@ -67,6 +67,15 @@ print_values (SCM obj, SCM pwps)
return SCM_UNSPECIFIED;
}
+size_t
+scm_c_nvalues (SCM obj)
+{
+ if (SCM_LIKELY (SCM_VALUESP (obj)))
+ return scm_ilength (scm_struct_ref (obj, SCM_INUM0));
+ else
+ return 1;
+}
+
SCM
scm_c_value_ref (SCM obj, size_t idx)
{