diff options
author | Ranjit Mathew <rmathew@hotmail.com> | 2003-03-07 04:40:08 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-03-07 04:40:08 +0000 |
commit | 530d4230db67ec12f6825c3e30105fee999822f4 (patch) | |
tree | 08478985eb6146a4ea94fb9410e98fb662f725af /gcc/java | |
parent | 203b3521b5ce07b383f0107e2f1fb79da0a2f98c (diff) | |
download | gcc-530d4230db67ec12f6825c3e30105fee999822f4.zip gcc-530d4230db67ec12f6825c3e30105fee999822f4.tar.gz gcc-530d4230db67ec12f6825c3e30105fee999822f4.tar.bz2 |
jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to compare file name components depending on the...
2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
* jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
compare file name components depending on the case-sensitivity
or otherwise of the host file system.
* jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
"strcmp" to compare file name components.
Use IS_DIR_SEPARATOR instead of comparing directly against
DIR_SEPARATOR.
(jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
comparing directly against DIR_SEPARATOR.
From-SVN: r63927
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/java/jcf-path.c | 11 | ||||
-rw-r--r-- | gcc/java/jcf.h | 9 |
3 files changed, 28 insertions, 5 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a934a75..b65f0fc 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,16 @@ +2003-03-05 Ranjit Mathew <rmathew@hotmail.com> + + * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to + compare file name components depending on the case-sensitivity + or otherwise of the host file system. + + * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of + "strcmp" to compare file name components. + Use IS_DIR_SEPARATOR instead of comparing directly against + DIR_SEPARATOR. + (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of + comparing directly against DIR_SEPARATOR. + 2003-03-04 Tom Tromey <tromey@redhat.com> * Make-lang.in (java.tags): New target. diff --git a/gcc/java/jcf-path.c b/gcc/java/jcf-path.c index 33f4f80..8771e6f 100644 --- a/gcc/java/jcf-path.c +++ b/gcc/java/jcf-path.c @@ -146,22 +146,23 @@ add_entry (struct entry **entp, const char *filename, int is_system) n->next = NULL; len = strlen (filename); - if (len > 4 && (strcmp (filename + len - 4, ".zip") == 0 - || strcmp (filename + len - 4, ".jar") == 0)) + + if (len > 4 && (COMPARE_FILENAMES (filename + len - 4, ".zip") == 0 + || COMPARE_FILENAMES (filename + len - 4, ".jar") == 0)) { n->flags |= FLAG_ZIP; /* If the user uses -classpath then he'll have to include libgcj.jar in the value. We check for this in a simplistic way. Symlinks will fool this test. This is only used for -MM and -MMD, so it probably isn't terribly important. */ - if (! strcmp (filename, LIBGCJ_ZIP_FILE)) + if (! COMPARE_FILENAMES (filename, LIBGCJ_ZIP_FILE)) n->flags |= FLAG_SYSTEM; } /* Note that we add a trailing separator to `.zip' names as well. This is a little hack that lets the searching code in jcf-io.c work more easily. Eww. */ - if (filename[len - 1] != '/' && filename[len - 1] != DIR_SEPARATOR) + if (! IS_DIR_SEPARATOR (filename[len - 1])) { char *f2 = alloca (len + 2); strcpy (f2, filename); @@ -370,7 +371,7 @@ jcf_path_extdirs_arg (const char *cp) char *name = alloca (dirname_length + strlen (direntp->d_name) + 2); strcpy (name, buf); - if (name[dirname_length-1] != DIR_SEPARATOR) + if (! IS_DIR_SEPARATOR (name[dirname_length-1])) { name[dirname_length] = DIR_SEPARATOR; name[dirname_length+1] = 0; diff --git a/gcc/java/jcf.h b/gcc/java/jcf.h index c8e6aa7..9680974 100644 --- a/gcc/java/jcf.h +++ b/gcc/java/jcf.h @@ -54,6 +54,15 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #define JCF_USE_SCANDIR 0 #endif +/* On case-insensitive file systems, file name components must be + compared using "strcasecmp", if available, instead of "strcmp". + Assumes "config.h" has already been included. */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) && defined (HAVE_STRCASECMP) +#define COMPARE_FILENAMES(X, Y) strcasecmp ((X), (Y)) +#else +#define COMPARE_FILENAMES(X, Y) strcmp ((X), (Y)) +#endif + struct JCF; typedef int (*jcf_filbuf_t) PARAMS ((struct JCF*, int needed)); |