<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/0a39c7e5e4ab54bb3e0947889780ba42cd8f1a0a">https://github.com/macports/macports-ports/commit/0a39c7e5e4ab54bb3e0947889780ba42cd8f1a0a</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 0a39c7e  couchdb-devel: mark obsolete, replace with couchdb
</span>0a39c7e is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 0a39c7e5e4ab54bb3e0947889780ba42cd8f1a0a
</span>Author: Christopher Chavez <chrischavez@gmx.us>
AuthorDate: Mon May 20 16:19:06 2019 -0500

<span style='display:block; white-space:pre;color:#404040;'>    couchdb-devel: mark obsolete, replace with couchdb
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    couchdb-devel was last updated in 2013 and is
</span><span style='display:block; white-space:pre;color:#404040;'>    multiple versions behind the couchdb port.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/53551
</span>---
 databases/couchdb-devel/Portfile                   | 100 +---
 .../couchdb-devel/files/patch-automake-1.13.diff   |  14 -
 ...tc-launchd-org.apache.couchdb.plist.tpl.in.diff |  13 -
 ...atch-parameterized-modules-r16b-bug.38395.patch | 548 ---------------------
 .../files/patch-src-couchdb-priv-Makefile.am.diff  |  11 -
 databases/couchdb/Portfile                         |   1 -
 6 files changed, 5 insertions(+), 682 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/couchdb-devel/Portfile b/databases/couchdb-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a5d632d..f170fa7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/couchdb-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/couchdb-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,104 +1,14 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
 
 PortSystem              1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup               active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Remove after 2020-05-20
</span> 
 name                    couchdb-devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts               couchdb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+replaced_by             couchdb
</span> version                 1.4.0a-20130330
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                5
</span> 
 categories              databases
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms               darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-description             CouchDB is a document database server
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers             {ciserlohn @ci42}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description        ${description} with a restful HTTP API, capable of \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        storing arbitrary JSON documents, building powerful data views, \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        defined in JavaScript, and processed in parallel using Map/Reduce. \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        It leaves out SQL and transactions for simplicity's sake, to \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        improve scalability and to relax users' lives.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage                http://couchdb.apache.org/
</span> license                 Apache-2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-fetch.type              git
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-git.url                 https://git-wip-us.apache.org/repos/asf/couchdb.git
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-git.branch              97505126c90469e7588272d0eec451b93159cd9a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build           port:automake \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:autoconf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:libtool \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:help2man \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:pkgconfig \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:autoconf-archive
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib             port:icu \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:spidermonkey \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:erlang \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:curl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# erlang is not universal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-universal_variant       no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles              patch-automake-1.13.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-etc-launchd-org.apache.couchdb.plist.tpl.in.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-couchdb-priv-Makefile.am.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-parameterized-modules-r16b-bug.38395.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-require_active_variants erlang ssl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-pre-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system "cd ${worksrcpath}; ./bootstrap"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args          --with-js-include=${prefix}/include/js \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --with-erlang=${prefix}/lib/erlang/usr/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-js-trunk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set dbgroup             couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set dbuser              couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set logdir              ${prefix}/var/log/couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set dbdir               ${prefix}/var/lib/couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set confdir             ${prefix}/etc/couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set rundir              ${prefix}/var/run/couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set plistdir            /Library/LaunchDaemons
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-startupitem.uniquename  org.apache.couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set plist               ${startupitem.uniquename}.plist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-add_users               ${dbuser} group=${dbgroup}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    move ${destroot}${confdir}/local.ini ${destroot}${confdir}/local.ini.sample
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 755 -o ${dbuser} -g ${dbgroup} -d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${dbdir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${logdir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${plistdir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${rundir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    destroot.keepdirs-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${dbdir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${logdir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${rundir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system "cd ${destroot}${plistdir} && ln -sf ${prefix}${plistdir}/${plist}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-activate {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![file exists ${confdir}/local.ini]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 640 -o ${dbuser} -g ${dbgroup} ${confdir}/local.ini.sample ${confdir}/local.ini
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-notes "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Run the following command to load the CouchDB launchd plist\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-in order to start the service now and at system startup:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-sudo port load couchdb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type          regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url           "https://git-wip-us.apache.org/repos/asf?p=couchdb.git;a=commit;h=refs/heads/master"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.version       ${git.branch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex         <tr><td>commit</td><td class="sha1">(\[a-f0-9\]{40})</td></tr>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/couchdb-devel/files/patch-automake-1.13.diff b/databases/couchdb-devel/files/patch-automake-1.13.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b0d65b4..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/couchdb-devel/files/patch-automake-1.13.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- bootstrap.orig 2013-01-15 08:43:05.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ bootstrap      2013-01-15 08:42:39.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -84,9 +84,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBTOOLIZE=`find_program glibtoolize libtoolize`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--ACLOCAL=`find_program aclocal-1.11 aclocal-1.10 aclocal-1.9 aclocal`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ACLOCAL=`find_program aclocal`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AUTOHEADER=`find_program autoheader`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--AUTOMAKE=`find_program automake-1.11 automake-1.10 automake-1.9 automake`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AUTOMAKE=`find_program automake`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AUTOCONF=`find_program autoconf`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- get_aclocal_dir_list () {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/couchdb-devel/files/patch-etc-launchd-org.apache.couchdb.plist.tpl.in.diff b/databases/couchdb-devel/files/patch-etc-launchd-org.apache.couchdb.plist.tpl.in.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 50bb6d1..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/couchdb-devel/files/patch-etc-launchd-org.apache.couchdb.plist.tpl.in.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git etc/launchd/org.apache.couchdb.plist.tpl.in etc/launchd/org.apache.couchdb.plist.tpl.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c72f348..8dc75e2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- etc/launchd/org.apache.couchdb.plist.tpl.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ etc/launchd/org.apache.couchdb.plist.tpl.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9,8 +9,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     <dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       <key>HOME</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       <string>~</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      <key>DYLD_LIBRARY_PATH</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      <string>/opt/local/lib:$DYLD_LIBRARY_PATH</string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     </dict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     <key>ProgramArguments</key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     <array>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/couchdb-devel/files/patch-parameterized-modules-r16b-bug.38395.patch b/databases/couchdb-devel/files/patch-parameterized-modules-r16b-bug.38395.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 36fe2f4..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/couchdb-devel/files/patch-parameterized-modules-r16b-bug.38395.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,548 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/configure.ac     2013-03-29 09:37:24.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./configure.ac 2013-03-29 09:37:56.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -420,7 +420,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     as_fn_error $? "$erlang_version_error" "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if test $minor_version -lt 7 -o $minor_version -gt 9; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test $minor_version -lt 7; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     as_fn_error $? "$erlang_version_error" "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/src/mochiweb/Makefile.am 2013-03-29 09:37:24.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./src/mochiweb/Makefile.am     2013-03-29 09:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17,6 +17,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mochiwebebindir = $(localerlanglibdir)/mochiweb-1.4.1/ebin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mochiweb_file_collection = \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  pmod_pt.erl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mochifmt.erl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mochifmt_records.erl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mochifmt_std.erl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -55,6 +56,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   reloader.erl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mochiwebebin_make_generated_file_list = \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  pmod_pt.beam \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mochifmt.beam \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mochifmt_records.beam \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mochifmt_std.beam \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -106,5 +108,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mochijson2.beam: mochijson2.erl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(ERLC) $(ERLC_FLAGS) $(MOCHIJSON_ERLC_FLAGS) $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+mochifmt_records.beam mochifmt_std.beam mochiweb_request.beam mochiweb_response.beam: pmod_pt.beam
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- %.beam: %.erl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $(ERLC) $(ERLC_FLAGS) $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(ERLC) $(ERLC_FLAGS) -pa . $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/src/mochiweb/mochifmt_records.erl        2013-03-29 09:37:24.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./src/mochiweb/mochifmt_records.erl    2013-03-29 09:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,6 +13,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -author('bob@mochimedia.com').
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -export([get_value/2]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-compile({parse_transform, pmod_pt}).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- get_value(Key, Rec) when is_tuple(Rec) and is_atom(element(1, Rec)) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     try begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             Atom = list_to_existing_atom(Key),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/src/mochiweb/mochifmt_std.erl    2013-03-29 09:37:24.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./src/mochiweb/mochifmt_std.erl        2013-03-29 09:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7,6 +7,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -author('bob@mochimedia.com').
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -export([format/2, get_value/2, format_field/2, get_field/2, convert_field/2]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-compile({parse_transform, pmod_pt}).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- format(Format, Args) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     mochifmt:format(Format, Args, THIS).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/src/mochiweb/mochiweb_request.erl        2013-03-29 09:37:24.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./src/mochiweb/mochiweb_request.erl    2013-03-29 09:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,6 +23,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -export([accepted_encodings/1]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -export([accepts_content_type/1]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-compile({parse_transform, pmod_pt}).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -define(SAVE_QS, mochiweb_request_qs).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -define(SAVE_PATH, mochiweb_request_path).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -define(SAVE_RECV, mochiweb_request_recv).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/src/mochiweb/mochiweb_response.erl       2013-03-29 09:37:24.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./src/mochiweb/mochiweb_response.erl   2013-03-29 09:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11,6 +11,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -export([get_header_value/1, get/1, dump/0]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -export([send/1, write_chunk/1]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-compile({parse_transform, pmod_pt}).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- %% @spec get_header_value(string() | atom() | binary()) -> string() | undefined
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- %% @doc Get the value of the given response header.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- get_header_value(K) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ../couchdb-devel-1.4.0a-20130327.orig/src/mochiweb/pmod_pt.erl 1969-12-31 18:00:00.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./src/mochiweb/pmod_pt.erl     2013-03-29 09:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,463 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% %CopyrightBegin%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Copyright Ericsson AB 2013. All Rights Reserved.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% The contents of this file are subject to the Erlang Public License,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Version 1.1, (the "License"); you may not use this file except in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% compliance with the License. You should have received a copy of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Erlang Public License along with this software. If not, it can be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% retrieved online at http://www.erlang.org/.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Software distributed under the License is distributed on an "AS IS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% the License for the specific language governing rights and limitations
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% under the License.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% %CopyrightEnd%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-module(pmod_pt).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-export([parse_transform/2,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   format_error/1]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Expand function definition forms of parameterized module.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% The code is based on the code in sys_expand_pmod which used to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% included in the compiler, but details are different because
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% sys_pre_expand has not been run. In particular:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% * Record definitions are still present and must be handled.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% * (Syntatic) local calls may actually be calls to an imported
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%   funtion or a BIF. It is a local call if and only if there
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%   is a definition for the function in the module.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% * When we introduce the module parameters and 'THIS' in each
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%   function, we must artificially use it to avoid a warning for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%   unused variables.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% * On the other hand, we don't have to worry about module_info/0,1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%%   because they have not been added yet.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-record(pmod, {parameters,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         defined
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+parse_transform(Forms0, _Options) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    put(?MODULE, []),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Forms = transform(Forms0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case erase(?MODULE) of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [] ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      Forms;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [_|_]=Errors ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      File = get_file(Forms),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      {error,[{File,Errors}],[]}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+format_error(extends_self) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "cannot extend from self";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+format_error(define_instance) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "defining instance function not allowed in parameterized module".
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_error(Line, Error) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    put(?MODULE, get(?MODULE) ++ [{Line,?MODULE,Error}]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+get_file([{attribute,_,file,{File,_}}|_]) -> File;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+get_file([_|T]) -> get_file(T).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+transform(Forms0) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Def = collect_defined(Forms0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Base,ModAs,Forms1} = attribs(Forms0, [], undefined, []),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Mod,Ps0} = case ModAs of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              {M0,P0} -> {M0,P0};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              M0 -> {M0,undefined}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Forms2 = case Ps0 of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           undefined ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               Forms1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           _ ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               pmod_expand(Forms1, Mod, Base, Ps0, Def)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% Add new functions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NewFs0 = maybe_extend(Base, Mod, Ps0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NewExps = collect_defined(NewFs0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Forms3 = add_attributes(Forms2, [{attribute,0,export,NewExps}]),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_new_funcs(Forms3, NewFs0).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+pmod_expand(Forms0, Mod, Base, Ps0, Def) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Ps = if is_atom(Base) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           ['BASE' | Ps0];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      true ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           Ps0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    St0 = #pmod{parameters=Ps,defined=gb_sets:from_list(Def)},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Forms1,_} = forms(Forms0, St0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Forms2 = update_exps(Forms1),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Forms3 = update_forms(Forms2),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NewFs0 = add_instance(Mod, Ps, []),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NewFs = ensure_new(Base, Ps0, NewFs0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Forms = add_new_funcs(Forms3, NewFs),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NewExps = collect_defined(NewFs),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_attributes(Forms, [{attribute,0,export,NewExps}]).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_attributes([{attribute,_,module,_}=F|Fs], Attrs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F|Attrs++Fs];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_attributes([F|Fs], Attrs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F|add_attributes(Fs, Attrs)].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_new_funcs([{eof,_}|_]=Fs, NewFs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NewFs ++ Fs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_new_funcs([F|Fs], Es) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F|add_new_funcs(Fs, Es)].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+maybe_extend([], _, _) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% No 'extends' attribute.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+maybe_extend(Base, _Mod, undefined) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% There is a an 'extends' attribute; the module is not parameterized.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Name = '$handle_undefined_function',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Args = [{var,0,'Func'},{var,0,'Args'}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Body = [make_apply({atom,0,Base}, {var,0,'Func'}, {var,0,'Args'})],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    F = {function,0,Name,2,[{clause,0,Args,[],Body}]},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+maybe_extend(Base, Mod, Ps) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% There is a an 'extends' attribute; the module is parameterized.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Name = '$handle_undefined_function',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Args = [{var,0,'Func'},{var,0,'Args'}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    DontCares = [{var,0,'_'} || _ <- Ps],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    TuplePs = {tuple,0,[{atom,0,Mod},{var,0,'BaseVars'}|DontCares]},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    G = [{call,0,{atom,0,is_atom},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{call,0,{atom,0,element},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      [{integer,0,1},{var,0,'BaseVars'}]}]}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    FixedArgs = make_lists_rev([{var,0,'Rs'},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          {cons,0,{var,0,'BaseVars'},{nil,0}}]),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Body = [{'case',0,make_lists_rev([{var,0,'Args'}]),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       [{clause,0,[{cons,0,TuplePs,{var,0,'Rs'}}],[G],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         [make_apply({atom,0,Base}, {var,0,'Func'}, FixedArgs)]},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {clause,0,[{var,0,'_'}],[],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         [make_apply({atom,0,Base}, {var,0,'Func'}, {var,0,'Args'})]}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ]}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    F = {function,0,Name,2,[{clause,0,Args,[],Body}]},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+make_apply(M, F, A) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {call,0,{remote,0,{atom,0,erlang},{atom,0,apply}},[M,F,A]}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+make_lists_rev(As) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {call,0,{remote,0,{atom,0,lists},{atom,0,reverse}},As}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ensure_new(Base, Ps, Fs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case has_new(Fs) of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  true ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      Fs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  false ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      add_new(Base, Ps, Fs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+has_new([{function,_L,new,_A,_Cs} | _Fs]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+has_new([_ | Fs]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    has_new(Fs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+has_new([]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    false.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_new(Base, Ps, Fs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Vs = [{var,0,V} || V <- Ps],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    As = if is_atom(Base) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           [{call,0,{remote,0,{atom,0,Base},{atom,0,new}},Vs} | Vs];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      true ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           Vs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Body = [{call,0,{atom,0,instance},As}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_func(new, Vs, Body, Fs).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_instance(Mod, Ps, Fs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Vs = [{var,0,V} || V <- Ps],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    AbsMod = [{tuple,0,[{atom,0,Mod}|Vs]}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_func(instance, Vs, AbsMod, Fs).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+add_func(Name, Args, Body, Fs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    A = length(Args),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    F = {function,0,Name,A,[{clause,0,Args,[],Body}]},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F|Fs].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+collect_defined(Fs) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{N,A} || {function,_,N,A,_} <- Fs].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+attribs([{attribute,Line,module,{Mod,_}=ModAs}|T], Base, _, Acc) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    attribs(T, Base, ModAs, [{attribute,Line,module,Mod}|Acc]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+attribs([{attribute,_,module,Mod}=H|T], Base, _, Acc) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    attribs(T, Base, Mod, [H|Acc]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+attribs([{attribute,Line,extends,Base}|T], Base0, Ps, Acc) when is_atom(Base) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Mod = case Ps of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {Mod0,_} -> Mod0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        Mod0 -> Mod0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case Mod of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Base ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      add_error(Line, extends_self),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      attribs(T, Base0, Ps, Acc);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  _ ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      attribs(T, Base, Ps, Acc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+attribs([H|T], Base, Ps, Acc) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    attribs(T, Base, Ps, [H|Acc]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+attribs([], Base, Ps, Acc) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Base,Ps,lists:reverse(Acc)}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% This is extremely simplistic for now; all functions get an extra
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% parameter, whether they need it or not, except for static functions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_function_name({F,A}) when F =/= new ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {F,A+1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_function_name(E) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_forms([{function,L,N,A,Cs}|Fs]) when N =/= new ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{function,L,N,A+1,Cs}|update_forms(Fs)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_forms([F|Fs]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [F|update_forms(Fs)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_forms([]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_exps([{attribute,Line,export,Es0}|T]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Es = [update_function_name(E) || E <- Es0],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{attribute,Line,export,Es}|update_exps(T)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_exps([H|T]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [H|update_exps(T)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+update_exps([]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Process the program forms.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+forms([F0|Fs0],St0) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {F1,St1} = form(F0,St0),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Fs1,St2} = forms(Fs0,St1),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {[F1|Fs1],St2};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+forms([], St0) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {[], St0}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Only function definitions are of interest here. State is not updated.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+form({function,Line,instance,_Arity,_Clauses}=F,St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_error(Line, define_instance),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {F,St};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+form({function,Line,Name0,Arity0,Clauses0},St) when Name0 =/= new ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Name,Arity,Clauses} = function(Name0, Arity0, Clauses0, St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {{function,Line,Name,Arity,Clauses},St};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% Pass anything else through
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+form(F,St) -> {F,St}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+function(Name, Arity, Clauses0, St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Clauses1 = clauses(Clauses0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {Name,Arity,Clauses1}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+clauses([C|Cs],#pmod{parameters=Ps}=St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {clause,L,H,G,B0} = clause(C,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    T = {tuple,L,[{var,L,V} || V <- ['_'|Ps]]},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    B = [{match,L,{var,L,'_'},{var,L,V}} || V <- ['THIS'|Ps]] ++ B0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{clause,L,H++[{match,L,T,{var,L,'THIS'}}],G,B}|clauses(Cs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+clauses([],_St) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+clause({clause,Line,H,G,B0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% We never update H and G, so we will just copy them.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    B1 = exprs(B0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {clause,Line,H,G,B1}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+pattern_grp([{bin_element,L1,E1,S1,T1} | Fs],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    S2 = case S1 of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       default ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           default;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       _ ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           expr(S1,St)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    T2 = case T1 of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       default ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           default;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       _ ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           bit_types(T1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{bin_element,L1,expr(E1,St),S2,T2} | pattern_grp(Fs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+pattern_grp([],_St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bit_types([]) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bit_types([Atom | Rest]) when is_atom(Atom) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [Atom | bit_types(Rest)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bit_types([{Atom, Integer} | Rest]) when is_atom(Atom), is_integer(Integer) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{Atom, Integer} | bit_types(Rest)].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+exprs([E0|Es],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [E1|exprs(Es,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+exprs([],_St) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({var,_L,_V}=Var,_St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Var;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({integer,_Line,_I}=Integer,_St) -> Integer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({float,_Line,_F}=Float,_St) -> Float;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({atom,_Line,_A}=Atom,_St) -> Atom;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({string,_Line,_S}=String,_St) -> String;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({char,_Line,_C}=Char,_St) -> Char;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({nil,_Line}=Nil,_St) -> Nil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({cons,Line,H0,T0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    H1 = expr(H0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    T1 = expr(T0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {cons,Line,H1,T1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({lc,Line,E0,Qs0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Qs1 = lc_bc_quals(Qs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {lc,Line,E1,Qs1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({bc,Line,E0,Qs0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Qs1 = lc_bc_quals(Qs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {bc,Line,E1,Qs1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({tuple,Line,Es0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Es1 = expr_list(Es0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {tuple,Line,Es1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({record_index,_,_,_}=RI, _St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    RI;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({record,Line,Name,Is0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Is = record_fields(Is0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {record,Line,Name,Is};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({record,Line,E0,Name,Is0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Is = record_fields(Is0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {record,Line,E,Name,Is};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({record_field,Line,E0,Name,Key},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {record_field,Line,E,Name,Key};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({block,Line,Es0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Es1 = exprs(Es0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {block,Line,Es1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'if',Line,Cs0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Cs1 = icr_clauses(Cs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {'if',Line,Cs1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'case',Line,E0,Cs0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Cs1 = icr_clauses(Cs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {'case',Line,E1,Cs1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'receive',Line,Cs0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Cs1 = icr_clauses(Cs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {'receive',Line,Cs1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'receive',Line,Cs0,To0,ToEs0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    To1 = expr(To0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ToEs1 = exprs(ToEs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Cs1 = icr_clauses(Cs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {'receive',Line,Cs1,To1,ToEs1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'try',Line,Es0,Scs0,Ccs0,As0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Es1 = exprs(Es0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Scs1 = icr_clauses(Scs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Ccs1 = icr_clauses(Ccs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    As1 = exprs(As0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {'try',Line,Es1,Scs1,Ccs1,As1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'fun',_,{function,_,_,_}}=ExtFun,_St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ExtFun;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'fun',Line,Body},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case Body of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {clauses,Cs0} ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      Cs1 = fun_clauses(Cs0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      {'fun',Line,{clauses,Cs1}};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {function,F,A} = Function ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      {F1,A1} = update_function_name({F,A}),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if A1 =:= A ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              {'fun',Line,Function};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         true ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              %% Must rewrite local fun-name to a fun that does a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              %% call with the extra THIS parameter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              As = make_vars(A, Line),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              As1 = As ++ [{var,Line,'THIS'}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              Call = {call,Line,{atom,Line,F1},As1},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              Cs = [{clause,Line,As,[],[Call]}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              {'fun',Line,{clauses,Cs}}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {function,_M,_F,_A} = Fun4 ->                %This is an error in lint!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      {'fun',Line,Fun4}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({call,Lc,{atom,_,instance}=Name,As0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% All local functions 'instance(...)' are static by definition,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% so they do not take a 'THIS' argument when called
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    As1 = expr_list(As0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {call,Lc,Name,As1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({call,Lc,{atom,_,new}=Name,As0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% All local functions 'new(...)' are static by definition,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% so they do not take a 'THIS' argument when called
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    As1 = expr_list(As0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {call,Lc,Name,As1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({call,Lc,{atom,_Lf,F}=Atom,As0}, #pmod{defined=Def}=St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    As1 = expr_list(As0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case gb_sets:is_member({F,length(As0)}, Def) of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  false ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      %% BIF or imported function.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      {call,Lc,Atom,As1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  true ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      %% Local function call - needs THIS parameter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      {call,Lc,Atom,As1 ++ [{var,0,'THIS'}]}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    end;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({call,Line,F0,As0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    %% Other function call
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    F1 = expr(F0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    As1 = expr_list(As0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {call,Line,F1,As1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({'catch',Line,E0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {'catch',Line,E1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({match,Line,P,E0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {match,Line,P,E1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({bin,Line,Fs},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Fs2 = pattern_grp(Fs,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {bin,Line,Fs2};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({op,Line,Op,A0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    A1 = expr(A0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {op,Line,Op,A1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({op,Line,Op,L0,R0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    L1 = expr(L0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    R1 = expr(R0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {op,Line,Op,L1,R1};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%% The following are not allowed to occur anywhere!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr({remote,Line,M0,F0},St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    M1 = expr(M0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    F1 = expr(F0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {remote,Line,M1,F1}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr_list([E0|Es],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [E1|expr_list(Es,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+expr_list([],_St) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+record_fields([{record_field,L,K,E0}|T],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{record_field,L,K,E}|record_fields(T,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+record_fields([],_) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+icr_clauses([C0|Cs],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    C1 = clause(C0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [C1|icr_clauses(Cs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+icr_clauses([],_St) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+lc_bc_quals([{generate,Line,P,E0}|Qs],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{generate,Line,P,E1}|lc_bc_quals(Qs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+lc_bc_quals([{b_generate,Line,P,E0}|Qs],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{b_generate,Line,P,E1}|lc_bc_quals(Qs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+lc_bc_quals([E0|Qs],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    E1 = expr(E0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [E1|lc_bc_quals(Qs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+lc_bc_quals([],_St) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fun_clauses([C0|Cs],St) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    C1 = clause(C0,St),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [C1|fun_clauses(Cs,St)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fun_clauses([],_St) -> [].
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+make_vars(N, L) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    make_vars(1, N, L).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+make_vars(N, M, L) when N =< M ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    V = list_to_atom("X"++integer_to_list(N)),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [{var,L,V} | make_vars(N + 1, M, L)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+make_vars(_, _, _) ->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    [].
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/couchdb-devel/files/patch-src-couchdb-priv-Makefile.am.diff b/databases/couchdb-devel/files/patch-src-couchdb-priv-Makefile.am.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0b70612..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/couchdb-devel/files/patch-src-couchdb-priv-Makefile.am.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/couchdb/priv/Makefile.am.orig      2011-09-01 23:03:05.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/couchdb/priv/Makefile.am   2013-01-14 05:13:47.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -70,7 +70,7 @@ 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- locallibbin_PROGRAMS = couchjs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- couchjs_SOURCES = $(COUCHJS_SRCS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--couchjs_CFLAGS = -g -Wall -Werror -D_BSD_SOURCE $(CURL_CFLAGS) $(JS_CFLAGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+couchjs_CFLAGS = -g -Wall -D_BSD_SOURCE $(CURL_CFLAGS) $(JS_CFLAGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- couchjs_LDADD = $(CURL_LIBS) $(JS_LIBS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- couchpriv_DATA = stat_descriptions.cfg
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/couchdb/Portfile b/databases/couchdb/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9cf2211..8fccec0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/couchdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/couchdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,6 @@ PortGroup               active_variants 1.1
</span> PortGroup               conflicts_build 1.0
 
 name                    couchdb
<span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts               couchdb-devel
</span> version                 1.7.1
 
 categories              databases
</pre><pre style='margin:0'>

</pre>