This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

windres regression with control strings spanning multiple lines


There is a regression in the current binutils windres when trying to
parse a control whose string spans multiple lines.  A simple testcase
is:

0 DIALOG 0,0,0,0
BEGIN
    LTEXT "This is a "
              "continued line",0,0,0,0,0
END

This is accepted by (2.17.50 20060817) but current CVS does not:

$ i686-pc-mingw32-windres tc.rc  
i686-pc-mingw32-windres: tc.rc:4: syntax error

The Microsoft RC.EXE does not accept this syntax either, for what it's
worth, but the old windres did and it's really handy.  There was a fix
in this area last year
<http://sourceware.org/ml/binutils-cvs/2007-05/msg00132.html> however
that seems to have omitted controls.

The attached patch seems to fix the issue for me, allowing both the
testcase and a real app to build successfully.

Brian
2008-03-15  Brian Dessent  <brian@dessent.net>

	* rcparse.y (resid): Allow control text to span multiple lines.

Index: rcparse.y
===================================================================
RCS file: /cvs/src/src/binutils/rcparse.y,v
retrieving revision 1.27
diff -u -p -r1.27 rcparse.y
--- rcparse.y	11 Sep 2007 14:05:09 -0000	1.27
+++ rcparse.y	15 Mar 2008 16:17:09 -0000
@@ -926,7 +926,7 @@ resid:
 	    $$.named = 0;
 	    $$.u.id = $1;
 	  }
-	| res_unicode_string
+	| res_unicode_string_concat
 	  {
 	    $$.named = 1;
 	    $$.u.n.name = $1;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]