ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FeepingCreaturism/Jargon.cpp
Revision: 270
Committed: 2004-10-27T23:44:48-07:00 (20 years, 7 months ago) by Douglas Thrift
File size: 1204 byte(s)
Log Message:
Join for now.

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 {
13 args.InsertLast("--stringparam");
14 args.InsertLast("jargon");
15 args.InsertLast(jargon);
16 args.InsertLast("--param");
17 args.InsertLast("include");
18 args.InsertLast(ios::String() << include << "()");
19
20 if (!relative.IsEmpty())
21 {
22 args.InsertLast("--stringparam");
23 args.InsertLast("relative");
24 args.InsertLast(relative);
25 }
26
27 args.InsertLast("jargon.xsl");
28 args.InsertLast(ios::String() << path << "/" << jargon);
29 }
30
31 ios::PrintWriter& operator<<(ios::PrintWriter& pout, const Jargon& jargon)
32 {
33 _S<api::Process> xslt("/usr/local/bin/xsltproc", jargon.args);
34
35 if (jargon.include) ios::ReadLine(*xslt.GetReader());
36
37 if (jargon.include)
38 {
39 ext::String line;
40 Matcher matcher("^(.*) xmlns=\"http://www.w3.org/1999/xhtml\"(.*)$");
41
42 while (ios::ReadLine(*xslt.GetReader(), line))
43 {
44 while (line == matcher) line = matcher[1] + matcher[2];
45
46 pout << line << ios::NewLine;
47 }
48 }
49 else ios::ReadToWrite(*xslt.GetReader(), pout);
50
51 xslt.Join();
52
53 return pout;
54 }

Properties

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