summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2008-04-09 15:25:17 +0000
committerNils Wallménius <nils@rockbox.org>2008-04-09 15:25:17 +0000
commit6848961aa5f93a290917071ff3496e1d5026621b (patch)
tree70d377348ab0694c356fffd9fe25f095ccbe88fe /apps/plugins
parentae64d2602befd5589c8c0141a6d812841fdfb232 (diff)
downloadrockbox-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.c5
-rw-r--r--apps/plugins/lib/oldmenuapi.c5
-rw-r--r--apps/plugins/properties.c21
-rw-r--r--apps/plugins/random_folder_advance_config.c4
-rw-r--r--apps/plugins/shortcuts/shortcuts_view.c10
-rw-r--r--apps/plugins/text_editor.c15
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
530char * get_game_text(int selected_item, void *data, char *buffer){ 530char * 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 {
40static struct menu menus[MAX_MENUS]; 40static struct menu menus[MAX_MENUS];
41static bool inuse[MAX_MENUS] = { false }; 41static bool inuse[MAX_MENUS] = { false };
42 42
43static char * menu_get_itemname(int selected_item, void * data, char *buffer) 43static 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
217char * get_props(int selected_item, void* data, char *buffer) 217char * 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}
257char *list_get_name_cb(int selected_item,void* data,char* buf) 257char *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;
39enum sc_list_action_type draw_sc_list(struct gui_synclist gui_sc); 39enum 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 */
42char* build_sc_list(int selected_item, void *data, char *buffer); 42char* 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 */
45bool list_sc(bool is_editable); 46bool 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
94char* build_sc_list(int selected_item, void *data, char *buffer) 95char* 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}
118char *list_get_name_cb(int selected_item,void* data,char* buf) 118char *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}
132char filename[MAX_PATH]; 133char filename[MAX_PATH];