freebsd-ports/x11-wm/uwm/files/patch-ad
2002-09-25 14:58:56 +00:00

152 lines
3.5 KiB
Text

$FreeBSD$
$NetBSD: patch-ad,v 1.3 1999/12/23 23:12:50 itohy Exp $
--- gram.y.orig Thu Sep 22 13:14:31 1988
+++ gram.y Wed Sep 25 14:48:16 2002
@@ -60,8 +60,6 @@
static char *mcolors[2]; /* Color values used in menus. */
MenuLink *menu_link; /* Temporary menu link pointer. */
-char *calloc();
-
%}
%union {
@@ -117,18 +115,18 @@
case IsString:
if ($3 == C_STRING) {
strcpy(KeywordTable[$1].sptr,
- yylval.sval);
+ $<sval>2);
} else {
yyerror("illegal construct");
}
- free(yylval.sval);
+ free($<sval>2);
break;
case IsNumeric:
if ($3 == C_STRING) {
*(KeywordTable[$1].nptr) =
- y_atoi(yylval.sval);
+ y_atoi($<sval>2);
} else yyerror("illegal construct");
- free(yylval.sval);
+ free($<sval>2);
break;
case IsBoolTrue:
case IsBoolFalse:
@@ -197,12 +195,12 @@
ml_ptr = $3;
}
| STRING
- { $$ = C_STRING; }
+ { $$ = C_STRING; $<sval>0 = $1; }
;
boolvar: STRING
{
- ki = keywordlookup(yylval.sval);
+ ki = keywordlookup($1);
switch (KeywordTable[ki].type) {
case IsBoolTrue:
*(KeywordTable[ki].bptr) = TRUE;
@@ -220,7 +218,7 @@
;
keyword: STRING {
- $$ = keywordlookup(yylval.sval);
+ $$ = keywordlookup($1);
}
;
@@ -246,9 +244,9 @@
{ $$ = CheckButtonState($1); }
;
-kmask: STRING { $$ = keyexprlookup(yylval.sval); }
+kmask: STRING { $$ = keyexprlookup($1); }
-contmask: STRING { $$ = contexprlookup(yylval.sval); }
+contmask: STRING { $$ = contexprlookup($1); }
buttmodexpr: buttmodifier
{ $$ = $1; }
@@ -257,7 +255,7 @@
;
buttmodifier: STRING
- { $$ = buttexprlookup(yylval.sval); }
+ { $$ = buttexprlookup($1); }
;
menuname: STRING
@@ -304,7 +302,7 @@
menuaction: STRING
{
- ki = keywordlookup(yylval.sval);
+ ki = keywordlookup($1);
if ((ki != -1) &&
(KeywordTable[ki].type != IsFunction) &&
(KeywordTable[ki].type != IsQuitFunction) &&
@@ -350,7 +348,7 @@
}
;
-strings: STRING { $$ = yylval.sval; }
+strings: STRING { $$ = $1; }
| strings STRING
{ $$ = strconcat($1, $2); }
;
@@ -387,7 +385,7 @@
}
;
-color: STRING { $$ = yylval.sval; }
+color: STRING { $$ = $1; }
| /* empty */ { $$ = NULL; }
;
%%
@@ -503,7 +501,6 @@
strconcat(s1, s2)
char *s1, *s2;
{
- char *malloc();
char *p;
p = malloc(strlen(s1) + strlen(s2) + 2);
@@ -572,6 +569,8 @@
setbinding(ICON, index, mask, name);
if (context & WINDOW)
setbinding(WINDOW, index, mask, name);
+ if (name)
+ free(name);
}
/*
@@ -599,12 +598,13 @@
char *mname; /* Pointer to menu name, if needed. */
{
Binding *ptr;
+ extern char *stash();
ptr = AllocBinding();
ptr->context = cont;
ptr->mask = m;
ptr->func = KeywordTable[i].fptr;
- ptr->menuname = mname;
+ ptr->menuname = mname ? stash(mname) : NULL;
switch (m & (LeftMask | MiddleMask | RightMask)) {
case LeftMask:
@@ -771,9 +771,8 @@
else {
for(ptr = list; ptr->next; ptr = ptr->next) /* NULL */;
ptr->next = link;
- ptr = ptr->next;
- ptr->next = NULL;
}
+ link->next = NULL;
return(list);
}