diff options
author | Yoshihisa Uchida <uchida@rockbox.org> | 2010-07-02 11:35:28 +0000 |
---|---|---|
committer | Yoshihisa Uchida <uchida@rockbox.org> | 2010-07-02 11:35:28 +0000 |
commit | 426f4c1e87aea5f796d2b4ce71d9f1351f189c47 (patch) | |
tree | 2116744f2860f0b826abf98ab1f38acf180fd314 | |
parent | 00a3024924b603fafb4c8d1b242e7af362affcae (diff) | |
download | rockbox-426f4c1e87aea5f796d2b4ce71d9f1351f189c47.tar.gz rockbox-426f4c1e87aea5f796d2b4ce71d9f1351f189c47.zip |
text viewer: fixed garbage data are not stored in the setting file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27240 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/plugins/text_viewer/tv_settings.c | 16 |
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) |