From e97418967c52d92c05f137516e58a9c010d98c83 Mon Sep 17 00:00:00 2001 From: tromey Date: Thu, 12 Nov 1998 11:43:19 +0000 Subject: [PATCH] * jcf-io.c (find_class): Added explanatory comment. * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add trailing slash to `.zip' entries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23615 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/ChangeLog | 5 +++++ gcc/java/jcf-io.c | 2 ++ gcc/java/jcf-path.c | 9 +++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 8e331ee..e7e48b6 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,5 +1,10 @@ 1998-11-12 Tom Tromey + * jcf-io.c (find_class): Added explanatory comment. + + * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add + trailing slash to `.zip' entries. + * jvspec.c (lang_specific_driver): Correctly handle case where GC_NAME not defined. diff --git a/gcc/java/jcf-io.c b/gcc/java/jcf-io.c index 43e96cf..c1c5b7a 100644 --- a/gcc/java/jcf-io.c +++ b/gcc/java/jcf-io.c @@ -282,6 +282,8 @@ DEFUN(find_class, (classname, classname_length, jcf, do_class_file), strcpy (buffer, jcf_path_name (entry)); i = strlen (buffer); + /* This is right because we know that `.zip' entries will have a + trailing slash. See jcf-path.c. */ dir_len = i - 1; for (k = 0; k < classname_length; k++, i++) diff --git a/gcc/java/jcf-path.c b/gcc/java/jcf-path.c index 829f99a..159b09f 100644 --- a/gcc/java/jcf-path.c +++ b/gcc/java/jcf-path.c @@ -141,7 +141,7 @@ add_entry (entp, filename, is_system) n->next = NULL; len = strlen (filename); - if (len > 4 && ! strcmp (filename - 4, ".zip")) + if (len > 4 && ! strcmp (filename + len - 4, ".zip")) { n->flags |= FLAG_ZIP; /* If the user uses -classpath then he'll have to include @@ -152,9 +152,10 @@ add_entry (entp, filename, is_system) n->flags |= FLAG_SYSTEM; } - if (! (n->flags & FLAG_ZIP) - && filename[len - 1] != '/' - && filename[len - 1] != DIR_SEPARATOR) + /* 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) { char *f2 = (char *) alloca (len + 1); strcpy (f2, filename); -- 2.7.4