summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/misc.c39
-rw-r--r--apps/misc.h8
-rw-r--r--apps/settings.c37
3 files changed, 48 insertions, 36 deletions
diff --git a/apps/misc.c b/apps/misc.c
index a49739f92d..69cb7d3174 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -21,6 +21,9 @@
#include "file.h"
#include "lcd.h"
#include "sprintf.h"
+#include "errno.h"
+#include "system.h"
+
#define ONE_KILOBYTE 1024
#define ONE_MEGABYTE (1024*1024)
@@ -49,6 +52,42 @@ char *num2max5(unsigned int bytes, char *max5)
return max5;
}
+/* Read (up to) a line of text from fd into buffer and return number of bytes
+ * read (which may be larger than the number of bytes stored in buffer). If
+ * an error occurs, -1 is returned (and buffer contains whatever could be
+ * read). A line is terminated by a LF char. Neither LF nor CR chars are
+ * stored in buffer.
+ */
+int read_line(int fd, char* buffer, int buffer_size)
+{
+ int count = 0;
+ int num_read = 0;
+
+ errno = 0;
+
+ while (count < buffer_size)
+ {
+ unsigned char c;
+
+ if (1 != read(fd, &c, 1))
+ break;
+
+ num_read++;
+
+ if ( c == '\n' )
+ break;
+
+ if ( c == '\r' )
+ continue;
+
+ buffer[count++] = c;
+ }
+
+ buffer[MIN(count, buffer_size - 1)] = 0;
+
+ return errno ? -1 : num_read;
+}
+
#ifdef TEST_MAX5
int main(int argc, char **argv)
{
diff --git a/apps/misc.h b/apps/misc.h
index b5cf896b28..c8aa266d5f 100644
--- a/apps/misc.h
+++ b/apps/misc.h
@@ -22,3 +22,11 @@
Make sure to have space for 6 bytes in the buffer. 5 letters plus the
terminating zero byte. */
char *num2max5(unsigned int bytes, char *max5);
+
+/* Read (up to) a line of text from fd into buffer and return number of bytes
+ * read (which may be larger than the number of bytes stored in buffer). If
+ * an error occurs, -1 is returned (and buffer contains whatever could be
+ * read). A line is terminated by a LF char. Neither LF nor CR chars are
+ * stored in buffer.
+ */
+int read_line(int fd, char* buffer, int buffer_size);
diff --git a/apps/settings.c b/apps/settings.c
index 63ba04a356..81e4d12f69 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -44,6 +44,7 @@
#include "file.h"
#include "errno.h"
#include "system.h"
+#include "misc.h"
#ifdef HAVE_LCD_BITMAP
#include "icons.h"
#include "font.h"
@@ -707,42 +708,6 @@ void settings_load(void)
settings_apply();
}
-/* Read (up to) a line of text from fd into buffer and return number of bytes
- * read (which may be larger than the number of bytes stored in buffer). If
- * an error occurs, -1 is returned (and buffer contains whatever could be
- * read). A line is terminated by a LF char. Neither LF nor CR chars are
- * stored in buffer.
- */
-static int read_line(int fd, char* buffer, int buffer_size)
-{
- int count = 0;
- int num_read = 0;
-
- errno = 0;
-
- while (count < buffer_size)
- {
- unsigned char c;
-
- if (1 != read(fd, &c, 1))
- break;
-
- num_read++;
-
- if ( c == '\n' )
- break;
-
- if ( c == '\r' )
- continue;
-
- buffer[count++] = c;
- }
-
- buffer[MIN(count, buffer_size - 1)] = 0;
-
- return errno ? -1 : num_read;
-}
-
/* parse a line from a configuration file. the line format is:
setting name: setting value