// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the
-// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
#include <ctype.h>
+#include <cstring>
+
#include "strutils.hxx"
+using std::string;
+using std::vector;
+
namespace simgear {
namespace strutils {
while (i < len)
{
- while (i < len && isspace(str[i]))
+ while (i < len && isspace((unsigned char)str[i]))
{
++i;
}
j = i;
- while (i < len && !isspace(str[i]))
+ while (i < len && !isspace((unsigned char)str[i]))
{
++i;
}
{
result.push_back( str.substr(j, i-j) );
++countsplit;
- while (i < len && isspace(str[i]))
+ while (i < len && isspace((unsigned char)str[i]))
{
++i;
}
return split_whitespace( str, maxsplit );
vector<string> result;
- int n = strlen( sep );
+ int n = std::strlen( sep );
if (n == 0)
{
// Error: empty separator string
while (i+n <= len)
{
- if (s[i] == sep[0] && (n == 1 || memcmp(s+i, sep, n) == 0))
+ if (s[i] == sep[0] && (n == 1 || std::memcmp(s+i, sep, n) == 0))
{
result.push_back( str.substr(j,i-j) );
i = j = i + n;
static string
do_strip( const string& s, int striptype )
{
- // if (s.empty())
- // return s;
-
string::size_type len = s.length();
+ if( len == 0 ) // empty string is trivial
+ return s;
string::size_type i = 0;
if (striptype != RIGHTSTRIP)
{
return do_strip( s, BOTHSTRIP );
}
+ string
+ rpad( const string & s, string::size_type length, char c )
+ {
+ string::size_type l = s.length();
+ if( l >= length ) return s;
+ string reply = s;
+ return reply.append( length-l, c );
+ }
+
+ string
+ lpad( const string & s, size_t length, char c )
+ {
+ string::size_type l = s.length();
+ if( l >= length ) return s;
+ string reply = s;
+ return reply.insert( 0, length-l, c );
+ }
+
} // end namespace strutils
} // end namespace simgear