From 30f0686fb2d332cdc0ced15ac2c04094a127783a Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Sun, 10 Jul 2016 20:27:27 +0200 Subject: various code that may end up as a mail client --- next.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 next.c (limited to 'next.c') diff --git a/next.c b/next.c new file mode 100644 index 0000000..f82e437 --- /dev/null +++ b/next.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int fd; + struct stat st; + + fd = open("map", O_RDONLY); + if (!fd) + exit(101); + + fstat(fd, &st); + char *map = mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + if (!map) + exit(102); + + char *s = strstr(map, argv[1]); + if (!argv[1][0] || !s) { + // default to first line + s = map; + } else { + while (*s && *s != '\n') + s++; + s++; + } + char *t = s; + while (*t && *t != '\n') + t++; + if (!*t) + exit(1); + t++; + write(1, s, t-s); + + return 0; +} -- cgit 1.4.1