diff --git a/steps/byacc-20240109/pass1.kaem b/steps/byacc-20240109/pass1.kaem index f578059..1cfd9bc 100644 --- a/steps/byacc-20240109/pass1.kaem +++ b/steps/byacc-20240109/pass1.kaem @@ -30,14 +30,14 @@ patch -Np0 -i ../../patches/meslibc.patch make CC=tcc AR=tcc\ -ar CFLAGS=-DMAXPATHLEN=100\ -DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true # Install yacc -install yacc ${BINDIR}/byacc +install yacc ${BINDIR}/yacc cd ../.. # Checksums if match x${UPDATE_CHECKSUMS} xTrue; then sha256sum -o ${pkg}.checksums \ - /usr/bin/byacc + /usr/bin/yacc install ${pkg}.checksums ${SRCDIR} else diff --git a/steps/heirloom-devtools-070527/pass1.kaem b/steps/heirloom-devtools-070527/pass1.kaem deleted file mode 100755 index 4224455..0000000 --- a/steps/heirloom-devtools-070527/pass1.kaem +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -# SPDX-FileCopyrightText: 2021 Andrius Štikonas -# SPDX-FileCopyrightText: 2021-22 fosslinux -# -# SPDX-License-Identifier: GPL-3.0-or-later - -set -ex - -# Check tarball checksums -checksum-transcriber sources -sha256sum -c sources.SHA256SUM - -mkdir build src -cd build - -# Extract -cp ${DISTFILES}/${pkg}.tar.bz2 ../src/ -bunzip2 -f ../src/${pkg}.tar.bz2 -tar xf ../src/${pkg}.tar ${pkg}/yacc ${pkg}/lex -rm -r ../src/ -cd ${pkg} - -# Prepare and patch -patch -Np0 -i ../../patches/yacc_remove_wchar.patch -patch -Np0 -i ../../patches/lex_remove_wchar.patch - -# Build yacc -cd yacc -make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DMAXPATHLEN=100\ -DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true - -# Install yacc -install yacc ${BINDIR} -install -m 644 yaccpar ${LIBDIR} - -# Build lex -cd ../lex -make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true - -# Install lex -mkdir ${LIBDIR}/lex -install lex ${BINDIR} -install libl.a ${LIBDIR} -install -m 644 ncform ${LIBDIR}/lex - -cd ../../.. - -# Checksums -if match x${UPDATE_CHECKSUMS} xTrue; then - sha256sum -o ${pkg}.checksums \ - /usr/bin/yacc \ - /usr/bin/lex \ - /usr/lib/mes/libl.a \ - /usr/lib/mes/yaccpar \ - /usr/lib/mes/lex/ncform - - install ${pkg}.checksums ${SRCDIR} -else - sha256sum -c ${pkg}.checksums -fi diff --git a/steps/heirloom-devtools-070527/pass1.sh b/steps/heirloom-devtools-070527/pass1.sh new file mode 100644 index 0000000..db9c780 --- /dev/null +++ b/steps/heirloom-devtools-070527/pass1.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# SPDX-FileCopyrightText: 2021-22 fosslinux +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_compile() { + cd lex + make -f Makefile.mk CC=tcc AR=tcc\ -ar LDFLAGS=-static RANLIB=true + cd .. +} + +src_install() { + mkdir -p "${DESTDIR}${BINDIR}" "${DESTDIR}${LIBDIR}/lex" + install lex/lex "${DESTDIR}${BINDIR}" + install lex/libl.a "${DESTDIR}${LIBDIR}" + install -m 644 lex/ncform "${DESTDIR}${LIBDIR}/lex" +} + diff --git a/steps/heirloom-devtools-070527/patches/lex_remove_wchar.patch b/steps/heirloom-devtools-070527/patches/lex_remove_wchar.patch deleted file mode 100644 index 91b231c..0000000 --- a/steps/heirloom-devtools-070527/patches/lex_remove_wchar.patch +++ /dev/null @@ -1,454 +0,0 @@ -SPDX-FileCopyrightText: 2021 Andrius Štikonas -SPDX-FileCopyrightText: 2021 fosslinux - -SPDX-License-Identifier: CDDL-1.0 - -From 508eb06d40498acf954fc51ecb9171d2ce2236f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= -Date: Wed, 27 Jan 2021 00:40:19 +0000 -Subject: [PATCH] Workaround for lex to work with mes libc. - -Similarly to yacc, remove wchar. See yacc patch for further -information. - ---- - lex/Makefile.mk | 2 +- - lex/allprint.c | 6 ++-- - lex/ldefs.c | 8 ----- - lex/main.c | 1 + - lex/parser.y | 77 +++++++++++++++++++++++++++++++++++-------------- - lex/reject.c | 1 - - lex/sub1.c | 44 ++++++++++++++++++---------- - lex/sub3.c | 2 +- - 8 files changed, 89 insertions(+), 52 deletions(-) - -diff --git lex/Makefile.mk lex/Makefile.mk -index 577f7cb..a413867 100644 ---- lex/Makefile.mk -+++ lex/Makefile.mk -@@ -1,4 +1,4 @@ --XOBJ = main.o sub1.o sub2.o sub3.o header.o wcio.o parser.o getopt.o lsearch.o -+XOBJ = main.o sub1.o sub2.o sub3.o header.o parser.o getopt.o lsearch.o - - LOBJ = allprint.o libmain.o reject.o yyless.o yywrap.o \ - allprint_w.o reject_w.o yyless_w.o reject_e.o yyless_e.o -diff --git lex/allprint.c lex/allprint.c -index 6e82495..cb0c6bb 100644 ---- lex/allprint.c -+++ lex/allprint.c -@@ -42,8 +42,6 @@ - #include - #include - #endif --#include --#include - - extern FILE *yyout; - -@@ -78,10 +76,10 @@ allprint(CHR c) - fprintf(yyout, "\\_"); - break; - default: -- if (!iswprint(c)) -+ if (!iwprint(c)) - fprintf(yyout, "\\x%-2x", (int)c); - else -- putwc(c, yyout); -+ putc(c, yyout); - break; - } - } -diff --git lex/ldefs.c lex/ldefs.c -index ff99665..c5dcbaf 100644 ---- lex/ldefs.c -+++ lex/ldefs.c -@@ -43,7 +43,6 @@ - #ifdef __sun - #include - #endif --#include - - #define CHR wchar_t - #define BYTE char -@@ -296,13 +295,6 @@ int mn1(int a, intptr_t d); - int mn0(int a); - int dupl(int n); - --#undef getwc --#define getwc(f) lex_getwc(f) --extern wint_t lex_getwc(FILE *); --#undef putwc --#define putwc(c, f) lex_putwc(c, f) --extern wint_t lex_putwc(wchar_t, FILE *); -- - #undef index - #define index lex_index - -diff --git lex/main.c lex/main.c -index 8aee8ea..52c892a 100644 ---- lex/main.c -+++ lex/main.c -@@ -38,6 +38,7 @@ - * Sccsid @(#)main.c 1.9 (gritter) 11/26/05 - */ - -+#include - #include - #include "once.h" - #include "sgs.h" -diff --git lex/parser.y lex/parser.y -index b8618e3..34a7e9a 100644 ---- lex/parser.y -+++ lex/parser.y -@@ -43,7 +43,6 @@ - void yyerror(char *); - - #include --#include - #include - #ifndef __sun - #define wcsetno(c) 0 -@@ -289,6 +288,19 @@ r: CHAR - ; - - %% -+ -+/* -+Copy multibyte string into char string. -+Mes C library does not support wide strings, and fprintf truncates all strings to 1 character. -+This happens because wchar_t strings have 0 in a second byte. -+*/ -+int -+wstrcpy(char const *destination, wchar_t const *source) { -+ int i = 0; -+ do { -+ destination[i]=source[i]; -+ } while (source[i++] != 0); -+} - int - yylex(void) - { -@@ -353,7 +365,7 @@ yylex(void) - (*(p+2) == 'O')) { - if(lgatflg) - error("Too late for %%pointer"); -- while(*p && !iswspace(*p)) -+ while(*p && !isspace(*p)) - p++; - isArray = 0; - continue; -@@ -397,7 +409,7 @@ yylex(void) - (*(p+2) == 'R')) { - if(lgatflg) - error("Too late for %%array"); -- while(*p && !iswspace(*p)) -+ while(*p && !isspace(*p)) - p++; - isArray = 1; - continue; -@@ -426,7 +438,7 @@ yylex(void) - if(handleeuc) - error("\ - Character table (%t) is supported only in ASCII compatibility mode.\n"); -- ZCH = wcstol(p+2, NULL, 10); -+ ZCH = strtol(p+2, NULL, 10); - if (ZCH < NCH) ZCH = NCH; - if (ZCH > 2*NCH) error("ch table needs redeclaration"); - chset = TRUE; -@@ -438,13 +450,13 @@ Character table (%t) is supported only in ASCII compatibility mode.\n"); - continue; - } - while(digit(*p)) p++; -- if(!iswspace(*p)) error("bad translation format"); -- while(iswspace(*p)) p++; -+ if(!isspace(*p)) error("bad translation format"); -+ while(isspace(*p)) p++; - t = p; - while(*t){ - c = ctrans(&t); - if(ctable[(unsigned)c]){ -- if (iswprint(c)) -+ if (isprint(c)) - warning("Character '%lc' used twice",c); - - else -@@ -485,8 +497,12 @@ Character table (%t) is supported only in ASCII compatibility mode.\n"); - while(getl(p) && scomp(p, L_PctCbr) != 0) - if(p[0]=='/' && p[1]=='*') - cpycom(p); -- else -- fprintf(fout,"%ls\n",p); -+ else { -+ char p2[100]; -+ wstrcpy(p2, p); -+ fprintf(fout,"%ls\n",p2); -+ memset(p2, 0, sizeof p2); -+ } - if(p[0] == '%') continue; - if (*p) error("EOF before %%%%"); - else error("EOF before %%}"); -@@ -501,12 +517,12 @@ Character table (%t) is supported only in ASCII compatibility mode.\n"); - start: - lgate(); - -- while(*p && !iswspace(*p) && ((*p) != (wchar_t)',')) p++; -+ while(*p && !isspace(*p) && ((*p) != (wchar_t)',')) p++; - n = TRUE; - while(n){ -- while(*p && (iswspace(*p) || ((*p) == (wchar_t)','))) p++; -+ while(*p && (isspace(*p) || ((*p) == (wchar_t)','))) p++; - t = p; -- while(*p && !iswspace(*p) && ((*p) != (wchar_t)',')) { -+ while(*p && !isspace(*p) && ((*p) != (wchar_t)',')) { - if(!isascii(*p)) - error("None-ASCII characters in start condition."); - p++; -@@ -516,7 +532,10 @@ start: - if (*t == 0) continue; - i = sptr*2; - if(!ratfor)fprintf(fout,"# "); -- fprintf(fout,"define %ls %d\n",t,i); -+ char t2[100]; -+ wstrcpy(t2, t); -+ fprintf(fout,"define %ls %d\n",t2,i); -+ memset(t2, 0, sizeof t2); - scopy(t,sp); - sname[sptr] = sp; - /* XCU4: save exclusive flag with start name */ -@@ -537,14 +556,20 @@ start: - case ' ': case '\t': /* must be code */ - lgate(); - if( p[1]=='/' && p[2]=='*' ) cpycom(p); -- else fprintf(fout, "%ls\n",p); -+ -+ else { -+ char p2[100]; -+ wstrcpy(p2, p); -+ fprintf(fout, "%ls\n",p2); -+ memset(p2, 0, sizeof p2); -+ } - continue; - case '/': /* look for comments */ - lgate(); - if((*(p+1))=='*') cpycom(p); - /* FALLTHRU */ - default: /* definition */ -- while(*p && !iswspace(*p)) p++; -+ while(*p && !isspace(*p)) p++; - if(*p == 0) - continue; - prev = *p; -@@ -557,7 +582,7 @@ start: - } - } else { /* still sect 1, but prev != '\n' */ - p = bptr; -- while(*p && iswspace(*p)) p++; -+ while(*p && isspace(*p)) p++; - if(*p == 0) - warning("No translation given - null string assumed"); - scopy(p,token); -@@ -632,8 +657,11 @@ start: - while(!eof&& getl(buf) && scomp(L_PctCbr,buf)!=0) - if(buf[0]=='/' && buf[1]=='*') - cpycom(buf); -- else -- fprintf(fout,"%ls\n",buf); -+ else { -+ char buf2[100]; -+ wstrcpy(buf2, p); -+ fprintf(fout,"%ls\n",buf2); -+ } - continue; - } - if(peek == '%'){ -@@ -944,9 +972,16 @@ Character range specified between different codesets."); - else - fprintf(fout, - "\n# line %d \"%s\"\n", yyline-1, sargv[optind]); -- fprintf(fout,"%ls\n",buf); -- while(getl(buf) && !eof) -- fprintf(fout,"%ls\n",buf); -+ char buf2[100]; -+ wstrcpy(buf2, buf); -+ fprintf(fout,"%ls\n",buf2); -+ memset(buf2, 0, sizeof buf2); -+ while(getl(buf) && !eof) { -+ wstrcpy(buf2, buf); -+ fprintf(fout,"%ls\n",buf2); -+ memset(buf2, 0, sizeof buf2); -+ } -+ memset(buf2, 0, sizeof buf2); - } - - return(freturn(0)); -diff --git lex/reject.c lex/reject.c -index 31928e7..ef08c57 100644 ---- lex/reject.c -+++ lex/reject.c -@@ -38,7 +38,6 @@ - #include - #include - #else /* !sun */ --#include - #endif /* !sun */ - #include - #endif -diff --git lex/sub1.c lex/sub1.c -index b867948..eead84b 100644 ---- lex/sub1.c -+++ lex/sub1.c -@@ -38,7 +38,6 @@ - - #include "ldefs.c" - #include --#include - #include - #include - -@@ -394,6 +393,19 @@ cclinter(int sw) - } - } - -+int -+mbtowc(wchar_t *pwc, const char *s, size_t n) -+{ -+ if (s != 0) { -+ if (n < 1) -+ return -1; -+ if (pwc != 0) -+ *pwc = *s & 0377; -+ return *s != '\0'; -+ } else -+ return 0; -+} -+ - int - usescape(int c) - { -@@ -546,7 +558,7 @@ cpyact(void) - break; - case ';': - if (brac == 0) { -- putwc(c, fout); -+ putc(c, fout); - putc('\n', fout); - return (1); - } -@@ -558,26 +570,26 @@ cpyact(void) - case '}': - brac--; - if (brac == 0) { -- putwc(c, fout); -+ putc(c, fout); - putc('\n', fout); - return (1); - } - break; - case '/': -- putwc(c, fout); -+ putc(c, fout); - c = gch(); - if (c != '*') - goto swt; -- putwc(c, fout); -+ putc(c, fout); - savline = yyline; - while (c = gch()) { - while (c == '*') { -- putwc(c, fout); -+ putc(c, fout); - if ((c = gch()) == '/') { - putc('/', fout); - while ((c = gch()) == ' ' || - c == '\t' || c == '\n') -- putwc(c, fout); -+ putc(c, fout); - goto swt; - } - } -@@ -590,16 +602,16 @@ cpyact(void) - case '\'': /* character constant */ - case '"': /* character string */ - mth = c; -- putwc(c, fout); -+ putc(c, fout); - while (c = gch()) { - if (c == '\\') { -- putwc(c, fout); -+ putc(c, fout); - c = gch(); - } - else - if (c == mth) - goto loop; -- putwc(c, fout); -+ putc(c, fout); - if (c == '\n') { - yyline--; - error( -@@ -620,7 +632,7 @@ cpyact(void) - loop: - if (c != ' ' && c != '\t' && c != '\n') - sw = FALSE; -- putwc(c, fout); -+ putc(c, fout); - if (peek == '\n' && !brac && copy_line) { - putc('\n', fout); - return (1); -@@ -636,7 +648,7 @@ gch(void) - int c; - prev = pres; - c = pres = peek; -- peek = pushptr > pushc ? *--pushptr : getwc(fin); -+ peek = pushptr > pushc ? *--pushptr : getc(fin); - while (peek == EOF) { - if (no_input) { - if (!yyline) -@@ -650,7 +662,7 @@ gch(void) - if (fin == NULL) - error("Cannot open file -- %s", - sargv[optind]); -- peek = getwc(fin); -+ peek = getc(fin); - } else - break; - } else { -@@ -856,11 +868,11 @@ allprint(CHR c) - printf("\\_"); - break; - default: -- if (!iswprint(c)) { -+ if (!isprint(c)) { - printf("\\x%-2x", c); /* up to fashion. */ - charc += 3; - } else -- putwc(c, stdout); -+ putc(c, stdout); - break; - } - charc++; -@@ -903,7 +915,7 @@ sect1dump(void) - allprint(i); - putchar(' '); - iswprint(ctable[i]) ? -- putwc(ctable[i], stdout) : -+ putc(ctable[i], stdout) : - printf("%d", ctable[i]); - putchar('\n'); - } -diff --git lex/sub3.c lex/sub3.c -index 186bcbc..aa07f66 100644 ---- lex/sub3.c -+++ lex/sub3.c -@@ -147,7 +147,7 @@ remch(wchar_t c) - */ - if (!handleeuc) { - if (!isascii(c)) -- if (iswprint(c)) -+ if (isprint(c)) - warning( - "Non-ASCII character '%lc' in pattern; use -w or -e lex option.", c); - else warning( --- -2.26.2 - diff --git a/steps/heirloom-devtools-070527/patches/yacc_remove_wchar.patch b/steps/heirloom-devtools-070527/patches/yacc_remove_wchar.patch deleted file mode 100644 index 8ce6fd5..0000000 --- a/steps/heirloom-devtools-070527/patches/yacc_remove_wchar.patch +++ /dev/null @@ -1,1160 +0,0 @@ -SPDX-FileCopyrightText: 2021 Andrius Štikonas -SPDX-FileCopyrightText: 2021 fosslinux -SPDX-FileCopyrightText: 2023 Emily Trau - -SPDX-License-Identifier: CDDL-1.0 - -Remove all kinds of wchar support. Mes Libc does not support wchar in any form, -so we need to remove it. - -heirloom-devtools is all kinds of broken in this way. C standard dictates that -wchar_t may be defined as char, however heirloom-devtools does not respect this, -which makes this non-trivial. - -diff -U3 -r yacc/dextern yacc/dextern ---- yacc/dextern 2005-11-10 20:31:45.000000000 +0000 -+++ yacc/dextern 2021-01-25 18:21:45.286602527 +0000 -@@ -39,7 +39,6 @@ - #include - #include - #include --#include - - /* MANIFEST CONSTANT DEFINITIONS */ - #define WORD32 -@@ -166,17 +165,17 @@ - } ITEM; - - typedef struct toksymb { -- wchar_t *name; -+ char *name; - int value; - } TOKSYMB; - - typedef struct mbclit { -- wchar_t character; -+ char character; - int tvalue; /* token issued for the character */ - } MBCLIT; - - typedef struct ntsymb { -- wchar_t *name; -+ char *name; - int tvalue; - } NTSYMB; - -@@ -212,7 +211,7 @@ - extern int nprod; /* number of productions */ - extern int **prdptr; /* pointers to descriptions of productions */ - extern int *levprd; /* contains production levels to break conflicts */ --extern wchar_t *had_act; /* set if reduction has associated action code */ -+extern char *had_act; /* set if reduction has associated action code */ - - /* state information */ - -@@ -273,24 +272,15 @@ - extern void go2out(void); - extern void hideprod(void); - extern void callopt(void); --extern void warray(wchar_t *, int *, int); --extern wchar_t *symnam(int); --extern wchar_t *writem(int *); -+extern void warray(char *, int *, int); -+extern char *symnam(int); -+extern char *writem(int *); - extern void exp_mem(int); - extern void exp_act(int **); - extern int apack(int *, int); - extern int state(int); --extern void fprintf3(FILE *, const char *, const wchar_t *, const char *, ...); --extern void error3(const char *, const wchar_t *, const char *, ...); -- -- /* multibyte i/o */ -- --#undef getwc --#define getwc(f) yacc_getwc(f) --extern wint_t yacc_getwc(FILE *); --#undef putwc --#define putwc(c, f) yacc_putwc(c, f) --extern wint_t yacc_putwc(wchar_t, FILE *); -+extern void fprintf3(FILE *, const char *, const char *, const char *, ...); -+extern void error3(const char *, const char *, const char *, ...); - - /* yaccpar location */ - -diff -U3 -r yacc/y1.c yacc/y1.c ---- yacc/y1.c 2005-11-26 17:37:56.000000000 +0000 -+++ yacc/y1.c 2021-01-25 18:02:31.251542365 +0000 -@@ -41,12 +41,11 @@ - #include - #include - #include /* For error() */ --#include - - static void mktbls(void); - static void others(void); - static void summary(void); --static wchar_t *chcopy(wchar_t *, wchar_t *); -+static char *chcopy(char *, char *); - static int setunion(int *, int *); - static void prlook(LOOKSETS *); - static void cpres(void); -@@ -229,13 +228,13 @@ - if (finput == NULL) - error("cannot find parser %s", parser); - -- warray(L"yyr1", levprd, nprod); -+ warray("yyr1", levprd, nprod); - - aryfil(temp1, nprod, 0); - /* had_act[i] is either 1 or 0 */ - PLOOP(1, i) - temp1[i] = ((prdptr[i+1] - prdptr[i]-2) << 1) | had_act[i]; -- warray(L"yyr2", temp1, nprod); -+ warray("yyr2", temp1, nprod); - - aryfil(temp1, nstate, -10000000); - TLOOP(i) -@@ -244,14 +243,14 @@ - NTLOOP(i) - for (j = ntstates[i]; j != 0; j = mstates[j]) - temp1[j] = -i; -- warray(L"yychk", temp1, nstate); -+ warray("yychk", temp1, nstate); - -- warray(L"yydef", defact, nstate); -+ warray("yydef", defact, nstate); - - if ((fdebug = fopen(DEBUGNAME, "r")) == NULL) - error("cannot open yacc.debug"); -- while ((c = getwc(fdebug)) != EOF) -- putwc(c, ftable); -+ while ((c = getc(fdebug)) != EOF) -+ putc(c, ftable); - fclose(fdebug); - ZAPFILE(DEBUGNAME); - -@@ -259,19 +258,19 @@ - fprintf(ftable, "# line\t1 \"%s\"\n", parser); - tmpline = 1; - /* copy parser text */ -- while ((c = getwc(finput)) != EOF) { -+ while ((c = getc(finput)) != EOF) { - if (c == '\n') - tmpline++; - if (c == L'$') { -- if ((c = getwc(finput)) != L'A') -- putwc(L'$', ftable); -+ if ((c = getc(finput)) != L'A') -+ putc(L'$', ftable); - else { /* copy actions */ - tmpline++; - faction = fopen(ACTNAME, "r"); - if (faction == NULL) - error("cannot open action tempfile"); -- while ((c = getwc(faction)) != EOF) -- putwc(c, ftable); -+ while ((c = getc(faction)) != EOF) -+ putc(c, ftable); - fclose(faction); - if (gen_lines) - fprintf(ftable, -@@ -279,18 +278,18 @@ - tmpline, - parser); - ZAPFILE(ACTNAME); -- c = getwc(finput); -+ c = getc(finput); - } - } -- putwc(c, ftable); -+ putc(c, ftable); - } - fclose(ftable); - } - - - /* copies string q into p, returning next free char ptr */ --static wchar_t * --chcopy(wchar_t *p, wchar_t *q) -+static char * -+chcopy(char *p, char *q) - { - while (*p = *q++) - ++p; -@@ -299,16 +298,16 @@ - - #define ISIZE 400 - /* creates output string for item pointed to by pp */ --wchar_t * -+char * - writem(int *pp) - { - int i, *p; - static int isize = ISIZE; -- static wchar_t *sarr = NULL; -- wchar_t *q; -+ static char *sarr = NULL; -+ char *q; - - if (sarr == NULL) { -- sarr = malloc(sizeof (wchar_t) * isize); -+ sarr = malloc(sizeof (char) * isize); - if (sarr == NULL) - error("could not allocate output string array"); - for (i = 0; i < isize; ++i) -@@ -317,7 +316,7 @@ - for (p = pp; *p > 0; ++p) /* EMPTY */; - p = prdptr[-*p]; - q = chcopy(sarr, nontrst[*p-NTBASE].name); -- q = chcopy(q, L" : "); -+ q = chcopy(q, " : "); - - for (;;) { - *q++ = ++p == pp ? L'_' : L' '; -@@ -326,7 +325,7 @@ - break; - q = chcopy(q, symnam(i)); - while (q > &sarr[isize-30]) { -- static wchar_t *sarrbase; -+ static char *sarrbase; - - sarrbase = sarr; - isize += ISIZE; -@@ -339,17 +338,17 @@ - - /* an item calling for a reduction */ - if ((i = *pp) < 0) { -- q = chcopy(q, L" ("); -- swprintf(q, q + isize - sarr, L"%d)", -i); -+ q = chcopy(q, " ("); -+ snprintf(q, q + isize - sarr, "%d)", -i); - } - return (sarr); - } - - /* return a pointer to the name of symbol i */ --wchar_t * -+char * - symnam(int i) - { -- wchar_t *cp; -+ char *cp; - - cp = (i >= NTBASE) ? nontrst[i-NTBASE].name : tokset[i].name; - if (*cp == L' ') -diff -U3 -r yacc/y2.c yacc/y2.c ---- yacc/y2.c 2005-11-26 17:39:44.000000000 +0000 -+++ yacc/y2.c 2021-01-25 19:02:52.472120036 +0000 -@@ -35,9 +35,9 @@ - * Sccsid @(#)y2.c 1.11 (gritter) 11/26/05 - */ - -+#include - #include "dextern" - #include "sgs.h" --#include - #include - #define IDENTIFIER 257 - -@@ -66,17 +66,17 @@ - char *infile; /* input file name */ - static int numbval; /* value of an input number */ - static int toksize = NAMESIZE; --static wchar_t *tokname; /* input token name */ -+static char *tokname; /* input token name */ - char *parser = NULL; /* location of common parser */ - - static void finact(void); --static wchar_t *cstash(wchar_t *); -+static char *cstash(char *); - static void defout(void); - static void cpyunion(void); - static void cpycode(void); - static void cpyact(int); --static void lhsfill(wchar_t *); --static void rhsfill(wchar_t *); -+static void lhsfill(char *); -+static void rhsfill(char *); - static void lrprnt(void); - static void beg_debug(void); - static void end_toks(void); -@@ -85,9 +85,9 @@ - static void exp_prod(void); - static void exp_ntok(void); - static void exp_nonterm(void); --static int defin(int, wchar_t *); -+static int defin(int, char *); - static int gettok(void); --static int chfind(int, wchar_t *); -+static int chfind(int, char *); - static int skipcom(void); - static int findchtok(int); - static void put_prefix_define(char *); -@@ -101,11 +101,11 @@ - * points to initial block - more space - * is allocated as needed. - */ --static wchar_t cnamesblk0[CNAMSZ]; --static wchar_t *cnames = cnamesblk0; -+static char cnamesblk0[CNAMSZ]; -+static char *cnames = cnamesblk0; - - /* place where next name is to be put in */ --static wchar_t *cnamp = cnamesblk0; -+static char *cnamp = cnamesblk0; - - /* number of defined symbols output */ - static int ndefout = 3; -@@ -113,7 +113,7 @@ - /* storage of types */ - static int defunion = 0; /* union of types defined? */ - static int ntypes = 0; /* number of types defined */ --static wchar_t *typeset[NTYPES]; /* pointers to type tags */ -+static char *typeset[NTYPES]; /* pointers to type tags */ - - /* symbol tables for tokens and nonterminals */ - -@@ -143,8 +143,8 @@ - - /* output string */ - --static wchar_t *lhstext; --static wchar_t *rhstext; -+static char *lhstext; -+static char *rhstext; - - /* storage for grammar rules */ - -@@ -158,7 +158,7 @@ - - int **prdptr; - int *levprd; --wchar_t *had_act; -+char *had_act; - - /* flag for generating the # line's default is yes */ - int gen_lines = 1; -@@ -181,7 +181,7 @@ - int c; - int *p; - char *cp; -- wchar_t actname[8]; -+ char actname[8]; - unsigned int options = 0; - char *file_prefix = DEFAULT_PREFIX; - char *sym_prefix = ""; -@@ -192,16 +192,16 @@ - fdefine = NULL; - i = 1; - -- tokname = malloc(sizeof (wchar_t) * toksize); -+ tokname = malloc(sizeof (char) * toksize); - tokset = malloc(sizeof (TOKSYMB) * ntoksz); - toklev = malloc(sizeof (int) * ntoksz); - nontrst = malloc(sizeof (NTSYMB) * nnontersz); - mem0 = malloc(sizeof (int) * new_memsize); - prdptr = malloc(sizeof (int *) * (nprodsz+2)); - levprd = malloc(sizeof (int) * (nprodsz+2)); -- had_act = calloc(nprodsz + 2, sizeof (wchar_t)); -- lhstext = malloc(sizeof (wchar_t) * LHS_TEXT_LEN); -- rhstext = malloc(sizeof (wchar_t) * RHS_TEXT_LEN); -+ had_act = calloc(nprodsz + 2, sizeof (char)); -+ lhstext = malloc(sizeof (char) * LHS_TEXT_LEN); -+ rhstext = malloc(sizeof (char) * RHS_TEXT_LEN); - aryfil(toklev, ntoksz, 0); - aryfil(levprd, nprodsz, 0); - for (ii = 0; ii < ntoksz; ++ii) -@@ -307,10 +307,10 @@ - - lineno = 1; - cnamp = cnames; -- defin(0, L"$end"); -+ defin(0, "$end"); - extval = 0400; -- defin(0, L"error"); -- defin(1, L"$accept"); -+ defin(0, "error"); -+ defin(1, "$accept"); - mem = mem0; - lev = 0; - ty = 0; -@@ -588,7 +588,7 @@ - /* process a rule */ - - if (t == L'|') { -- rhsfill((wchar_t *)0); /* restart fill of rhs */ -+ rhsfill((char *)0); /* restart fill of rhs */ - *mem = *prdptr[nprod-1]; - if (++mem >= &tracemem[new_memsize]) - exp_mem(1); -@@ -638,8 +638,8 @@ - /* action within rule... */ - - lrprnt(); /* dump lhs, rhs */ -- swprintf(actname, sizeof actname, -- L"$$%d", nprod); -+ snprintf(actname, sizeof actname, -+ "$$%d", nprod); - /* - * make it nonterminal - */ -@@ -722,8 +722,8 @@ - if (gen_lines) - fprintf(ftable, "\n# line %d \"%s\"\n", - lineno, infile); -- while ((c = getwc(finput)) != EOF) -- putwc(c, ftable); -+ while ((c = getc(finput)) != EOF) -+ putc(c, ftable); - } - fclose(finput); - } -@@ -736,15 +736,15 @@ - fprintf(ftable, "# define YYERRCODE %d\n", tokset[2].value); - } - --static wchar_t * -+static char * - cstash(s) --register wchar_t *s; -+register char *s; - { -- wchar_t *temp; -+ char *temp; - static int used = 0; - static int used_save = 0; - static int exp_cname = CNAMSZ; -- int len = wcslen(s); -+ int len = strlen(s); - - /* - * 2/29/88 - -@@ -755,7 +755,7 @@ - exp_cname += CNAMSZ; - if (!used) - free(cnames); -- if ((cnames = malloc(sizeof (wchar_t)*exp_cname)) == NULL) -+ if ((cnames = malloc(sizeof (char)*exp_cname)) == NULL) - error("cannot expand string dump"); - cnamp = cnames; - used = 0; -@@ -770,7 +770,7 @@ - } - - static int --defin(int t, register wchar_t *s) -+defin(int t, register char *s) - { - /* define s to be a terminal if t=0 or a nonterminal if t=1 */ - -@@ -820,7 +820,7 @@ - } else if (s[2] <= L'7' && s[2] >= L'0') { /* \nnn sequence */ - int i = 3; - val = s[2] - L'0'; -- while (iswdigit(s[i]) && i <= 4) { -+ while (isdigit(s[i]) && i <= 4) { - if (s[i] >= L'0' && s[i] <= L'7') - val = val * 8 + s[i] - L'0'; - else -@@ -831,17 +831,17 @@ - error("illegal \\nnn construction"); - if (val > 255) - error( --"\\nnn exceed \\377; use \\xnnnnnnnn for wchar_t value of multibyte char"); -+"\\nnn exceed \\377; use \\xnnnnnnnn for char value of multibyte char"); - if (val == 0 && i >= 4) - error("'\\000' is illegal"); - } else if (s[2] == L'x') { /* hexadecimal \xnnn sequence */ - int i = 3; - val = 0; - warning(1, "\\x is ANSI C hex escape"); -- if (iswxdigit(s[i])) -- while (iswxdigit(s[i])) { -+ if (isxdigit(s[i])) -+ while (isxdigit(s[i])) { - int tmpval; -- if (iswdigit(s[i])) -+ if (isdigit(s[i])) - tmpval = s[i] - L'0'; - else if (s[i] >= L'a') - tmpval = s[i] - L'a' + 10; -@@ -876,7 +876,7 @@ - /* write out the defines (at the end of the declaration section) */ - - register int i, c; -- register wchar_t *cp; -+ register char *cp; - - for (i = ndefout; i <= ntokens; ++i) { - -@@ -889,8 +889,8 @@ - } - - for (; (c = *cp) != 0; ++cp) { -- if (iswlower(c) || iswupper(c) || -- iswdigit(c) || c == L'_') /* EMPTY */; -+ if (islower(c) || isupper(c) || -+ isdigit(c) || c == L'_') /* EMPTY */; - else - goto nodef; - } -@@ -919,14 +919,14 @@ - reserve = 0; - lineno += peekline; - peekline = 0; -- c = getwc(finput); -+ c = getc(finput); - /* - * while (c == ' ' || c == '\n' || c == '\t' || c == '\f') { - */ -- while (iswspace(c)) { -+ while (isspace(c)) { - if (c == L'\n') - ++lineno; -- c = getwc(finput); -+ c = getc(finput); - } - if (c == L'/') { /* skip comment */ - lineno += skipcom(); -@@ -938,11 +938,11 @@ - case EOF: - return (ENDFILE); - case L'{': -- ungetwc(c, finput); -+ ungetc(c, finput); - return (L'='); /* action ... */ - case L'<': /* get, and look up, a type name (union member name) */ - i = 0; -- while ((c = getwc(finput)) != L'>' && -+ while ((c = getc(finput)) != L'>' && - c != EOF && c != L'\n') { - tokname[i] = c; - if (++i >= toksize) -@@ -954,7 +954,7 @@ - if (i == 0) - error("missing type name in < ... > clause"); - for (i = 1; i <= ntypes; ++i) { -- if (!wcscmp(typeset[i], tokname)) { -+ if (!strcmp(typeset[i], tokname)) { - numbval = i; - return (TYPENAME); - } -@@ -968,11 +968,11 @@ - tokname[0] = L' '; - i = 1; - for (;;) { -- c = getwc(finput); -+ c = getc(finput); - if (c == L'\n' || c == EOF) - error("illegal or missing ' or \""); - if (c == L'\\') { -- c = getwc(finput); -+ c = getc(finput); - tokname[i] = L'\\'; - if (++i >= toksize) - exp_tokname(); -@@ -986,7 +986,7 @@ - case L'%': - case L'\\': - -- switch (c = getwc(finput)) { -+ switch (c = getc(finput)) { - - case L'0': return (TERM); - case L'<': return (LEFT); -@@ -1001,81 +1001,81 @@ - - default: - -- if (iswdigit(c)) { /* number */ -+ if (isdigit(c)) { /* number */ - numbval = c - L'0'; - base = (c == L'0') ? 8 : 10; -- for (c = getwc(finput); -- iswdigit(c); -- c = getwc(finput)) { -+ for (c = getc(finput); -+ isdigit(c); -+ c = getc(finput)) { - numbval = numbval*base + c - L'0'; - } -- ungetwc(c, finput); -+ ungetc(c, finput); - return (NUMBER); -- } else if (iswlower(c) || iswupper(c) || -+ } else if (islower(c) || isupper(c) || - c == L'_' || c == L'.' || - c == L'$') { - i = 0; -- while (iswlower(c) || iswupper(c) || -- iswdigit(c) || c == L'_' || -+ while (islower(c) || isupper(c) || -+ isdigit(c) || c == L'_' || - c == L'.' || c == L'$') { - tokname[i] = c; -- if (reserve && iswupper(c)) -- tokname[i] = towlower(c); -+ if (reserve && isupper(c)) -+ tokname[i] = tolower(c); - if (++i >= toksize) - exp_tokname(); -- c = getwc(finput); -+ c = getc(finput); - } - } - else - return (c); - -- ungetwc(c, finput); -+ ungetc(c, finput); - } - - tokname[i] = 0; - - if (reserve) { /* find a reserved word */ -- if (!wcscmp(tokname, L"term")) -+ if (!strcmp(tokname, "term")) - return (TERM); -- if (!wcscmp(tokname, L"token")) -+ if (!strcmp(tokname, "token")) - return (TERM); -- if (!wcscmp(tokname, L"left")) -+ if (!strcmp(tokname, "left")) - return (LEFT); -- if (!wcscmp(tokname, L"nonassoc")) -+ if (!strcmp(tokname, "nonassoc")) - return (BINARY); -- if (!wcscmp(tokname, L"binary")) -+ if (!strcmp(tokname, "binary")) - return (BINARY); -- if (!wcscmp(tokname, L"right")) -+ if (!strcmp(tokname, "right")) - return (RIGHT); -- if (!wcscmp(tokname, L"prec")) -+ if (!strcmp(tokname, "prec")) - return (PREC); -- if (!wcscmp(tokname, L"start")) -+ if (!strcmp(tokname, "start")) - return (START); -- if (!wcscmp(tokname, L"type")) -+ if (!strcmp(tokname, "type")) - return (TYPEDEF); -- if (!wcscmp(tokname, L"union")) -+ if (!strcmp(tokname, "union")) - return (UNION); - error("invalid escape, or illegal reserved word: %ls", tokname); - } - - /* look ahead to distinguish IDENTIFIER from C_IDENTIFIER */ - -- c = getwc(finput); -+ c = getc(finput); - /* - * while (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '/') - * { - */ -- while (iswspace(c) || c == L'/') { -+ while (isspace(c) || c == L'/') { - if (c == L'\n') { - ++peekline; - } else if (c == L'/') { /* look for comments */ - peekline += skipcom(); - } -- c = getwc(finput); -+ c = getc(finput); - } - if (c == L':') - return (C_IDENTIFIER); -- ungetwc(c, finput); -+ ungetc(c, finput); - return (IDENTIFIER); - } - -@@ -1096,19 +1096,19 @@ - } - - static int --chfind(int t, register wchar_t *s) -+chfind(int t, register char *s) - { - int i; - - if (s[0] == ' ') - t = 0; - TLOOP(i) { -- if (!wcscmp(s, tokset[i].name)) { -+ if (!strcmp(s, tokset[i].name)) { - return (i); - } - } - NTLOOP(i) { -- if (!wcscmp(s, nontrst[i].name)) { -+ if (!strcmp(s, nontrst[i].name)) { - return (i + NTBASE); - } - } -@@ -1137,11 +1137,11 @@ - - level = 0; - for (;;) { -- if ((c = getwc(finput)) == EOF) -+ if ((c = getc(finput)) == EOF) - error("EOF encountered while processing %%union"); -- putwc(c, ftable); -+ putc(c, ftable); - if (fdefine) -- putwc(c, fdefine); -+ putc(c, fdefine); - - switch (c) { - -@@ -1172,29 +1172,29 @@ - /* copies code between \{ and \} */ - - int c; -- c = getwc(finput); -+ c = getc(finput); - if (c == L'\n') { -- c = getwc(finput); -+ c = getc(finput); - lineno++; - } - if (gen_lines) - fprintf(ftable, "\n# line %d \"%s\"\n", lineno, infile); - while (c != EOF) { - if (c == L'\\') { -- if ((c = getwc(finput)) == L'}') -+ if ((c = getc(finput)) == L'}') - return; - else -- putwc(L'\\', ftable); -+ putc(L'\\', ftable); - } else if (c == L'%') { -- if ((c = getwc(finput)) == L'}') -+ if ((c = getc(finput)) == L'}') - return; - else -- putwc(L'%', ftable); -+ putc(L'%', ftable); - } -- putwc(c, ftable); -+ putc(c, ftable); - if (c == L'\n') - ++lineno; -- c = getwc(finput); -+ c = getc(finput); - } - error("eof before %%}"); - } -@@ -1207,17 +1207,17 @@ - - /* skipcom is called after reading a / */ - -- if (getwc(finput) != L'*') -+ if (getc(finput) != L'*') - error("illegal comment"); -- c = getwc(finput); -+ c = getc(finput); - while (c != EOF) { - while (c == L'*') { -- if ((c = getwc(finput)) == L'/') -+ if ((c = getc(finput)) == L'/') - return (i); - } - if (c == L'\n') - ++i; -- c = getwc(finput); -+ c = getc(finput); - } - error("EOF inside comment"); - /* NOTREACHED */ -@@ -1229,7 +1229,7 @@ - { - /* copy C action to the next ; or closing } */ - int brac, c, match, i, t, j, s, tok, argument, m; -- wchar_t id_name[NAMESIZE+1]; -+ char id_name[NAMESIZE+1]; - int id_idx = 0; - - if (gen_lines) { -@@ -1239,12 +1239,12 @@ - brac = 0; - id_name[0] = 0; - loop: -- c = getwc(finput); -+ c = getc(finput); - swt: - switch (c) { - case L';': - if (brac == 0) { -- putwc(c, faction); -+ putc(c, faction); - return; - } - goto lcopy; -@@ -1255,13 +1255,13 @@ - s = 1; - tok = -1; - argument = 1; -- while ((c = getwc(finput)) == L' ' || c == L'\t') /* EMPTY */; -+ while ((c = getc(finput)) == L' ' || c == L'\t') /* EMPTY */; - if (c == L'<') { /* type description */ -- ungetwc(c, finput); -+ ungetc(c, finput); - if (gettok() != TYPENAME) - error("bad syntax on $ clause"); - tok = numbval; -- c = getwc(finput); -+ c = getc(finput); - } - if (c == L'$') { - fprintf(faction, "yyval"); -@@ -1272,10 +1272,10 @@ - } - goto loop; - } -- if (iswalpha(c)) { -+ if (isalpha(c)) { - int same = 0; - int id_sw = 0; -- ungetwc(c, finput); -+ ungetc(c, finput); - if (gettok() != IDENTIFIER) - error("bad action format"); - /* -@@ -1290,16 +1290,16 @@ - id_sw = 1; - else - id_sw = 0; -- while ((c = getwc(finput)) == L' ' || -+ while ((c = getc(finput)) == L' ' || - c == L'\t') /* EMPTY */; - if (c == L'#') { -- while ((c = getwc(finput)) == L' ' || -+ while ((c = getc(finput)) == L' ' || - c == L'\t') /* EMPTY */; -- if (iswdigit(c)) { -+ if (isdigit(c)) { - m = 0; -- while (iswdigit(c)) { -+ while (isdigit(c)) { - m = m*10+c-L'0'; -- c = getwc(finput); -+ c = getc(finput); - } - argument = m; - } else -@@ -1339,13 +1339,13 @@ - } - if (c == '-') { - s = -s; -- c = getwc(finput); -+ c = getc(finput); - } -- if (iswdigit(c)) { -+ if (isdigit(c)) { - j = 0; -- while (iswdigit(c)) { -+ while (isdigit(c)) { - j = j*10 + c - L'0'; -- c = getwc(finput); -+ c = getc(finput); - } - j = j*s - offset; - if (j > 0) { -@@ -1363,51 +1363,51 @@ - } - goto swt; - } -- putwc(L'$', faction); -+ putc(L'$', faction); - if (s < 0) -- putwc(L'-', faction); -+ putc(L'-', faction); - goto swt; - case L'}': - if (--brac) - goto lcopy; -- putwc(c, faction); -+ putc(c, faction); - return; - case L'/': /* look for comments */ -- putwc(c, faction); -- c = getwc(finput); -+ putc(c, faction); -+ c = getc(finput); - if (c != L'*') - goto swt; - /* it really is a comment */ -- putwc(c, faction); -- c = getwc(finput); -+ putc(c, faction); -+ c = getc(finput); - while (c != EOF) { - while (c == L'*') { -- putwc(c, faction); -- if ((c = getwc(finput)) == L'/') -+ putc(c, faction); -+ if ((c = getc(finput)) == L'/') - goto lcopy; - } -- putwc(c, faction); -+ putc(c, faction); - if (c == L'\n') - ++lineno; -- c = getwc(finput); -+ c = getc(finput); - } - error("EOF inside comment"); - /* FALLTHRU */ - case L'\'': /* character constant */ - case L'"': /* character string */ - match = c; -- putwc(c, faction); -- while ((c = getwc(finput)) != EOF) { -+ putc(c, faction); -+ while ((c = getc(finput)) != EOF) { - if (c == L'\\') { -- putwc(c, faction); -- c = getwc(finput); -+ putc(c, faction); -+ c = getc(finput); - if (c == L'\n') - ++lineno; - } else if (c == match) - goto lcopy; - else if (c == L'\n') - error("newline in string or char. const."); -- putwc(c, faction); -+ putc(c, faction); - } - error("EOF in string or character constant"); - /* FALLTHRU */ -@@ -1419,7 +1419,7 @@ - goto lcopy; - } - lcopy: -- putwc(c, faction); -+ putc(c, faction); - /* - * Save the possible identifier name. - * Used to print out a warning message. -@@ -1434,7 +1434,7 @@ - * If c has a possibility to be a - * part of identifier, save it. - */ -- else if (iswalnum(c) || c == L'_') { -+ else if (isalnum(c) || c == L'_') { - id_name[id_idx++] = c; - id_name[id_idx] = 0; - } else { -@@ -1446,28 +1446,28 @@ - - static void - lhsfill(s) /* new rule, dump old (if exists), restart strings */ --wchar_t *s; -+char *s; - { - static int lhs_len = LHS_TEXT_LEN; -- int s_lhs = wcslen(s); -+ int s_lhs = strlen(s); - if (s_lhs >= lhs_len) { - lhs_len = s_lhs + 2; -- lhstext = realloc(lhstext, sizeof (wchar_t)*lhs_len); -+ lhstext = realloc(lhstext, sizeof (char)*lhs_len); - if (lhstext == NULL) - error("couldn't expanded LHS length"); - } - rhsfill(NULL); -- wcscpy(lhstext, s); /* don't worry about too long of a name */ -+ strcpy(lhstext, s); /* don't worry about too long of a name */ - } - - static void --rhsfill(wchar_t *s) /* either name or 0 */ -+rhsfill(char *s) /* either name or 0 */ - { -- static wchar_t *loc; /* next free location in rhstext */ -+ static char *loc; /* next free location in rhstext */ - static int rhs_len = RHS_TEXT_LEN; - static int used = 0; -- int s_rhs = (s == NULL ? 0 : wcslen(s)); -- register wchar_t *p; -+ int s_rhs = (s == NULL ? 0 : strlen(s)); -+ register char *p; - - if (!s) /* print out and erase old text */ - { -@@ -1481,10 +1481,10 @@ - - used = loc - rhstext; - if ((s_rhs + 3) >= (rhs_len - used)) { -- static wchar_t *textbase; -+ static char *textbase; - textbase = rhstext; - rhs_len += s_rhs + RHS_TEXT_LEN; -- rhstext = realloc(rhstext, sizeof (wchar_t)*rhs_len); -+ rhstext = realloc(rhstext, sizeof (char)*rhs_len); - if (rhstext == NULL) - error("couldn't expanded RHS length"); - loc = loc - textbase + rhstext; -@@ -1508,15 +1508,15 @@ - static void - lrprnt (void) /* print out the left and right hand sides */ - { -- wchar_t *rhs; -- wchar_t *m_rhs = NULL; -+ char *rhs; -+ char *m_rhs = NULL; - - if (!*rhstext) /* empty rhs - print usual comment */ -- rhs = L" /* empty */"; -+ rhs = " /* empty */"; - else { - int idx1; /* tmp idx used to find if there are d_quotes */ - int idx2; /* tmp idx used to generate escaped string */ -- wchar_t *p; -+ char *p; - /* - * Check if there are any double quote in RHS. - */ -@@ -1525,8 +1525,8 @@ - /* - * A double quote is found. - */ -- idx2 = wcslen(rhstext)*2; -- p = m_rhs = malloc((idx2 + 1)*sizeof (wchar_t)); -+ idx2 = strlen(rhstext)*2; -+ p = m_rhs = malloc((idx2 + 1)*sizeof (char)); - if (m_rhs == NULL) - error( - "Couldn't allocate memory for RHS."); -@@ -1617,7 +1617,7 @@ - exp_tokname(void) - { - toksize += NAMESIZE; -- tokname = realloc(tokname, sizeof (wchar_t) * toksize); -+ tokname = realloc(tokname, sizeof (char) * toksize); - } - - -@@ -1633,7 +1633,7 @@ - - prdptr = realloc(prdptr, sizeof (int *) * (nprodsz+2)); - levprd = realloc(levprd, sizeof (int) * (nprodsz+2)); -- had_act = realloc(had_act, sizeof (wchar_t) * (nprodsz+2)); -+ had_act = realloc(had_act, sizeof (char) * (nprodsz+2)); - for (i = nprodsz-NPROD; i < nprodsz+2; ++i) - had_act[i] = 0; - -diff -U3 -r yacc/y3.c yacc/y3.c ---- yacc/y3.c 2005-11-26 17:37:56.000000000 +0000 -+++ yacc/y3.c 2021-01-25 19:01:48.390375872 +0000 -@@ -41,7 +41,7 @@ - static void precftn(int, int, int); - static void wract(int); - static void wrstate(int); --static void wdef(wchar_t *, int); -+static void wdef(char *, int); - #ifndef NOLIBW - static void wrmbchars(void); - #endif /* !NOLIBW */ -@@ -121,7 +121,7 @@ - } - - fprintf(ftable, "\t};\n"); -- wdef(L"YYNPROD", nprod); -+ wdef("YYNPROD", nprod); - #ifndef NOLIBW - if (nmbchars > 0) { - wrmbchars(); -@@ -485,14 +485,14 @@ - } - - static void --wdef(wchar_t *s, int n) -+wdef(char *s, int n) - { - /* output a definition of s to the value n */ - fprintf(ftable, "# define %ls %d\n", s, n); - } - - void --warray(wchar_t *s, int *v, int n) -+warray(char *s, int *v, int n) - { - register int i; - fprintf(ftable, "static YYCONST yytabelem %ls[]={\n", s); -@@ -549,11 +549,11 @@ - wrmbchars(void) - { - int i; -- wdef(L"YYNMBCHARS", nmbchars); -+ wdef("YYNMBCHARS", nmbchars); - qsort(mbchars, nmbchars, sizeof (*mbchars), - (int (*)(const void *, const void *))cmpmbchars); - fprintf(ftable, -- "static struct{\n\twchar_t character;" -+ "static struct{\n\tchar character;" - "\n\tint tvalue;\n}yymbchars[YYNMBCHARS]={\n"); - for (i = 0; i < nmbchars; ++i) { - fprintf(ftable, "\t{%#x,%d}", -diff -U3 -r yacc/y4.c yacc/y4.c ---- yacc/y4.c 2005-11-26 17:37:56.000000000 +0000 -+++ yacc/y4.c 2021-01-25 19:02:06.780876425 +0000 -@@ -36,7 +36,6 @@ - */ - - #include "dextern" --#include - #include - #define NOMORE -1000 - -@@ -44,7 +43,7 @@ - static void stin(int); - static void osummary(void); - static void aoutput(void); --static void arout(wchar_t *, int *, int); -+static void arout(char *, int *, int); - static int nxti(void); - static int gtnm(void); - -@@ -414,13 +413,13 @@ - /* write out the optimized parser */ - - fprintf(ftable, "# define YYLAST %d\n", maxa-amem + 1); -- arout(L"yyact", amem, (maxa - amem) + 1); -- arout(L"yypact", indgo, nstate); -- arout(L"yypgo", pgo, nnonter + 1); -+ arout("yyact", amem, (maxa - amem) + 1); -+ arout("yypact", indgo, nstate); -+ arout("yypgo", pgo, nnonter + 1); - } - - static void --arout(wchar_t *s, int *v, int n) -+arout(char *s, int *v, int n) - { - register int i; - -@@ -448,8 +447,8 @@ - s = 1; - val = 0; - -- while ((c = getwc(finput)) != EOF) { -- if (iswdigit(c)) -+ while ((c = getc(finput)) != EOF) { -+ if (isdigit(c)) - val = val * 10 + c - L'0'; - else if (c == L'-') - s = -1; -diff -U3 -r yacc/Makefile.mk yacc/Makefile.mk ---- yacc/Makefile.mk 2007-01-04 23:31:24.000000000 +0000 -+++ yacc/Makefile.mk 2021-01-25 01:25:15.592235579 +0000 -@@ -1,4 +1,4 @@ --YOBJ = y1.o y2.o y3.o y4.o y5.o getopt.o -+YOBJ = y1.o y2.o y3.o y4.o getopt.o - - LOBJ = libmai.o libzer.o - diff --git a/steps/manifest b/steps/manifest index 1dcbfbc..8d08ef2 100644 --- a/steps/manifest +++ b/steps/manifest @@ -50,7 +50,6 @@ build: sed-4.0.9 build: bzip2-1.0.8 build: coreutils-5.0 build: byacc-20240109 -build: heirloom-devtools-070527 build: bash-2.05b improve: setup_repo improve: update_env @@ -58,7 +57,6 @@ improve: merged_usr improve: populate_device_nodes define: CONSOLES = ( INTERACTIVE == True && CHROOT == False ) improve: open_console ( CONSOLES == True ) -build: flex-2.5.11 build: tcc-0.9.27 improve: musl_libdir build: musl-1.1.24 @@ -68,8 +66,10 @@ build: tcc-0.9.27 build: sed-4.0.9 build: bzip2-1.0.8 build: m4-1.4.7 +build: heirloom-devtools-070527 +build: flex-2.5.11 build: flex-2.6.4 -uninstall: /usr/bin/yacc +uninstall: heirloom-devtools-070527 build: bison-3.4.1 build: bison-3.4.1 build: bison-3.4.1