Xinqi Bao's Git
projects
/
slstatus.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
94a62b8
)
used a different implementation of smprintf() imported from dwmstatus
author
Ali H. Fardan <
[email protected]
>
Sun, 28 Aug 2016 16:27:01 +0000
(19:27 +0300)
committer
Ali H. Fardan <
[email protected]
>
Sun, 28 Aug 2016 16:27:01 +0000
(19:27 +0300)
slstatus.c
diff
|
blob
|
history
diff --git
a/slstatus.c
b/slstatus.c
index
08866d2
..
bc48365
100644
(file)
--- a/
slstatus.c
+++ b/
slstatus.c
@@
-79,17
+79,23
@@
static char *
smprintf(const char *fmt, ...)
{
va_list ap;
smprintf(const char *fmt, ...)
{
va_list ap;
- char
tmp[120]
;
-
char *ret = NULL
;
+ char
*ret
;
+
int len
;
va_start(ap, fmt);
va_start(ap, fmt);
-
vsnprintf(tmp, sizeof(tmp)-1
, fmt, ap);
-
tmp[strlen(tmp)+1] = '\0'
;
+
len = vsnprintf(NULL, 0
, fmt, ap);
+
va_end(ap)
;
- if (asprintf(&ret, "%s", tmp) < 0)
- return NULL;
+ ret = malloc(++len);
+ if (ret == NULL) {
+ perror("malloc");
+ exit(1);
+ }
+ va_start(ap, fmt);
+ vsnprintf(ret, len, fmt, ap);
va_end(ap);
va_end(ap);
+
return ret;
}
return ret;
}