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':