diff options
Diffstat (limited to 'apps/settings.c')
-rw-r--r-- | apps/settings.c | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/apps/settings.c b/apps/settings.c index 85b0489c09..848c7c14f2 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -118,9 +118,7 @@ static bool read_nvram_data(char* buf, int max_len) | |||
118 | unsigned crc32 = 0xffffffff; | 118 | unsigned crc32 = 0xffffffff; |
119 | int var_count = 0, i = 0, buf_pos = 0; | 119 | int var_count = 0, i = 0, buf_pos = 0; |
120 | #ifndef HAVE_RTC_RAM | 120 | #ifndef HAVE_RTC_RAM |
121 | char path[MAX_PATH]; | 121 | int fd = open(NVRAM_FILE, O_RDONLY); |
122 | int fd = open(get_user_file_path(NVRAM_FILE, IS_FILE|NEED_WRITE, | ||
123 | path, sizeof(path)), O_RDONLY); | ||
124 | int bytes; | 122 | int bytes; |
125 | if (fd < 0) | 123 | if (fd < 0) |
126 | return false; | 124 | return false; |
@@ -174,7 +172,6 @@ static bool write_nvram_data(char* buf, int max_len) | |||
174 | char var_count = 0; | 172 | char var_count = 0; |
175 | #ifndef HAVE_RTC_RAM | 173 | #ifndef HAVE_RTC_RAM |
176 | int fd; | 174 | int fd; |
177 | char path[MAX_PATH]; | ||
178 | #endif | 175 | #endif |
179 | memset(buf,0,max_len); | 176 | memset(buf,0,max_len); |
180 | /* magic, version */ | 177 | /* magic, version */ |
@@ -198,8 +195,7 @@ static bool write_nvram_data(char* buf, int max_len) | |||
198 | max_len-NVRAM_DATA_START-1,0xffffffff); | 195 | max_len-NVRAM_DATA_START-1,0xffffffff); |
199 | memcpy(&buf[4],&crc32,4); | 196 | memcpy(&buf[4],&crc32,4); |
200 | #ifndef HAVE_RTC_RAM | 197 | #ifndef HAVE_RTC_RAM |
201 | fd = open(get_user_file_path(NVRAM_FILE, IS_FILE|NEED_WRITE, | 198 | fd = open(NVRAM_FILE,O_CREAT|O_TRUNC|O_WRONLY, 0666); |
202 | path, sizeof(path)),O_CREAT|O_TRUNC|O_WRONLY, 0666); | ||
203 | if (fd >= 0) | 199 | if (fd >= 0) |
204 | { | 200 | { |
205 | int len = write(fd,buf,max_len); | 201 | int len = write(fd,buf,max_len); |
@@ -230,12 +226,8 @@ void settings_load(int which) | |||
230 | read_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); | 226 | read_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); |
231 | if (which&SETTINGS_HD) | 227 | if (which&SETTINGS_HD) |
232 | { | 228 | { |
233 | const char *file; | 229 | settings_load_config(CONFIGFILE, false); |
234 | char path[MAX_PATH]; | 230 | settings_load_config(FIXEDSETTINGSFILE, false); |
235 | file = get_user_file_path(CONFIGFILE, IS_FILE|NEED_WRITE, path, sizeof(path)); | ||
236 | settings_load_config(file, false); | ||
237 | file = get_user_file_path(FIXEDSETTINGSFILE, IS_FILE, path, sizeof(path)); | ||
238 | settings_load_config(file, false); | ||
239 | } | 231 | } |
240 | } | 232 | } |
241 | 233 | ||
@@ -596,11 +588,8 @@ static void flush_global_status_callback(void *data) | |||
596 | static void flush_config_block_callback(void *data) | 588 | static void flush_config_block_callback(void *data) |
597 | { | 589 | { |
598 | (void)data; | 590 | (void)data; |
599 | char path[MAX_PATH]; | ||
600 | write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); | 591 | write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); |
601 | settings_write_config( | 592 | settings_write_config(CONFIGFILE, SETTINGS_SAVE_CHANGED); |
602 | get_user_file_path(CONFIGFILE, IS_FILE|NEED_WRITE, path, sizeof(path)), | ||
603 | SETTINGS_SAVE_CHANGED); | ||
604 | } | 593 | } |
605 | 594 | ||
606 | /* | 595 | /* |
@@ -644,7 +633,7 @@ int settings_save(void) | |||
644 | 633 | ||
645 | bool settings_save_config(int options) | 634 | bool settings_save_config(int options) |
646 | { | 635 | { |
647 | char filename[MAX_PATH], path[MAX_PATH]; | 636 | char filename[MAX_PATH]; |
648 | const char *folder, *namebase; | 637 | const char *folder, *namebase; |
649 | switch (options) | 638 | switch (options) |
650 | { | 639 | { |
@@ -673,8 +662,6 @@ bool settings_save_config(int options) | |||
673 | namebase = "config"; | 662 | namebase = "config"; |
674 | break; | 663 | break; |
675 | } | 664 | } |
676 | |||
677 | folder = get_user_file_path(folder, NEED_WRITE, path, sizeof(path)); | ||
678 | create_numbered_filename(filename, folder, namebase, ".cfg", 2 | 665 | create_numbered_filename(filename, folder, namebase, ".cfg", 2 |
679 | IF_CNFN_NUM_(, NULL)); | 666 | IF_CNFN_NUM_(, NULL)); |
680 | 667 | ||
@@ -884,13 +871,11 @@ void settings_apply(bool read_disk) | |||
884 | { | 871 | { |
885 | char buf[MAX_PATH]; | 872 | char buf[MAX_PATH]; |
886 | #ifdef HAVE_LCD_BITMAP | 873 | #ifdef HAVE_LCD_BITMAP |
887 | char dir[MAX_PATH]; | ||
888 | const char *font_path = get_user_file_path(FONT_DIR, 0, dir, sizeof(dir)); | ||
889 | /* fonts need to be loaded before the WPS */ | 874 | /* fonts need to be loaded before the WPS */ |
890 | if (global_settings.font_file[0] | 875 | if (global_settings.font_file[0] |
891 | && global_settings.font_file[0] != '-') { | 876 | && global_settings.font_file[0] != '-') { |
892 | 877 | ||
893 | snprintf(buf, sizeof buf, "%s/%s.fnt", font_path, | 878 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", |
894 | global_settings.font_file); | 879 | global_settings.font_file); |
895 | CHART2(">font_load ", global_settings.font_file); | 880 | CHART2(">font_load ", global_settings.font_file); |
896 | rc = font_load(NULL, buf); | 881 | rc = font_load(NULL, buf); |
@@ -903,7 +888,7 @@ void settings_apply(bool read_disk) | |||
903 | #ifdef HAVE_REMOTE_LCD | 888 | #ifdef HAVE_REMOTE_LCD |
904 | if ( global_settings.remote_font_file[0] | 889 | if ( global_settings.remote_font_file[0] |
905 | && global_settings.remote_font_file[0] != '-') { | 890 | && global_settings.remote_font_file[0] != '-') { |
906 | snprintf(buf, sizeof buf, "%s/%s.fnt", font_path, | 891 | snprintf(buf, sizeof buf, FONT_DIR "%s.fnt", |
907 | global_settings.remote_font_file); | 892 | global_settings.remote_font_file); |
908 | CHART2(">font_load_remoteui ", global_settings.remote_font_file); | 893 | CHART2(">font_load_remoteui ", global_settings.remote_font_file); |
909 | rc = font_load_remoteui(buf); | 894 | rc = font_load_remoteui(buf); |
@@ -915,8 +900,7 @@ void settings_apply(bool read_disk) | |||
915 | font_load_remoteui(NULL); | 900 | font_load_remoteui(NULL); |
916 | #endif | 901 | #endif |
917 | if ( global_settings.kbd_file[0]) { | 902 | if ( global_settings.kbd_file[0]) { |
918 | snprintf(buf, sizeof buf, "%s/%s.kbd", | 903 | snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd", |
919 | get_user_file_path(ROCKBOX_DIR, 0, dir, sizeof(dir)), | ||
920 | global_settings.kbd_file); | 904 | global_settings.kbd_file); |
921 | CHART(">load_kbd"); | 905 | CHART(">load_kbd"); |
922 | load_kbd(buf); | 906 | load_kbd(buf); |
@@ -925,8 +909,6 @@ void settings_apply(bool read_disk) | |||
925 | else | 909 | else |
926 | load_kbd(NULL); | 910 | load_kbd(NULL); |
927 | #endif /* HAVE_LCD_BITMAP */ | 911 | #endif /* HAVE_LCD_BITMAP */ |
928 | /* no get_user_file_path() here because we don't really support | ||
929 | * langs that don't come with rockbox */ | ||
930 | if ( global_settings.lang_file[0]) { | 912 | if ( global_settings.lang_file[0]) { |
931 | snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", | 913 | snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", |
932 | global_settings.lang_file); | 914 | global_settings.lang_file); |