diff --git a/libguile/list.c b/libguile/list.c index d98348cfb..916d0eb7d 100644 --- a/libguile/list.c +++ b/libguile/list.c @@ -61,17 +61,14 @@ /* creating lists */ -/* SCM_P won't help us deal with varargs here. */ SCM scm_listify (SCM elt, ...) { va_list foo; - SCM answer; - SCM *pos; + SCM answer = SCM_EOL; + SCM *pos = &answer; var_start (foo, elt); - answer = SCM_EOL; - pos = &answer; while (elt != SCM_UNDEFINED) { *pos = scm_cons (elt, SCM_EOL); @@ -94,7 +91,7 @@ SCM_DEFINE (scm_list, "list", 0, 0, 1, SCM_DEFINE (scm_list_star, "list*", 1, 0, 1, (SCM arg, SCM rest), -"") + "Return an improper list of the arguments.") #define FUNC_NAME s_scm_list_star { if (SCM_NNULLP (rest)) @@ -120,16 +117,17 @@ SCM_DEFINE (scm_null_p, "null?", 1, 0, 0, "") #define FUNC_NAME s_scm_null_p { - return SCM_BOOL(SCM_NULLP(x)); + return SCM_BOOL (SCM_NULLP (x)); } #undef FUNC_NAME + SCM_DEFINE (scm_list_p, "list?", 1, 0, 0, (SCM x), "") #define FUNC_NAME s_scm_list_p { - return SCM_BOOL(scm_ilength(x)>=0); + return SCM_BOOL (scm_ilength (x) >= 0); } #undef FUNC_NAME @@ -164,6 +162,7 @@ scm_ilength(SCM sx) return -1; } + SCM_DEFINE (scm_length, "length", 1, 0, 0, (SCM lst), "") diff --git a/libguile/load.c b/libguile/load.c index 4f573672a..86deef07a 100644 --- a/libguile/load.c +++ b/libguile/load.c @@ -285,7 +285,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, SCM walk; max_path_len = 0; - for (walk = path; SCM_NIMP (walk); walk = SCM_CDR (walk)) + for (walk = path; SCM_NNULLP (walk); walk = SCM_CDR (walk)) { SCM elt = SCM_CAR (walk); SCM_ASSERT (SCM_ROSTRINGP (elt), elt, @@ -324,7 +324,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, SCM walk; max_ext_len = 0; - for (walk = extensions; SCM_NIMP (walk); walk = SCM_CDR (walk)) + for (walk = extensions; SCM_NNULLP (walk); walk = SCM_CDR (walk)) { SCM elt = SCM_CAR (walk); SCM_ASSERT (SCM_ROSTRINGP (elt), elt, @@ -348,7 +348,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, /* Try every path element. At this point, we know the path is a proper list of strings. */ - for (; SCM_NIMP (path); path = SCM_CDR (path)) + for (; SCM_NNULLP (path); path = SCM_CDR (path)) { int len; SCM dir = SCM_CAR (path); @@ -364,7 +364,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, /* Try every extension. At this point, we know the extension list is a proper, nonempty list of strings. */ - for (exts = extensions; SCM_NIMP (exts); exts = SCM_CDR (exts)) + for (exts = extensions; SCM_NNULLP (exts); exts = SCM_CDR (exts)) { SCM ext = SCM_CAR (exts); int ext_len = SCM_ROLENGTH (ext);