Annotation of coherent/g/usr/lib/misc/span.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * One or more characters matching some criterion.
                      3:  * span(s1, matcher, fin)
                      4:  */
                      5: #include <stdio.h>
                      6: char *
                      7: span(s1, matcher, fin)
                      8: register char *s1;
                      9: int (*matcher)();
                     10: register char **fin;
                     11: {
                     12:        char c;
                     13:        char *start = s1;
                     14: 
                     15:        for (*fin = NULL; (c = *s1++) && (*matcher)(c); *fin = s1)
                     16:                ;
                     17:        if (NULL == *fin)
                     18:                return (NULL);
                     19:        return (start);
                     20: }
                     21: #ifdef TEST
                     22: #include <ctype.h>
                     23: #include "local_misc.h"
                     24: 
                     25: /* eliminate under ansi */
                     26: digit(s)
                     27: char s;
                     28: {
                     29:        return (isdigit(s));
                     30: }
                     31: 
                     32: main()
                     33: {
                     34:        char s1[80], *fin;
                     35: 
                     36:        for (;;) {
                     37:                ask(s1, "s1");
                     38:                if (!strcmp(s1, "quit"))
                     39:                        exit(0);
                     40:                if (NULL == span(s1, digit, &fin))
                     41:                        printf("No digits\n");
                     42:                else {
                     43:                        *fin = '\0';
                     44:                        printf("%s\n", s1);
                     45:                }
                     46:        }
                     47: }
                     48: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.