diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-20 05:55:38 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-20 05:55:38 +0000 |
commit | 5a1e96b22aa6759bde56ff9667759b44e9f6fa28 (patch) | |
tree | 956063703940ef9f3d450768628584dc08f97c42 /dln.c | |
parent | 4c97b921f2f6d71d7a3f2c0b2c0c089b15686973 (diff) |
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'dln.c')
-rw-r--r-- | dln.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -1260,15 +1260,15 @@ dln_load(file) flags = BIND_DEFERRED; lib = shl_load(file, flags, 0); if (lib == NULL) { - rb_sys_fail(file); + extern int errno; + LoadError("%s - %s", strerror(errno), file); } shl_findsym(&lib, buf, TYPE_PROCEDURE, (void*)&init_fct); if (init_fct == NULL) { shl_findsym(&lib, buf, TYPE_UNDEFINED, (void*)&init_fct); if (init_fct == NULL) { - extern int errno; errno = ENOSYM; - rb_sys_fail(file); + LoadError("%s - %s", strerror(ENOSYM), file); } } (*init_fct)(); @@ -1414,7 +1414,7 @@ dln_find_1(fname, path, exe_flag) return fname; #if defined(MSDOS) || defined(NT) || defined(__human68k__) if (fname[0] == '\\') return fname; - if (fname[1] == ':') return fname; + if (strlen(fname) > 2 && fname[1] == ':') return fname; if (strncmp(".\\", fname, 2) == 0 || strncmp("..\\", fname, 3) == 0) return fname; #endif @@ -1446,7 +1446,11 @@ dln_find_1(fname, path, exe_flag) ** take the path literally. */ - if (*dp == '~' && (l == 1 || dp[1] == '/')) { + if (*dp == '~' && (l == 1 || +#if defined(MSDOS) || defined(NT) || defined(__human68k__) + dp[1] == '\\' || +#endif + dp[1] == '/')) { char *home; home = getenv("HOME"); |