OSDN Git Service

2004-08-16 Elliot Lee <sopwith@redhat.com>
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Aug 2004 11:49:22 +0000 (11:49 +0000)
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Aug 2004 11:49:22 +0000 (11:49 +0000)
        PR java/9677
        * jcf-parse.c (java_parse_file): Handle filenames with embedded
        spaces, and quoted filelists.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86051 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/jcf-parse.c

index 493a5f3..4e0dc7e 100644 (file)
@@ -1,3 +1,9 @@
+2004-08-16  Elliot Lee <sopwith@redhat.com>
+
+       PR java/9677
+       * jcf-parse.c (java_parse_file): Handle filenames with embedded
+       spaces, and quoted filelists.
+
 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
 
        * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
index d62b1b8..cb4853f 100644 (file)
@@ -897,7 +897,8 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
   char *list, *next;
   tree node;
   FILE *finput = NULL;
-
+  int in_quotes = 0;
   if (flag_filelist_file)
     {
       int avail = 2000;
@@ -940,8 +941,9 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
       for (next = list; ; )
        {
          char ch = *next;
-         if (ch == '\n' || ch == '\r' || ch == '\t' || ch == ' '
-             || ch == '&' /* FIXME */)
+         if (flag_filelist_file && ! in_quotes
+             && (ch == '\n' || ch == '\r' || ch == '\t' || ch == ' '
+                 || ch == '&') /* FIXME */)
            {
              if (next == list)
                {
@@ -955,6 +957,15 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
                  break;
                }
            }
+         if (flag_filelist_file && ch == '"')
+           {
+             in_quotes = ! in_quotes;
+             *next++ = '\0';
+             if (in_quotes) 
+               list = next;
+             else 
+               break;
+           }
          if (ch == '\0')
            {
              next = NULL;