From 527a8de007076606a3a4f5add720e816bee05aed Mon Sep 17 00:00:00 2001 From: cmay Date: Wed, 19 Jul 2006 01:57:01 +0000 Subject: [lcd4linux @ 2006-07-19 01:57:01 by cmay] fixed double read of last line in file git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@674 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- plugin_file.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'plugin_file.c') diff --git a/plugin_file.c b/plugin_file.c index 24ac815..368eec9 100644 --- a/plugin_file.c +++ b/plugin_file.c @@ -1,4 +1,4 @@ -/* $Id: plugin_file.c,v 1.1 2006/02/19 15:42:19 reinelt Exp $ +/* $Id: plugin_file.c,v 1.2 2006/07/19 01:57:01 cmay Exp $ * * plugin to perform simple file operations * @@ -23,6 +23,9 @@ * * * $Log: plugin_file.c,v $ + * Revision 1.2 2006/07/19 01:57:01 cmay + * fixed double read of last line in file + * * Revision 1.1 2006/02/19 15:42:19 reinelt * file plugin from Chris Maj * @@ -69,7 +72,7 @@ static void my_readline(RESULT * result, RESULT * arg1, RESULT * arg2) error("readline couldn't open file '%s'", R2S(arg1)); } else { i = 0; - while (!feof(fp) && i < reqline) { + while (!feof(fp) && i++ < reqline) { fgets(val2, sizeof(val2), fp); size = strcspn(val2, "\n"); strncpy(value, val2, size); @@ -80,11 +83,10 @@ static void my_readline(RESULT * result, RESULT * arg1, RESULT * arg2) fgets(val2, sizeof(val2), fp); pos = strchr(val2, '\n'); } - i++; } fclose(fp); - if (i < reqline) { - error("readline requested line %d but file only had %d lines", reqline, i); + if (i <= reqline) { + error("readline requested line %d but file only had %d lines", reqline, i - 1); value[0] = '\0'; } } -- cgit v1.2.3