Add a safe wrapper for write and fix some warnings
1. Add a function writeall and make swrite wrap that function. Use either writeall or swrite, depending on whether we want to exit on errors or not. 2. Fix warnings when compiling with a higher optimisation level. (CFLAGS ?= -pipe -O3 -march=native -mtune=native -freorder-blocks-and-partition) Signed-off-by: hwangcc <hwangcc@csie.nctu.edu.tw>
This commit is contained in:
@ -103,7 +103,7 @@ __attribute__((format(printf, 1, 2))) static void set_statusline_error(const cha
|
||||
char *message;
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
vasprintf(&message, format, args);
|
||||
(void)vasprintf(&message, format, args);
|
||||
|
||||
struct status_block *err_block = scalloc(sizeof(struct status_block));
|
||||
err_block->full_text = i3string_from_utf8("Error: ");
|
||||
@ -455,11 +455,22 @@ void child_write_output(void) {
|
||||
if (child.click_events) {
|
||||
const unsigned char *output;
|
||||
size_t size;
|
||||
ssize_t n;
|
||||
|
||||
yajl_gen_get_buf(gen, &output, &size);
|
||||
write(child_stdin, output, size);
|
||||
write(child_stdin, "\n", 1);
|
||||
|
||||
n = writeall(child_stdin, output, size);
|
||||
if (n != -1)
|
||||
n = writeall(child_stdin, "\n", 1);
|
||||
|
||||
yajl_gen_clear(gen);
|
||||
|
||||
if (n == -1) {
|
||||
child.click_events = false;
|
||||
kill_child();
|
||||
set_statusline_error("child_write_output failed");
|
||||
draw_bars(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user