* Make comma after string after icon/control optional.
authorDJ Delorie <dj@redhat.com>
Thu, 12 Oct 2000 17:47:35 +0000 (17:47 +0000)
committerDJ Delorie <dj@redhat.com>
Thu, 12 Oct 2000 17:47:35 +0000 (17:47 +0000)
binutils/ChangeLog
binutils/rcparse.y

index 4632f3493744b3c3d42477399c8c0eed5c34a4cf..5e42e362e565d2b5f2cf5c536fc6730dedae1e88 100644 (file)
@@ -1,3 +1,7 @@
+2000-10-12  Roger Sayle  <roger@metaphorics.com>
+
+       * Make comma after string after icon/control optional.
+
 2000-09-13  Anders Norlander  <anorland@acc.umu.se>
 
        * readelf.c (get_machine_flags): Also print EF_MIPS_MACH field.
index 39551c2bf7b22f61ed1ee2372091dc2bf70c7cb6..b67338f9d0455ce0ce742df6d5e3922ce6152b9e 100644 (file)
@@ -136,11 +136,11 @@ static unsigned long class;
 %type <vervar> vertrans
 %type <res_info> suboptions memflags_move_discard memflags_move
 %type <memflags> memflag
-%type <id> id
+%type <id> id resref
 %type <il> exstyle parennumber
 %type <il> numexpr posnumexpr cnumexpr optcnumexpr cposnumexpr
 %type <is> acc_options acc_option menuitem_flags menuitem_flag
-%type <s> optstringc file_name
+%type <s> optstringc file_name resname
 %type <i> sizednumexpr sizedposnumexpr
 
 %left '|'
@@ -636,24 +636,24 @@ control:
              rcparse_warning (_("IEDIT requires DIALOGEX"));
            res_string_to_id (&$$->class, "HEDIT");
          }
-       | ICON id cnumexpr cnumexpr cnumexpr opt_control_data
+       | ICON resref numexpr cnumexpr cnumexpr opt_control_data
           {
            $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $6,
                                      dialog.ex);
           }
-       | ICON id cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr
+       | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr
            opt_control_data
           {
            $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $8,
                                      dialog.ex);
           }
-       | ICON id cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr
+       | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr
            icon_styleexpr optcnumexpr opt_control_data
           {
            $$ = define_icon_control ($2, $3, $4, $5, style, $9, 0, $10,
                                      dialog.ex);
           }
-       | ICON id numexpr cnumexpr cnumexpr cnumexpr cnumexpr
+       | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr
            icon_styleexpr cnumexpr cnumexpr opt_control_data
           {
            $$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11,
@@ -809,6 +809,10 @@ optstringc:
          {
            $$ = NULL;
          }
+       | QUOTEDSTRING
+         {
+           $$ = $1;
+         }
        | QUOTEDSTRING ','
          {
            $$ = $1;
@@ -1262,6 +1266,44 @@ id:
          }
        ;
 
+/* A resource reference.  */
+
+resname:
+         QUOTEDSTRING
+         {
+           $$ = $1;
+         }
+       | QUOTEDSTRING ','
+         {
+           $$ = $1;
+         }
+       | STRING ','
+         {
+           $$ = $1;
+         }
+       ;
+
+
+resref:
+         posnumexpr ','
+         {
+           $$.named = 0;
+           $$.u.id = $1;
+         }
+       | resname
+         {
+           char *copy, *s;
+
+           /* It seems that resource ID's are forced to upper case.  */
+           copy = xstrdup ($1);
+           for (s = copy; *s != '\0'; s++)
+             if (islower ((unsigned char) *s))
+               *s = toupper ((unsigned char) *s);
+           res_string_to_id (&$$, copy);
+           free (copy);
+         }
+       ;
+
 /* Generic suboptions.  These may appear before the BEGIN in any
    multiline statement.  */