summaryrefslogtreecommitdiffstats
path: root/hw4/l4basic/l4str.c
diff options
context:
space:
mode:
authorLAN-TW <lantw44@gmail.com>2014-01-13 02:06:02 +0800
committerLAN-TW <lantw44@gmail.com>2014-01-13 02:06:02 +0800
commit99e1a8d891c28d0ddde865260d5c3164b3fcfdd9 (patch)
tree8d924bf3904fab643cab15355230b7ad73d5da7d /hw4/l4basic/l4str.c
parentba60d74714815661bc16f49ac02b5976abe78a5e (diff)
downloadsp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.tar
sp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.tar.gz
sp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.tar.bz2
sp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.tar.lz
sp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.tar.xz
sp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.tar.zst
sp2013-99e1a8d891c28d0ddde865260d5c3164b3fcfdd9.zip
HW4: 加入 ChttpdLog 的實作與修正問題
Diffstat (limited to 'hw4/l4basic/l4str.c')
-rw-r--r--hw4/l4basic/l4str.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/hw4/l4basic/l4str.c b/hw4/l4basic/l4str.c
index ad8c2e6..c1f6c51 100644
--- a/hw4/l4basic/l4str.c
+++ b/hw4/l4basic/l4str.c
@@ -25,18 +25,28 @@ bool lbs_str_has_suffix (const char* str, const char* suffix) {
char* lbs_str_printf (const char* format, ...) {
va_list ap;
char* newstr;
- int len;
va_start (ap, format);
- len = vsnprintf (NULL, 0, format, ap) + 1;
+ newstr = lbs_str_vprintf (format, ap);
va_end (ap);
+ return newstr;
+}
+
+char* lbs_str_vprintf (const char* format, va_list ap) {
+ va_list ap1, ap2;
+ char* newstr;
+ int len;
+
+ va_copy (ap1, ap);
+ len = vsnprintf (NULL, 0, format, ap1) + 1;
+ va_end (ap1);
+
newstr = xmalloc (len);
- va_start (ap, format);
- vsnprintf (newstr, len, format, ap);
- va_end (ap);
+ va_copy (ap2, ap);
+ vsnprintf (newstr, len, format, ap2);
+ va_end (ap2);
return newstr;
}
-