2 public import static "ecere"
7 public enum Trim { no, left = 1, right = 2, ends = 3, middle = 4, all = 7 };
9 void TrimChars(const char * string, char * output, const char * chars, Trim trim, bool squash, char alt)
11 const char * s = string;
14 bool keepChar = (trim & left) != left;
15 bool keepMiddleChars = (trim & middle) != middle;
29 if(!keepChar && keepMiddleChars)
34 if(keepMiddleChars && (trim & right) == right && o > output && *(o-1) == alt)
39 char * TrimCharsCopy(const char * string, const char * chars, Trim trim, bool squash, char alt)
41 int len = strlen(string);
42 char * output = new char[len+1];
43 TrimChars(string, output, chars, trim, squash, alt);
45 output = renew output char[len+1];
49 void TrimTestChars(const char * string, char * output, int (*CharTest)(char), Trim trim, bool squash, char alt)
51 const char * s = string;
54 bool keepChar = (trim & left) != left;
55 bool keepMiddleChars = (trim & middle) != middle;
69 if(!keepChar && keepMiddleChars)
74 if(keepMiddleChars && (trim & right) == right && o > output && *(o-1) == alt)
79 char * TrimTestCharsCopy(const char * string, int (*CharTest)(char), Trim trim, bool squash, char alt)
81 int len = strlen(string);
82 char * output = new char[len+1];
83 TrimTestChars(string, output, CharTest, trim, squash, alt);
85 output = renew output char[len+1];