- string convertToLowerCase(const string& str)
- {
- // proxy onto osgDB - easy to reimplement here, but let's avoid
- // code duplication for the moment.
- return osgDB::convertToLowerCase(str);
- }
+ 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 );
+ }
+
+ bool
+ starts_with( const string & s, const string & substr )
+ {
+ return s.find( substr ) == 0;
+ }
+
+ bool
+ ends_with( const string & s, const string & substr )
+ {
+ size_t n = s.rfind( substr );
+ return (n != string::npos) && (n == s.length() - substr.length());
+ }