2 public import static "ecere"
7 public enum Trim { no, left = 1, right = 2, ends = 3, middle = 4, all = 7 };
9 void TrimChars(char * string, char * output, char * chars, Trim trim, bool squash, char alt)
11 char * s = string, * o = output;
13 bool keepChar = (trim & left) != left;
14 bool keepMiddleChars = (trim & middle) != middle;
28 if(!keepChar && keepMiddleChars)
33 if(keepMiddleChars && (trim & right) == right && o > output && *(o-1) == alt)
38 char * TrimCharsCopy(char * string, char * chars, Trim trim, bool squash, char alt)
40 int len = strlen(string);
41 char * output = new char[len+1];
42 TrimChars(string, output, chars, trim, squash, alt);
44 output = renew output char[len+1];
48 void TrimTestChars(char * string, char * output, int (*CharTest)(char), Trim trim, bool squash, char alt)
50 char * s = string, * o = output;
52 bool keepChar = (trim & left) != left;
53 bool keepMiddleChars = (trim & middle) != middle;
67 if(!keepChar && keepMiddleChars)
72 if(keepMiddleChars && (trim & right) == right && o > output && *(o-1) == alt)
77 char * TrimTestCharsCopy(char * string, int (*CharTest)(char), Trim trim, bool squash, char alt)
79 int len = strlen(string);
80 char * output = new char[len+1];
81 TrimTestChars(string, output, CharTest, trim, squash, alt);
83 output = renew output char[len+1];