Error handling: Never output null as full_text (JSON), prefix messages with i3status (Thanks Artemis)

The former made i3bar crash, the latter is helpful for debugging.
This commit is contained in:
Michael Stapelberg 2012-05-09 18:56:57 +02:00
parent 88b157cc8a
commit 296eb5e706
6 changed files with 13 additions and 10 deletions

View File

@ -113,5 +113,6 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const
return;
error:
#endif
OUTPUT_FULL_TEXT("cant read temp");
(void)fputs("i3status: Cannot read temperature. Verify that you have a thermal zone in /sys/class/thermal or disable the cpu_temperature module in your i3status config.\n", stderr);
}

View File

@ -92,5 +92,6 @@ void print_cpu_usage(yajl_gen json_gen, char *buffer, const char *format) {
OUTPUT_FULL_TEXT(buffer);
return;
error:
(void)fputs("Cannot read usage\n", stderr);
OUTPUT_FULL_TEXT("cant read cpu usage");
(void)fputs("i3status: Cannot read CPU usage\n", stderr);
}

View File

@ -56,7 +56,7 @@ const char *get_ip_addr(const char *interface) {
int ret;
if ((ret = getnameinfo(addrp->ifa_addr, len, part, sizeof(part), NULL, 0, NI_NUMERICHOST)) != 0) {
fprintf(stderr, "getnameinfo(): %s\n", gai_strerror(ret));
fprintf(stderr, "i3status: getnameinfo(): %s\n", gai_strerror(ret));
freeifaddrs(ifaddr);
return "no IP";
}

View File

@ -51,7 +51,7 @@ static char *get_sockname(struct addrinfo *addr) {
if ((ret = getnameinfo((struct sockaddr*)&local, local_len,
buf, sizeof(buf), NULL, 0,
NI_NUMERICHOST)) != 0) {
fprintf(stderr, "getnameinfo(): %s\n", gai_strerror(ret));
fprintf(stderr, "i3status: getnameinfo(): %s\n", gai_strerror(ret));
(void)close(fd);
return NULL;
}

View File

@ -45,5 +45,6 @@ void print_load(yajl_gen json_gen, char *buffer, const char *format) {
return;
error:
#endif
(void)fputs("Cannot read load\n", stderr);
OUTPUT_FULL_TEXT("cant read load");
(void)fputs("i3status: Cannot read system load using getloadavg()\n", stderr);
}

View File

@ -97,14 +97,14 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *
}
if ((err = snd_mixer_open(&(hdl->m), 0)) < 0) {
fprintf(stderr, "ALSA: Cannot open mixer: %s\n", snd_strerror(err));
fprintf(stderr, "i3status: ALSA: Cannot open mixer: %s\n", snd_strerror(err));
free_hdl(hdl);
return;
}
/* Attach this mixer handle to the given device */
if ((err = snd_mixer_attach(hdl->m, device)) < 0) {
fprintf(stderr, "ALSA: Cannot attach mixer to device: %s\n", snd_strerror(err));
fprintf(stderr, "i3status: ALSA: Cannot attach mixer to device: %s\n", snd_strerror(err));
snd_mixer_close(hdl->m);
free_hdl(hdl);
return;
@ -112,14 +112,14 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *
/* Register this mixer */
if ((err = snd_mixer_selem_register(hdl->m, NULL, NULL)) < 0) {
fprintf(stderr, "ALSA: snd_mixer_selem_register: %s\n", snd_strerror(err));
fprintf(stderr, "i3status: ALSA: snd_mixer_selem_register: %s\n", snd_strerror(err));
snd_mixer_close(hdl->m);
free_hdl(hdl);
return;
}
if ((err = snd_mixer_load(hdl->m)) < 0) {
fprintf(stderr, "ALSA: snd_mixer_load: %s\n", snd_strerror(err));
fprintf(stderr, "i3status: ALSA: snd_mixer_load: %s\n", snd_strerror(err));
snd_mixer_close(hdl->m);
free_hdl(hdl);
return;
@ -129,7 +129,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *
snd_mixer_selem_id_set_index(hdl->sid, mixer_idx);
snd_mixer_selem_id_set_name(hdl->sid, mixer);
if (!(hdl->elem = snd_mixer_find_selem(hdl->m, hdl->sid))) {
fprintf(stderr, "ALSA: Cannot find mixer %s (index %i)\n",
fprintf(stderr, "i3status: ALSA: Cannot find mixer %s (index %i)\n",
snd_mixer_selem_id_get_name(hdl->sid), snd_mixer_selem_id_get_index(hdl->sid));
snd_mixer_close(hdl->m);
free_hdl(hdl);
@ -155,7 +155,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *
if (snd_mixer_selem_has_playback_switch(hdl->elem)) {
int pbval;
if ((err = snd_mixer_selem_get_playback_switch(hdl->elem, 0, &pbval)) < 0)
fprintf (stderr, "ALSA: playback_switch: %s\n", snd_strerror(err));
fprintf (stderr, "i3status: ALSA: playback_switch: %s\n", snd_strerror(err));
if (!pbval)
avg = 0;
}