annotate auto/cc/name @ 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 7d125a707158
children fbd6d1e5cdef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 # Copyright (C) Igor Sysoev
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
5 if [ "$NGX_PLATFORM" != win32 ]; then
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
6
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
7 ngx_feature="C compiler"
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
8 ngx_feature_name=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
9 ngx_feature_run=yes
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
10 ngx_feature_incs=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
11 ngx_feature_path=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
12 ngx_feature_libs=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
13 ngx_feature_test=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
14 . auto/feature
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
15
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
16 if [ $ngx_found = no ]; then
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
17 echo
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
18 echo $0: error: C compiler $CC is not found
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
19 echo
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
20 exit 1
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
21 fi
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
22
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
23 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
26 if [ "$CC" = cl ]; then
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
27 if `$NGX_WINE $CC -v 2>&1 \
1639
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
28 | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14' \
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
29 >/dev/null 2>&1`; then
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
30
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
31 NGX_CC_NAME=msvc8
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
32 echo " + using Microsoft Visual C++ 8 compiler"
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
33
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
34 else if `$NGX_WINE $CC -v 2>&1 \
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
35 | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13' \
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
36 >/dev/null 2>&1`; then
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
37
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
38 NGX_CC_NAME=msvc7
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
39 echo " + using Microsoft Visual C++ 7 compiler"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
40
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
41 else
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
42 NGX_CC_NAME=msvc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
43 echo " + using Microsoft Visual C++ compiler"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
44 fi
1639
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
45 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
47 else
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
48 if [ "$CC" = wcl386 ]; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 NGX_CC_NAME=owc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
50 echo " + using Open Watcom C compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 else
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
53 if [ "$CC" = bcc32 ]; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54 NGX_CC_NAME=bcc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
55 echo " + using Borland C++ compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 else
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
58 if `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 NGX_CC_NAME=gcc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
60 echo " + using GNU C compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
61
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 else
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
63 if `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
64 NGX_CC_NAME=icc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
65 echo " + using Intel C++ compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
66
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67 else
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
68 if `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
69 NGX_CC_NAME=sunc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
70 echo " + using Sun C compiler"
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
71
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
72 else
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
73 if `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
74 NGX_CC_NAME=ccc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
75 echo " + using Compaq C compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77 else
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
78 if `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79 NGX_CC_NAME=acc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
80 echo " + using HP aC++ compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82 else
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
83 NGX_CC_NAME=unknown
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85 fi # acc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86 fi # ccc
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
87 fi # sunc
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88 fi # icc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 fi # gcc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
90 fi # bcc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
91 fi # owc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
92 fi # msvc