From 860be768c957b0f6954921cd25a9b8465da8617b Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Thu, 8 Sep 2011 11:03:20 +0000 Subject: Fix list-style send() API in show functions when using provides() Also fix ignoring the return value when the send() API isnused. Patch by Alexander Shorin. Closes COUCHDB-1272 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1166625 13f79535-47bb-0310-9956-ffa450edef68 --- share/server/render.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'share/server') diff --git a/share/server/render.js b/share/server/render.js index d207db41..93ff6332 100644 --- a/share/server/render.js +++ b/share/server/render.js @@ -220,10 +220,10 @@ var Render = (function() { resetList(); Mime.resetProvides(); var resp = fun.apply(ddoc, args) || {}; + resp = maybeWrapResponse(resp); // handle list() style API if (chunks.length && chunks.length > 0) { - resp = maybeWrapResponse(resp); resp.headers = resp.headers || {}; for(var header in startResp) { resp.headers[header] = startResp[header] @@ -233,8 +233,12 @@ var Render = (function() { } if (Mime.providesUsed) { - resp = Mime.runProvides(args[1], ddoc); - resp = applyContentType(maybeWrapResponse(resp), Mime.responseContentType); + var provided_resp = Mime.runProvides(args[1], ddoc) || {}; + provided_resp = maybeWrapResponse(provided_resp); + resp.body = (resp.body || "") + chunks.join(""); + resp.body += provided_resp.body || ""; + resp = applyContentType(resp, Mime.responseContentType); + resetList(); } var type = typeOf(resp); -- cgit v1.2.3