12000-04-09 Bruce Guenter <bguenter@bguenter.pointsnorth.com> 2 3 * count.cc (count): Added this routine to count the number of 4 instances of a single character in a string. 5 62000-04-06 Bruce Guenter <bguenter@bguenter.pointsnorth.com> 7 8 * fdobuf.cc (operator<<): Moved this routine out of an inline 9 declaration. 10 11 * iter.h: Moved the mystring_iter declarations into this file. 12 13 * rep.h: Moved the mystringrep declarations into this file. 14 15 * join.h: Moved the mystringjoin declarations into this file. 16 17 * mystring.h (class mystring): Renamed the "find_first" and 18 "find_last" routines that scan for items in a set to 19 "find_first_of" and "find_last_of". 20 211999-08-15 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 22 23 * mystring.h (class mystring_iter): Changed the default seperator 24 for strings to '\0' 25 (class mystring): Added a NUL constant (single 0 byte string). 26 271999-07-26 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 28 29 * mystring.h (class mystring_iter): Added this new iterator class, 30 taken from code used in vmailmgr. It is used to iterate over 31 essentially a token-delimited string. 32 331999-07-14 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 34 35 * Removed all vestiges of mystringtmp support from this library. 36 371999-07-13 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 38 39 * append.cc: Fixed same bug as below in append. 40 41 * assign.cc: Fixed bug in assign and dup where NULL pointers 42 caused a crash. 43 44 * append.cc, assign.cc: removed the mystringtmp versions of the 45 append, assign, and dup operations. mystringtmp now only exists 46 in the cons[2-7].cc files and tmp.cc 47 48 * find.cc: Split this file into find_first, find_first_of, 49 find_last, and find_last_of. 50 511999-07-12 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 52 53 * join.cc (traverse): This routine traverses the linked list and 54 builds a mystringrep out of it. 55 56 * mystring.h: Renamed TRACE to MYSTRING_TRACE. 57 Added a new mystringjoin class. This class is used to turn a list 58 of calls to "operator+" into a single constructor by building a 59 linked list on the stack. This will replace mystringtmp. 60 61 * rep.cc (struct _rep_stats): Fixed the percentage function to not 62 do divide-by-zero; modified the "slack" reporting to report a 63 percentage of the requested length. 64 65 * assign.cc: Re-added dup and assign functions for "char*" type, 66 moving the constructors and assignment operators inline. 67 68 * append.cc: Re-added append functions for "char*" type. 69 701999-07-08 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 71 72 * mystring.h (class mystring): Eliminated the "mystring" return 73 value for the assign and append operators, since this return value 74 is never used and causes extra operations. 75 76 * operator_plus.cc: Created this new file containing the 77 "operator+" routine. 78 79 * operator_pleq.cc: Created this new file containing all the 80 "operator+=" routines. 81 82 * assign.cc: Created this new file containing all the assign and 83 dup primitives. 84 85 * mystring.h (class mystring): Removed the += operator taking 86 "mystringtmp" parameter, and replaced it with two routines, one 87 for "const mystring&", and one for "const char*". This results in 88 a net code shrinkage. 89 90 * rep.cc (struct _rep_stats): Added this optional statistics 91 gathering class to determine the effectiveness of the slack space 92 and string appending. 93 94 * append.cc (append): Use the new rep->append routine. 95 96 * rep.cc (alloc): Allocate an amount of "slack" space when 97 allocating a string, to allow for later appends. 98 (append): This new routine appends a string to the current rep if 99 and only if the current rep has a single reference and the new 100 length of the string will fit within the current size. If not, it 101 makes a dup of this+str and returns a pointer to it. 102 1031999-06-07 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 104 105 * tmp.cc: Removed the contents of checkstr, and moved the 106 necessary parts into the constructors. This makes the code more 107 efficient, as the constructors are adequately specific to omit 108 some of the branches in the comparisons. It also ensures that len 109 is always initialized, allowing many of the simple functions to be 110 moved inline to the header file. 111 1121999-04-01 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> 113 114 * cons7.cc (mystring): Wrote this constructor to build a string 115 from 7 inputs. 116 117