--- deliantra/server/include/shstr.h 2007/02/05 02:07:40 1.12 +++ deliantra/server/include/shstr.h 2007/05/14 21:52:32 1.15 @@ -1,6 +1,8 @@ #ifndef SHSTR_H__ #define SHSTR_H__ +#include + #include "util.h" extern int buf_overflow (const char *buf1, const char *buf2, int bufsize); @@ -31,6 +33,14 @@ return length (s); } + // returns wether this shared string begins with the given prefix, + // used mainly for searched when users give only the start of a name. + bool begins_with (const char *prefix) const + { + int plen = strlen (prefix); + return !strncasecmp (s, prefix, plen) && length () >= plen; + } + static const char *find (const char *s); static const char *intern (const char *s); @@ -113,6 +123,12 @@ return a != b; } +static std::ostream &operator <<(std::ostream &o, const shstr &sh) +{ + o.write (sh.s, sh.length ()); + return o; +} + // only good for mass comparisons to shstr objects struct shstr_cmp {