Mercurial > hg > nginx
comparison src/core/ngx_string.c @ 1406:03341711f9a2
use %v for ngx_variable_value_t in ngx_sprintf(),
this fixes nginx on FreeBSD/sparc64
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 20 Aug 2007 09:57:19 +0000 |
parents | fdd064faf26a |
children | 22629796df09 d5db0e96bcc6 |
comparison
equal
deleted
inserted
replaced
1405:fdd064faf26a | 1406:03341711f9a2 |
---|---|
57 * %[0][width][u][x|X]L int64_t/uint64_t | 57 * %[0][width][u][x|X]L int64_t/uint64_t |
58 * %[0][width|m][u][x|X]A ngx_atomic_int_t/ngx_atomic_uint_t | 58 * %[0][width|m][u][x|X]A ngx_atomic_int_t/ngx_atomic_uint_t |
59 * %P ngx_pid_t | 59 * %P ngx_pid_t |
60 * %M ngx_msec_t | 60 * %M ngx_msec_t |
61 * %r rlim_t | 61 * %r rlim_t |
62 * %p pointer | 62 * %p void * |
63 * %V pointer to ngx_str_t | 63 * %V ngx_str_t * |
64 * %v ngx_variable_value_t * | |
64 * %s null-terminated string | 65 * %s null-terminated string |
65 * %Z '\0' | 66 * %Z '\0' |
66 * %N '\n' | 67 * %N '\n' |
67 * %c char | 68 * %c char |
68 * %% % | 69 * %% % |
115 uint32_t ui32; | 116 uint32_t ui32; |
116 int64_t i64; | 117 int64_t i64; |
117 uint64_t ui64; | 118 uint64_t ui64; |
118 ngx_msec_t ms; | 119 ngx_msec_t ms; |
119 ngx_uint_t width, sign, hexadecimal, max_width; | 120 ngx_uint_t width, sign, hexadecimal, max_width; |
120 ngx_variable_value_t *v; | 121 ngx_str_t *v; |
122 ngx_variable_value_t *vv; | |
121 static u_char hex[] = "0123456789abcdef"; | 123 static u_char hex[] = "0123456789abcdef"; |
122 static u_char HEX[] = "0123456789ABCDEF"; | 124 static u_char HEX[] = "0123456789ABCDEF"; |
123 | 125 |
124 if (max == 0) { | 126 if (max == 0) { |
125 return buf; | 127 return buf; |
186 | 188 |
187 | 189 |
188 switch (*fmt) { | 190 switch (*fmt) { |
189 | 191 |
190 case 'V': | 192 case 'V': |
191 v = va_arg(args, ngx_variable_value_t *); | 193 v = va_arg(args, ngx_str_t *); |
192 | 194 |
193 len = v->len; | 195 len = v->len; |
194 len = (buf + len < last) ? len : (size_t) (last - buf); | 196 len = (buf + len < last) ? len : (size_t) (last - buf); |
195 | 197 |
196 buf = ngx_cpymem(buf, v->data, len); | 198 buf = ngx_cpymem(buf, v->data, len); |
199 fmt++; | |
200 | |
201 continue; | |
202 | |
203 case 'v': | |
204 vv = va_arg(args, ngx_variable_value_t *); | |
205 | |
206 len = vv->len; | |
207 len = (buf + len < last) ? len : (size_t) (last - buf); | |
208 | |
209 buf = ngx_cpymem(buf, vv->data, len); | |
197 fmt++; | 210 fmt++; |
198 | 211 |
199 continue; | 212 continue; |
200 | 213 |
201 case 's': | 214 case 's': |