X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/dee01b012cd5179b70a2e361ee08c364ed9f3314..73be1d9e8ef3744723949752311e60d6a0f89342:/libguile/load.c diff --git a/libguile/load.c b/libguile/load.c index d26f5aca8..b5a7757d0 100644 --- a/libguile/load.c +++ b/libguile/load.c @@ -1,47 +1,27 @@ /* Copyright (C) 1995,1996,1998,1999,2000,2001 Free Software Foundation, Inc. * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA - * - * As a special exception, the Free Software Foundation gives permission - * for additional uses of the text contained in its release of GUILE. - * - * The exception is that, if you link the GUILE library with other files - * to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the GUILE library code into it. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the - * Free Software Foundation under the name GUILE. If you copy - * code from other Free Software Foundation releases into a copy of - * GUILE, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * If you write modifications of your own for GUILE, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. */ + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#if HAVE_CONFIG_H +# include +#endif + #include #include "libguile/_scm.h" @@ -55,6 +35,7 @@ #include "libguile/root.h" #include "libguile/strings.h" #include "libguile/modules.h" +#include "libguile/lang.h" #include "libguile/validate.h" #include "libguile/load.h" @@ -281,12 +262,12 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, size_t max_path_len; /* maximum length of any PATH element */ size_t max_ext_len; /* maximum length of any EXTENSIONS element */ - SCM_VALIDATE_LIST (1,path); + SCM_VALIDATE_LIST (1, path); SCM_VALIDATE_STRING (2, filename); if (SCM_UNBNDP (extensions)) extensions = SCM_EOL; else - SCM_VALIDATE_LIST (3,extensions); + SCM_VALIDATE_LIST (3, extensions); filename_chars = SCM_STRING_CHARS (filename); filename_len = SCM_STRING_LENGTH (filename); @@ -300,7 +281,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, SCM walk; max_path_len = 0; - for (walk = path; !SCM_NULLP (walk); walk = SCM_CDR (walk)) + for (walk = path; !SCM_NULL_OR_NIL_P (walk); walk = SCM_CDR (walk)) { SCM elt = SCM_CAR (walk); SCM_ASSERT_TYPE (SCM_STRINGP (elt), path, 1, FUNC_NAME, @@ -338,7 +319,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, SCM walk; max_ext_len = 0; - for (walk = extensions; !SCM_NULLP (walk); walk = SCM_CDR (walk)) + for (walk = extensions; !SCM_NULL_OR_NIL_P (walk); walk = SCM_CDR (walk)) { SCM elt = SCM_CAR (walk); SCM_ASSERT_TYPE (SCM_STRINGP (elt), elt, 3, FUNC_NAME, @@ -353,15 +334,15 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, { /* scope */ SCM result = SCM_BOOL_F; size_t buf_size = max_path_len + 1 + filename_len + max_ext_len + 1; - char *buf = SCM_MUST_MALLOC (buf_size); + char *buf = scm_malloc (buf_size); /* This simplifies the loop below a bit. */ - if (SCM_NULLP (extensions)) + if (SCM_NULL_OR_NIL_P (extensions)) extensions = scm_listofnullstr; /* Try every path element. At this point, we know the path is a proper list of strings. */ - for (; !SCM_NULLP (path); path = SCM_CDR (path)) + for (; !SCM_NULL_OR_NIL_P (path); path = SCM_CDR (path)) { size_t len; SCM dir = SCM_CAR (path); @@ -377,7 +358,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_NULLP (exts); exts = SCM_CDR (exts)) + for (exts = extensions; !SCM_NULL_OR_NIL_P (exts); exts = SCM_CDR (exts)) { SCM ext = SCM_CAR (exts); size_t ext_len = SCM_STRING_LENGTH (ext); @@ -399,8 +380,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0, } end: - scm_must_free (buf); - scm_done_free (buf_size); + free (buf); SCM_ALLOW_INTS; return result; } @@ -503,9 +483,7 @@ scm_init_load () init_build_info (); -#ifndef SCM_MAGIC_SNARFER #include "libguile/load.x" -#endif } /*