diff options
| author | Thomas Schmucker <ts@its1.de> | 2020-06-13 17:10:58 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2020-06-13 17:10:58 +0200 |
| commit | 05e33fb46c233f063e36eb9664ccc5553a4ae1af (patch) | |
| tree | 570665f4d130d1aa30e56f88f1e5646bd8b42569 /csv-test.c | |
| parent | ac47b6e5fe71dae5e0dae6da5cc2a769a4277f30 (diff) | |
| download | libcsv-05e33fb46c233f063e36eb9664ccc5553a4ae1af.tar.gz libcsv-05e33fb46c233f063e36eb9664ccc5553a4ae1af.tar.bz2 libcsv-05e33fb46c233f063e36eb9664ccc5553a4ae1af.zip | |
zst => state, ZST_ => STATE_
Diffstat (limited to 'csv-test.c')
| -rw-r--r-- | csv-test.c | 64 |
1 files changed, 32 insertions, 32 deletions
| @@ -163,12 +163,12 @@ int | |||
| 163 | csv_read(csv_t *csv, FILE *in) | 163 | csv_read(csv_t *csv, FILE *in) |
| 164 | { | 164 | { |
| 165 | enum { | 165 | enum { |
| 166 | ZST_START_FIELD, | 166 | STATE_START_FIELD, |
| 167 | ZST_QUOTED_FIELD, | 167 | STATE_QUOTED_FIELD, |
| 168 | ZST_SIMPLE_FIELD, | 168 | STATE_SIMPLE_FIELD, |
| 169 | ZST_END_FIELD, | 169 | STATE_END_FIELD, |
| 170 | ZST_END_LINE, | 170 | STATE_END_LINE, |
| 171 | ZST_END_FILE, | 171 | STATE_END_FILE, |
| 172 | }; | 172 | }; |
| 173 | 173 | ||
| 174 | register const int QUOTE = csv->csv_options->quote_symbol; | 174 | register const int QUOTE = csv->csv_options->quote_symbol; |
| @@ -177,65 +177,65 @@ csv_read(csv_t *csv, FILE *in) | |||
| 177 | csv_string_reset(&csv->csv_string); | 177 | csv_string_reset(&csv->csv_string); |
| 178 | csv_field_reset(&csv->csv_field); | 178 | csv_field_reset(&csv->csv_field); |
| 179 | 179 | ||
| 180 | for ( int zst = ZST_START_FIELD; ; ) { | 180 | for ( int state = STATE_START_FIELD; ; ) { |
| 181 | int ch; | 181 | int ch; |
| 182 | 182 | ||
| 183 | switch ( zst ) { | 183 | switch ( state ) { |
| 184 | case ZST_START_FIELD: | 184 | case STATE_START_FIELD: |
| 185 | csv_field_append(&csv->csv_field, csv->csv_string.pos); | 185 | csv_field_append(&csv->csv_field, csv->csv_string.pos); |
| 186 | 186 | ||
| 187 | ch = getc(in); | 187 | ch = getc(in); |
| 188 | if ( ch == EOF ) { | 188 | if ( ch == EOF ) { |
| 189 | zst = ZST_END_FILE; | 189 | state = STATE_END_FILE; |
| 190 | } | 190 | } |
| 191 | else if ( ch == '\r' ) { /* Teste auf CR.. */ | 191 | else if ( ch == '\r' ) { /* Teste auf CR.. */ |
| 192 | ch = getc(in); | 192 | ch = getc(in); |
| 193 | if ( ch != '\n' ) { /* ... LF */ | 193 | if ( ch != '\n' ) { /* ... LF */ |
| 194 | ungetc(ch, in); | 194 | ungetc(ch, in); |
| 195 | } | 195 | } |
| 196 | zst = ZST_END_LINE; | 196 | state = STATE_END_LINE; |
| 197 | } | 197 | } |
| 198 | else if ( ch == '\n' ) { | 198 | else if ( ch == '\n' ) { |
| 199 | zst = ZST_END_LINE; | 199 | state = STATE_END_LINE; |
| 200 | } | 200 | } |
| 201 | else if ( ch == SEP ) { | 201 | else if ( ch == SEP ) { |
| 202 | zst = ZST_END_FIELD; | 202 | state = STATE_END_FIELD; |
| 203 | } | 203 | } |
| 204 | else if ( ch == QUOTE ) { | 204 | else if ( ch == QUOTE ) { |
| 205 | zst = ZST_QUOTED_FIELD; | 205 | state = STATE_QUOTED_FIELD; |
| 206 | } | 206 | } |
| 207 | else { | 207 | else { |
| 208 | csv_string_append(&csv->csv_string, ch); | 208 | csv_string_append(&csv->csv_string, ch); |
| 209 | zst = ZST_SIMPLE_FIELD; | 209 | state = STATE_SIMPLE_FIELD; |
| 210 | } | 210 | } |
| 211 | break; | 211 | break; |
| 212 | 212 | ||
| 213 | case ZST_QUOTED_FIELD: | 213 | case STATE_QUOTED_FIELD: |
| 214 | do { | 214 | do { |
| 215 | ch = getc(in); | 215 | ch = getc(in); |
| 216 | if ( ch == EOF ) { | 216 | if ( ch == EOF ) { |
| 217 | zst = ZST_END_FILE; | 217 | state = STATE_END_FILE; |
| 218 | } | 218 | } |
| 219 | else if ( ch == QUOTE ) { | 219 | else if ( ch == QUOTE ) { |
| 220 | ch = getc(in); | 220 | ch = getc(in); |
| 221 | if ( ch == EOF ) { | 221 | if ( ch == EOF ) { |
| 222 | zst = ZST_END_FILE; | 222 | state = STATE_END_FILE; |
| 223 | } | 223 | } |
| 224 | else if ( ch == QUOTE ) { | 224 | else if ( ch == QUOTE ) { |
| 225 | csv_string_append(&csv->csv_string, QUOTE); | 225 | csv_string_append(&csv->csv_string, QUOTE); |
| 226 | } | 226 | } |
| 227 | else if ( ch == SEP ) { | 227 | else if ( ch == SEP ) { |
| 228 | zst = ZST_END_FIELD; | 228 | state = STATE_END_FIELD; |
| 229 | } | 229 | } |
| 230 | else if ( ch == '\r' ) { | 230 | else if ( ch == '\r' ) { |
| 231 | ch = getc(in); | 231 | ch = getc(in); |
| 232 | if ( ch != '\n' ) { | 232 | if ( ch != '\n' ) { |
| 233 | ungetc(ch, in); | 233 | ungetc(ch, in); |
| 234 | } | 234 | } |
| 235 | zst = ZST_END_LINE; | 235 | state = STATE_END_LINE; |
| 236 | } | 236 | } |
| 237 | else if ( ch == '\n' ) { | 237 | else if ( ch == '\n' ) { |
| 238 | zst = ZST_END_LINE; | 238 | state = STATE_END_LINE; |
| 239 | } | 239 | } |
| 240 | else { | 240 | else { |
| 241 | csv_string_append(&csv->csv_string, QUOTE); | 241 | csv_string_append(&csv->csv_string, QUOTE); |
| @@ -245,44 +245,44 @@ csv_read(csv_t *csv, FILE *in) | |||
| 245 | else { | 245 | else { |
| 246 | csv_string_append(&csv->csv_string, ch); | 246 | csv_string_append(&csv->csv_string, ch); |
| 247 | } | 247 | } |
| 248 | } while ( zst == ZST_QUOTED_FIELD ); | 248 | } while ( state == STATE_QUOTED_FIELD ); |
| 249 | break; | 249 | break; |
| 250 | 250 | ||
| 251 | case ZST_SIMPLE_FIELD: | 251 | case STATE_SIMPLE_FIELD: |
| 252 | do { | 252 | do { |
| 253 | ch = getc(in); | 253 | ch = getc(in); |
| 254 | if ( ch == EOF ) { | 254 | if ( ch == EOF ) { |
| 255 | zst = ZST_END_FILE; | 255 | state = STATE_END_FILE; |
| 256 | } | 256 | } |
| 257 | else if ( ch == SEP ) { | 257 | else if ( ch == SEP ) { |
| 258 | zst = ZST_END_FIELD; | 258 | state = STATE_END_FIELD; |
| 259 | } | 259 | } |
| 260 | else if ( ch == '\r' ) { | 260 | else if ( ch == '\r' ) { |
| 261 | ch = getc(in); | 261 | ch = getc(in); |
| 262 | if ( ch != '\n' ) { | 262 | if ( ch != '\n' ) { |
| 263 | ungetc(ch, in); | 263 | ungetc(ch, in); |
| 264 | } | 264 | } |
| 265 | zst = ZST_END_LINE; | 265 | state = STATE_END_LINE; |
| 266 | } | 266 | } |
| 267 | else if ( ch == '\n' ) { | 267 | else if ( ch == '\n' ) { |
| 268 | zst = ZST_END_LINE; | 268 | state = STATE_END_LINE; |
| 269 | } | 269 | } |
| 270 | else { | 270 | else { |
| 271 | csv_string_append(&csv->csv_string, ch); | 271 | csv_string_append(&csv->csv_string, ch); |
| 272 | } | 272 | } |
| 273 | } while ( zst == ZST_SIMPLE_FIELD ); | 273 | } while ( state == STATE_SIMPLE_FIELD ); |
| 274 | break; | 274 | break; |
| 275 | 275 | ||
| 276 | case ZST_END_FIELD: | 276 | case STATE_END_FIELD: |
| 277 | csv_string_append(&csv->csv_string, '\0'); | 277 | csv_string_append(&csv->csv_string, '\0'); |
| 278 | zst = ZST_START_FIELD; | 278 | state = STATE_START_FIELD; |
| 279 | break; | 279 | break; |
| 280 | 280 | ||
| 281 | case ZST_END_LINE: | 281 | case STATE_END_LINE: |
| 282 | csv_string_append(&csv->csv_string, '\0'); | 282 | csv_string_append(&csv->csv_string, '\0'); |
| 283 | return csv->csv_field.pos; | 283 | return csv->csv_field.pos; |
| 284 | 284 | ||
| 285 | case ZST_END_FILE: | 285 | case STATE_END_FILE: |
| 286 | if ( csv_string_empty(&csv->csv_string) ) { | 286 | if ( csv_string_empty(&csv->csv_string) ) { |
| 287 | return -1; /* EOF reached */ | 287 | return -1; /* EOF reached */ |
| 288 | } | 288 | } |
