From b95884785070ad69e3ad0f3097a410bab251b68e Mon Sep 17 00:00:00 2001 From: John Date: Mon, 30 May 2022 14:22:38 -0700 Subject: [PATCH] Fixed files with backslashes not reporting any items Parse_linemarker was turning double backslashes into quadruple backslashes. Making it instead turn them into single backslashes makes the `lm.value().file == path` comparison true in preprocess() so that p.enable_write() is called. Fixes #106. --- src/libclang/preprocessor.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libclang/preprocessor.cpp b/src/libclang/preprocessor.cpp index ddbbf74..8d63ee5 100644 --- a/src/libclang/preprocessor.cpp +++ b/src/libclang/preprocessor.cpp @@ -1030,10 +1030,13 @@ ts::optional parse_linemarker(position& p) p.skip(); std::string file_name; - for (; !starts_with(p, "\""); p.skip()) + for (; !starts_with(p, R"(")"); p.skip()) { - if (*p.ptr() == '\\') - file_name += "\\\\"; + if (starts_with(p, R"(\\)")) + { + file_name += R"(\)"; + p.skip(); + } else file_name += *p.ptr(); }