[PATCH:libXaw3d] Make laygram.y compatible with bison 2.3 and older
Gaetan Nadon
memsize at videotron.ca
Sat Sep 3 18:25:34 PDT 2011
On Sat, 2011-09-03 at 11:34 -0700, Alan Coopersmith wrote:
> bison 2.3b added %name-prefix "prefix" and deprecated the older
> %name-prefix="prefix" form, but we don't have a check for the bison
> version in autoconf.
>
> Without this fix, older bison gives the cryptic error:
> .../src/laygram.y:1.14-20: syntax error, unexpected string, expecting =
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
>
> Tested on Solaris with bison 2.3, not tested on a later bison with the new
> syntax supported. I'm not sure this is the best way to do this, but it
> works for me - if anyone has a better idea, lets hear it.
>
> src/laygram.y | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/src/laygram.y b/src/laygram.y
> index 3644dd4..48cbc16 100644
> --- a/src/laygram.y
> +++ b/src/laygram.y
> @@ -1,4 +1,4 @@
> -%name-prefix "LayYY"
> +%name-prefix="LayYY"
> %defines
> %{
> #include <X11/Xlib.h>
I have tested the following 3 options on Linux with bison 2.4.1:
1) The patch, as is. Works as advertised.
2) Using AM_YFLAGS = -d -p "LayYY" in lieu of %name-prefix "LayYY" in
laygram.y. Looks the same as with the patch to me.
3) Removing all traces of LayYY. It builds, but I have no idea if it is
correct. No other modules using lex & yacc use this prefix. I suppose we
don't know why it was done in the first place. The stripped library has
the same size, so it's a good start.
diff --git a/src/Layout.c b/src/Layout.c
index 398d9ac..d6c5613 100644
--- a/src/Layout.c
+++ b/src/Layout.c
@@ -98,9 +98,9 @@ static void LayoutLayout (LayoutWidget, Bool);
static void LayoutGetNaturalSize (LayoutWidget, Dimension *, Dimension *);
static void LayoutFreeLayout (BoxPtr);
-extern void LayYYsetsource(char *);
-extern void LayYYsetdest(LayoutPtr *);
-extern int LayYYparse(void);
+extern void yysetsource(char *);
+extern void yysetdest(LayoutPtr *);
+extern int yyparse(void);
#ifdef MOTIF
#define SuperClass ((ConstraintWidgetClass)&xmManagerClassRec)
@@ -211,11 +211,11 @@ CvtStringToLayout (Display *dpy, XrmValue *args, Cardinal *num_args,
{
static BoxPtr tmp;
- LayYYsetsource ((char *) from->addr);
+ yysetsource ((char *) from->addr);
if (!to->addr) to->addr = (XtPointer)&tmp;
- LayYYsetdest ((BoxPtr *) to->addr);
+ yysetdest ((BoxPtr *) to->addr);
to->size = sizeof (BoxPtr *);
- return LayYYparse() ? FALSE : TRUE;
+ return yyparse() ? FALSE : TRUE;
}
/*ARGSUSED*/
diff --git a/src/laygram.y b/src/laygram.y
index 48cbc16..6fe3c6e 100644
--- a/src/laygram.y
+++ b/src/laygram.y
@@ -1,4 +1,3 @@
-%name-prefix="LayYY"
%defines
%{
#include <X11/Xlib.h>
@@ -12,8 +11,6 @@
#include <X11/Xmu/Converters.h>
#include <X11/Xaw3d/LayoutP.h>
-#define yysetdest LayYYsetdest
-#define yywrap LayYYwrap
static LayoutPtr *dest;
diff --git a/src/laylex.l b/src/laylex.l
index e357207..27727c0 100644
--- a/src/laylex.l
+++ b/src/laylex.l
@@ -1,4 +1,3 @@
-%option prefix="LayYY"
%option outfile="lex.yy.c"
%{
#ifndef FLEX_SCANNER
@@ -14,10 +13,6 @@
#include <X11/Xaw3d/LayoutP.h>
#include "laygram.h"
-#define yylval LayYYlval
-#define yyerror LayYYerror
-#define yysetsource LayYYsetsource
-
static char *yysourcebase, *yysource;
#ifndef FLEX_SCANNER
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110903/d6bb64d6/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110903/d6bb64d6/attachment.pgp>
More information about the xorg-devel
mailing list