Xinqi Bao's Git
projects
/
slstatus.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
fixed run_command()
[slstatus.git]
/
slstatus.c
diff --git
a/slstatus.c
b/slstatus.c
index
49b14de
..
57ef9a9
100644
(file)
--- a/
slstatus.c
+++ b/
slstatus.c
@@
-89,8
+89,7
@@
smprintf(const char *fmt, ...)
ret = malloc(++len);
if (ret == NULL) {
ret = malloc(++len);
if (ret == NULL) {
- warn("Malloc failed.");
- return "n/a";
+ err(1, "malloc");
}
va_start(ap, fmt);
}
va_start(ap, fmt);
@@
-270,16
+269,11
@@
static char *
hostname(void)
{
char buf[HOST_NAME_MAX];
hostname(void)
{
char buf[HOST_NAME_MAX];
- FILE *fp;
- fp = fopen("/proc/sys/kernel/hostname", "r");
- if (fp == NULL) {
- warn("Failed to open file /proc/sys/kernel/hostname");
+ if (gethostname(buf, sizeof(buf)) == -1) {
+ warn("hostname");
return smprintf(UNKNOWN_STR);
}
return smprintf(UNKNOWN_STR);
}
- fgets(buf, sizeof(buf), fp);
- buf[strlen(buf)-1] = '\0';
- fclose(fp);
return smprintf("%s", buf);
}
return smprintf("%s", buf);
}
@@
-406,17
+400,19
@@
static char *
run_command(const char *cmd)
{
FILE *fp;
run_command(const char *cmd)
{
FILE *fp;
- char buf[
6
4] = "n/a";
+ char buf[
102
4] = "n/a";
fp = popen(cmd, "r");
if (fp == NULL) {
warn("Failed to get command output for %s", cmd);
return smprintf(UNKNOWN_STR);
}
fp = popen(cmd, "r");
if (fp == NULL) {
warn("Failed to get command output for %s", cmd);
return smprintf(UNKNOWN_STR);
}
- fgets(buf, sizeof(buf), fp);
- buf[sizeof(buf)-1] = '\0';
+ fgets(buf, sizeof(buf)-1, fp);
pclose(fp);
pclose(fp);
+ buf[strlen(buf)] = '\0';
+ strtok(buf, "\n");
+
return smprintf("%s", buf);
}
return smprintf("%s", buf);
}
@@
-502,7
+498,10
@@
vol_perc(const char *card)
snd_mixer_selem_id_free(s_elem);
snd_mixer_close(handle);
snd_mixer_selem_id_free(s_elem);
snd_mixer_close(handle);
- return smprintf("%d%%", ((uint_fast16_t)(vol * 100) / max));
+ if (max == 0)
+ return smprintf("0%%");
+ else
+ return smprintf("%lu%%", ((uint_fast16_t)(vol * 100) / max));
}
static char *
}
static char *
@@
-613,7
+612,7
@@
main(int argc, char *argv[])
oflag = 1;
break;
case 'v':
oflag = 1;
break;
case 'v':
- printf("
%s version %s (c) 2016 slstatus engineers\n", argv0
, VERSION);
+ printf("
slstatus %s (C) 2016 slstatus engineers\n"
, VERSION);
return 0;
default:
usage();
return 0;
default:
usage();