Add mandoc-manpage for head(1) and clean up code

and mark it as finished in the README.
This commit is contained in:
FRIGN
2015-01-25 22:01:26 +01:00
parent 454fab03aa
commit 741d8c9a76
3 changed files with 61 additions and 39 deletions

39
head.c
View File

@@ -4,15 +4,30 @@
#include <string.h>
#include <unistd.h>
#include "text.h"
#include "util.h"
static void head(FILE *, const char *, long);
static void
head(FILE *fp, const char *str, long n)
{
char *buf = NULL;
size_t size = 0;
ssize_t len;
unsigned long i = 0;
while (i < n && ((len = getline(&buf, &size, fp)) != -1)) {
fputs(buf, stdout);
if (buf[len - 1] == '\n')
i++;
}
free(buf);
if (ferror(fp))
eprintf("%s: read error:", str);
}
static void
usage(void)
{
eprintf("usage: %s [-n lines] [file...]\n", argv0);
eprintf("usage: %s [-n lines] [-N] [file...]\n", argv0);
}
int
@@ -54,21 +69,3 @@ main(int argc, char *argv[])
}
return ret;
}
static void
head(FILE *fp, const char *str, long n)
{
char *buf = NULL;
size_t size = 0;
ssize_t len;
unsigned long i = 0;
while (i < n && ((len = getline(&buf, &size, fp)) != -1)) {
fputs(buf, stdout);
if (buf[len - 1] == '\n')
i++;
}
free(buf);
if (ferror(fp))
eprintf("%s: read error:", str);
}