This commit is contained in:
Oliver Lehmann 1990-02-26 10:44:38 +00:00
parent e498b354aa
commit d527987e1c
3 changed files with 62 additions and 0 deletions

View File

View File

@ -0,0 +1,62 @@
# include "amx.h"
/* ONE CHARACTER STACK FOR 'UNGETC' BACKUP */
static int Pchar;
/*
** GTCHAR
** If 'Lcase' is set, all upper-case alphabetics are
** mapped into lower-case.
** The correct return is > 0; a return = 0 indicates end-of-file.
*/
gtchar()
{
register int chr;
extern int errno;
errno = 0;
/* USE STACKED CHARACTERS IF POSSIBLE */
if (chr = Pchar)
Pchar = 0;
else if ((chr = getc(FILE_inp)) < 0)
chr = 0;
# ifdef AMX_SC
if (!chr && !errno && FILE_exp)
{
fclose(FILE_inp);
FILE_inp = FILE_exp;
FILE_exp = (FILE *) 0;
Line = Line_exp;
return (gtchar());
}
# endif
/* UPDATE LINE COUNTER */
if (chr == '\n')
Line++;
if (Lcase && ((chr >= 'A'
# ifdef EBCDIC
&& chr <= 'I') || (chr >= 'J'
&& chr <= 'R') || (chr >= 'S'
# endif
&& chr <= 'Z')))
chr += 'a' - 'A';
return (chr);
}
/*
** BACKUP
** Saves the character argument in the global stack 'Pchar'
*/
backup(chr)
register int chr;
{
if (Pchar)
yyexit(6);
Pchar = chr;
if (chr == '\n')
Line--;
}

View File