home *** CD-ROM | disk | FTP | other *** search
- Subject: v22i035: Update kit for p2c Pascal to C translator, Part02/02
- Newsgroups: comp.sources.unix
- Approved: rsalz@uunet.UU.NET
- X-Checksum-Snefru: e1acef03 5743dae4 f13a77d6 22188d02
-
- Submitted-by: David Gillespie <daveg@csvax.caltech.edu>
- Posting-number: Volume 22, Issue 35
- Archive-name: p2cpatches/part02
-
- The following patches convert p2c version 1.15 into p2c version 1.16. To
- apply them automatically with Patch v2.0, first cd into your p2c
- distribution directory (with subdirectories src, examples, etc.), then
- execute "patch -p0 <p2c.patch", where "p2c.patch" is name of this file,
- then "cd src" and execute "make install".
-
- These patches do not cover the example files, nor reproducible files
- such as "p2c.hdrs" and "p2c.cat". Those files will be rebuilt by
- "make install".
-
- Enjoy!
- -- Dave
-
- Dave Gillespie
- 256-80 Caltech, Pasadena CA 91125
- daveg@csvax.caltech.edu, ...!cit-vax!daveg
-
-
-
- *** README Fri Apr 13 21:05:13 1990
- --- ../dist/README Tue May 1 00:10:04 1990
- ***************
- *** 1,5 ****
-
- ! This directory contains "p2c" version 1.15, a Pascal to C translator.
-
- "p2c" Copyright 1989 Dave Gillespie
- 256-80 Caltech
- --- 1,5 ----
-
- ! This directory contains "p2c" version 1.16, a Pascal to C translator.
-
- "p2c" Copyright 1989 Dave Gillespie
- 256-80 Caltech
- Files Makefile and ../dist/Makefile are identical
- Files src/COPYING and ../dist/src/COPYING are identical
- diff -c -N -r -s src/HISTORY ../dist/src/HISTORY
- *** src/HISTORY Fri Apr 13 21:04:41 1990
- --- ../dist/src/HISTORY Tue May 1 00:09:28 1990
- ***************
- *** 4,9 ****
- --- 4,28 ----
- ------- -- ------- -- ---
-
-
- + Version 1.16:
- +
- + * Reduced wasteful proliferation of identical-looking temporary variables.
- +
- + * Improved heuristic for determining allocation size for set constructors.
- +
- + * Corrected handling for EOF applied to buffered binary files.
- +
- + * Bug fix in decl.c: Handled a rare case involving forward-declared pointers.
- +
- + * Bug fix in p2clib.c:P_remset: Forgot to fix s[0] if highest bit was cleared.
- +
- + * Bug fix in p2clib.c:P_setxor: Forgot to fix s[0] if highest bits cancelled.
- +
- + * Added to sys.p2crc/trans.h the following configuration parameters:
- +
- + EofBufName Macro to use for EOF of a bufffered file.
- + FilePosBufName Macro to use for FILEPOS or POSITION of a buffered file.
- +
- Version 1.15:
-
- * Taught the line breaker to handle logical/relational operators specially.
- Files src/Makefile and ../dist/src/Makefile are identical
- Files src/NOTES and ../dist/src/NOTES are identical
- Files src/README and ../dist/src/README are identical
- Files src/citmods.c and ../dist/src/citmods.c are identical
- Files src/comment.c and ../dist/src/comment.c are identical
- diff -c -N -r -s src/decl.c ../dist/src/decl.c
- *** src/decl.c Fri Apr 13 21:04:49 1990
- --- ../dist/src/decl.c Tue May 1 00:09:41 1990
- ***************
- *** 1250,1255 ****
- --- 1250,1257 ----
- switch (type->kind) {
-
- case TK_POINTER:
- + if (type->smin) /* unresolved forward */
- + return type;
- if (type->basetype == tp_void) { /* ANYPTR */
- if (tp_special_anyptr)
- return tp_special_anyptr; /* write "Anyptr" */
- ***************
- *** 1774,1782 ****
- if (type == tp_char)
- return tp_ubyte;
- if (type->kind == TK_POINTER) {
- ! if (type->basetype->kind == TK_ARRAY ||
- ! type->basetype->kind == TK_STRING ||
- ! type->basetype->kind == TK_SET)
- return makepointertype(canonicaltype(type->basetype->basetype));
- else if (type->basetype == tp_void)
- return (voidstar) ? tp_anyptr : makepointertype(tp_abyte);
- --- 1776,1786 ----
- if (type == tp_char)
- return tp_ubyte;
- if (type->kind == TK_POINTER) {
- ! if (type->smin)
- ! return type;
- ! else if (type->basetype->kind == TK_ARRAY ||
- ! type->basetype->kind == TK_STRING ||
- ! type->basetype->kind == TK_SET)
- return makepointertype(canonicaltype(type->basetype->basetype));
- else if (type->basetype == tp_void)
- return (voidstar) ? tp_anyptr : makepointertype(tp_abyte);
- ***************
- *** 1789,1797 ****
- --- 1793,1837 ----
- }
-
-
- + int identicaltypes(t1, t2)
- + Type *t1, *t2;
- + {
- + if (t1 == t2)
- + return 1;
- + if (t1->kind == t2->kind) {
- + if (t1->kind == TK_SUBR)
- + return (identicaltypes(t1->basetype, t2->basetype) &&
- + exprsame(t1->smin, t2->smin, 2) &&
- + exprsame(t1->smax, t2->smax, 2));
- + if (t1->kind == TK_SET ||
- + t1->kind == TK_SMALLSET)
- + return (exprsame(t1->indextype->smax,
- + t2->indextype->smax, 2));
- + if (t1->kind == TK_ARRAY ||
- + t1->kind == TK_STRING ||
- + t1->kind == TK_SMALLARRAY)
- + return (identicaltypes(t1->basetype, t2->basetype) &&
- + identicaltypes(t1->indextype, t2->indextype) &&
- + t1->structdefd == t2->structdefd &&
- + ((!t1->smin && !t2->smin) ||
- + (t1->smin && t2->smin &&
- + exprsame(t1->smin, t2->smin, 2))) &&
- + ((!t1->smax && !t2->smax) ||
- + (t1->smax && t2->smax &&
- + exprsame(t1->smax, t2->smax, 2) &&
- + t1->escale == t2->escale &&
- + t1->issigned == t2->issigned)));
- + }
- + return 0;
- + }
- +
- +
- int similartypes(t1, t2)
- Type *t1, *t2;
- {
- + if (debug > 3) { fprintf(outf, "identicaltypes("); dumptypename(t1,1); fprintf(outf, ","); dumptypename(t2,1); fprintf(outf, ") = %d\n", identicaltypes(t1, t2)); }
- + if (identicaltypes(t1, t2))
- + return 1;
- t1 = canonicaltype(t1);
- t2 = canonicaltype(t2);
- return (t1 == t2);
- ***************
- *** 1857,1865 ****
- default:
- if (findbasetype(tp1, flags) != findbasetype(tp2, flags))
- return 0;
- ! while (tp1->kind == TK_POINTER && tp1->basetype)
- tp1 = tp1->basetype;
- ! while (tp2->kind == TK_POINTER && tp2->basetype)
- tp2 = tp2->basetype;
- return (tp1 == tp2);
- }
- --- 1897,1905 ----
- default:
- if (findbasetype(tp1, flags) != findbasetype(tp2, flags))
- return 0;
- ! while (tp1->kind == TK_POINTER && !tp1->smin && tp1->basetype)
- tp1 = tp1->basetype;
- ! while (tp2->kind == TK_POINTER && !tp2->smin && tp2->basetype)
- tp2 = tp2->basetype;
- return (tp1 == tp2);
- }
- ***************
- *** 2103,2109 ****
- break;
-
- default:
- ! if (type->meaning && type->meaning->kind == MK_TYPE &&
- type->meaning->wasdeclared) {
- output(type->meaning->name);
- } else {
- --- 2143,2153 ----
- break;
-
- default:
- ! if (type->kind == TK_POINTER && type->smin) {
- ! note("Forward pointer reference assumes struct type [323]");
- ! output("struct ");
- ! output(format_s(name_STRUCT, type->smin->val.s));
- ! } else if (type->meaning && type->meaning->kind == MK_TYPE &&
- type->meaning->wasdeclared) {
- output(type->meaning->name);
- } else {
- ***************
- *** 3582,3587 ****
- --- 3626,3632 ----
- pd->next = ptrbase;
- ptrbase = pd;
- tp->basetype = tp_abyte;
- + tp->smin = makeexpr_name(curtokcase, tp_integer);
- anydeferredptrs = 1;
- gettok();
- } else {
- ***************
- *** 4331,4337 ****
- case TK_SMALLSET:
- case TK_SET:
- if (curtok == TOK_LBR)
- ! return p_setfactor(type);
- break;
-
- default:
- --- 4376,4382 ----
- case TK_SMALLSET:
- case TK_SET:
- if (curtok == TOK_LBR)
- ! return p_setfactor(type, 1);
- break;
-
- default:
- ***************
- *** 4548,4554 ****
- tp->meaning->ctx && tp->meaning->ctx != nullctx) {
- pd = ptrbase; /* Do this now, just in case */
- while (pd) {
- ! if (pd->tp->basetype == tp_abyte) {
- mp2 = pd->sym->mbase;
- while (mp2 && !mp2->isactive)
- mp2 = mp2->snext;
- --- 4593,4600 ----
- tp->meaning->ctx && tp->meaning->ctx != nullctx) {
- pd = ptrbase; /* Do this now, just in case */
- while (pd) {
- ! if (pd->tp->smin && pd->tp->basetype == tp_abyte) {
- ! pd->tp->smin = NULL;
- mp2 = pd->sym->mbase;
- while (mp2 && !mp2->isactive)
- mp2 = mp2->snext;
- ***************
- *** 4701,4707 ****
- deferallptrs = 0;
- while (ptrbase) {
- pd = ptrbase;
- ! if (pd->tp->basetype == tp_abyte) {
- mp = pd->sym->mbase;
- while (mp && !mp->isactive)
- mp = mp->snext;
- --- 4747,4754 ----
- deferallptrs = 0;
- while (ptrbase) {
- pd = ptrbase;
- ! if (pd->tp->smin && pd->tp->basetype == tp_abyte) {
- ! pd->tp->smin = NULL;
- mp = pd->sym->mbase;
- while (mp && !mp->isactive)
- mp = mp->snext;
- Files src/dir.c and ../dist/src/dir.c are identical
- Files src/expr.c and ../dist/src/expr.c are identical
- diff -c -N -r -s src/funcs.c ../dist/src/funcs.c
- *** src/funcs.c Fri Apr 13 21:04:53 1990
- --- ../dist/src/funcs.c Tue May 1 00:09:45 1990
- ***************
- *** 1635,1641 ****
- int code;
- {
- Expr *ex2 = NULL, *ex3 = NULL;
- ! Meaning *tvar = NULL;
-
- if (FCheck(checkfileisopen) && !is_std_file(ex)) {
- if (exprspeed(ex) < 5 && nosideeffects(ex, 0)) {
- --- 1635,1641 ----
- int code;
- {
- Expr *ex2 = NULL, *ex3 = NULL;
- ! Meaning *tvar = NULL, *mp;
-
- if (FCheck(checkfileisopen) && !is_std_file(ex)) {
- if (exprspeed(ex) < 5 && nosideeffects(ex, 0)) {
- ***************
- *** 1650,1656 ****
- switch (code) {
-
- case 0: /* eof */
- ! if (*eofname)
- ex = makeexpr_bicall_1(eofname, tp_boolean, ex);
- else
- ex = makeexpr_rel(EK_NE, makeexpr_bicall_1("feof", tp_int, ex),
- --- 1650,1660 ----
- switch (code) {
-
- case 0: /* eof */
- ! if ((mp = isfilevar(ex)) != NULL &&
- ! mp->bufferedfile &&
- ! *eofbufname)
- ! ex = makeexpr_bicall_1(eofbufname, tp_boolean, ex);
- ! else if (*eofname)
- ex = makeexpr_bicall_1(eofname, tp_boolean, ex);
- else
- ex = makeexpr_rel(EK_NE, makeexpr_bicall_1("feof", tp_int, ex),
- ***************
- *** 1662,1668 ****
- break;
-
- case 2: /* position or filepos */
- ! ex = makeexpr_bicall_1(fileposname, tp_integer, ex);
- break;
-
- case 3: /* maxpos or filesize */
- --- 1666,1677 ----
- break;
-
- case 2: /* position or filepos */
- ! if ((mp = isfilevar(ex)) != NULL &&
- ! mp->bufferedfile &&
- ! *fileposbufname)
- ! ex = makeexpr_bicall_1(fileposbufname, tp_boolean, ex);
- ! else
- ! ex = makeexpr_bicall_1(fileposname, tp_integer, ex);
- break;
-
- case 3: /* maxpos or filesize */
- Files src/hpmods.c and ../dist/src/hpmods.c are identical
- Files src/lex.c and ../dist/src/lex.c are identical
- Files src/loc.p2clib.c and ../dist/src/loc.p2clib.c are identical
- Files src/loc.p2crc and ../dist/src/loc.p2crc are identical
- Files src/makeproto.c and ../dist/src/makeproto.c are identical
- Files src/out.c and ../dist/src/out.c are identical
- diff -c -N -r -s src/p2c.h ../dist/src/p2c.h
- *** src/p2c.h Fri Apr 13 21:04:56 1990
- --- ../dist/src/p2c.h Tue May 1 00:09:51 1990
- ***************
- *** 4,10 ****
-
- /* Header file for code generated by "p2c", the Pascal-to-C translator */
-
- ! /* "p2c" Copyright (C) 1989 Dave Gillespie, version 1.15.
- * This file may be copied, modified, etc. in any way. It is not restricted
- * by the licence agreement accompanying p2c itself.
- */
- --- 4,10 ----
-
- /* Header file for code generated by "p2c", the Pascal-to-C translator */
-
- ! /* "p2c" Copyright (C) 1989 Dave Gillespie, version 1.16.
- * This file may be copied, modified, etc. in any way. It is not restricted
- * by the licence agreement accompanying p2c itself.
- */
- ***************
- *** 317,322 ****
- --- 317,325 ----
- #define PUT(f,type) (fwrite(&__CAT__(f,_BUFFER),sizeof(type),1,(f)), \
- (__CAT__(f,_BFLAGS) = 0))
- #define CPUT(f) (PUT(f,char))
- +
- + #define BUFEOF(f) (__CAT__(f,_BFLAGS) != 2 && P_eof(f))
- + #define BUFFPOS(f) (ftell(f) - (__CAT__(f,_BFLAGS) == 2))
-
- /* Memory allocation */
- #ifdef __GCC__
- diff -c -N -r -s src/p2c.man ../dist/src/p2c.man
- *** src/p2c.man Fri Apr 13 21:04:42 1990
- --- ../dist/src/p2c.man Tue May 1 00:09:31 1990
- ***************
- *** 1,7 ****
- .\" p2c Copyright 1989 Dave Gillespie
- .TH P2C 1 "local"
- .SH NAME
- ! p2c \- Pascal to C translator, version 1.15
- .SH SYNOPSIS
- .B p2c
- [ options ] [ file [ module ] ]
- --- 1,7 ----
- .\" p2c Copyright 1989 Dave Gillespie
- .TH P2C 1 "local"
- .SH NAME
- ! p2c \- Pascal to C translator, version 1.16
- .SH SYNOPSIS
- .B p2c
- [ options ] [ file [ module ] ]
- ***************
- *** 1493,1500 ****
- .SH AUTHOR
- Dave Gillespie, daveg@csvax.caltech.edu.
- .PP
- ! Many thanks to William Bader, Rick Koshi, Eric Raymond, Magne Haveraaen,
- ! Dirk Grunwald, David Barto, Paul Fisher, and others whose suggestions and
- ! bug reports have helped improve
- .I p2c
- in countless ways.
- --- 1493,1500 ----
- .SH AUTHOR
- Dave Gillespie, daveg@csvax.caltech.edu.
- .PP
- ! Many thanks to William Bader, Steven Levi, Rick Koshi, Eric Raymond,
- ! Magne Haveraaen, Dirk Grunwald, David Barto, Paul Fisher, and others whose
- ! suggestions and bug reports have helped improve
- .I p2c
- in countless ways.
- diff -c -N -r -s src/p2clib.c ../dist/src/p2clib.c
- *** src/p2clib.c Fri Apr 13 21:04:55 1990
- --- ../dist/src/p2clib.c Tue May 1 00:09:47 1990
- ***************
- *** 577,583 ****
- *d++ = *s1++;
- while (--sz2 >= 0)
- *d++ = *s2++;
- ! *dbase = d - dbase - 1;
- return dbase;
- }
-
- --- 577,584 ----
- *d++ = *s1++;
- while (--sz2 >= 0)
- *d++ = *s2++;
- ! while (--d > dbase && !*d) ;
- ! *dbase = d - dbase;
- return dbase;
- }
-
- ***************
- *** 656,663 ****
- register int bit;
- bit = val % SETBITS;
- val /= SETBITS;
- ! if (++val <= *s)
- ! s[val] &= ~(1<<bit);
- return s;
- }
-
- --- 657,667 ----
- register int bit;
- bit = val % SETBITS;
- val /= SETBITS;
- ! if (++val <= *s) {
- ! if (!(s[val] &= ~(1<<bit)))
- ! while (*s && !s[*s])
- ! (*s)--;
- ! }
- return s;
- }
-
- Files src/parse.c and ../dist/src/parse.c are identical
- diff -c -N -r -s src/pexpr.c ../dist/src/pexpr.c
- *** src/pexpr.c Fri Apr 13 21:04:52 1990
- --- ../dist/src/pexpr.c Tue May 1 00:09:44 1990
- ***************
- *** 469,485 ****
-
- #define MAXSETLIT 400
-
- ! Expr *p_setfactor(type)
- ! Type *type;
- {
- Expr *ex, *exmax = NULL, *ex2;
- Expr *first[MAXSETLIT], *last[MAXSETLIT];
- char doneflag[MAXSETLIT];
- int i, j, num, donecount;
- ! int isconst, guesstype = 0;
- long maxv, max2;
- Value val;
- ! Type *tp;
- Meaning *tvar;
-
- if (curtok == TOK_LBRACE)
- --- 469,486 ----
-
- #define MAXSETLIT 400
-
- ! Expr *p_setfactor(target, sure)
- ! Type *target;
- ! int sure;
- {
- Expr *ex, *exmax = NULL, *ex2;
- Expr *first[MAXSETLIT], *last[MAXSETLIT];
- char doneflag[MAXSETLIT];
- int i, j, num, donecount;
- ! int isconst, guesstype;
- long maxv, max2;
- Value val;
- ! Type *tp, *type;
- Meaning *tvar;
-
- if (curtok == TOK_LBRACE)
- ***************
- *** 493,500 ****
- val.s = NULL;
- return makeexpr_val(val);
- }
- ! if (!type)
- ! guesstype = 1;
- maxv = -1;
- isconst = 1;
- num = 0;
- --- 494,501 ----
- val.s = NULL;
- return makeexpr_val(val);
- }
- ! type = target;
- ! guesstype = !sure;
- maxv = -1;
- isconst = 1;
- num = 0;
- ***************
- *** 510,516 ****
- }
- if (guesstype && num == 0) {
- ex = p_ord_expr();
- ! type = ord_type(ex->val.type);
- } else {
- ex = p_expr(type);
- }
- --- 511,517 ----
- }
- if (guesstype && num == 0) {
- ex = p_ord_expr();
- ! type = ex->val.type;
- } else {
- ex = p_expr(type);
- }
- ***************
- *** 550,561 ****
- gettok();
- else if (!wneedtok(TOK_RBR))
- skippasttotoken(TOK_RBR, TOK_SEMI);
- ! tp = ord_type(first[0]->val.type);
- if (guesstype) { /* must determine type */
- ! if (!exmax || maxv == LONG_MAX) {
- ! maxv = defaultsetsize-1;
- ! if (ord_range(tp, NULL, &max2) && maxv > max2)
- maxv = max2;
- exmax = makeexpr_long(maxv);
- } else
- exmax = copyexpr(exmax);
- --- 551,566 ----
- gettok();
- else if (!wneedtok(TOK_RBR))
- skippasttotoken(TOK_RBR, TOK_SEMI);
- ! tp = first[0]->val.type;
- if (guesstype) { /* must determine type */
- ! if (maxv == LONG_MAX) {
- ! if (target && ord_range(target, NULL, &max2))
- ! maxv = max2;
- ! else if (ord_range(tp, NULL, &max2) && max2 < 1000000 &&
- ! (max2 >= defaultsetsize || num == 1))
- maxv = max2;
- + else
- + maxv = defaultsetsize-1;
- exmax = makeexpr_long(maxv);
- } else
- exmax = copyexpr(exmax);
- ***************
- *** 1122,1128 ****
-
- case TOK_LBR:
- case TOK_LBRACE:
- ! return p_setfactor(NULL);
-
- case TOK_NIL:
- gettok();
- --- 1127,1134 ----
-
- case TOK_LBR:
- case TOK_LBRACE:
- ! return p_setfactor(target && target->kind == TK_SET
- ! ? target->indextype : NULL, 0);
-
- case TOK_NIL:
- gettok();
- ***************
- *** 1160,1166 ****
-
- case TK_SET:
- case TK_SMALLSET:
- ! return p_setfactor(type->indextype);
-
- case TK_RECORD:
- return p_constrecord(type, 0);
- --- 1166,1172 ----
-
- case TK_SET:
- case TK_SMALLSET:
- ! return p_setfactor(type->indextype, 1);
-
- case TK_RECORD:
- return p_constrecord(type, 0);
- Files src/string.pas and ../dist/src/string.pas are identical
- Files src/stuff.c and ../dist/src/stuff.c are identical
- diff -c -N -r -s src/sys.p2crc ../dist/src/sys.p2crc
- *** src/sys.p2crc Fri Apr 13 21:04:44 1990
- --- ../dist/src/sys.p2crc Tue May 1 00:09:36 1990
- ***************
- *** 1,4 ****
- ! # Standard configuration file for "p2c" 1.15, the Pascal to C translator
- # Copyright (C) 1989 David Gillespie.
- # Author's address: daveg@csvax.caltech.edu; 256-80 Caltech/Pasadena CA 91125.
-
- --- 1,4 ----
- ! # Standard configuration file for "p2c" 1.16, the Pascal to C translator
- # Copyright (C) 1989 David Gillespie.
- # Author's address: daveg@csvax.caltech.edu; 256-80 Caltech/Pasadena CA 91125.
-
- ***************
- *** 1518,1523 ****
- --- 1518,1527 ----
- ArrayPutFBufName APUTFBUF # A special PutFBuf for files of arrays.
-
- ArrayPutName # A special Put for files of arrays.
- +
- + EofBufName BUFEOF # Name of a macro for "eof" of a buffered file.
- +
- + FilePosBufName BUFFPOS # Name of a macro for buffered "filepos".
-
-
-
- Files src/system.imp and ../dist/src/system.imp are identical
- Files src/system.m2 and ../dist/src/system.m2 are identical
- Files src/trans.c and ../dist/src/trans.c are identical
- diff -c -N -r -s src/trans.h ../dist/src/trans.h
- *** src/trans.h Fri Apr 13 21:04:57 1990
- --- ../dist/src/trans.h Tue May 1 00:09:54 1990
- ***************
- *** 1,4 ****
- ! /* "p2c", a Pascal to C translator, version 1.15.
- Copyright (C) 1989 David Gillespie.
- Author's address: daveg@csvax.caltech.edu; 256-80 Caltech/Pasadena CA 91125.
-
- --- 1,4 ----
- ! /* "p2c", a Pascal to C translator, version 1.16.
- Copyright (C) 1989 David Gillespie.
- Author's address: daveg@csvax.caltech.edu; 256-80 Caltech/Pasadena CA 91125.
-
- ***************
- *** 134,140 ****
- extern char *p2c_home;
- #endif
-
- ! #define P2C_VERSION "1.15"
-
-
-
- --- 134,140 ----
- extern char *p2c_home;
- #endif
-
- ! #define P2C_VERSION "1.16"
-
-
-
- ***************
- *** 530,535 ****
- --- 530,536 ----
- *
- * TK_POINTER: Pointer type.
- * tp->basetype => Base type of pointer.
- + * tp->smin => EK_NAME for type if not-yet-resolved forward; else NULL.
- * Only one pointer type is ever generated for a given other type;
- * each tp->pointertype points back to that type if it has been generated.
- *
- ***************
- *** 1030,1035 ****
- --- 1031,1037 ----
- extern char putfbufname[40], charputfbufname[40], arrayputfbufname[40];
- extern char getname[40], chargetname[40], arraygetname[40];
- extern char putname[40], charputname[40], arrayputname[40];
- + extern char eofbufname[40], fileposbufname[40];
- extern char storebitsname[40], signextname[40];
- extern char filenotfoundname[40], filenotopenname[40];
- extern char filewriteerrorname[40], badinputformatname[40], endoffilename[40];
- ***************
- *** 1592,1597 ****
- --- 1594,1601 ----
- 'C', 'V', "PUTNAME", (anyptr) putname, 40,
- 'C', 'V', "CHARPUTNAME", (anyptr) charputname, 40,
- 'C', 'V', "ARRAYPUTNAME", (anyptr) arrayputname, 40,
- + 'C', 'V', "EOFBUFNAME", (anyptr) eofbufname, 40,
- + 'C', 'V', "FILEPOSBUFNAME", (anyptr) fileposbufname, 40,
-
- /* RANGE CHECKING */
- 'S', 'V', "CASECHECK", (anyptr) &casecheck, 0,
- Files src/turbo.imp and ../dist/src/turbo.imp are identical
-
- exit 0 # Just in case...
-