1 //========================================================================
2 // Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.
4 // Permission is hereby granted, free of charge, to any person obtaining a
5 // copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, distribute with modifications, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
12 // The above copyright notice and this permission notice shall be included
13 // in all copies or substantial portions of the Software.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 // IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
19 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
21 // THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 // Except as contained in this notice, the name(s) of the above copyright
24 // holders shall not be used in advertising or otherwise to promote the
25 // sale, use or other dealings in this Software without prior written
27 //========================================================================
29 //========================================================================
30 // Author: Jan-Marten Spit <jmspit@euronet.nl>
31 //========================================================================
39 * standard C natural string compare
40 * @param s1 left string
41 * @param s2 right string
42 * @return -1 when s1 < s2, 0 when s1 == s2, 1 when s1 > s2
44 int natstrcmp( const char* s1
, const char* s2
);
47 * STL natural less-than string compare
48 * @param s1 left string
49 * @param s2 right string
50 * @return true when natural s1 < s2
52 bool natstrlt( const char* s1
, const char* s2
);
55 * @param s1 left string
56 * @param s2 right string
57 * std::string variant of natstrlt.
58 * @return true when natural s1 < s2
60 inline bool stlnatstrlt( const std::string
& s1
, const std::string
&s2
) {
61 return natstrlt( s1
.c_str(), s2
.c_str() );