diff --git a/usr.bin/yacc/skeleton.c b/usr.bin/yacc/skeleton.c index fba6508f01eb..06af6fcb890f 100644 --- a/usr.bin/yacc/skeleton.c +++ b/usr.bin/yacc/skeleton.c @@ -120,13 +120,24 @@ char *body[] = "#define YYREJECT goto yyabort", "#define YYACCEPT goto yyaccept", "#define YYERROR goto yyerrlab", + "/* cfront 1.2 defines \"c_plusplus\" instead of \"__cplusplus\" */", + "#ifdef c_plusplus", + "#ifndef __cplusplus", + "#define __cplusplus", + "#endif", + "#endif", + "#ifdef __cplusplus", + "extern \"C\" { char *getenv(const char *); }", + "#else", + "extern char *getenv();", + "#endif", + "", "int", "yyparse()", "{", " register int yym, yyn, yystate;", "#if YYDEBUG", " register char *yys;", - " extern char *getenv();", "", " if (yys = getenv(\"YYDEBUG\"))", " {",