From 15f030fd168ddc8af7c82f0a41894dcd04723405 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 11 Sep 2004 14:07:18 +0000 Subject: [PATCH] Now lines starting with "# " are skipped. This should fix problems when using a gcc 3.x preprocessor. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8917 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tools/gensyscalls/gensyscallinfos.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/tools/gensyscalls/gensyscallinfos.cpp b/src/tools/gensyscalls/gensyscallinfos.cpp index 20c1cbb241..b07a0ee5b4 100644 --- a/src/tools/gensyscalls/gensyscallinfos.cpp +++ b/src/tools/gensyscalls/gensyscallinfos.cpp @@ -211,13 +211,14 @@ private: if (!fInput.getline(buffer, sizeof(buffer))) throw EOFException("Unexpected end of input."); // parse it + vector line; int len = strlen(buffer); int tokenStart = 0; for (int i = 0; i < len; i++) { char c = buffer[i]; if (isspace(c)) { if (tokenStart < i) - fTokens.push_back(string(buffer + tokenStart, buffer + i)); + line.push_back(string(buffer + tokenStart, buffer + i)); tokenStart = i + 1; continue; } @@ -232,16 +233,24 @@ private: case ';': case ',': if (tokenStart < i) { - fTokens.push_back(string(buffer + tokenStart, + line.push_back(string(buffer + tokenStart, buffer + i)); } - fTokens.push_back(string(buffer + i, buffer + i + 1)); + line.push_back(string(buffer + i, buffer + i + 1)); tokenStart = i + 1; break; } } if (tokenStart < len) - fTokens.push_back(string(buffer + tokenStart, buffer + len)); + line.push_back(string(buffer + tokenStart, buffer + len)); + // drop the line, if it starts with "# ", as those are + // directions from the pre-processor to the compiler + if (line.size() >= 2) { + if (line[0] == "#" && isdigit(line[1][0])) + return; + } + for (int i = 0; i < (int)line.size(); i++) + fTokens.push_back(line[i]); } private: