From: Jilles Tjoelker <jilles@xxxxxxxx> Date: Sat, 13 Jun 2009 16:17:45 -0500 For example, this can be used to detect tail calls in the string passed to -c. [jn: originally from Jilles as part of FreeBSD SVN r194128] Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- Could be squashed with patch 3. I split it out while considering using the same trick in cmdloop. src/input.c | 17 +++++++++++++++++ src/input.h | 1 + 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/src/input.c b/src/input.c index d31c45b..39d7893 100644 --- a/src/input.c +++ b/src/input.c @@ -325,6 +325,23 @@ again: } /* + * Returns if we are certain we are at EOF. Does not cause any more input + * to be read from the outside world. + */ + +int +preadateof(void) +{ + if (parsenleft > 0) + return 0; + if (parsefile->strpush) + return 0; + if (parsenleft == EOF_NLEFT || parsefile->buf == NULL) + return 1; + return 0; +} + +/* * Undo the last call to pgetc. Only one character may be pushed back. * PEOF may be pushed back. */ diff --git a/src/input.h b/src/input.h index 50a7797..d123045 100644 --- a/src/input.h +++ b/src/input.h @@ -53,6 +53,7 @@ extern char *parsenextc; /* next character in input buffer */ int pgetc(void); int pgetc2(void); int preadbuffer(void); +int preadateof(void); void pungetc(void); void pushstring(char *, void *); void popstring(void); -- 1.7.5.rc0 -- To unsubscribe from this list: send the line "unsubscribe dash" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html