ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FeepingCreaturism/Jargon.cpp
Revision: 230
Committed: 2004-09-06T20:50:27-07:00 (20 years, 9 months ago) by Douglas Thrift
File size: 1206 byte(s)
Log Message:
Ready?!

File Contents

# Content
1 // Feeping Creaturism
2 //
3 // Douglas Thrift
4 //
5 // $Id$
6
7 #include "Jargon.hpp"
8 #include "Matcher.hpp"
9
10 Jargon::Jargon(const ext::String& path, const ext::String& jargon, bool include,
11 const ext::String& relative) : include(include),
12 args(1, FeepingCreaturism::program)
13 {
14 args.push_back("-m");
15 args.push_back("-p");
16 args.push_back("jargon");
17 args.push_back("\"" + jargon + "\"");
18 args.push_back("-p");
19 args.push_back("include");
20 args.push_back(lexical_cast<ext::String>(include) + "()");
21
22 if (!relative.IsEmpty())
23 {
24 args.push_back("-p");
25 args.push_back("relative");
26 args.push_back("\"" + relative + "\"");
27 }
28
29 args.push_back(path + "/" + jargon);
30 args.push_back("jargon.xsl");
31 }
32
33 ios::PrintWriter& operator<<(ios::PrintWriter& pout, const Jargon& jargon)
34 {
35 redi::ipstream pin("/usr/local/bin/Xalan", jargon.args);
36
37 if (jargon.include)
38 {
39 std::string ignore;
40
41 std::getline(pin, ignore);
42 }
43
44 do
45 {
46 std::string line;
47
48 std::getline(pin, line);
49
50 while (jargon.include && line.find(" xmlns=") != std::string::npos)
51 {
52 std::string::size_type position(line.find(" xmlns="));
53
54 line.replace(position, 37, "");
55 }
56
57 pout << line << '\n';
58 }
59 while (pin.good());
60
61 return pout;
62 }

Properties

Name Value
svn:eol-style native
svn:keywords Id