From 298316d19297eea82869b63235b535e5904fc0dd Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Sun, 20 Jun 2010 21:53:47 +0000 Subject: text_viewer: cleanup & bugfix cleanup: - don't use enum in struct / return values - don't use a getter for preferences but a global pointer - explicitely make enums start at 0 - use static tables for header/footer settings - remove unneeded memset before strlcpy - use static buffer allocation, not dynamic - check header/footer preferences before using the callbacks - don't include font filename in archos player preferences (break file format) bugfix: - statically allocate old preferences in tv_set_preferences() Sometimes I can read a file on Clipv2, but it still aborts quite often refs: FS#11399 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26998 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/text_viewer/tv_pager.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'apps/plugins/text_viewer/tv_pager.c') diff --git a/apps/plugins/text_viewer/tv_pager.c b/apps/plugins/text_viewer/tv_pager.c index d98fe4627d..0c109530f8 100644 --- a/apps/plugins/text_viewer/tv_pager.c +++ b/apps/plugins/text_viewer/tv_pager.c @@ -32,9 +32,7 @@ #define TV_MAX_PAGE 9999 #endif -#define TV_PAGER_MEMSIZE (4 * TV_MAX_PAGE) - -static unsigned char *pager_buffer; +static unsigned char pager_buffer[4 * TV_MAX_PAGE]; static struct tv_screen_pos cur_pos; @@ -87,12 +85,8 @@ static void tv_change_preferences(const struct tv_preferences *oldp) tv_seek(0, SEEK_SET); } -bool tv_init_pager(unsigned char *buf, size_t bufsize, size_t *used_size) +bool tv_init_pager(void) { - if (bufsize < TV_PAGER_MEMSIZE) - return false; - - pager_buffer = buf; tv_set_screen_pos(&cur_pos); tv_add_preferences_change_listner(tv_change_preferences); @@ -101,14 +95,7 @@ bool tv_init_pager(unsigned char *buf, size_t bufsize, size_t *used_size) line_pos[0] = 0; - buf += TV_PAGER_MEMSIZE; - bufsize -= TV_PAGER_MEMSIZE; - if (!tv_init_reader(buf, bufsize, used_size)) - return false; - - *used_size += TV_PAGER_MEMSIZE; - - return true; + return tv_init_reader(); } void tv_finalize_pager(void) -- cgit v1.2.3