summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2008-09-24 20:03:53 +0000
committerNils Wallménius <nils@rockbox.org>2008-09-24 20:03:53 +0000
commit93a87685c3f39e731f4297b07bd139420b2e5554 (patch)
tree6ef4cd5f3b2b1a770ea1102cc6ce5d12f508e2e2
parent7d4cebd7dad4d1e5e97084c28a0f71d4d7142295 (diff)
downloadrockbox-93a87685c3f39e731f4297b07bd139420b2e5554.tar.gz
rockbox-93a87685c3f39e731f4297b07bd139420b2e5554.tar.bz2
rockbox-93a87685c3f39e731f4297b07bd139420b2e5554.zip
Clean up use of snprintf where strncpy if suited, avoid useless copying of constant strings for wps token evaluator, minor const police too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18625 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/cuesheet.c3
-rw-r--r--apps/gui/gwps-common.c48
-rw-r--r--apps/gui/option_select.c9
-rw-r--r--apps/gui/statusbar.c6
-rw-r--r--apps/menus/main_menu.c6
-rw-r--r--apps/playlist.c8
-rw-r--r--apps/root_menu.c2
-rw-r--r--apps/settings.c2
8 files changed, 37 insertions, 47 deletions
diff --git a/apps/cuesheet.c b/apps/cuesheet.c
index 5583264ab9..9788427a07 100644
--- a/apps/cuesheet.c
+++ b/apps/cuesheet.c
@@ -272,8 +272,7 @@ static char *list_get_name_cb(int selected_item,
struct cuesheet *cue = (struct cuesheet *)data;
if (selected_item & 1)
- snprintf(buffer, buffer_len, "%s",
- cue->tracks[selected_item/2].title);
+ strncpy(buffer, cue->tracks[selected_item/2].title, buffer_len);
else
snprintf(buffer, buffer_len, "%02d. %s", selected_item/2+1,
cue->tracks[selected_item/2].performer);
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index 97ec1c19fa..c7343515f8 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -771,10 +771,10 @@ static char* get_dir(char* buf, int buf_size, const char* path, int level)
and the original value of *intval, inclusive).
When not treating a conditional/enum, intval should be NULL.
*/
-static char *get_token_value(struct gui_wps *gwps,
- struct wps_token *token,
- char *buf, int buf_size,
- int *intval)
+static const char *get_token_value(struct gui_wps *gwps,
+ struct wps_token *token,
+ char *buf, int buf_size,
+ int *intval)
{
if (!gwps)
return NULL;
@@ -978,8 +978,7 @@ static char *get_token_value(struct gui_wps *gwps,
case WPS_TOKEN_ALBUMART_FOUND:
if (audio_current_aa_hid() >= 0) {
- snprintf(buf, buf_size, "C");
- return buf;
+ return "C";
}
return NULL;
#endif
@@ -988,7 +987,7 @@ static char *get_token_value(struct gui_wps *gwps,
if(id3->bitrate)
snprintf(buf, buf_size, "%d", id3->bitrate);
else
- snprintf(buf, buf_size, "?");
+ return "?";
return buf;
case WPS_TOKEN_FILE_CODEC:
@@ -1080,7 +1079,7 @@ static char *get_token_value(struct gui_wps *gwps,
if (t >= 0)
snprintf(buf, buf_size, "%dh %dm", t / 60, t % 60);
else
- strncpy(buf, "?h ?m", buf_size);
+ return "?h ?m";
return buf;
}
@@ -1208,23 +1207,19 @@ static char *get_token_value(struct gui_wps *gwps,
case WPS_TOKEN_RTC_AM_PM_UPPER:
/* p: upper case AM or PM indicator */
- snprintf(buf, buf_size, (tm->tm_hour/12 == 0) ? "AM" : "PM");
- return buf;
+ return tm->tm_hour/12 == 0 ? "AM" : "PM";
case WPS_TOKEN_RTC_AM_PM_LOWER:
/* P: lower case am or pm indicator */
- snprintf(buf, buf_size, (tm->tm_hour/12 == 0) ? "am" : "pm");
- return buf;
+ return tm->tm_hour/12 == 0 ? "am" : "pm";
case WPS_TOKEN_RTC_WEEKDAY_NAME:
/* a: abbreviated weekday name (Sun..Sat) */
- snprintf(buf, buf_size, "%s",str(LANG_WEEKDAY_SUNDAY + tm->tm_wday));
- return buf;
+ return str(LANG_WEEKDAY_SUNDAY + tm->tm_wday);
case WPS_TOKEN_RTC_MONTH_NAME:
/* b: abbreviated month name (Jan..Dec) */
- snprintf(buf, buf_size, "%s",str(LANG_MONTH_JANUARY + tm->tm_mon));
- return buf;
+ return str(LANG_MONTH_JANUARY + tm->tm_mon);
case WPS_TOKEN_RTC_DAY_OF_WEEK_START_MON:
/* u: day of week (1..7); 1 is Monday */
@@ -1252,19 +1247,15 @@ static char *get_token_value(struct gui_wps *gwps,
case WPS_TOKEN_RTC_AM_PM_UPPER:
case WPS_TOKEN_RTC_AM_PM_LOWER:
case WPS_TOKEN_RTC_YEAR_2_DIGITS:
- strncpy(buf, "--", buf_size);
- return buf;
+ return "--";
case WPS_TOKEN_RTC_YEAR_4_DIGITS:
- strncpy(buf, "----", buf_size);
- return buf;
+ return "----";
case WPS_TOKEN_RTC_WEEKDAY_NAME:
case WPS_TOKEN_RTC_MONTH_NAME:
- strncpy(buf, "---", buf_size);
- return buf;
+ return "---";
case WPS_TOKEN_RTC_DAY_OF_WEEK_START_MON:
case WPS_TOKEN_RTC_DAY_OF_WEEK_START_SUN:
- strncpy(buf, "-", buf_size);
- return buf;
+ return "-";
#endif
#ifdef HAVE_LCD_CHARCELLS
@@ -1280,12 +1271,12 @@ static char *get_token_value(struct gui_wps *gwps,
{
/* we need 11 characters (full line) for
progress-bar */
- snprintf(buf, buf_size, " ");
+ strncpy(buf, " ", buf_size);
}
else
{
/* Tell the user if we have an OldPlayer */
- snprintf(buf, buf_size, " <Old LCD> ");
+ strncpy(buf, " <Old LCD> ", buf_size);
}
return buf;
#endif
@@ -1428,7 +1419,8 @@ static bool evaluate_conditional(struct gui_wps *gwps, int *token_index)
int i, cond_end;
int cond_index = *token_index;
- char result[128], *value;
+ char result[128];
+ const char *value;
unsigned char num_options = data->tokens[cond_index].value.i & 0xFF;
unsigned char prev_val = (data->tokens[cond_index].value.i & 0xFF00) >> 8;
@@ -1598,7 +1590,7 @@ static bool get_line(struct gui_wps *gwps,
default:
{
/* get the value of the tag and copy it to the buffer */
- char *value = get_token_value(gwps, &data->tokens[i],
+ const char *value = get_token_value(gwps, &data->tokens[i],
temp_buf, sizeof(temp_buf), NULL);
if (value)
{
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c
index bbad56bf47..be29a9ad5e 100644
--- a/apps/gui/option_select.c
+++ b/apps/gui/option_select.c
@@ -78,9 +78,8 @@ char *option_get_valuestring(const struct settings_list *setting,
if ((setting->flags & F_BOOL_SETTING) == F_BOOL_SETTING)
{
bool val = (bool)temp_var;
- snprintf(buffer, buf_len, "%s",
- str(val? setting->bool_setting->lang_yes :
- setting->bool_setting->lang_no));
+ strncpy(buffer, str(val? setting->bool_setting->lang_yes :
+ setting->bool_setting->lang_no), buf_len);
}
#if 0 /* probably dont need this one */
else if ((setting->flags & F_FILENAME) == F_FILENAME)
@@ -140,7 +139,7 @@ char *option_get_valuestring(const struct settings_list *setting,
const struct choice_setting *info = setting->choice_setting;
if (info->talks[(int)temp_var] < LANG_LAST_INDEX_IN_ARRAY)
{
- snprintf(buffer, buf_len, "%s", str(info->talks[(int)temp_var]));
+ strncpy(buffer, str(info->talks[(int)temp_var]), buf_len);
}
else
{
@@ -152,7 +151,7 @@ char *option_get_valuestring(const struct settings_list *setting,
{
int value= (int)temp_var;
char *val = P2STR(setting->choice_setting->desc[value]);
- snprintf(buffer, buf_len, "%s", val);
+ strncpy(buffer, val, buf_len);
}
}
return buffer;
diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c
index 0a421e8b16..b50ca3b9fb 100644
--- a/apps/gui/statusbar.c
+++ b/apps/gui/statusbar.c
@@ -741,15 +741,15 @@ static void gui_statusbar_icon_recording_info(struct screen * display)
if (global_settings.rec_source == AUDIO_SRC_SPDIF)
{
/* Can't measure S/PDIF sample rate on Archos/Sim yet */
- snprintf(buffer, sizeof(buffer), "--");
+ strncpy(buffer, "--", sizeof(buffer));
}
else
#endif /* HAVE_SPDIF_IN */
{
static char const * const freq_strings[12] =
{ "44", "48", "32", "22", "24", "16" };
- snprintf(buffer, sizeof(buffer), "%s",
- freq_strings[global_settings.rec_frequency]);
+ strncpy(buffer, freq_strings[global_settings.rec_frequency],
+ sizeof(buffer));
}
display->getstringsize(buffer, &width, &height);
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c
index aa993ecdc0..3995eafd24 100644
--- a/apps/menus/main_menu.c
+++ b/apps/menus/main_menu.c
@@ -204,7 +204,7 @@ static char* info_getname(int selected_item, void *data,
}
else
{
- snprintf(buffer, buffer_len, "%s", "--:--:--");
+ strncpy(buffer, "--:--:--", buffer_len);
}
break;
case INFO_DATE:
@@ -218,7 +218,7 @@ static char* info_getname(int selected_item, void *data,
}
else
{
- snprintf(buffer, buffer_len, "%s", str(LANG_UNKNOWN));
+ strncpy(buffer, str(LANG_UNKNOWN), buffer_len);
}
break;
#endif
@@ -492,7 +492,7 @@ static void sleep_timer_formatter(char* buffer, size_t buffer_size, int value,
minutes = value - (hours * 60);
snprintf(buffer, buffer_size, "%d:%02d", hours, minutes);
} else {
- snprintf(buffer, buffer_size, "%s", str(LANG_OFF));
+ strncpy(buffer, str(LANG_OFF), buffer_size);
}
}
diff --git a/apps/playlist.c b/apps/playlist.c
index 5d8d8495bf..8dd444889a 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -1894,8 +1894,8 @@ void playlist_init(void)
struct playlist_info* playlist = &current_playlist;
playlist->current = true;
- snprintf(playlist->control_filename, sizeof(playlist->control_filename),
- "%s", PLAYLIST_CONTROL_FILE);
+ strncpy(playlist->control_filename, PLAYLIST_CONTROL_FILE,
+ sizeof(playlist->control_filename));
playlist->fd = -1;
playlist->control_fd = -1;
playlist->max_playlist_size = global_settings.max_files_in_playlist;
@@ -3230,7 +3230,7 @@ char *playlist_name(const struct playlist_info* playlist, char *buf,
if (!playlist)
playlist = &current_playlist;
- snprintf(buf, buf_size, "%s", playlist->filename+playlist->dirlen);
+ strncpy(buf, playlist->filename+playlist->dirlen, buf_size);
if (!buf[0])
return NULL;
@@ -3250,7 +3250,7 @@ char *playlist_get_name(const struct playlist_info* playlist, char *buf,
if (!playlist)
playlist = &current_playlist;
- snprintf(buf, buf_size, "%s", playlist->filename);
+ strncpy(buf, playlist->filename, buf_size);
if (!buf[0])
return NULL;
diff --git a/apps/root_menu.c b/apps/root_menu.c
index 7322cbd9f6..4b9be39a8c 100644
--- a/apps/root_menu.c
+++ b/apps/root_menu.c
@@ -198,7 +198,7 @@ static int browser(void* param)
#endif
case GO_TO_BROWSEPLUGINS:
filter = SHOW_PLUGINS;
- snprintf(folder, MAX_PATH, "%s", PLUGIN_DIR);
+ strncpy(folder, PLUGIN_DIR, MAX_PATH);
break;
}
ret_val = rockbox_browse(folder, filter);
diff --git a/apps/settings.c b/apps/settings.c
index b681471ef1..f598876818 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -1067,7 +1067,7 @@ static void set_option_formatter(char* buf, size_t size, int item, const char* u
{
(void)unit;
const unsigned char *text = set_option_options[item].string;
- snprintf(buf, size, "%s", P2STR(text));
+ strncpy(buf, P2STR(text), size);
}
static int32_t set_option_get_talk_id(int value, int unit)
{