// Feeping Creaturism // // Douglas Thrift // // $Id$ #include "Jargon.hpp" #include "Matcher.hpp" Jargon::Jargon(const ext::String& path, bool include, const ext::String& relative) { std::vector args(1, FeepingCreaturism::program); args.push_back("-p"); args.push_back("include"); args.push_back(lexical_cast(include) + "()"); if (!relative.IsEmpty()) { args.push_back("-p"); args.push_back("relative"); args.push_back("\"" + relative + "\""); } args.push_back(path); args.push_back("jargon.xsl"); redi::ipstream pin("/usr/local/bin/Xalan", args); if (include) { std::string ignore; std::getline(pin, ignore); } do { std::string line; std::getline(pin, line); buffer << line << '\n'; } while (pin.good()); }