From 733b3a87ca33556dec810133a1ccf57ead86b504 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 12 Nov 1998 11:43:19 +0000 Subject: [PATCH] jcf-io.c (find_class): Added explanatory comment. * 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. From-SVN: r23615 --- 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 8e331ee630a..e7e48b6db78 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 43e96cf94c0..c1c5b7aa783 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 829f99a1947..159b09f9f71 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.30.2