home
·
contact
·
privacy
projects
/
plomrogue
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ab6bfe8
)
Small improvements in save_win_config() code and comments.
author
Christian Heller
<c.heller@plomlompom.de>
Mon, 25 Nov 2013 01:56:39 +0000
(
02:56
+0100)
committer
Christian Heller
<c.heller@plomlompom.de>
Mon, 25 Nov 2013 01:56:39 +0000
(
02:56
+0100)
src/wincontrol.c
patch
|
blob
|
history
diff --git
a/src/wincontrol.c
b/src/wincontrol.c
index 6ce1f324f6801ed7e3d61bab73b5d7d410145684..32a3ab195d943cc30f092c62a32a7a4c53d76e9a 100644
(file)
--- a/
src/wincontrol.c
+++ b/
src/wincontrol.c
@@
-146,13
+146,15
@@
static void save_win_config(char id)
{
char * f_name = "save_win_config()";
{
char * f_name = "save_win_config()";
+ /* Prepare atomic file saving. */
char * path_tmp = string_prefixed_id("config/windows/Win_tmp_", id);
FILE * file = try_fopen(path_tmp, "w", f_name);
char * path_tmp = string_prefixed_id("config/windows/Win_tmp_", id);
FILE * file = try_fopen(path_tmp, "w", f_name);
+ /* Save, line by line, ->title, ->draw, ->height and ->width. */
struct WinConf * wc = get_winconf_by_id(id);
uint8_t size = strlen(wc->title) + 2;
struct WinConf * wc = get_winconf_by_id(id);
uint8_t size = strlen(wc->title) + 2;
- if (size < 7)
- {
+ if (size < 7)
/* Ensure that at least 5 + 2 char fit into line so that */
+ {
/* the digit representation of any uint16_t may be stored. */
size = 7;
}
char line[size];
size = 7;
}
char line[size];
@@
-165,6
+167,7
@@
static void save_win_config(char id)
sprintf(line, "%d\n", wc->width);
try_fwrite(line, sizeof(char), strlen(line), file, f_name);
sprintf(line, "%d\n", wc->width);
try_fwrite(line, sizeof(char), strlen(line), file, f_name);
+ /* Save window-specific keybindings (->kb.kbs). */
uint16_t linemax = 0;
struct KeyBinding * kb_p = wc->kb.kbs;
while (0 != kb_p)
uint16_t linemax = 0;
struct KeyBinding * kb_p = wc->kb.kbs;
while (0 != kb_p)
@@
-175,17
+178,17
@@
static void save_win_config(char id)
}
kb_p = kb_p->next;
}
}
kb_p = kb_p->next;
}
- linemax = linemax + 6; /* + 6 = + 3 digits + whitespace + \n + \0 */
-
+ linemax = linemax + 6; /* + 6: + 3 digits + whitespace + \n + \0 */
char kb_line[linemax];
kb_p = wc->kb.kbs;
while (0 != kb_p)
{
char kb_line[linemax];
kb_p = wc->kb.kbs;
while (0 != kb_p)
{
- s
nprintf(kb_line, linemax
, "%d %s\n", kb_p->key, kb_p->name);
+ s
printf(kb_line
, "%d %s\n", kb_p->key, kb_p->name);
try_fwrite(kb_line, sizeof(char), strlen(kb_line), file, f_name);
kb_p = kb_p->next;
}
try_fwrite(kb_line, sizeof(char), strlen(kb_line), file, f_name);
kb_p = kb_p->next;
}
+ /* Finish atomic file saving and clean up. */
char * path = string_prefixed_id("config/windows/Win_", id);
try_fclose_unlink_rename(file, path_tmp, path, f_name);
free(path);
char * path = string_prefixed_id("config/windows/Win_", id);
try_fclose_unlink_rename(file, path_tmp, path, f_name);
free(path);