From 9d57b17e209983252f0ebda98087316577f04e6e Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Mon, 12 Nov 2018 16:57:34 +0330 Subject: update --- cgrep.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'cgrep.cpp') diff --git a/cgrep.cpp b/cgrep.cpp index a4855be..87c60a1 100644 --- a/cgrep.cpp +++ b/cgrep.cpp @@ -51,7 +51,7 @@ cl::opt CO_CLASS("class", cl::desc("match class declrations only"), cl::in cl::opt CO_STRUCT("struct", cl::desc("match structures only"), cl::init(false), cl::cat(CGrepCat), cl::Optional); // done cl::opt CO_UNION("union", cl::desc("match unions only"), cl::init(false), cl::cat(CGrepCat), cl::Optional); // done cl::opt CO_MACRO("macro", cl::desc("match macro definitions"), cl::init(false), cl::cat(CGrepCat), cl::Optional); //done -cl::opt CO_HEADER("header", cl::desc("match headers in header inclusions"), cl::init(false), cl::cat(CGrepCat), cl::Optional); +cl::opt CO_HEADER("header", cl::desc("match headers in header inclusions"), cl::init(false), cl::cat(CGrepCat), cl::Optional); //done cl::opt CO_ALL("all", cl::desc("turns on all switches other than nameddecl"), cl::init(false), cl::cat(CGrepCat), cl::Optional); // done cl::opt CO_NAMEDDECL("nameddecl", cl::desc("matches all named declrations"), cl::init(false), cl::cat(CGrepCat), cl::Optional); // done cl::opt CO_AWK("awk", cl::desc("outputs location in a gawk freidnly format"), cl::init(false), cl::cat(CGrepCat), cl::Optional); // done @@ -361,7 +361,17 @@ public: const clang::Module *Imported, SrcMgr::CharacteristicKind FileType) { #endif - if (CO_HEADER) {} + if (CO_HEADER) { + CheckSLValidity(HashLoc); + SourceLocation SL = Devi::SourceLocationHasMacro(HashLoc, Rewrite, "start"); + if (Devi::IsTheMatchInSysHeader(CO_SYSHDR, SM, SL)) return void(); + if (!Devi::IsTheMatchInMainFile(CO_MAINFILE, SM, SL)) return void(); + std::string name = FileName.str(); + if (regex_handler(REGEX_PP(CO_REGEX), name)) { + std::cout << name << "\t"; + std::cout << SL.printToString(SM) << "\n"; + } + } } private: -- cgit v1.2.3