summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/text_viewer/tv_settings.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/apps/plugins/text_viewer/tv_settings.c b/apps/plugins/text_viewer/tv_settings.c
index 2419ae0705..549b0d7ab9 100644
--- a/apps/plugins/text_viewer/tv_settings.c
+++ b/apps/plugins/text_viewer/tv_settings.c
@@ -43,7 +43,7 @@
43 * overlap_page_mode 1 43 * overlap_page_mode 1
44 * header_mode 1 44 * header_mode 1
45 * footer_mode 1 45 * footer_mode 1
46 * scroll_mode 1 46 * vertical_scroll_mode 1
47 * autoscroll_speed 1 47 * autoscroll_speed 1
48 * horizontal_scrollbar 1 48 * horizontal_scrollbar 1
49 * horizontal_scroll_mode 1 49 * horizontal_scroll_mode 1
@@ -86,7 +86,7 @@
86 * overlap_page_mode 1 86 * overlap_page_mode 1
87 * header_mode 1 87 * header_mode 1
88 * footer_mode 1 88 * footer_mode 1
89 * scroll_mode 1 89 * vertical_scroll_mode 1
90 * autoscroll_speed 1 90 * autoscroll_speed 1
91 * horizontal_scrollbar 1 91 * horizontal_scrollbar 1
92 * horizontal_scroll_mode 1 92 * horizontal_scroll_mode 1
@@ -140,8 +140,8 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre
140 if (rb->read(pfd, buf, read_size) < 0) 140 if (rb->read(pfd, buf, read_size) < 0)
141 return false; 141 return false;
142 142
143 prefs->word_mode = *p++; 143 prefs->word_mode = *p++;
144 prefs->line_mode = *p++; 144 prefs->line_mode = *p++;
145 145
146 prefs->windows = *p++; 146 prefs->windows = *p++;
147 if (version <= 1) 147 if (version <= 1)
@@ -160,7 +160,7 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre
160 160
161 if (version < 7) 161 if (version < 7)
162 { 162 {
163 prefs->statusbar = false; 163 prefs->statusbar = false;
164 if (*p > 1) 164 if (*p > 1)
165 { 165 {
166 prefs->header_mode = ((*p & 1) != 0); 166 prefs->header_mode = ((*p & 1) != 0);
@@ -212,7 +212,7 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre
212 prefs->statusbar = (*p++ != 0); 212 prefs->statusbar = (*p++ != 0);
213 213
214#ifdef HAVE_LCD_BITMAP 214#ifdef HAVE_LCD_BITMAP
215 rb->memcpy(prefs->font_name, buf + read_size - MAX_PATH, MAX_PATH); 215 rb->strlcpy(prefs->font_name, buf + read_size - MAX_PATH, MAX_PATH);
216 216
217 prefs->font = rb->font_get(FONT_UI); 217 prefs->font = rb->font_get(FONT_UI);
218#endif 218#endif
@@ -225,6 +225,7 @@ static bool tv_write_preferences(int pfd, const struct tv_preferences *prefs)
225 unsigned char buf[TV_PREFERENCES_SIZE]; 225 unsigned char buf[TV_PREFERENCES_SIZE];
226 unsigned char *p = buf; 226 unsigned char *p = buf;
227 227
228 rb->memset(buf, 0, TV_PREFERENCES_SIZE);
228 *p++ = prefs->word_mode; 229 *p++ = prefs->word_mode;
229 *p++ = prefs->line_mode; 230 *p++ = prefs->line_mode;
230 *p++ = prefs->windows; 231 *p++ = prefs->windows;
@@ -245,7 +246,7 @@ static bool tv_write_preferences(int pfd, const struct tv_preferences *prefs)
245 *p++ = prefs->statusbar; 246 *p++ = prefs->statusbar;
246 247
247#ifdef HAVE_LCD_BITMAP 248#ifdef HAVE_LCD_BITMAP
248 rb->memcpy(buf + 28, prefs->font_name, MAX_PATH); 249 rb->strlcpy(buf + 28, prefs->font_name, MAX_PATH);
249#endif 250#endif
250 251
251 return (rb->write(pfd, buf, TV_PREFERENCES_SIZE) >= 0); 252 return (rb->write(pfd, buf, TV_PREFERENCES_SIZE) >= 0);
@@ -554,6 +555,7 @@ bool tv_save_settings(void)
554 { 555 {
555 /* save to current read file's preferences and bookmarks */ 556 /* save to current read file's preferences and bookmarks */
556 res = false; 557 res = false;
558 rb->memset(buf, 0, MAX_PATH);
557 rb->strlcpy(buf, preferences->file_name, MAX_PATH); 559 rb->strlcpy(buf, preferences->file_name, MAX_PATH);
558 560
559 if (rb->write(tfd, buf, MAX_PATH + 2) >= 0) 561 if (rb->write(tfd, buf, MAX_PATH + 2) >= 0)