DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T c

⟦5e09185c3⟧ TextFile

    Length: 1822 (0x71e)
    Types: TextFile
    Names: »cat.c«

Derivation

└─⟦87ddcff64⟧ Bits:30001253 CPHDIST85 Tape, 1985 Autumn Conference Copenhagen
    └─ ⟦this⟧ »cph85dist/rman/daemon/cat.c« 

TextFile

#ifndef lint
static char *RCSid = "$Header: cat.c,v 1.6 85/08/27 15:16:11 broome Exp $";
#endif

/*
 * $Log:    cat.c,v $
 * Revision 1.6  85/08/27  15:16:11  broome
 * Last cleanup before release.
 * 
 * Revision 1.5  85/07/06  16:55:41  broome
 * 
 * Revision 1.4  85/07/03  17:34:11  broome
 * 
 * Revision 1.3  85/07/03  15:41:37  broome
 * Safety check before major revisions...
 * 
 * Revision 1.2  85/07/02  21:05:36  broome
 * 
 * Revision 1.1  85/06/25  11:23:29  broome
 * Initial revision
 */

#include "defs.h"
#include "response.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>

cat (argc, argv)
int   argc;
char *argv[];
{
    extern  int errno;
    struct  stat statb;
    struct  where *wp;
    char    line[256];
    long    date;
    FILE    *fp;

    wp = find (--argc, ++argv);
    if (wp->found) {
        (void) stat (wp->man, &statb);  /* stat the unformatted form */
        date = statb.st_mtime;   /* last modification date */

        if (stat (wp->cat, &statb) < 0 ||   /* doesn't exist */
            statb.st_size == 0 ||           /* zero length   */
            statb.st_mtime < date)          /* out of date   */
                if (format (wp->man, wp->cat))
                    return;

        if ((fp = fopen (wp->cat, "r")) == NULL)  /* should have it ! */
                printf ("%d Cannot open %s: errno %d.\r\n", ERR_NOFILE,
                            wp->cat, errno);
        else {
            printf ("%d Here comes the man page for %s! (%s)\r\n", OK_COMING,
                    wp->name, wp->cat);

            while (fgets (line, 256, fp))  /* don't bother with \n => \r\n */
                fputs (line, stdout);

            puts (".\r");
            fclose (fp);
        }
    } else     /* path not found */
        notfound (wp);
}