live-bootstrap/sysa/heirloom-devtools-070527/patches/yacc_remove_wchar.patch

1155 lines
28 KiB
Diff

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 <ctype.h>
#include <string.h>
#include <stdlib.h>
-#include <wctype.h>
/* 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 <unistd.h>
#include <locale.h>
#include <stdarg.h> /* For error() */
-#include <wchar.h>
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, " (");
+ sprintf(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 <getopt.h>
#include "dextern"
#include "sgs.h"
-#include <wchar.h>
#include <unistd.h>
#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);
+ sprintf(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 $<ident> 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 <wchar.h>
#include <unistd.h>
#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