162 lines
4 KiB
Text
162 lines
4 KiB
Text
$NetBSD: patch-ad,v 1.3 2013/01/11 23:36:16 joerg Exp $
|
|
|
|
--- gram.y.orig 1988-09-22 13:14:31.000000000 +0000
|
|
+++ gram.y
|
|
@@ -60,7 +60,10 @@ static char *hcolors[4]; /* Color value
|
|
static char *mcolors[2]; /* Color values used in menus. */
|
|
MenuLink *menu_link; /* Temporary menu link pointer. */
|
|
|
|
+#ifdef X_NOT_STDC_ENV
|
|
char *calloc();
|
|
+char *malloc();
|
|
+#endif
|
|
|
|
%}
|
|
|
|
@@ -117,18 +120,18 @@ expr: keyword '=' compexpr
|
|
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 +200,12 @@ compexpr: keyexpr ':' contexpr ':' butte
|
|
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 +223,7 @@ boolvar: STRING
|
|
;
|
|
|
|
keyword: STRING {
|
|
- $$ = keywordlookup(yylval.sval);
|
|
+ $$ = keywordlookup($1);
|
|
}
|
|
;
|
|
|
|
@@ -246,9 +249,9 @@ buttexpr: buttmodexpr
|
|
{ $$ = 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 +260,7 @@ buttmodexpr: buttmodifier
|
|
;
|
|
|
|
buttmodifier: STRING
|
|
- { $$ = buttexprlookup(yylval.sval); }
|
|
+ { $$ = buttexprlookup($1); }
|
|
;
|
|
|
|
menuname: STRING
|
|
@@ -304,7 +307,7 @@ menuline: strings ':' color2 menuaction
|
|
|
|
menuaction: STRING
|
|
{
|
|
- ki = keywordlookup(yylval.sval);
|
|
+ ki = keywordlookup($1);
|
|
if ((ki != -1) &&
|
|
(KeywordTable[ki].type != IsFunction) &&
|
|
(KeywordTable[ki].type != IsQuitFunction) &&
|
|
@@ -350,7 +353,7 @@ menuaction: STRING
|
|
}
|
|
;
|
|
|
|
-strings: STRING { $$ = yylval.sval; }
|
|
+strings: STRING { $$ = $1; }
|
|
| strings STRING
|
|
{ $$ = strconcat($1, $2); }
|
|
;
|
|
@@ -387,7 +390,7 @@ color2: '(' color ':' color ')' ':'
|
|
}
|
|
;
|
|
|
|
-color: STRING { $$ = yylval.sval; }
|
|
+color: STRING { $$ = $1; }
|
|
| /* empty */ { $$ = NULL; }
|
|
;
|
|
%%
|
|
@@ -503,7 +506,6 @@ char *
|
|
strconcat(s1, s2)
|
|
char *s1, *s2;
|
|
{
|
|
- char *malloc();
|
|
char *p;
|
|
|
|
p = malloc(strlen(s1) + strlen(s2) + 2);
|
|
@@ -572,6 +574,8 @@ char *name; /* Menu, if needed. */
|
|
setbinding(ICON, index, mask, name);
|
|
if (context & WINDOW)
|
|
setbinding(WINDOW, index, mask, name);
|
|
+ if (name)
|
|
+ free(name);
|
|
}
|
|
|
|
/*
|
|
@@ -599,12 +603,13 @@ int m; /* Key/button/modifier mask. */
|
|
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 +776,8 @@ MenuLink *link;
|
|
else {
|
|
for(ptr = list; ptr->next; ptr = ptr->next) /* NULL */;
|
|
ptr->next = link;
|
|
- ptr = ptr->next;
|
|
- ptr->next = NULL;
|
|
}
|
|
+ link->next = NULL;
|
|
return(list);
|
|
}
|
|
|
|
@@ -814,6 +818,8 @@ Bool ResetMenus()
|
|
Menus = NULL;
|
|
}
|
|
|
|
+void LoadXDefaults (void);
|
|
+
|
|
/*
|
|
* Set all numeric variables to zero and all boolean variables to FALSE.
|
|
*/
|