suckless/slstatus

components/cat.c in master
Repositories | Summary | Log | Files | README | LICENSE

cat.c (652B) download


 1/* See LICENSE file for copyright and license details. */
 2#include <stdio.h>
 3#include <string.h>
 4
 5#include "../slstatus.h"
 6#include "../util.h"
 7
 8const char *
 9cat(const char *path)
10{
11        char *f;
12        FILE *fp;
13
14        if (!(fp = fopen(path, "r"))) {
15                warn("fopen '%s':", path);
16                return NULL;
17        }
18
19        f = fgets(buf, sizeof(buf) - 1, fp);
20        if (fclose(fp) < 0) {
21                warn("fclose '%s':", path);
22                return NULL;
23        }
24        if (!f)
25                return NULL;
26
27        if ((f = strrchr(buf, '\n')))
28                f[0] = '\0';
29
30        return buf[0] ? buf : NULL;
31}
32