From 8f3460ddde4cfd31350afcbb155fcee57248c655 Mon Sep 17 00:00:00 2001 From: eidheim Date: Sun, 27 Nov 2016 15:02:45 +0100 Subject: [PATCH] Slightly improved include guard removal: added preprocessor identifier check --- src/source_clang.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/source_clang.cc b/src/source_clang.cc index ab1c960..e33170c 100644 --- a/src/source_clang.cc +++ b/src/source_clang.cc @@ -252,14 +252,15 @@ void Source::ClangViewParse::remove_include_guard(std::string &buffer) { if(!(language && (language->get_id()=="chdr" || language->get_id()=="cpphdr"))) return; - static std::regex ifndef_regex("^[ \t]*#ifndef.*$"); - static std::regex define_regex("^[ \t]*#define.*$"); + static std::regex ifndef_regex("^[ \t]*#ifndef[ \t]+([A-Za-z0-9_]+).*$"); + static std::regex define_regex("^[ \t]*#define[ \t]+([A-Za-z0-9_]+).*$"); static std::regex endif_regex("^[ \t]*#endif.*$"); std::vector> ranges; bool found_ifndef=false, found_define=false; bool line_comment=false, multiline_comment=false; size_t start_of_line=0; std::string line; + std::string preprocessor_identifier; for(size_t c=0;c