ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/SiteMapper/Page.cpp
(Generate patch)

Comparing SiteMapper/Page.cpp (file contents):
Revision 330 by douglas, 2004-12-13T20:46:08-08:00 vs.
Revision 635 by douglas, 2005-12-31T16:12:15-08:00

# Line 4 | Line 4
4   //
5   // $Id$
6  
7 < #include "SiteMapper.hpp"
8 < #include "Matcher/Matcher.hpp"
7 > #include <cxx/standard.hh>
8  
9 < void Page::setUrl(const ext::String& url)
11 < {
12 <        api::Cerr << PCRE_MULTILINE << " = " << Matcher::defaults << ios::NewLine;
9 > #include <api/pcre/regex.hpp>
10  
11 <        Matcher matcher("^http://(.+)(/.*)?$", (PCRE_UNGREEDY | PCRE_DOTALL));
11 > #include "SiteMapper.hpp"
12  
13 <        api::Cerr << (PCRE_UNGREEDY | PCRE_DOTALL) << " = " << matcher.options << ios::NewLine;
13 > void Page::SetUrl(const cse::String& url)
14 > {
15 >        static api::Pcre::RegEx url_(_B("^http://([^/]+)(/.*)?$"));
16  
17 <        if (url == matcher)
17 >        if (api::Pcre::RegEx::Match match = url_(url))
18          {
19 <                address = matcher[1];
20 <
22 <                if (matcher.size() > 2) path = matcher[2]; else path = "/";
19 >                address = match[1];
20 >                path = !match[2].IsEmpty() ? match[2] : cse::String(_B("/"));
21          }
22          else
23 <        {
26 <                api::Cerr << program << ": Page.setUrl(" << url << ") failure.\n";
27 <
28 <                throw;
29 <        }
23 >                throw ext::StringException(url);
24   }
25  
26 < bool Page::operator==(const ext::String& thing)
26 > bool Page::operator==(const cse::String& thing)
27   {
28          return address == thing || path == thing || title == thing;
29   }
30  
37 bool Page::operator==(Matcher& matcher)
38 {
39        return address == matcher || path == matcher || title == matcher;
40 }
41
31   bool Page::operator==(const Page& page) const
32   {
33          if (address == page.address)
# Line 51 | Line 40 | bool Page::operator==(const Page& page)
40  
41   xml::TextWriter& operator<<(xml::TextWriter& xml, Page& page)
42   {
43 <        xml::ScopeElement item(xml, "item");
43 >        xml::ScopeElement item(xml, _B("item"));
44  
45 <        xml.OpenElement("link");
46 <        xml.SetAttribute("address", page.getUrl());
45 >        xml.OpenElement(_B("link"));
46 >        xml.SetAttribute(_B("address"), page.GetUrl());
47          xml.OutputText(page.title);
48          xml.CloseElement();
49  
50          if (!page.children.IsEmpty())
51          {
52 <                xml::ScopeElement list(xml, "list");
52 >                xml::ScopeElement list(xml, _B("list"));
53  
54 <                _mforeach (ext::Vector<Page>, child, page.children) xml << *child;
54 >                _foreach (ext::Vector<Page>, child, page.children) xml << *child;
55          }
56  
57          return xml;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines