| 4365 | BLANKTYPE is the kind of blanks that 'b' should skip. */ |
| 4366 | |
| 4367 | static char * |
| 4368 | set_ordering (char const *s, struct keyfield *key, enum blanktype blanktype) |
| 4369 | { |
| 4370 | while (*s) |
| 4371 | { |
| 4372 | switch (*s) |
| 4373 | { |
| 4374 | case 'b': |
| 4375 | if (blanktype == bl_start || blanktype == bl_both) |
| 4376 | key->skipsblanks = true; |
| 4377 | if (blanktype == bl_end || blanktype == bl_both) |
| 4378 | key->skipeblanks = true; |
| 4379 | break; |
| 4380 | case 'd': |
| 4381 | key->ignore = nondictionary; |
| 4382 | break; |
| 4383 | case 'f': |
| 4384 | key->translate = fold_toupper; |
| 4385 | break; |
| 4386 | case 'g': |
| 4387 | key->general_numeric = true; |
| 4388 | break; |
| 4389 | case 'h': |
| 4390 | key->human_numeric = true; |
| 4391 | break; |
| 4392 | case 'i': |
| 4393 | /* Option order should not matter, so don't let -i override |
| 4394 | -d. -d implies -i, but -i does not imply -d. */ |
| 4395 | if (! key->ignore) |
| 4396 | key->ignore = nonprinting; |
| 4397 | break; |
| 4398 | case 'M': |
| 4399 | key->month = true; |
| 4400 | break; |
| 4401 | case 'n': |
| 4402 | key->numeric = true; |
| 4403 | break; |
| 4404 | case 'R': |
| 4405 | key->random = true; |
| 4406 | break; |
| 4407 | case 'r': |
| 4408 | key->reverse = true; |
| 4409 | break; |
| 4410 | case 'V': |
| 4411 | key->version = true; |
| 4412 | break; |
| 4413 | default: |
| 4414 | return (char *) s; |
| 4415 | } |
| 4416 | ++s; |
| 4417 | } |
| 4418 | return (char *) s; |
| 4419 | } |
| 4420 | |
| 4421 | /* Initialize KEY. */ |
| 4422 | |