Revision 343031383436 () - Diff

Link to this snippet: https://friendpaste.com/5Kl8o2Ho7vgchAOE9Die7G
Embed:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
diff --git a/src/couch_index_merger/src/couch_httpd_view_merger.erl b/src/couch_index_merger/src/couch_httpd_view_merger.erl
index 9597cb3..1715632 100644
--- a/src/couch_index_merger/src/couch_httpd_view_merger.erl
+++ b/src/couch_index_merger/src/couch_httpd_view_merger.erl
@@ -370,13 +370,16 @@ parse_view_name(Name) ->
{nil, nil, <<"_all_docs">>};
[DDocName, ViewName0] ->
{nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
- ["_design", DDocName, ViewName0] ->
+ ["_design", DDocName0, ViewName0] ->
+ DDocName = couch_httpd:unquote(DDocName0),
{nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
- [DDocDbName1, DDocName, ViewName0] ->
+ [DDocDbName1, DDocName0, ViewName0] ->
DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
+ DDocName = couch_httpd:unquote(DDocName0),
{DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
- [DDocDbName1, "_design", DDocName, ViewName0] ->
+ [DDocDbName1, "_design", DDocName0, ViewName0] ->
DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
+ DDocName = couch_httpd:unquote(DDocName0),
{DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
_ ->
throw({bad_request, "A `view` property must have the shape"
diff --git a/src/couch_index_merger/src/couch_view_merger.erl b/src/couch_index_merger/src/couch_view_merger.erl
index 2f04c7a..4c10678 100644
--- a/src/couch_index_merger/src/couch_view_merger.erl
+++ b/src/couch_index_merger/src/couch_view_merger.erl
@@ -208,7 +208,7 @@ http_index_folder_req_details(#simple_index_spec{} = IndexSpec, MergeParams, _DD
<<"_all_docs">> ->
"_all_docs";
_ ->
- ?b2l(DDocId) ++ "/_view/" ++ ?b2l(ViewName)
+ couch_httpd:quote(DDocId) ++ "/_view/" ++ couch_httpd:quote(ViewName)
end ++ view_qs(ViewArgs, MergeParams),
put(from_url, DbUrl),
case Keys of