From 4d3ad67ab37a25d0edfccdc34d29ec550e0802b6 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Tue, 29 Dec 2015 11:52:12 -0600 Subject: Add strafter() to lib. --- lib/lib.c | 8 ++++++++ lib/lib.h | 1 + toys/other/vmstat.c | 7 ++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/lib.c b/lib/lib.c index 5ee7325c..c89aeb60 100644 --- a/lib/lib.c +++ b/lib/lib.c @@ -342,6 +342,14 @@ char *strlower(char *s) return try; } +// strstr but returns pointer after match +char *strafter(char *haystack, char *needle) +{ + char *s = strstr(haystack, needle); + + return s ? s+strlen(needle) : s; +} + // Remove trailing \n char *chomp(char *s) { diff --git a/lib/lib.h b/lib/lib.h index 5f70c8cc..235b208f 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -173,6 +173,7 @@ long atolx(char *c); long atolx_range(char *numstr, long low, long high); int stridx(char *haystack, char needle); char *strlower(char *s); +char *strafter(char *haystack, char *needle); char *chomp(char *s); int unescape(char c); int strstart(char **a, char *b); diff --git a/toys/other/vmstat.c b/toys/other/vmstat.c index df35db12..ae856cf6 100644 --- a/toys/other/vmstat.c +++ b/toys/other/vmstat.c @@ -62,10 +62,7 @@ static void get_vmstat_proc(struct vmstat_proc *vmstat_proc) xreadfile(name = vmstuff[i], toybuf, sizeof(toybuf)); continue; - } else { - if (!(p = strstr(toybuf, vmstuff[i]))) goto error; - p += strlen(vmstuff[i]); - } + } else if (!(p = strafter(toybuf, vmstuff[i]))) goto error; if (1 != sscanf(p, "%"PRIu64"%n", new++, &j)) goto error; p += j; } @@ -123,7 +120,7 @@ void vmstat_main(void) if (!loop) { char *s = toybuf; - xreadfile("/proc/uptime", toybuf, sizeof(toybuf)-1); + xreadfile("/proc/uptime", toybuf, sizeof(toybuf)); while (*(s++) > ' '); sscanf(s, "%"PRIu64, &units); } else units = loop_delay; -- cgit v1.2.3