diff options
author | Nils Wallménius <nils@rockbox.org> | 2008-04-09 15:25:17 +0000 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2008-04-09 15:25:17 +0000 |
commit | 6848961aa5f93a290917071ff3496e1d5026621b (patch) | |
tree | 70d377348ab0694c356fffd9fe25f095ccbe88fe /apps/plugins | |
parent | ae64d2602befd5589c8c0141a6d812841fdfb232 (diff) | |
download | rockbox-6848961aa5f93a290917071ff3496e1d5026621b.tar.gz rockbox-6848961aa5f93a290917071ff3496e1d5026621b.zip |
Pass the buffer length to the list_get_name callback functions instead of using hardcoded MAX_PATH
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17049 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/chessbox/chessbox_pgn.c | 5 | ||||
-rw-r--r-- | apps/plugins/lib/oldmenuapi.c | 5 | ||||
-rw-r--r-- | apps/plugins/properties.c | 21 | ||||
-rw-r--r-- | apps/plugins/random_folder_advance_config.c | 4 | ||||
-rw-r--r-- | apps/plugins/shortcuts/shortcuts_view.c | 10 | ||||
-rw-r--r-- | apps/plugins/text_editor.c | 15 |
6 files changed, 32 insertions, 28 deletions
diff --git a/apps/plugins/chessbox/chessbox_pgn.c b/apps/plugins/chessbox/chessbox_pgn.c index 6d18986f95..94bda2eaaa 100644 --- a/apps/plugins/chessbox/chessbox_pgn.c +++ b/apps/plugins/chessbox/chessbox_pgn.c | |||
@@ -527,7 +527,8 @@ void coords_to_pgn(struct pgn_ply_node* ply){ | |||
527 | } | 527 | } |
528 | } | 528 | } |
529 | 529 | ||
530 | char * get_game_text(int selected_item, void *data, char *buffer){ | 530 | char * get_game_text(int selected_item, void *data, |
531 | char *buffer, size_t buffer_len){ | ||
531 | int i; | 532 | int i; |
532 | struct pgn_game_node *temp_node = (struct pgn_game_node *)data; | 533 | struct pgn_game_node *temp_node = (struct pgn_game_node *)data; |
533 | char text_buffer[50]; | 534 | char text_buffer[50]; |
@@ -541,7 +542,7 @@ char * get_game_text(int selected_item, void *data, char *buffer){ | |||
541 | rb->snprintf(text_buffer, 50,"%s vs. %s (%s)", temp_node->white_player, | 542 | rb->snprintf(text_buffer, 50,"%s vs. %s (%s)", temp_node->white_player, |
542 | temp_node->black_player, temp_node->game_date); | 543 | temp_node->black_player, temp_node->game_date); |
543 | 544 | ||
544 | rb->strcpy(buffer, text_buffer); | 545 | rb->strncpy(buffer, text_buffer, buffer_len); |
545 | return buffer; | 546 | return buffer; |
546 | } | 547 | } |
547 | 548 | ||
diff --git a/apps/plugins/lib/oldmenuapi.c b/apps/plugins/lib/oldmenuapi.c index c21e55f5fc..27e4fdd49e 100644 --- a/apps/plugins/lib/oldmenuapi.c +++ b/apps/plugins/lib/oldmenuapi.c | |||
@@ -40,10 +40,11 @@ struct menu { | |||
40 | static struct menu menus[MAX_MENUS]; | 40 | static struct menu menus[MAX_MENUS]; |
41 | static bool inuse[MAX_MENUS] = { false }; | 41 | static bool inuse[MAX_MENUS] = { false }; |
42 | 42 | ||
43 | static char * menu_get_itemname(int selected_item, void * data, char *buffer) | 43 | static char * menu_get_itemname(int selected_item, void * data, |
44 | char *buffer, size_t buffer_len) | ||
44 | { | 45 | { |
46 | (void)buffer; (void)buffer_len; | ||
45 | struct menu *local_menus=(struct menu *)data; | 47 | struct menu *local_menus=(struct menu *)data; |
46 | (void)buffer; | ||
47 | return(local_menus->items[selected_item].desc); | 48 | return(local_menus->items[selected_item].desc); |
48 | } | 49 | } |
49 | 50 | ||
diff --git a/apps/plugins/properties.c b/apps/plugins/properties.c index 8b1f6ee636..27805154b3 100644 --- a/apps/plugins/properties.c +++ b/apps/plugins/properties.c | |||
@@ -214,38 +214,39 @@ static bool dir_properties(char* selected_file) | |||
214 | return true; | 214 | return true; |
215 | } | 215 | } |
216 | 216 | ||
217 | char * get_props(int selected_item, void* data, char *buffer) | 217 | char * get_props(int selected_item, void* data, char *buffer, size_t buffer_len) |
218 | { | 218 | { |
219 | (void)data; | 219 | (void)data; |
220 | 220 | ||
221 | switch(selected_item) | 221 | switch(selected_item) |
222 | { | 222 | { |
223 | case 0: | 223 | case 0: |
224 | rb->strcpy(buffer, str_dirname); | 224 | rb->strncpy(buffer, str_dirname, buffer_len); |
225 | break; | 225 | break; |
226 | case 1: | 226 | case 1: |
227 | rb->strcpy(buffer, its_a_dir ? str_dircount : str_filename); | 227 | rb->strncpy(buffer, its_a_dir ? str_dircount : str_filename, |
228 | buffer_len); | ||
228 | break; | 229 | break; |
229 | case 2: | 230 | case 2: |
230 | rb->strcpy(buffer, its_a_dir ? str_filecount : str_size); | 231 | rb->strncpy(buffer, its_a_dir ? str_filecount : str_size, buffer_len); |
231 | break; | 232 | break; |
232 | case 3: | 233 | case 3: |
233 | rb->strcpy(buffer, its_a_dir ? str_size : str_date); | 234 | rb->strncpy(buffer, its_a_dir ? str_size : str_date, buffer_len); |
234 | break; | 235 | break; |
235 | case 4: | 236 | case 4: |
236 | rb->strcpy(buffer, its_a_dir ? "" : str_time); | 237 | rb->strncpy(buffer, its_a_dir ? "" : str_time, buffer_len); |
237 | break; | 238 | break; |
238 | case 5: | 239 | case 5: |
239 | rb->strcpy(buffer, its_a_dir ? "" : str_artist); | 240 | rb->strncpy(buffer, its_a_dir ? "" : str_artist, buffer_len); |
240 | break; | 241 | break; |
241 | case 6: | 242 | case 6: |
242 | rb->strcpy(buffer, its_a_dir ? "" : str_title); | 243 | rb->strncpy(buffer, its_a_dir ? "" : str_title, buffer_len); |
243 | break; | 244 | break; |
244 | case 7: | 245 | case 7: |
245 | rb->strcpy(buffer, its_a_dir ? "" : str_album); | 246 | rb->strncpy(buffer, its_a_dir ? "" : str_album, buffer_len); |
246 | break; | 247 | break; |
247 | default: | 248 | default: |
248 | rb->strcpy(buffer, "ERROR"); | 249 | rb->strncpy(buffer, "ERROR", buffer_len); |
249 | break; | 250 | break; |
250 | } | 251 | } |
251 | return buffer; | 252 | return buffer; |
diff --git a/apps/plugins/random_folder_advance_config.c b/apps/plugins/random_folder_advance_config.c index af415073b3..2b5e16603b 100644 --- a/apps/plugins/random_folder_advance_config.c +++ b/apps/plugins/random_folder_advance_config.c | |||
@@ -254,10 +254,10 @@ void generate(void) | |||
254 | rb->write(fd,&dirs_count,sizeof(int)); | 254 | rb->write(fd,&dirs_count,sizeof(int)); |
255 | rb->close(fd); | 255 | rb->close(fd); |
256 | } | 256 | } |
257 | char *list_get_name_cb(int selected_item,void* data,char* buf) | 257 | char *list_get_name_cb(int selected_item, void* data, char* buf, size_t buf_len) |
258 | { | 258 | { |
259 | (void)data; | 259 | (void)data; |
260 | rb->strcpy(buf,list->folder[selected_item]); | 260 | rb->strncpy(buf, list->folder[selected_item], buf_len); |
261 | return buf; | 261 | return buf; |
262 | } | 262 | } |
263 | 263 | ||
diff --git a/apps/plugins/shortcuts/shortcuts_view.c b/apps/plugins/shortcuts/shortcuts_view.c index 503db56d30..5e7d9c2b00 100644 --- a/apps/plugins/shortcuts/shortcuts_view.c +++ b/apps/plugins/shortcuts/shortcuts_view.c | |||
@@ -39,7 +39,8 @@ static bool usb_connected = false; | |||
39 | enum sc_list_action_type draw_sc_list(struct gui_synclist gui_sc); | 39 | enum sc_list_action_type draw_sc_list(struct gui_synclist gui_sc); |
40 | 40 | ||
41 | /* Will be passed sc_file* as data */ | 41 | /* Will be passed sc_file* as data */ |
42 | char* build_sc_list(int selected_item, void *data, char *buffer); | 42 | char* build_sc_list(int selected_item, void *data, |
43 | char *buffer, size_t buffer_len); | ||
43 | 44 | ||
44 | /* Returns true iff we should leave the main loop */ | 45 | /* Returns true iff we should leave the main loop */ |
45 | bool list_sc(bool is_editable); | 46 | bool list_sc(bool is_editable); |
@@ -91,17 +92,16 @@ enum sc_list_action_type draw_sc_list(struct gui_synclist gui_sc) | |||
91 | } | 92 | } |
92 | 93 | ||
93 | 94 | ||
94 | char* build_sc_list(int selected_item, void *data, char *buffer) | 95 | char* build_sc_list(int selected_item, void *data, |
96 | char *buffer, size_t buffer_len) | ||
95 | { | 97 | { |
96 | char text_buffer[MAX_PATH]; | ||
97 | sc_file_t *file = (sc_file_t*)data; | 98 | sc_file_t *file = (sc_file_t*)data; |
98 | 99 | ||
99 | if (!is_valid_index(file, selected_item)) { | 100 | if (!is_valid_index(file, selected_item)) { |
100 | return NULL; | 101 | return NULL; |
101 | } | 102 | } |
102 | sc_entry_t *entry = file->entries + selected_item; | 103 | sc_entry_t *entry = file->entries + selected_item; |
103 | rb->snprintf(text_buffer, sizeof(text_buffer), "%s", entry->disp); | 104 | rb->snprintf(buffer, buffer_len, "%s", entry->disp); |
104 | rb->strcpy(buffer, text_buffer); | ||
105 | return buffer; | 105 | return buffer; |
106 | } | 106 | } |
107 | 107 | ||
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c index 75bbccf820..5397260c0d 100644 --- a/apps/plugins/text_editor.c +++ b/apps/plugins/text_editor.c | |||
@@ -115,18 +115,19 @@ int _do_action(int action, char* str, int line) | |||
115 | last_char_index = c; | 115 | last_char_index = c; |
116 | return 1; | 116 | return 1; |
117 | } | 117 | } |
118 | char *list_get_name_cb(int selected_item,void* data,char* buf) | 118 | char *list_get_name_cb(int selected_item, void* data, |
119 | char* buf, size_t buf_len) | ||
119 | { | 120 | { |
120 | char *b = &buffer[do_action(ACTION_GET,0,selected_item)]; | 121 | char *b = &buffer[do_action(ACTION_GET,0,selected_item)]; |
121 | (void)data; | 122 | (void)data; |
122 | if (rb->strlen(b) >= MAX_PATH) | 123 | if (rb->strlen(b) >= buf_len) |
123 | { | 124 | { |
124 | char t = b[MAX_PATH-10]; | 125 | char t = b[buf_len-10]; |
125 | b[MAX_PATH-10] = '\0'; | 126 | b[buf_len-10] = '\0'; |
126 | rb->snprintf(buf,MAX_PATH,"%s ...",b); | 127 | rb->snprintf(buf , buf_len, "%s ...", b); |
127 | b[MAX_PATH-10] = t; | 128 | b[buf_len-10] = t; |
128 | } | 129 | } |
129 | else rb->strcpy(buf,b); | 130 | else rb->strncpy(buf, b, buf_len); |
130 | return buf; | 131 | return buf; |
131 | } | 132 | } |
132 | char filename[MAX_PATH]; | 133 | char filename[MAX_PATH]; |