From 8b79971e2170cee30d452b9717f2be65eb238a2c Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 23 Mar 2011 16:59:41 -0500 Subject: [PATCH] Fix auto-generated reST :doc: references to strip .bro file suffixes. It's allowed for a script to "@load example.bro", but Sphinx doesn't want that file extension for the purposes of generating cross-referencing links to other documentation. --- src/BroDoc.cc | 16 ++++++++++++++++ src/BroDoc.h | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/BroDoc.cc b/src/BroDoc.cc index 12b8cce284..9eb804432a 100644 --- a/src/BroDoc.cc +++ b/src/BroDoc.cc @@ -56,6 +56,22 @@ BroDoc::~BroDoc() FreeBroDocObjPtrList(redefs); } +void BroDoc::AddImport(const std::string& s) + { + size_t ext_pos = s.find_last_of('.'); + + if ( ext_pos == std::string::npos ) + imports.push_back(s); + else + { + if ( s.substr(ext_pos + 1) == "bro" ) + imports.push_back(s.substr(0, ext_pos)); + else + fprintf(stderr, "Warning: skipped documenting @load of file " + "without .bro extension: %s\n", s.c_str()); + } + } + void BroDoc::SetPacketFilter(const std::string& s) { packet_filter = s; diff --git a/src/BroDoc.h b/src/BroDoc.h index a28a07561e..3ed92d9432 100644 --- a/src/BroDoc.h +++ b/src/BroDoc.h @@ -52,10 +52,11 @@ public: /** * Schedules an import (@load) to be documented. + * If the script being loaded has a .bro suffix, it is internally stripped. * This should be called whenever the scanner sees an @load. * @param s The name of the imported script. */ - void AddImport(const std::string& s) { imports.push_back(s); } + void AddImport(const std::string& s); /** * Schedules a namespace (module) to be documented.