From c9fb11bd60a2170fb896d77ff8d7706f563ad597 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Mon, 8 Nov 2004 06:43:11 +0000 Subject: updated to version 2.0 --- util.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 util.h (limited to 'util.h') diff --git a/util.h b/util.h new file mode 100644 index 00000000..8ab841de --- /dev/null +++ b/util.h @@ -0,0 +1,37 @@ +#ifndef _UTIL_H +#define _UTIL_H + +inline char * skip_ws(char * ptr) { + while (*ptr == ' ' || *ptr == '\t' || *ptr == '\n') + ptr++; + return ptr; +} + +inline char peek_next_nonws(std::istream& in) { + char c = in.peek(); + while (! in.eof() && std::isspace(c)) { + in.get(c); + c = in.peek(); + } + return c; +} + +#define READ_INTO(str, targ, size, var, cond) { \ + char * _p = targ; \ + var = str.peek(); \ + while (! str.eof() && var != '\n' && (cond) && _p - targ < size) { \ + str.get(var); \ + if (str.eof()) \ + break; \ + if (var == '\\') { \ + str.get(var); \ + if (in.eof()) \ + break; \ + } \ + *_p++ = var; \ + var = str.peek(); \ + } \ + *_p = '\0'; \ +} + +#endif // _UTIL_H -- cgit v1.2.3