Annotation of 43BSD/contrib/notes/src/pattern.c, revision 1.1

1.1     ! root        1: #include "parms.h"
        !             2: #include "structs.h"
        !             3: 
        !             4: #ifdef RCSIDENT
        !             5: static char rcsid[] = "$Header: pattern.c,v 1.7 85/01/18 15:34:07 notes Rel $";
        !             6: #endif RCSIDENT
        !             7: 
        !             8: /*
        !             9:  *     dopat - matches notesfile names and calls the desired routine with
        !            10:  *     each matched arguement!
        !            11:  *
        !            12:  *     Ray Essick                      Feb 25, 1982
        !            13:  */
        !            14: 
        !            15: FILE * popen ();                                       /* declare the function! */
        !            16: 
        !            17: dopat (p, what)
        !            18: char   *p;                                             /* the pattern to match */
        !            19: int     (*what) ();                                    /* routine to be called */
        !            20: {
        !            21:     char    cmd[CMDLEN];
        !            22:     int     c,
        !            23:             i;
        !            24:     FILE * zfile;
        !            25: 
        !            26:     sprintf (cmd, "(cd %s;echo %s)", Mstdir, p);
        !            27:     zfile = popen (cmd, "r");                          /* read the output */
        !            28:     if (zfile == (FILE *) NULL)
        !            29:        return (0);                                     /* failed somewhere */
        !            30:                                                        /* pseudo-failure */
        !            31: 
        !            32:     do
        !            33:     {
        !            34:        i = 0;
        !            35:        while ((c = getc (zfile)) != ' ' && (c != '\n') && (c != EOF))
        !            36:            cmd[i++] = c;
        !            37:        if (i == 0)
        !            38:            break;
        !            39:        cmd[i++] = '\0';
        !            40:        i = (*what) (cmd);                              /* call his routine for him */
        !            41:     } while ((c != EOF) && (i != QUITFAST) && (i != QUITUPD));
        !            42:     pclose (zfile);                                    /* close that pipe! */
        !            43: 
        !            44:     return i;                                          /* return the return code */
        !            45: }

unix.superglobalmegacorp.com

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