Changes in src/libcfa/iostream.c [b63e376:4040425]
- File:
-
- 1 edited
-
src/libcfa/iostream.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/iostream.c
rb63e376 r4040425 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Mar 7 13:51:23201613 // Update Count : 2 2712 // Last Modified On : Wed Mar 2 18:06:35 2016 13 // Update Count : 208 14 14 // 15 15 … … 133 133 forall( dtype ostype | ostream( ostype ) ) 134 134 ostype * ?|?( ostype *os, const char *cp ) { 135 enum { Open = 1, Close, OpenClose };136 static const char mask[256] = {137 // opening delimiters138 ['('] : Open, ['['] : Open, ['{'] : Open,139 ['$'] : Open, [L'£'] : Open, [L'¥'] : Open, [L'¢'] : Open, [L'¿'] : Open, [L'«'] : Open,140 // closing delimiters141 [','] : Close, ['.'] : Close, [':'] : Close, [';'] : Close, ['!'] : Close, ['?'] : Close,142 [')'] : Close, [']'] : Close, ['}'] : Close,143 ['%'] : Close, [L'»'] : Close,144 // opening-closing delimiters145 ['\''] : OpenClose, ['`'] : OpenClose, ['"'] : OpenClose,146 }; // mask147 148 135 int len = strlen( cp ); 149 136 // null string => no separator 150 137 if ( len == 0 ) { sepOff( os ); return os; } 151 // first character NOT spacing or closingpunctuation => add left separator152 if ( sepPrt( os ) && isspace( cp[0] ) == 0 && mask[ cp[0] ] != Close && mask[ cp[0] ] != OpenClose) {138 // first character NOT spacing or special punctuation => add left separator 139 if ( sepPrt( os ) && isspace( cp[0] ) == 0 && cp[0] != '.' && cp[0] != ',' ) { 153 140 prtfmt( os, "%s", sepGet( os ) ); 154 141 } // if 155 // last character IS spacing or openingpunctuation => turn off separator for next item142 // last character is spacing or special punctuation => turn off separator for next item 156 143 unsigned int posn = len - 1; 157 if ( isspace( cp[posn] ) || mask[ cp[posn] ] == Open || mask[ cp[posn] ] == OpenClose) {144 if ( isspace( cp[posn] ) || cp[posn] == ':' || cp[posn] == '$' ) { 158 145 sepOff( os ); 159 146 } else {
Note:
See TracChangeset
for help on using the changeset viewer.