#ifdef NALL_STRING_INTERNAL_HPP namespace nall { //limit defaults to zero, which will underflow on first compare; equivalent to no limit template char* ltrim(char *str, const char *key) { unsigned limit = Limit; if(!key || !*key) return str; while(strbegin(str, key)) { char *dest = str, *src = str + strlen(key); while(true) { *dest = *src++; if(!*dest) break; dest++; } if(--limit == 0) break; } return str; } template char* rtrim(char *str, const char *key) { unsigned limit = Limit; if(!key || !*key) return str; while(strend(str, key)) { str[strlen(str) - strlen(key)] = 0; if(--limit == 0) break; } return str; } template char* trim(char *str, const char *key, const char *rkey) { if(rkey) return ltrim(rtrim(str, rkey), key); return ltrim(rtrim(str, key), key); } } #endif