diff options
author | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-12 11:03:24 +0000 |
---|---|---|
committer | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-12 11:03:24 +0000 |
commit | 6f58bf491a13e3bd3dd4a0132fa4e5b40520141d (patch) | |
tree | 53fbe7d62d46be4b12a32fdefcce7a70e7a4fa88 /dln.c | |
parent | 8600efc09a22ad267f0d45fe9d651d81417bc5ef (diff) | |
download | ruby-6f58bf491a13e3bd3dd4a0132fa4e5b40520141d.tar.gz ruby-6f58bf491a13e3bd3dd4a0132fa4e5b40520141d.tar.xz ruby-6f58bf491a13e3bd3dd4a0132fa4e5b40520141d.zip |
* dln.c: avoid warning of const to non-const convertion.
[ruby-dev:27041]
* eval.c, io.c, ruby.c: ditto.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'dln.c')
-rw-r--r-- | dln.c | 30 |
1 files changed, 16 insertions, 14 deletions
@@ -1603,7 +1603,7 @@ dln_load(const char *file) return 0; /* dummy return */ } -static char *dln_find_1(char *fname, char *path, int exe_flag); +static char *dln_find_1(const char *fname, const char *path, int exe_flag); char * dln_find_exe(const char *fname, const char *path) @@ -1665,31 +1665,33 @@ conv_to_posix_path(win32, posix, len) static char fbuf[MAXPATHLEN]; static char * -dln_find_1(char *fname, char *path, int exe_flag /* non 0 if looking for executable. */) +dln_find_1(const char *fname, const char *path, int exe_flag /* non 0 if looking for executable. */) { - register char *dp; - register char *ep; + register const char *dp; + register const char *ep; register char *bp; struct stat st; #ifdef __MACOS__ const char* mac_fullpath; #endif - if (!fname) return fname; - if (fname[0] == '/') return fname; - if (strncmp("./", fname, 2) == 0 || strncmp("../", fname, 3) == 0) - return fname; - if (exe_flag && strchr(fname, '/')) return fname; +#define RETURN_IF(expr) if (expr) return (char *)fname; + + RETURN_IF(!fname); + RETURN_IF(fname[0] == '/'); + RETURN_IF(strncmp("./", fname, 2) == 0 || strncmp("../", fname, 3) == 0); + RETURN_IF(exe_flag && strchr(fname, '/')); #ifdef DOSISH - if (fname[0] == '\\') return fname; + RETURN_IF(fname[0] == '\\'); # ifdef DOSISH_DRIVE_LETTER - if (strlen(fname) > 2 && fname[1] == ':') return fname; + RETURN_IF(strlen(fname) > 2 && fname[1] == ':'); # endif - if (strncmp(".\\", fname, 2) == 0 || strncmp("..\\", fname, 3) == 0) - return fname; - if (exe_flag && strchr(fname, '\\')) return fname; + RETURN_IF(strncmp(".\\", fname, 2) == 0 || strncmp("..\\", fname, 3) == 0); + RETURN_IF(exe_flag && strchr(fname, '\\')); #endif +#undef RETURN_IF + for (dp = path;; dp = ++ep) { register int l; int i; |