Undo accidental commit.
2004-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ * TODO, libltdl/lt_error.h, libltdl/ltdl.c, libltdl/ltdl.h:
+ Undo accidental commit.
+
* Makefile.maint: Fix typo.
2004-10-22 Gary V. Vaughan <gary@gnu.org>
1.2. libtldl
------------
-* Adjust version-info of libltdl before next release.
-
* Fix the following bugs in libltdl:
- error reporting of tryall_dlopen():
if the file actually doesn't exist (stat() fails or it wasn't dlpreopened)
Also report dlerror() for dlclose and dlsym if available
- Make sure that the dependency_libs of a dlpreopened module won't be loaded.
-* Split out get_line as getline, preferably cooperate with gnulib's version.
- Otherwise have it use ssize_t for correctness (this needs adding a ssize_t
- check to m4/ltdl.m4).
-
-* Implement even stricter checking of .la file structure.
- Especially leading and trailing white space in the right hand side of a
- variable assignment need checking (in ltdl as well as libtool).
- Also, add a way of communicating parse errors more verbosely.
- Add regression tests.
-
2. In the future
================
LT_ERROR(SHUTDOWN, "library already shutdown") \
LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module") \
LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)") \
- LT_ERROR(INVALID_POSITION, "invalid search path insert position") \
- LT_ERROR(INVALID_LALIB, "malformed library file")
+ LT_ERROR(INVALID_POSITION, "invalid search path insert position")
/* Enumerate the symbolic error names. */
enum {
size_t argz_len = 0;
assert (ppath);
- assert (dir && *dir); /* Without DIR, don't call this function! */
+ assert (dir && *dir);
if (canonicalize_path (dir, &canonical) != 0)
{
if (*ppath == 0)
{
assert (!before); /* BEFORE cannot be set without PPATH. */
+ assert (dir); /* Without DIR, don't call this function! */
- *ppath = lt__strdup (canonical);
+ *ppath = lt__strdup (dir);
if (*ppath == 0)
++errors;
before = before - *ppath + argz;
}
- if (lt_argz_insert (&argz, &argz_len, before, canonical) != 0)
+ if (lt_argz_insert (&argz, &argz_len, before, dir) != 0)
{
++errors;
goto cleanup;
}
int
-lt_dladdsearchdir (const char *search_path)
+lt_dladdsearchdir (const char *search_dir)
{
- return lt_dlinsertsearchdir (NULL, search_path);
+ int errors = 0;
+
+ if (search_dir && *search_dir)
+ {
+ if (lt_dlpath_insertdir (&user_search_path, 0, search_dir) != 0)
+ ++errors;
+ }
+
+ return errors;
}
int
-lt_dlinsertsearchdir (const char *before, const char *search_path)
+lt_dlinsertsearchdir (const char *before, const char *search_dir)
{
int errors = 0;
}
}
- if (search_path && *search_path)
+ if (search_dir && *search_dir)
{
if (lt_dlpath_insertdir (&user_search_path,
- (char *) before, search_path) != 0)
+ (char *) before, search_dir) != 0)
{
++errors;
}
int
lt_dlsetsearchpath (const char *search_path)
{
+ int errors = 0;
+
FREE (user_search_path);
- return lt_dlinsertsearchdir(NULL, search_path);
+ if (!search_path || !LT_STRLEN (search_path))
+ {
+ return errors;
+ }
+
+ if (canonicalize_path (search_path, &user_search_path) != 0)
+ ++errors;
+
+ return errors;
}
const char *
lt_dlgetsearchpath (void)
{
- return user_search_path;
+ const char *saved_path;
+
+ saved_path = user_search_path;
+
+ return saved_path;
}
int
LT_SCOPE int lt_dlexit (void);
/* Module search path manipulation. */
-LT_SCOPE int lt_dladdsearchdir (const char *search_path);
+LT_SCOPE int lt_dladdsearchdir (const char *search_dir);
LT_SCOPE int lt_dlinsertsearchdir (const char *before,
- const char *search_path);
+ const char *search_dir);
LT_SCOPE int lt_dlsetsearchpath (const char *search_path);
LT_SCOPE const char *lt_dlgetsearchpath (void);
LT_SCOPE int lt_dlforeachfile (