Mercurial > hg > nginx
annotate auto/cc/conf @ 4192:61e4af19df9f
Autoindex: escape '?' in file names.
For files with '?' in their names autoindex generated links with '?' not
escaped. This resulted in effectively truncated links as '?' indicates
query string start.
This is an updated version of the patch originally posted at [1]. It
introduces generic NGX_ESCAPE_URI_COMPONENT which escapes everything but
unreserved characters as per RFC 3986. This approach also renders unneeded
special colon processing (as colon is percent-encoded now), it's dropped
accordingly.
[1] http://nginx.org/pipermail/nginx-devel/2010-February/000112.html
Reported by Konstantin Leonov.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 11 Oct 2011 17:56:51 +0000 |
parents | e27070fb6c6b |
children | d620f497c50f |
rev | line source |
---|---|
455 | 1 |
2 # Copyright (C) Igor Sysoev | |
3 | |
4 | |
487 | 5 LINK="\$(CC)" |
6 | |
455 | 7 ngx_include_opt="-I " |
8 ngx_compile_opt="-c" | |
9 ngx_objout="-o " | |
10 ngx_binout="-o " | |
11 ngx_objext="o" | |
12 ngx_binext= | |
13 | |
573 | 14 ngx_long_start= |
15 ngx_long_end= | |
16 | |
455 | 17 ngx_regex_dirsep="\/" |
18 ngx_dirsep='/' | |
19 | |
20 ngx_regex_cont=' \\\ | |
21 ' | |
22 ngx_cont=' \ | |
23 ' | |
24 ngx_tab=' \ | |
25 ' | |
26 ngx_spacer= | |
27 | |
573 | 28 ngx_long_regex_cont=$ngx_regex_cont |
29 ngx_long_cont=$ngx_cont | |
30 | |
455 | 31 . auto/cc/name |
32 | |
33 if test -n "$CFLAGS"; then | |
34 | |
35 CC_TEST_FLAGS="$CFLAGS $NGX_CC_OPT" | |
36 | |
37 case $NGX_CC_NAME in | |
38 | |
39 ccc) | |
40 # Compaq C V6.5-207 | |
41 | |
42 ngx_include_opt="-I" | |
43 ;; | |
44 | |
45 esac | |
46 | |
47 else | |
48 | |
49 case $NGX_CC_NAME in | |
50 gcc) | |
515 | 51 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 |
52 # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2 | |
561 | 53 # 4.0.0, 4.0.1, 4.1.0 |
455 | 54 |
55 . auto/cc/gcc | |
56 ;; | |
57 | |
58 icc) | |
515 | 59 # Intel C++ compiler 7.1, 8.0, 8.1 |
455 | 60 |
61 . auto/cc/icc | |
62 ;; | |
63 | |
561 | 64 sunc) |
65 # Sun C 5.7 Patch 117837-04 2005/05/11 | |
66 | |
67 . auto/cc/sunc | |
68 ;; | |
69 | |
467 | 70 ccc) |
515 | 71 # Compaq C V6.5-207 |
72 | |
73 . auto/cc/ccc | |
467 | 74 ;; |
455 | 75 |
515 | 76 acc) |
77 # aCC: HP ANSI C++ B3910B A.03.55.02 | |
78 | |
79 . auto/cc/acc | |
80 ;; | |
455 | 81 |
461 | 82 msvc*) |
83 # MSVC++ 6.0 SP2, MSVC++ Toolkit 2003 | |
455 | 84 |
85 . auto/cc/msvc | |
86 ;; | |
87 | |
88 owc) | |
89 # Open Watcom C 1.0, 1.2 | |
90 | |
91 . auto/cc/owc | |
92 ;; | |
93 | |
94 bcc) | |
95 # Borland C++ 5.5 | |
96 | |
97 . auto/cc/bcc | |
98 ;; | |
99 | |
100 esac | |
101 | |
515 | 102 CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT" |
455 | 103 |
104 fi | |
105 | |
106 CFLAGS="$CFLAGS $NGX_CC_OPT" | |
3367
568a854383f9
test invalid --with-ld-opt in right place
Igor Sysoev <igor@sysoev.ru>
parents:
3366
diff
changeset
|
107 NGX_TEST_LD_OPT="$NGX_LD_OPT" |
455 | 108 |
469 | 109 if [ "$NGX_PLATFORM" != win32 ]; then |
455 | 110 |
461 | 111 if test -n "$NGX_LD_OPT"; then |
112 ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\" | |
469 | 113 ngx_feature_name= |
461 | 114 ngx_feature_run=no |
115 ngx_feature_incs= | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
116 ngx_feature_path= |
461 | 117 ngx_feature_libs= |
118 ngx_feature_test= | |
119 . auto/feature | |
120 | |
121 if [ $ngx_found = no ]; then | |
122 echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\" | |
123 echo | |
124 exit 1 | |
125 fi | |
126 fi | |
127 | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
128 |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
129 ngx_feature="gcc builtin atomic operations" |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
130 ngx_feature_name=NGX_HAVE_GCC_ATOMIC |
3366 | 131 ngx_feature_run=yes |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
132 ngx_feature_incs= |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
133 ngx_feature_path= |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
134 ngx_feature_libs= |
3366 | 135 ngx_feature_test="long n = 0; |
136 if (!__sync_bool_compare_and_swap(&n, 0, 1)) | |
137 return 1; | |
138 if (__sync_fetch_and_add(&n, 1) != 1) | |
139 return 1; | |
140 if (n != 2) | |
141 return 1; | |
142 __sync_synchronize();" | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
143 . auto/feature |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
144 |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
145 |
517 | 146 if [ "$NGX_CC_NAME" = "ccc" ]; then |
515 | 147 echo "checking for C99 variadic macros ... disabled" |
148 else | |
149 ngx_feature="C99 variadic macros" | |
150 ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS" | |
151 ngx_feature_run=yes | |
152 ngx_feature_incs="#include <stdio.h> | |
153 #define var(dummy, ...) sprintf(__VA_ARGS__)" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
154 ngx_feature_path= |
515 | 155 ngx_feature_libs= |
156 ngx_feature_test="char buf[30]; buf[0] = '0'; | |
157 var(0, buf, \"%d\", 1); | |
158 if (buf[0] != '1') return 1" | |
159 . auto/feature | |
160 fi | |
455 | 161 |
467 | 162 |
3673
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
163 ngx_feature="gcc variadic macros" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
164 ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
165 ngx_feature_run=yes |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
166 ngx_feature_incs="#include <stdio.h> |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
167 #define var(dummy, args...) sprintf(args)" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
168 ngx_feature_path= |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
169 ngx_feature_libs= |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
170 ngx_feature_test="char buf[30]; buf[0] = '0'; |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
171 var(0, buf, \"%d\", 1); |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
172 if (buf[0] != '1') return 1" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
173 . auto/feature |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
174 |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
175 |
467 | 176 # ngx_feature="inline" |
469 | 177 # ngx_feature_name= |
467 | 178 # ngx_feature_run=no |
179 # ngx_feature_incs="int inline f(void) { return 1 }" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
180 # ngx_feature_path= |
467 | 181 # ngx_feature_libs= |
182 # ngx_feature_test= | |
183 # . auto/feature | |
184 # | |
185 # if [ $ngx_found = yes ]; then | |
186 # fi | |
187 | |
455 | 188 fi |