~autopilot/xpathselect/1.4

« back to all changes in this revision

Viewing changes to lib/utils.cpp

  • Committer: Tarmac
  • Author(s): Thomi Richards
  • Date: 2013-01-18 03:25:00 UTC
  • mfrom: (25.1.9 trunk)
  • Revision ID: tarmac-20130118032500-2bhgu0n9r1tl0a62
Add capability for searching sub-trees with '//'.

Approved by PS Jenkins bot, Christopher Lee.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
* Copyright (C) 2012 Canonical Ltd
3
 
*
4
 
* This program is free software: you can redistribute it and/or modify
5
 
* it under the terms of the GNU General Public License version 3 as
6
 
* published by the Free Software Foundation.
7
 
*
8
 
* This program is distributed in the hope that it will be useful,
9
 
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
* GNU General Public License for more details.
12
 
*
13
 
* You should have received a copy of the GNU General Public License
14
 
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
*
16
 
*/
17
 
 
18
 
#include "utils.h"
19
 
 
20
 
namespace xpathselect
21
 
{
22
 
    namespace utils
23
 
    {
24
 
 
25
 
        bool IsQueryAbsolute(std::string const& query)
26
 
        {
27
 
            // we should never be dealing with empty queries, but if we do,
28
 
            // deal with them as if they were absolute.
29
 
            if (query.empty())
30
 
                return true;
31
 
            if (query.size() == 1 && query.at(0) == '/')
32
 
                return true;
33
 
            // corner case - treat '//' as an absolute query:
34
 
            if (query == "//")
35
 
                return true;
36
 
            return query.at(0) == '/' && query.at(1) != '/';
37
 
        }
38
 
    }
39
 
}