From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 00:56:54 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 93C67F27; Sun, 12 May 2013 00:56:54 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 6ED381CC; Sun, 12 May 2013 00:56:54 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C0usoc048021; Sun, 12 May 2013 00:56:54 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C0usTt048020; Sun, 12 May 2013 00:56:54 GMT (envelope-from linimon) Date: Sun, 12 May 2013 00:56:54 GMT Message-Id: <201305120056.r4C0usTt048020@freefall.freebsd.org> To: devzone.my@gmail.com, linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org From: linimon@FreeBSD.org Subject: Re: ports/178118: New MySQL fork TokuDB opensource X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 00:56:54 -0000 Synopsis: New MySQL fork TokuDB opensource State-Changed-From-To: open->closed State-Changed-By: linimon State-Changed-When: Sun May 12 00:55:38 UTC 2013 State-Changed-Why: Without someone to submit a FreeBSD port to offer this software, there is not enough to go on for a PR. Close, but redirect to the freebsd-ports@ mailing list to see if someone will take an interest. Responsible-Changed-From-To: freebsd-bugs->freebsd-ports-bugs Responsible-Changed-By: linimon Responsible-Changed-When: Sun May 12 00:55:38 UTC 2013 Responsible-Changed-Why: http://www.freebsd.org/cgi/query-pr.cgi?pr=178118 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 02:50:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 2932630C for ; Sun, 12 May 2013 02:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id E9AE76AA for ; Sun, 12 May 2013 02:50:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C2o0hq071245 for ; Sun, 12 May 2013 02:50:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C2o0rq071244; Sun, 12 May 2013 02:50:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 02:50:00 GMT Resent-Message-Id: <201305120250.r4C2o0rq071244@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Shane Ambler Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A33A0307 for ; Sun, 12 May 2013 02:49:25 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 94CEE6A8 for ; Sun, 12 May 2013 02:49:25 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4C2nPQQ055265 for ; Sun, 12 May 2013 02:49:25 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4C2nOAf055264; Sun, 12 May 2013 02:49:24 GMT (envelope-from nobody) Message-Id: <201305120249.r4C2nOAf055264@oldred.FreeBSD.org> Date: Sun, 12 May 2013 02:49:24 GMT From: Shane Ambler To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178522: [maintainer update] for graphics/py-openimageio X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 02:50:01 -0000 >Number: 178522 >Category: ports >Synopsis: [maintainer update] for graphics/py-openimageio >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun May 12 02:50:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Shane Ambler >Release: 9.1-RELEASE >Organization: >Environment: FreeBSD leader.local 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r246600: Sun Feb 10 16:13:27 CST 2013 shane@leader.local:/usr/obj/usr/src/sys/dtracekern amd64 >Description: In a previous commit graphics/py-openimageio was made a slave to graphics/openimageio. The step of deleting the files used from the master port was skipped. The following actions should be done - rm graphics/py-openimageio/distinfo rm graphics/py-openimageio/pkg-descr rm graphics/py-openimageio/files/patch-src_CMakeLists.txt rmdir graphics/py-openimageio/files Leaving only Makefile in graphics/py-openimageio. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 02:50:09 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C7A1F428; Sun, 12 May 2013 02:50:09 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A46CB6AF; Sun, 12 May 2013 02:50:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C2o9jd071377; Sun, 12 May 2013 02:50:09 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C2o9su071376; Sun, 12 May 2013 02:50:09 GMT (envelope-from edwin) Date: Sun, 12 May 2013 02:50:09 GMT Message-Id: <201305120250.r4C2o9su071376@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, freebsd-python@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178522: [maintainer update] for graphics/py-openimageio X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 02:50:09 -0000 Synopsis: [maintainer update] for graphics/py-openimageio Responsible-Changed-From-To: freebsd-ports-bugs->freebsd-python Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 02:50:09 UTC 2013 Responsible-Changed-Why: freebsd-python@ wants this port PRs (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178522 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 04:50:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 6C1F47D1 for ; Sun, 12 May 2013 04:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 4BFEEAA0 for ; Sun, 12 May 2013 04:50:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C4o1Je094197 for ; Sun, 12 May 2013 04:50:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C4o1Hj094146; Sun, 12 May 2013 04:50:01 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 04:50:01 GMT Resent-Message-Id: <201305120450.r4C4o1Hj094146@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Kubilay Kocak Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id A7AD7676; Sun, 12 May 2013 04:46:40 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by mx1.freebsd.org (Postfix) with ESMTP id 7E9A4A6E; Sun, 12 May 2013 04:46:40 +0000 (UTC) Received: by mail-pa0-f47.google.com with SMTP id kl13so3834216pab.34 for ; Sat, 11 May 2013 21:46:34 -0700 (PDT) Received: from freebsd-RELENG_9-amd64.elysium (ppp59-167-128-11.static.internode.on.net. [59.167.128.11]) by mx.google.com with ESMTPSA id vb8sm8790276pbc.11.2013.05.11.21.46.32 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 11 May 2013 21:46:33 -0700 (PDT) Received: by freebsd-RELENG_9-amd64.elysium (Postfix, from userid 1001) id 1D44B39FFB; Sun, 12 May 2013 14:46:29 +1000 (EST) Message-Id: <20130512044629.1D44B39FFB@freebsd-RELENG_9-amd64.elysium> Date: Sun, 12 May 2013 14:46:29 +1000 (EST) From: Kubilay Kocak To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.113 Subject: ports/178523: [PATCH] textproc/libxslt: Put the fastest MASTER_SITE first Cc: gnome@FreeBSD.org X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 04:50:01 -0000 >Number: 178523 >Category: ports >Synopsis: [PATCH] textproc/libxslt: Put the fastest MASTER_SITE first >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun May 12 04:50:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Kubilay Kocak >Release: FreeBSD 9.1-STABLE amd64 >Organization: >Environment: System: FreeBSD freebsd-RELENG_9-amd64.elysium 9.1-STABLE FreeBSD 9.1-STABLE #0 r249542: Sun Apr 21 21:01:52 EST >Description: gd.tuwien.ac.at is a mirror for the libxml2 project, and frequently exhibits extremely slow throughput (<= 8k/sec) causing installation and upgrade to unecessarily take a long time. This change also matches the textproc/libxml2 MASTER_SITES order. Switch the order of MASTER_SITES, making the primary download host [1] of the libxml2 project first in the list. make checksum confirms distinfo match [1] http://www.xmlsoft.org/downloads.html Port maintainer (gnome@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.99_7 (mode: change, diff: ports) >How-To-Repeat: >Fix: --- libxslt-1.1.28_1.patch begins here --- diff -ruN /usr/ports/textproc/libxslt/Makefile ./Makefile --- /usr/ports/textproc/libxslt/Makefile 2013-05-04 02:36:39.000000000 +1000 +++ ./Makefile 2013-05-12 13:52:59.824713312 +1000 @@ -1,12 +1,12 @@ # Created by: Ade Lovett -# $FreeBSD: textproc/libxslt/Makefile 317220 2013-05-03 16:36:39Z ehaupt $ +# $FreeBSD: head/textproc/libxslt/Makefile 317220 2013-05-03 16:36:39Z ehaupt $ PORTNAME= libxslt PORTVERSION= 1.1.28 PORTREVISION?= 1 CATEGORIES?= textproc gnome -MASTER_SITES= ftp://gd.tuwien.ac.at/pub/libxml/ \ - ftp://xmlsoft.org/libxml2/ +MASTER_SITES= ftp://xmlsoft.org/libxml2/ \ + ftp://gd.tuwien.ac.at/pub/libxml/ DIST_SUBDIR= gnome2 MAINTAINER?= gnome@FreeBSD.org --- libxslt-1.1.28_1.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 04:50:10 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 39E45809; Sun, 12 May 2013 04:50:10 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 154E6AA2; Sun, 12 May 2013 04:50:10 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C4o90H094278; Sun, 12 May 2013 04:50:09 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C4o973094277; Sun, 12 May 2013 04:50:09 GMT (envelope-from edwin) Date: Sun, 12 May 2013 04:50:09 GMT Message-Id: <201305120450.r4C4o973094277@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, gnome@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178523: [PATCH] textproc/libxslt: Put the fastest MASTER_SITE first X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 04:50:10 -0000 Synopsis: [PATCH] textproc/libxslt: Put the fastest MASTER_SITE first Responsible-Changed-From-To: freebsd-ports-bugs->gnome Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 04:50:09 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178523 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 05:32:14 2013 Return-Path: Delivered-To: freebsd-ports-bugs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 485BAC10; Sun, 12 May 2013 05:32:14 +0000 (UTC) (envelope-from FreeBSD@shaneware.biz) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [IPv6:2001:44b8:8060:ff02:300:1:6:5]) by mx1.freebsd.org (Postfix) with ESMTP id 4C95FB52; Sun, 12 May 2013 05:32:13 +0000 (UTC) Received: from ppp247-71.static.internode.on.net (HELO leader.local) ([203.122.247.71]) by ipmail05.adl6.internode.on.net with ESMTP; 12 May 2013 15:02:11 +0930 Message-ID: <518F295B.4040501@ShaneWare.Biz> Date: Sun, 12 May 2013 15:02:11 +0930 From: Shane Ambler User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Raphael Kubo da Costa Subject: Re: ports/178505: [maintainer update] for graphics/openimageio References: <201305112110.r4BLA1Vs001652@freefall.freebsd.org> In-Reply-To: <201305112110.r4BLA1Vs001652@freefall.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-ports-bugs@FreeBSD.org, bug-followup@FreeBSD.org X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 05:32:14 -0000 On 12/05/2013 06:38, Raphael Kubo da Costa wrote: > Is the change to thread.h supposed to work on non-amd64 FreeBSD? Has > the patch been sent upstream? Short - yes and yes. Long - The patch originated with the discovery that i386 version crashed using tbb. The addition of arch=i586 to cflags enabled the use of gcc atomics. This was merged into the cmake files (src/cmake/platform.cmake) in 1.1.6 and taken out of the port makefile. 1.1.6 also included the removal of the freebsd condition in thread.h and by Larry Gritz's choice it was replaced with a test that left gcc atomics off if tbb was turned on. Disabling gcc atomics when tbb is on turned out to be a performance hit and 1.1.7 replaced the freebsd condition instead of removing the tbb test. I have submitted an issue for it (instead of a pull request) which seems to be the slow way of getting a change. While 1.1.8 appeared to be cli tools fixes and 1.1.9 was only docs, I don't want to drop behind so updating here with the patch. From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 05:40:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A3B6BD16 for ; Sun, 12 May 2013 05:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 95C54B9E for ; Sun, 12 May 2013 05:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C5e13q003663 for ; Sun, 12 May 2013 05:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C5e1HK003662; Sun, 12 May 2013 05:40:01 GMT (envelope-from gnats) Date: Sun, 12 May 2013 05:40:01 GMT Message-Id: <201305120540.r4C5e1HK003662@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Shane Ambler Subject: Re: ports/178505: [maintainer update] for graphics/openimageio X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Shane Ambler List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 05:40:01 -0000 The following reply was made to PR ports/178505; it has been noted by GNATS. From: Shane Ambler To: Raphael Kubo da Costa Cc: freebsd-ports-bugs@FreeBSD.org, bug-followup@FreeBSD.org Subject: Re: ports/178505: [maintainer update] for graphics/openimageio Date: Sun, 12 May 2013 15:02:11 +0930 On 12/05/2013 06:38, Raphael Kubo da Costa wrote: > Is the change to thread.h supposed to work on non-amd64 FreeBSD? Has > the patch been sent upstream? Short - yes and yes. Long - The patch originated with the discovery that i386 version crashed using tbb. The addition of arch=i586 to cflags enabled the use of gcc atomics. This was merged into the cmake files (src/cmake/platform.cmake) in 1.1.6 and taken out of the port makefile. 1.1.6 also included the removal of the freebsd condition in thread.h and by Larry Gritz's choice it was replaced with a test that left gcc atomics off if tbb was turned on. Disabling gcc atomics when tbb is on turned out to be a performance hit and 1.1.7 replaced the freebsd condition instead of removing the tbb test. I have submitted an issue for it (instead of a pull request) which seems to be the slow way of getting a change. While 1.1.8 appeared to be cli tools fixes and 1.1.9 was only docs, I don't want to drop behind so updating here with the patch. From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 05:40:02 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 500F9D18 for ; Sun, 12 May 2013 05:40:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 1E2E6BD6 for ; Sun, 12 May 2013 05:40:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C5e1J5003674 for ; Sun, 12 May 2013 05:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C5e1Oe003673; Sun, 12 May 2013 05:40:01 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 05:40:01 GMT Resent-Message-Id: <201305120540.r4C5e1Oe003673@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alex Keda Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BD1CDC4B for ; Sun, 12 May 2013 05:34:37 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id B0179B5C for ; Sun, 12 May 2013 05:34:37 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4C5YZs1030909 for ; Sun, 12 May 2013 05:34:35 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4C5YZ6x030908; Sun, 12 May 2013 05:34:35 GMT (envelope-from nobody) Message-Id: <201305120534.r4C5YZ6x030908@oldred.FreeBSD.org> Date: Sun, 12 May 2013 05:34:35 GMT From: Alex Keda To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178524: BATCH=yes not work for www/firefox-i18n X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 05:40:02 -0000 >Number: 178524 >Category: ports >Synopsis: BATCH=yes not work for www/firefox-i18n >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 05:40:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Alex Keda >Release: 9.1 >Organization: USSR >Environment: FreeBSD Athlon5000.lissyara.su 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: port www/firefox-i18n have this lines: .if !exists(${OPTIONSFILE}) && !defined(PACKAGE_BUILDING) pre-configure: config .endif but, I try install it not interactive, using BATCH=yes variable. >How-To-Repeat: export BATCH=yes cd www/firefox-i18n && make install clean >Fix: check BATCH variable too >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 05:40:16 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 73C00D78; Sun, 12 May 2013 05:40:16 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 4EFD1BDB; Sun, 12 May 2013 05:40:16 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C5eG1L003752; Sun, 12 May 2013 05:40:16 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C5eGpJ003751; Sun, 12 May 2013 05:40:16 GMT (envelope-from edwin) Date: Sun, 12 May 2013 05:40:16 GMT Message-Id: <201305120540.r4C5eGpJ003751@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, gecko@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178524: BATCH=yes not work for www/firefox-i18n X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 05:40:16 -0000 Synopsis: BATCH=yes not work for www/firefox-i18n Responsible-Changed-From-To: freebsd-ports-bugs->gecko Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 05:40:16 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178524 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 06:30:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5E48A71B for ; Sun, 12 May 2013 06:30:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 2B49FD54 for ; Sun, 12 May 2013 06:30:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C6U1bn013655 for ; Sun, 12 May 2013 06:30:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C6U1ig013654; Sun, 12 May 2013 06:30:01 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 06:30:01 GMT Resent-Message-Id: <201305120630.r4C6U1ig013654@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Norihiko Murase Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 7293D6C6 for ; Sun, 12 May 2013 06:24:45 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 63F5AD26 for ; Sun, 12 May 2013 06:24:45 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4C6Oi4j056720 for ; Sun, 12 May 2013 06:24:44 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4C6Oi2L056719; Sun, 12 May 2013 06:24:44 GMT (envelope-from nobody) Message-Id: <201305120624.r4C6Oi2L056719@oldred.FreeBSD.org> Date: Sun, 12 May 2013 06:24:44 GMT From: Norihiko Murase To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178525: sysutils/less: correct the build option X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 06:30:01 -0000 >Number: 178525 >Category: ports >Synopsis: sysutils/less: correct the build option >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 06:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Norihiko Murase >Release: >Organization: >Environment: >Description: Hey! Quick fix, please. I would like you to fix the bug related to the build option that resides in the port sysutils/less. This bug did slip into this port at SVN Revision 317890 (related PR: ports/178261) for the port update (451->458). Well, the bug is (probably) simple; the line .if ${PORT_OPTIONS:MCOLOUR_LESS} should be .if ${PORT_OPTIONS:MCOLOR_LESS} because the option named "COLOR_LESS" (NOT COLO*U*R_LESS) is defined as follows: OPTIONS_DEFINE= COLOR_LESS COLOR_LESS_DESC=Enables color support via escape sequence >How-To-Repeat: >Fix: Patch attached with submission follows: diff -U 11 -r less_317890/Makefile less_cur/Makefile --- less_317890/Makefile 2013-05-12 14:35:43.000000000 +0900 +++ less_cur/Makefile 2013-05-12 14:38:54.000000000 +0900 @@ -15,19 +15,19 @@ OPTIONS_DEFINE= COLOR_LESS COLOR_LESS_DESC=Enables color support via escape sequence PLIST_FILES= bin/less bin/lesskey bin/lessecho .include GNU_CONFIGURE= yes MAN1= less.1 lesskey.1 lessecho.1 -.if ${PORT_OPTIONS:MCOLOUR_LESS} +.if ${PORT_OPTIONS:MCOLOR_LESS} CPPFLAGS+= -DCOLOR_LESS pre-fetch: @${ECHO_MSG} "Making a color version of less." .endif .include >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 06:30:09 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 6F06174E; Sun, 12 May 2013 06:30:09 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 4A8F9D57; Sun, 12 May 2013 06:30:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C6U9bc013727; Sun, 12 May 2013 06:30:09 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C6U9xZ013726; Sun, 12 May 2013 06:30:09 GMT (envelope-from edwin) Date: Sun, 12 May 2013 06:30:09 GMT Message-Id: <201305120630.r4C6U9xZ013726@freefall.freebsd.org> To: mur1080224@inter7.jp, edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178525: sysutils/less: correct the build option X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 06:30:09 -0000 Synopsis: sysutils/less: correct the build option State-Changed-From-To: open->feedback State-Changed-By: edwin State-Changed-When: Sun May 12 06:30:09 UTC 2013 State-Changed-Why: Awaiting maintainers feedback (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178525 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 06:40:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 62467967 for ; Sun, 12 May 2013 06:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 546A3D9B for ; Sun, 12 May 2013 06:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C6e1A5015502 for ; Sun, 12 May 2013 06:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C6e1we015501; Sun, 12 May 2013 06:40:01 GMT (envelope-from gnats) Date: Sun, 12 May 2013 06:40:01 GMT Message-Id: <201305120640.r4C6e1we015501@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Edwin Groothuis Subject: Re: ports/178525: sysutils/less: correct the build option X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Edwin Groothuis List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 06:40:01 -0000 The following reply was made to PR ports/178525; it has been noted by GNATS. From: Edwin Groothuis To: jharris@widomaker.com Cc: bug-followup@FreeBSD.org Subject: Re: ports/178525: sysutils/less: correct the build option Date: Sun, 12 May 2013 06:30:08 UT Maintainer of sysutils/less, Please note that PR ports/178525 has just been submitted. If it contains a patch for an upgrade, an enhancement or a bug fix you agree on, reply to this email stating that you approve the patch and a committer will take care of it. The full text of the PR can be found at: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/178525 -- Edwin Groothuis via the GNATS Auto Assign Tool edwin@FreeBSD.org From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 07:30:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 3FA78F9D for ; Sun, 12 May 2013 07:30:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 0CB3EEB3 for ; Sun, 12 May 2013 07:30:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C7U0qY025118 for ; Sun, 12 May 2013 07:30:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C7U0TO025116; Sun, 12 May 2013 07:30:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 07:30:00 GMT Resent-Message-Id: <201305120730.r4C7U0TO025116@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, John Marino Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id EC1B6F8B for ; Sun, 12 May 2013 07:28:15 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id C56E1EAA for ; Sun, 12 May 2013 07:28:15 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4C7SF3D042168 for ; Sun, 12 May 2013 07:28:15 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4C7SF6X042167; Sun, 12 May 2013 07:28:15 GMT (envelope-from nobody) Message-Id: <201305120728.r4C7SF6X042167@oldred.FreeBSD.org> Date: Sun, 12 May 2013 07:28:15 GMT From: John Marino To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178526: devel/tcl-memchan: it's failing to build everywhere X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 07:30:01 -0000 >Number: 178526 >Category: ports >Synopsis: devel/tcl-memchan: it's failing to build everywhere >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 07:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: John Marino >Release: >Organization: >Environment: >Description: See http://portsmon.freebsd.org/portoverview.py?category=devel&portname=tcl-memchan for failure logs These "can't find package doctools while executing "package require doctools" (file "../tools/mpexpand.tcl" line 16)" errors seem to be on all platforms including DragonFly This port was recently updated. It's not clear if it's always been problem or if a dependency got changed which affects it. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 07:30:08 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 977E3FD6; Sun, 12 May 2013 07:30:08 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 72614EB9; Sun, 12 May 2013 07:30:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C7U8bM026619; Sun, 12 May 2013 07:30:08 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C7U8PZ026618; Sun, 12 May 2013 07:30:08 GMT (envelope-from edwin) Date: Sun, 12 May 2013 07:30:08 GMT Message-Id: <201305120730.r4C7U8PZ026618@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, mi@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178526: devel/tcl-memchan: it's failing to build everywhere X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 07:30:08 -0000 Synopsis: devel/tcl-memchan: it's failing to build everywhere Responsible-Changed-From-To: freebsd-ports-bugs->mi Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 07:30:08 UTC 2013 Responsible-Changed-Why: mi@aldan.algebra.com => mi@ (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178526 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 08:30:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 607B56DE for ; Sun, 12 May 2013 08:30:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 533D5FF8 for ; Sun, 12 May 2013 08:30:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C8U1cK044782 for ; Sun, 12 May 2013 08:30:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C8U1m3044781; Sun, 12 May 2013 08:30:01 GMT (envelope-from gnats) Date: Sun, 12 May 2013 08:30:01 GMT Message-Id: <201305120830.r4C8U1m3044781@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Raphael Kubo da Costa Subject: Re: ports/178505: [maintainer update] for graphics/openimageio X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Raphael Kubo da Costa List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 08:30:01 -0000 The following reply was made to PR ports/178505; it has been noted by GNATS. From: Raphael Kubo da Costa To: Shane Ambler Cc: bug-followup@FreeBSD.org Subject: Re: ports/178505: [maintainer update] for graphics/openimageio Date: Sun, 12 May 2013 11:24:03 +0300 Shane Ambler writes: > On 12/05/2013 06:38, Raphael Kubo da Costa wrote: >> Is the change to thread.h supposed to work on non-amd64 FreeBSD? Has >> the patch been sent upstream? > > Short - yes and yes. > > Long - > The patch originated with the discovery that i386 version crashed > using tbb. The addition of arch=i586 to cflags enabled the use of gcc > atomics. This was merged into the cmake files > (src/cmake/platform.cmake) in 1.1.6 and taken out of the port > makefile. > > 1.1.6 also included the removal of the freebsd condition in thread.h > and by Larry Gritz's choice it was replaced with a test that left gcc > atomics off if tbb was turned on. Disabling gcc atomics when tbb is on > turned out to be a performance hit and 1.1.7 replaced the freebsd > condition instead of removing the tbb test. > > I have submitted an issue for it (instead of a pull request) which > seems to be the slow way of getting a change. While 1.1.8 appeared to > be cli tools fixes and 1.1.9 was only docs, I don't want to drop > behind so updating here with the patch. Alright, thanks a lot for the clarification. From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 08:39:02 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A6E7D82D; Sun, 12 May 2013 08:39:02 +0000 (UTC) (envelope-from rakuco@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 8117989; Sun, 12 May 2013 08:39:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C8d26s046412; Sun, 12 May 2013 08:39:02 GMT (envelope-from rakuco@freefall.freebsd.org) Received: (from rakuco@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C8d1QW046411; Sun, 12 May 2013 08:39:01 GMT (envelope-from rakuco) Date: Sun, 12 May 2013 08:39:01 GMT Message-Id: <201305120839.r4C8d1QW046411@freefall.freebsd.org> To: FreeBSD@Shaneware.biz, rakuco@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org From: rakuco@FreeBSD.org Subject: Re: ports/178505: [maintainer update] for graphics/openimageio X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 08:39:02 -0000 Synopsis: [maintainer update] for graphics/openimageio State-Changed-From-To: open->closed State-Changed-By: rakuco State-Changed-When: Sun May 12 08:39:01 UTC 2013 State-Changed-Why: Committed. Thanks! http://www.freebsd.org/cgi/query-pr.cgi?pr=178505 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 08:40:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 7878F94C for ; Sun, 12 May 2013 08:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 6B2CC98 for ; Sun, 12 May 2013 08:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C8e14r046520 for ; Sun, 12 May 2013 08:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C8e1s3046519; Sun, 12 May 2013 08:40:01 GMT (envelope-from gnats) Date: Sun, 12 May 2013 08:40:01 GMT Message-Id: <201305120840.r4C8e1s3046519@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: dfilter@FreeBSD.ORG (dfilter service) Subject: Re: ports/178505: commit references a PR X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: dfilter service List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 08:40:01 -0000 The following reply was made to PR ports/178505; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/178505: commit references a PR Date: Sun, 12 May 2013 08:38:57 +0000 (UTC) Author: rakuco Date: Sun May 12 08:38:48 2013 New Revision: 317935 URL: http://svnweb.freebsd.org/changeset/ports/317935 Log: Update to 1.1.10. The change to thread.h has been reported upstream in https://github.com/OpenImageIO/oiio/issues/529. PR: ports/178505 Submitted by: Shane Ambler (maintainer) Added: head/graphics/openimageio/files/patch-include__thread.h (contents, props changed) Modified: head/graphics/openimageio/Makefile head/graphics/openimageio/distinfo head/graphics/openimageio/files/patch-include__fmath.h head/graphics/openimageio/pkg-plist Modified: head/graphics/openimageio/Makefile ============================================================================== --- head/graphics/openimageio/Makefile Sun May 12 08:06:32 2013 (r317934) +++ head/graphics/openimageio/Makefile Sun May 12 08:38:48 2013 (r317935) @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME?= openimageio -PORTVERSION= 1.1.6 +PORTVERSION= 1.1.10 PORTREVISION?= 0 CATEGORIES?= graphics multimedia @@ -22,7 +22,7 @@ USE_GITHUB= yes GH_ACCOUNT= OpenImageIO GH_PROJECT= oiio GH_TAGNAME= Release-${PORTVERSION} -GH_COMMIT= 5fcd523 +GH_COMMIT= f28f5c4 WRKSRC= ${WRKDIR}/OpenImageIO-oiio-${GH_COMMIT}/src # fbm also installs bin/idiff Modified: head/graphics/openimageio/distinfo ============================================================================== --- head/graphics/openimageio/distinfo Sun May 12 08:06:32 2013 (r317934) +++ head/graphics/openimageio/distinfo Sun May 12 08:38:48 2013 (r317935) @@ -1,2 +1,2 @@ -SHA256 (openimageio-1.1.6.tar.gz) = a4d8bf7cedade3b3177bc5f46c3f0bb45de9ba32720d273d6334c03c3dfa2815 -SIZE (openimageio-1.1.6.tar.gz) = 8300662 +SHA256 (openimageio-1.1.10.tar.gz) = 1510287790113f0c64421623be7bf5b9317a1c9cfd6e85125bae81bc6c07a275 +SIZE (openimageio-1.1.10.tar.gz) = 9501836 Modified: head/graphics/openimageio/files/patch-include__fmath.h ============================================================================== --- head/graphics/openimageio/files/patch-include__fmath.h Sun May 12 08:06:32 2013 (r317934) +++ head/graphics/openimageio/files/patch-include__fmath.h Sun May 12 08:38:48 2013 (r317935) @@ -1,6 +1,6 @@ --- include/fmath.h.orig 2013-01-21 11:39:43.845857535 +1030 +++ include/fmath.h 2013-01-21 11:39:52.142857433 +1030 -@@ -972,7 +972,7 @@ +@@ -976,7 +976,7 @@ // Functions missing from FreeBSD Added: head/graphics/openimageio/files/patch-include__thread.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/openimageio/files/patch-include__thread.h Sun May 12 08:38:48 2013 (r317935) @@ -0,0 +1,12 @@ +--- include/thread.h.orig 2013-03-01 21:46:47.380515836 +1030 ++++ include/thread.h 2013-03-01 21:46:56.456181119 +1030 +@@ -110,9 +110,7 @@ + #endif + + #if defined(__GNUC__) && (defined(_GLIBCXX_ATOMIC_BUILTINS) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 401)) +-#if !defined(__FreeBSD__) || defined(__x86_64__) + #define USE_GCC_ATOMICS +-#endif + #endif + + OIIO_NAMESPACE_ENTER Modified: head/graphics/openimageio/pkg-plist ============================================================================== --- head/graphics/openimageio/pkg-plist Sun May 12 08:06:32 2013 (r317934) +++ head/graphics/openimageio/pkg-plist Sun May 12 08:38:48 2013 (r317935) @@ -38,7 +38,7 @@ include/OpenImageIO/version.h lib/libOpenImageIO.so lib/libOpenImageIO.so.1 lib/libOpenImageIO.so.1.1 -lib/libOpenImageIO.so.1.1.6 +lib/libOpenImageIO.so.1.1.10 %%PORTDOCS%%%%DOCSDIR%%/CHANGES %%PORTDOCS%%%%DOCSDIR%%/LICENSE %%PORTDOCS%%%%DOCSDIR%%/openimageio.pdf _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org" From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 09:10:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9FAD6F7 for ; Sun, 12 May 2013 09:10:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 850D4195 for ; Sun, 12 May 2013 09:10:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C9A0ck051671 for ; Sun, 12 May 2013 09:10:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C9A0hv051670; Sun, 12 May 2013 09:10:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 09:10:00 GMT Resent-Message-Id: <201305120910.r4C9A0hv051670@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, John Marino Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id B8B72EBD for ; Sun, 12 May 2013 09:01:50 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 90E2713E for ; Sun, 12 May 2013 09:01:50 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4C91nlS054887 for ; Sun, 12 May 2013 09:01:49 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4C91nZV054883; Sun, 12 May 2013 09:01:49 GMT (envelope-from nobody) Message-Id: <201305120901.r4C91nZV054883@oldred.FreeBSD.org> Date: Sun, 12 May 2013 09:01:49 GMT From: John Marino To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178529: net/hornetq: uses home directory during build, not allowed X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 09:10:00 -0000 >Number: 178529 >Category: ports >Synopsis: net/hornetq: uses home directory during build, not allowed >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 09:10:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: John Marino >Release: >Organization: >Environment: >Description: net/hornetq uses $HOME during the install, apparently assuming the builder is the user. This obviously isn't true for ports, so at the very least hornetq isn't getting installed as expected. Ports are not supposed to use $HOME at all. Proof can be seen when $HOME is set to read-only: maven-install: [java] [INFO] Scanning for projects... [java] [INFO] ------------------------------------------------------------------------ [java] [INFO] Building HornetQ [java] [INFO] task-segment: [initialize] [java] [INFO] ------------------------------------------------------------------------ [java] Downloading: https://repository.jboss.org/nexus/content/groups/public/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmag [java] [WARNING] Unable to get resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' from repository jboss.release (https://reposi [java] Downloading: http://repo1.maven.org/maven2/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmagic-thirdparty-plugin-2.2.1. [java] [INFO] Unable to find resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' in repository central (http://repo1.maven.org/m [java] Downloading: https://repository.jboss.org/nexus/content/groups/public//org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildma [java] [WARNING] Unable to get resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' from repository jboss.release (https://reposi [java] Downloading: http://repo1.maven.org/maven2/org/jboss/maven/plugins/maven-buildmagic-thirdparty-plugin/2.2.1.Final/maven-buildmagic-thirdparty-plugin-2.2.1. [java] [INFO] Unable to find resource 'org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:pom:2.2.1.Final' in repository central (http://repo1.maven.org/m [java] [INFO] ------------------------------------------------------------------------ [java] [ERROR] BUILD ERROR [java] [INFO] ------------------------------------------------------------------------ [java] [INFO] Error building POM (may not be this project's POM). >How-To-Repeat: >Fix: I tried to fix this with the following patch, but it didn't work. I suspect the final solution will be similar, but there is probably more than one spot where M2_HOME is defined with this illegal default. --- tools/maven/bin/m2.conf.orig 2012-11-12 19:20:57.000000000 +0000 +++ tools/maven/bin/m2.conf @@ -1,6 +1,6 @@ main is org.apache.maven.cli.compat.CompatibleMain from plexus.core -set maven.home default ${user.home}/m2 +set maven.home default /tmp/m2 [plexus.core] load ${maven.home}/lib/*.jar >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 09:10:08 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 31D9512B; Sun, 12 May 2013 09:10:08 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 0D4F3198; Sun, 12 May 2013 09:10:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C9A73u051797; Sun, 12 May 2013 09:10:07 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C9A72P051796; Sun, 12 May 2013 09:10:07 GMT (envelope-from edwin) Date: Sun, 12 May 2013 09:10:07 GMT Message-Id: <201305120910.r4C9A72P051796@freefall.freebsd.org> To: draco@marino.st, edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178529: net/hornetq: uses home directory during build, not allowed X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 09:10:08 -0000 Synopsis: net/hornetq: uses home directory during build, not allowed State-Changed-From-To: open->feedback State-Changed-By: edwin State-Changed-When: Sun May 12 09:10:07 UTC 2013 State-Changed-Why: Awaiting maintainers feedback (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178529 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 09:20:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 7846323D for ; Sun, 12 May 2013 09:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 692471D2 for ; Sun, 12 May 2013 09:20:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4C9K112054411 for ; Sun, 12 May 2013 09:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4C9K1We054410; Sun, 12 May 2013 09:20:01 GMT (envelope-from gnats) Date: Sun, 12 May 2013 09:20:01 GMT Message-Id: <201305120920.r4C9K1We054410@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Edwin Groothuis Subject: Re: ports/178529: net/hornetq: uses home directory during build, not allowed X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Edwin Groothuis List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 09:20:01 -0000 The following reply was made to PR ports/178529; it has been noted by GNATS. From: Edwin Groothuis To: hsn@sendmail.cz Cc: bug-followup@FreeBSD.org Subject: Re: ports/178529: net/hornetq: uses home directory during build, not allowed Date: Sun, 12 May 2013 09:10:06 UT Maintainer of net/hornetq, Please note that PR ports/178529 has just been submitted. If it contains a patch for an upgrade, an enhancement or a bug fix you agree on, reply to this email stating that you approve the patch and a committer will take care of it. The full text of the PR can be found at: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/178529 -- Edwin Groothuis via the GNATS Auto Assign Tool edwin@FreeBSD.org From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 11:50:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 57BACC9F for ; Sun, 12 May 2013 11:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 2120382C for ; Sun, 12 May 2013 11:50:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CBo1ml081737 for ; Sun, 12 May 2013 11:50:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CBo1sP081736; Sun, 12 May 2013 11:50:01 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 11:50:01 GMT Resent-Message-Id: <201305121150.r4CBo1sP081736@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, SHIOZAKI Takehiko Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8882BA57 for ; Sun, 12 May 2013 11:43:26 +0000 (UTC) (envelope-from st@be.to) Received: from post1.infonia.net (post1.infonia.net [211.13.218.225]) by mx1.freebsd.org (Postfix) with ESMTP id A61A07F7 for ; Sun, 12 May 2013 11:43:24 +0000 (UTC) Received: from localhost.takehiko.cjb.net (usr022.bb935-01.uaq.im.wakwak.ne.jp [219.103.183.152]) by post1.infonia.net (Postfix) with ESMTP id 3B0D512A4B for ; Sun, 12 May 2013 20:11:23 +0900 (JST) Received: by localhost.takehiko.cjb.net (Postfix, from userid 4013) id 56021110666; Sun, 12 May 2013 20:11:20 +0900 (JST) Message-Id: <20130512111120.56021110666@localhost.takehiko.cjb.net> Date: Sun, 12 May 2013 20:11:20 +0900 (JST) From: SHIOZAKI Takehiko To: bug-followup@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: ports/178530: japanese/mutt-devel update to 1.5.21-ja.2 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: SHIOZAKI Takehiko List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 11:50:01 -0000 >Number: 178530 >Category: ports >Synopsis: japanese/mutt-devel update to 1.5.21-ja.2 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun May 12 11:50:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: SHIOZAKI Takehiko >Release: FreeBSD 8.2-STABLE i386 >Organization: >Environment: System: FreeBSD localhost.my.domain 8.2-STABLE FreeBSD 8.2-STABLE #1426: Sat Aug 20 00:04:05 JST 2011 root@localhost.my.domain:/usr/obj/usr/src/sys/GENERIC i386 >Description: - Updated to 1.5.21-ja.2 >How-To-Repeat: >Fix: diff -urN mutt-devel/Makefile mutt-devel-1.5.21-ja.2/Makefile --- mutt-devel/Makefile 2013-04-27 20:59:28.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/Makefile 2013-04-08 00:23:33.000000000 +0900 @@ -1,162 +1,663 @@ -# Created by: IWASHITA Yoji -# $FreeBSD: japanese/mutt-devel/Makefile 316662 2013-04-27 11:59:28Z mva $ +# +# Added Japanese patch of japanese/mutt-devel (mutt-1.15.1-ja.1) +# by Kenji Rikitake to the files/ directory +# Note: +# * USE the "UTF-9" modified locale for UTF-8 display +# available in the Japanese distribution. +# * DO NOT ENABLE SLANG; use ncurses. +# * The rest of the file is the same as the mail/mutt Port Makefile +# -# WITH_MUTT_CYRUS_SASL2: if defined, 'Cyrus sasl' support. +# +# ex:ts=8 +# Ports collection makefile for: mutt development +# Date created: 6 Jun 2001 +# Whom: Udo Schweigert +# +# $FreeBSD: ports/mail/mutt/Makefile,v 1.198 2012/11/17 05:59:06 svnexp Exp $ +# +# There are several knobs which are used to define additions to the core +# mutt functionality. +# +# As all of the knobs have a unique name which should not interfere with +# other ports you can add them to /etc/make.conf, e.g. a line like +# "WITH_MUTT_NNTP=yes" will enable mutt's nntp facilities. +# +# In addition to the knobs listed below you can enable other configuration +# options of mutt by adding them to the MUTT_CONFIGURE_ARGS variable. For +# example you could say "MUTT_CONFIGURE_ARGS=--with-homespool=MyMail" to +# configure a different file for mutt's homespool. +# +# The two most important knobs are: +# +# In general you can choose between using ncurses (WITH_MUTT_NCURSES) +# and SLANG (WITH_MUTT_SLANG). Note that you may have to set the variables +# COLORTERM=yes and COLORFGBG="color1;color2" in your environment to get slang +# function properly. +# The default version for ncurses is that which comes with the operating +# system. If you want to use the ncurses supplied by the ports-system define +# WITH_MUTT_NCURSES_PORT. +# +# If you want to install the mutt documentation in html and ps format define: +# WITH_MUTT_HTML +# This is a default knob and can be disabled by WITHOUT_MUTT_HTML +# +# If you do not want that the documentation is rebuilt using the xml tools +# define: +# WITHOUT_MUTT_XML +# (this can only be stated if WITHOUT_MUTT_HTML is defined) +# +# If you want to access compressed email folders define: +# WITH_MUTT_COMPRESSED_FOLDERS +# This is a default knob and can be disabled by WITHOUT_MUTT_COMPRESSED_FOLDERS +# +# If you do not want mutt to use the iconv library define: +# WITHOUT_MUTT_ICONV +# +# If you want mutt to use the idn library define: +# WITH_MUTT_IDN +# +# If you want to make use of the gpgme interface define: +# WITH_MUTT_GPGME +# +# If you want to enable extended quoting functions define: +# WITH_MUTT_QUOTE_PATCH +# This is a default knob and can be disabled by WITHOUT_MUTT_QUOTE_PATCH +# +# If you want to have the IMAP header cache define: +# WITH_MUTT_IMAP_HEADER_CACHE +# +# If you want to have the Maildir and the IMAP header cache define: +# WITH_MUTT_MAILDIR_HEADER_CACHE +# +# If you want to make SMIME outlook compatible define: +# WITH_MUTT_SMIME_OUTLOOK_COMPAT +# This is a default knob and can be disabled by +# WITHOUT_MUTT_SMIME_OUTLOOK_COMPAT +# +# If you want to read and post news with mutt define: +# WITH_MUTT_NNTP +# +# If you want to use the SASL2 authentication features with your email server +# define +# WITH_MUTT_CYRUS_SASL2 +# +# If you want mutt to use the GNU aspell spelling checker define: +# WITH_MUTT_ASPELL +# +# If you want mutt to use the ispell spelling checker define: +# WITH_MUTT_ISPELL +# +# If you want to use the signature menu define: +# WITH_MUTT_SIGNATURE_MENU +# +# If you want to use the printf-like enhancement to the mbox-hook command +# define: +# WITH_MUTT_MBOX_HOOK_PATCH +# +# If you want to use the ifdef feature define: +# WITH_MUTT_IFDEF_PATCH +# +# If you want to have the Maildir mtime patch define: +# WITH_MUTT_MAILDIR_MTIME_PATCH +# +# If you want to have the Mailbox Sidebar patch define: +# WITH_MUTT_SIDEBAR_PATCH +# +# If you do not want mutt to use the flock() function define: +# WITHOUT_MUTT_FLOCK +# +# If you want to enable the reverse_reply option define: +# WITH_MUTT_REVERSE_REPLY_PATCH +# +# If you want to enable the `greeting' option define: +# WITH_MUTT_GREETING_PATCH +# +# If you want to enable the parent/child match support define: +# WITH_MUTT_PARENT_CHILD_MATCH_PATCH +# +# If you want to be able to use a trash folder for deleted emails (especially useful +# for example for googlemail) define: +# WITH_MUTT_TRASH_PATCH +# +# If you want to enable the internal SMTP relay support define: +# WITH_MUTT_SMTP +# +# If you want to enable debugging capabilities define: +# WITH_MUTT_DEBUG +# +# If you do not want to install the manpages mbox.5 and mmdf.5 (because that +# conflicts with other ports which installed these: +# WITHOUT_MUTT_MAILBOX_MANPAGES +# +# Use CFLAGS_ADD and LDFLAGS_ADD to append additional CLFAGS and LDFLAGS. # PORTNAME= mutt PORTVERSION= ${VERSION}.j${JP_VERSION} -PORTREVISION= 3 -CATEGORIES= japanese mail -MASTER_SITES= ftp://ftp.mutt.org/mutt/devel/:body \ - ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/devel/:body \ - ftp://ftp.demon.co.uk/pub/mirrors/mutt/devel/:body \ - http://www.emaillab.org/mutt/${MANUALVERSION}/:ja_man1 \ - http://mutt-j.sourceforge.jp/:ja_man2 \ - http://www.emaillab.org/mutt/1.5/doc/:ja_doc +CATEGORIES+= japanese mail ipv6 +.if defined(WITH_MUTT_NNTP) +CATEGORIES+= news +.endif +MASTER_SITES= ftp://ftp.mutt.org/mutt/devel/ \ + ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/devel/ \ + ftp://ftp.demon.co.uk/pub/mirrors/mutt/devel/ \ + http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ + http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ + http://www3.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ + ftp://ftp.mutt.org.ua/pub/mutt/mutt-${VVV_PATCH_VERSION}/:vvv \ + ftp://ftp3.mutt.org.ua/pub/mutt/mutt-${VVV_PATCH_VERSION}/:vvv \ + http://www.spinnaker.de/mutt/compressed/:rr \ + http://lunar-linux.org/~tchan/mutt/:tchan PKGNAMESUFFIX= -devel DISTNAME= mutt-${VERSION} -DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:body \ - manual_ja-${MANUALVERSION}i-1${EXTRACT_SUFX}:ja_man1 \ - manual.ja-${MANJADATE}${EXTRACT_SUFX}:ja_man2 \ - README.JA-PATCH.ja.html:ja_doc \ - README.JA-PATCH.ja:ja_doc \ - INSTALL.JA-PATCH.ja.html:ja_doc \ - INSTALL.JA-PATCH.ja:ja_doc \ - manual-ja-patch.ja.html:ja_doc \ - manual-ja-patch.ja.txt:ja_doc \ - usage-japanese.ja.html:ja_doc \ - usage-japanese.ja.txt:ja_doc -DIST_SUBDIR= mutt -EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \ - manual_ja-${MANUALVERSION}i-1${EXTRACT_SUFX} \ - manual.ja-${MANJADATE}${EXTRACT_SUFX} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} -PATCH_SITES= http://www.emaillab.org/mutt/${VERSION}/:ja_patch -PATCHFILES= patch-${VERSION}.tt.wcwidth.${JP_VERSION}.gz:ja_patch \ - patch-${VERSION}.tt.create_rfc2047_params.${JP_VERSION}.gz:ja_patch \ - patch-${VERSION}.tt+yy.delete_prefix.${JP_VERSION}.gz:ja_patch \ - patch-${VERSION}.tt.sanitize_ja_char.${JP_VERSION}.gz:ja_patch -PATCH_DIST_STRIP= -p1 +PATCH_SITES+= http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ + http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ + http://www3.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ + ftp://ftp.mutt.org.ua/pub/mutt/mutt-${VVV_PATCH_VERSION}/:vvv \ + ftp://ftp3.mutt.org.ua/pub/mutt/mutt-${VVV_PATCH_VERSION}/:vvv \ + http://home.woolridge.ca/mutt/patches/:dw \ + http://www.spinnaker.de/mutt/compressed/:rr MAINTAINER= st@be.to COMMENT= Text-based mail client (Japanised development version) -LIB_DEPENDS= slang.2:${PORTSDIR}/japanese/libslang -RUN_DEPENDS= urlview:${PORTSDIR}/textproc/urlview \ - ${LOCALBASE}/etc/mime.types:${PORTSDIR}/misc/mime-support +MASTER_SITES+= http://dl.sourceforge.jp/mutt-j/57658/:ja_patch \ + http://www.emaillab.org/mutt/${MANUALVERSION}/:ja_man1 \ + http://mutt-j.sourceforge.jp/:ja_man2 +DISTFILES+= ${DISTNAME}-ja.${JP_VERSION}${EXTRACT_SUFX}:ja_patch \ + manual_ja-${MANUALVERSION}i-1${EXTRACT_SUFX}:ja_man1 \ + manual.ja-${MANJADATE}${EXTRACT_SUFX}:ja_man2 +EXTRACT_ONLY+= ${DISTNAME}-ja.${JP_VERSION}${EXTRACT_SUFX} \ + manual_ja-${MANUALVERSION}i-1${EXTRACT_SUFX} \ + manual.ja-${MANJADATE}${EXTRACT_SUFX} -CONFLICTS= ja-mutt-[0-9]* mutt-[0-9]* mutt-devel-[0-9]* mutt-devel-lite-[0-9]* mutt-lite-[0-9]* zh-mutt-devel-[0-9]* +CONFLICTS?= ja-mutt-[0-9]* mutt-[0-9]* mutt-devel-lite-[0-9]* mutt-lite-[0-9]* zh-mutt-devel-[0-9]* VERSION= 1.5.21 -JP_VERSION= 1 +JP_VERSION= 2 MANUALVERSION= 1.4 MANJADATE= 20050813 -FETCH_BEFORE_ARGS= -A # ha4.seikyou.ne.jp is running broken httpd - -NO_LATEST_LINK= yes -USE_GMAKE= yes -USES= iconv -USE_AUTOTOOLS= automake autoconf -USE_OPENSSL= yes -WRKSRC= ${WRKDIR}/mutt-${VERSION} -LDFLAGS+= -L${LOCALBASE}/lib -CONFIGURE_ENV= CC="${CC} -D_DONT_USE_CTYPE_INLINE_ ${DB_CFLAGS} -I${LOCALBASE}/include -I${LOCALBASE}/include/slang" -CONFIGURE_ARGS= --with-slang --enable-locales-fix \ - --with-libiconv-prefix=${LOCALBASE} \ - --without-wc-funcs \ - --enable-flock --disable-fcntl \ - --with-ssl \ - --sysconfdir=${PREFIX}/etc \ - --with-docdir=${DOCSDIR} \ - --enable-pop --enable-imap \ - --enable-smtp +DIST_SUBDIR= mutt +DOCSDIR?= ${PREFIX}/share/doc/mutt +EXAMPLESDIR?= ${PREFIX}/share/examples/mutt +DATADIR?= ${PREFIX}/share/mutt +CONFIGURE_ENV= CC="${CC} -I${LOCALBASE}/include" +CONFIGURE_ARGS= --disable-fcntl --with-ssl=${OPENSSLBASE} \ + --with-docdir=${DOCSDIR} --sysconfdir=${PREFIX}/etc \ + --enable-external-dotlock --enable-pop --enable-imap \ + --disable-warnings .if defined(MUTT_CONFIGURE_ARGS) CONFIGURE_ARGS+= ${MUTT_CONFIGURE_ARGS} .endif -OPTIONS_DEFINE= CYRUS_SASL2 IMAP_HEADER_CACHE IDN MAILDIR_HEADER_CACHE NLS -CYRUS_SASL2_DESC= SASL2 authentication -IMAP_HEADER_CACHE_DESC= imap header cache -MAILDIR_HEADER_CACHE_DESC= maildir header cache - -.include +USE_AUTOTOOLS= automake autoconf +USE_OPENSSL= yes +USE_NCURSES= yes +USE_NCURSES_RPATH= yes -.if ! ${PORT_OPTIONS:MNLS} -USES+= gettext +.if !defined (MUTT_LITE) +OPTIONS= MUTT_ASPELL "Enable aspell support" off \ + MUTT_COMPRESSED_FOLDERS "Enable compressed folders" on \ + MUTT_CYRUS_SASL2 "Enable SASL2 authentication" off \ + MUTT_DEBUG "Enable debugging capabilities" off \ + MUTT_FLOCK "Enable flock() usage" off \ + MUTT_GPGME "Enable gpgme interface" off \ + MUTT_GREETING_PATCH "Enable greeting" off \ + MUTT_HTML "Enable HTML documentation" on \ + MUTT_ICONV "Enable iconv support" on \ + MUTT_IDN "Enable idn support" off \ + MUTT_IFDEF_PATCH "Enable ifdef feature" off \ + MUTT_IMAP_HEADER_CACHE "Enable imap header cache" off \ + MUTT_ISPELL "Enable ispell support" off \ + MUTT_LOCALES_FIX "Enable locales fix" off \ + MUTT_MAILBOX_MANPAGES "Install mbox.5/mmdf.5 manpages" on \ + MUTT_MAILDIR_HEADER_CACHE "Enable maildir header cache" off \ + MUTT_MAILDIR_MTIME_PATCH "Enable Maildir mtime patch" off \ + MUTT_MBOX_HOOK_PATCH "Enable enhanced mbox-hook" off \ + MUTT_NCURSES "Enable ncurses support" on \ + MUTT_NCURSES_PORT "Use ncurses from port" off \ + MUTT_NNTP "Enable news reader" off \ + MUTT_PARENT_CHILD_MATCH_PATCH "Enable parent/child match" off \ + MUTT_QUOTE_PATCH "Enable extended quoting" on \ + MUTT_REVERSE_REPLY_PATCH "Enable reverse_reply" off \ + MUTT_SGMLFORMAT "Enable sgml support" on \ + MUTT_SIDEBAR_PATCH "Enable sidebar" off \ + MUTT_SIGNATURE_MENU "Enable signature menu" off \ + MUTT_SLANG "Enable slang support" off \ + MUTT_SMIME_OUTLOOK_COMPAT "SMIME outlook compatible" on \ + MUTT_SMTP "Enable SMTP relay support" off \ + MUTT_TRASH_PATCH "Enable trash folder support" off \ + MUTT_XML "Use XML tools for docu" on +.endif + +PLIST= ${WRKDIR}/PLIST +PKGMESSAGE= ${WRKDIR}/pkg-message +SCRIPTS_ENV= WRKDIR="${WRKDIR}" + +.include + +DW_PATCH_VERSION= 1.5.6 +AC_PATCH_VERSION= 1.5.9 +DW_MBOX_PATCH_VERSION= 1.5.18 +.if !defined(VVV_PATCH_VERSION) +VVV_PATCH_VERSION= ${VERSION} +.endif +.if !defined(RR_PATCH_VERSION) +RR_PATCH_VERSION= ${VERSION} +.endif +.if !defined(DW_PATCH_VERSION) +DW_PATCH_VERSION= ${VERSION} +.endif +.if !defined(DW_MBOX_PATCH_VERSION) +DW_MBOX_PATCH_VERSION= ${DW_PATCH_VERSION} +.endif +.if !defined(AC_PATCH_VERSION) +AC_PATCH_VERSION= ${VERSION} +.endif +.if defined(WITH_MUTT_MAILDIR_HEADER_CACHE) +WITH_MUTT_IMAP_HEADER_CACHE= yes +.endif + +.if defined (MUTT_LITE) +WITHOUT_MUTT_XML= yes +WITHOUT_MUTT_COMPRESSED_FOLDERS= yes +WITHOUT_MUTT_QUOTE_PATCH= yes +WITHOUT_MUTT_HTML= yes +WITH_MUTT_NCURSES= yes +PKGNAMESUFFIX= -lite +.endif + +# XXX +# this should be done automagically by aclocal but .... +# for now, this will have to do +pre-build: + @${REINPLACE_CMD} -E -e "s|^(ACLOCAL = ).+|\1${ACLOCAL}|" \ + -e "s|^(AUTOCONF = ).+|\1${AUTOCONF}|" \ + -e "s|^(AUTOMAKE = ).+|\1${AUTOMAKE}|" \ + -e "s|^(AUTOHEADER = ).+|\1${AUTOHEADER}|" \ + ${BUILD_WRKSRC}/Makefile + +RUN_DEPENDS+= ${LOCALBASE}/etc/mime.types:${PORTSDIR}/misc/mime-support +.if !defined (MUTT_LITE) +.if exists(${LOCALBASE}/bin/aspell) && !defined(WITH_MUTT_ISPELL) +WITH_MUTT_ASPELL= yes +.elif exists(${LOCALBASE}/bin/ispell) && !defined(WITH_MUTT_ASPELL) +WITH_MUTT_ISPELL= yes +.endif +.if defined(PACKAGE_BUILDING) && !defined(WITH_MUTT_ASPELL) && \ + !defined(WITH_MUTT_ISPELL) +WITH_MUTT_ASPELL= yes +.endif +.if defined(WITH_MUTT_ASPELL) +BUILD_DEPENDS+= aspell:${PORTSDIR}/textproc/aspell +RUN_DEPENDS+= aspell:${PORTSDIR}/textproc/aspell +.elif defined(WITH_MUTT_ISPELL) +BUILD_DEPENDS+= ispell:${PORTSDIR}/textproc/ispell +RUN_DEPENDS+= ispell:${PORTSDIR}/textproc/ispell +.endif +.if defined(PACKAGE_BUILDING) +RUN_DEPENDS+= urlview:${PORTSDIR}/textproc/urlview +.endif +.endif + +.if defined(WITH_MUTT_NCURSES_PORT) +WITH_MUTT_NCURSES= yes +.endif +.if defined(WITH_MUTT_SLANG) || defined(WITH_SLANG) +MUTT_USES_SLANG= yes +.endif +.if defined(WITH_MUTT_NCURSES) && !defined(MUTT_USES_SLANG) +MUTT_USES_NCURSES= yes +.endif +.if !defined(MUTT_USES_SLANG) && !defined(WITHOUT_MUTT_SLANG) +MUTT_USES_NCURSES= yes +.endif +.if defined(WITHOUT_MUTT_SGMLFORMAT) +XML_USED= no +.endif +.if defined(WITHOUT_MUTT_XML) +XML_USED= no +.endif +.if !defined(XML_USED) +XML_USED= no +.endif +.if !defined(WITHOUT_NLS) +USE_GETTEXT= yes +.endif +.if !defined(WITHOUT_MUTT_ICONV) +USE_ICONV= yes +.endif +.if defined(NOPORTDOCS) +XML_USED= no +.endif +.if defined(WITH_MUTT_NCURSES_PORT) +.if !defined(MUTT_USES_SLANG) +MUTT_USES_NCURSES_PORT= yes +.endif +.endif +.if defined(MUTT_USES_NCURSES_PORT) +WITH_NCURSES_PORT= yes +CFLAGS+= -I${NCURSESINC} +.elif defined(MUTT_USES_SLANG) +LIB_DEPENDS+= slang.2:${PORTSDIR}/devel/libslang2 .endif -.if ${PORT_OPTIONS:MCYRUS_SASL2} -LIB_DEPENDS+= sasl2:${PORTSDIR}/security/cyrus-sasl2 +.if defined(WITH_MUTT_CYRUS_SASL2) +LIB_DEPENDS+= sasl2.2:${PORTSDIR}/security/cyrus-sasl2 .endif -.if ${PORT_OPTIONS:MMAILDIR_HEADER_CACHE} -PORT_OPTIONS+= MAILDIR_HEADER_CACHE +.if exists(${LOCALBASE}/lib/libidn.so) && !defined(WITHOUT_MUTT_IDN) +WITH_MUTT_IDN= yes .endif -.if ${PORT_OPTIONS:MIMAP_HEADER_CACHE} -USE_BDB= 42+ -.endif -.if ${PORT_OPTIONS:MIDN} +.if defined(WITH_MUTT_IDN) LIB_DEPENDS+= idn:${PORTSDIR}/dns/libidn .endif +.if defined(WITH_MUTT_GPGME) +LIB_DEPENDS+= gpgme:${PORTSDIR}/security/gpgme +.endif +.if ! defined(WITHOUT_MUTT_SMIME_OUTLOOK_COMPAT) +post-patch:: + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-smime-outlook +.endif +.if defined(WITH_MUTT_SIGNATURE_MENU) +IGNORE= the WITH_MUTT_SIGNATURE_MENU does not work at the moment +XML_NEEDED= yes +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-signature-menu +.endif +.if defined(WITH_MUTT_MAILDIR_MTIME_PATCH) +post-patch:: +.if defined(WITH_MUTT_NNTP) + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-maildir-mtime-nntp +.else + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-maildir-mtime +.endif +.endif + +.if defined(WITH_MUTT_ASPELL) +post-patch:: + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-aspell +.endif + +.if defined(WITH_MUTT_REVERSE_REPLY_PATCH) +post-patch:: + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-reverse_reply +.endif + +.if defined(WITH_MUTT_PARENT_CHILD_MATCH_PATCH) +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-parent-child-match +.endif -.if ${PORT_OPTIONS:MCYRUS_SASL2} +.if defined(WITHOUT_MUTT_FLOCK) +CONFIGURE_ARGS+= --disable-flock +.else +CONFIGURE_ARGS+= --enable-flock +.endif +.if defined(WITH_MUTT_LOCALES_FIX) +CONFIGURE_ARGS+= --enable-locales-fix +.endif +.if defined(MUTT_USES_NCURSES_PORT) +CONFIGURE_ARGS+= --with-curses=${NCURSESBASE} +.elif defined(MUTT_USES_SLANG) +CONFIGURE_ARGS+= --with-slang=${LOCALBASE} +.else +CONFIGURE_ARGS+= --with-curses=${NCURSESBASE} +.endif +.if defined(WITH_MUTT_CYRUS_SASL2) CONFIGURE_ARGS+= --with-sasl=${LOCALBASE} .endif -.if ! ${PORT_OPTIONS:MNLS} +.if defined(WITHOUT_NLS) CONFIGURE_ARGS+= --disable-nls -PLIST_SUB+= NLS="@comment " +.endif +.if defined(WITHOUT_MUTT_ICONV) +CONFIGURE_ARGS+= --disable-iconv .else -PLIST_SUB+= NLS="" +CONFIGURE_ARGS+= --with-libiconv-prefix=${LOCALBASE} .endif -.if ${PORT_OPTIONS:MIDN} +.if defined(WITH_MUTT_IDN) CONFIGURE_ARGS+= --with-idn .else CONFIGURE_ARGS+= --without-idn .endif -.if ${PORT_OPTIONS:MIMAP_HEADER_CACHE} +.if defined(WITH_MUTT_GPGME) +CONFIGURE_ARGS+= --enable-gpgme +.else +CONFIGURE_ARGS+= --disable-gpgme +.endif +LDFLAGS= +.if !defined(WITHOUT_GSSAPI) +.if exists(${LOCALBASE}/bin/krb5-config) +LIB_DEPENDS+= gssapi_krb5:${PORTSDIR}/security/krb5 +CONFIGURE_ARGS+= --with-gss=${LOCALBASE} +.elif exists(${KRB5_HOME}/bin/krb5-config) +LIB_DEPENDS+= gssapi_krb5:${PORTSDIR}/security/krb5 +CONFIGURE_ARGS+= --with-gss=${KRB5_HOME} +LDFLAGS+= -L${KRB5_HOME}/lib -rpath=${KRB5_HOME}/lib +.elif exists(${HEIMDAL_HOME}/bin/krb5-config) +LIB_DEPENDS+= gssapi_krb5:${PORTSDIR}/security/krb5 +CONFIGURE_ARGS+= --with-gss=${HEIMDAL_HOME} +LDFLAGS+= -L${HEIMDAL_HOME}/lib -rpath=${HEIMDAL_HOME}/lib +.elif (defined(MAKE_KERBEROS5)) || exists(/usr/lib/libkrb5.a) +CONFIGURE_ARGS+= --with-gss +USE_KRB5_SYS=YES +.endif +.endif +LDFLAGS+= -L${LOCALBASE}/lib -rpath=${LOCALBASE}/lib:/usr/lib +CFLAGS+= ${CFLAGS_ADD} +LDFLAGS+= ${LDFLAGS_ADD} +.if defined(WITH_MUTT_SMTP) +CONFIGURE_ARGS+= --enable-smtp +.else +CONFIGURE_ARGS+= --disable-smtp +.endif +.if defined(WITH_MUTT_DEBUG) +CONFIGURE_ARGS+= --enable-debug +.endif + +PATCH_DIST_STRIP= -p1 + +pre-patch:: + @${CP} -f ${WRKDIR}/patches/* ${FILESDIR} + +.if ! defined (WITHOUT_MUTT_COMPRESSED_FOLDERS) +DISTFILES+= patch-${RR_PATCH_VERSION}.rr.compressed.gz:vvv +CONFIGURE_ARGS+= --enable-compressed +XML_NEEDED= yes +pre-patch:: + @${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/patch-${RR_PATCH_VERSION}.rr.compressed.gz > ${WRKDIR}/patch-compressed + @${REINPLACE_CMD} -E '/^diff.*\/doc\/manual.txt$$/,/^diff/d' \ + ${WRKDIR}/patch-compressed + @${PATCH} ${PATCH_ARGS} -p1 < ${WRKDIR}/patch-compressed +.endif +.if defined(WITH_MUTT_NNTP) +DISTFILES+= patch-${VVV_PATCH_VERSION}.vvv.nntp.gz:vvv +CONFIGURE_ARGS+= --enable-nntp +XML_NEEDED= yes +pre-patch:: + @${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/patch-${VVV_PATCH_VERSION}.vvv.nntp.gz > ${WRKDIR}/patch-nntp + @${REINPLACE_CMD} -E '/^diff.*\/doc\/manual.txt$$/,/^diff/d' \ + ${WRKDIR}/patch-nntp + @${PATCH} ${PATCH_ARGS} -p1 < ${WRKDIR}/patch-nntp +.endif +.if ! defined(WITHOUT_MUTT_QUOTE_PATCH) +PATCHFILES+= patch-${VVV_PATCH_VERSION}.vvv.initials.gz:vvv \ + patch-${VVV_PATCH_VERSION}.vvv.quote.gz:vvv +XML_NEEDED= yes +.endif +.if defined(WITH_MUTT_IFDEF_PATCH) +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-ifdef +.endif +.if defined(WITH_MUTT_MBOX_HOOK_PATCH) +IGNORE= the WITH_MUTT_MBOX_HOOK_PATCH does not work at the moment +#PATCHFILES+= p0-patch-${DW_MBOX_PATCH_VERSION}.dw.mbox-hook.1:dw +.endif +.if defined(WITH_MUTT_SIDEBAR_PATCH) +XML_NEEDED= yes +.if defined(WITH_MUTT_NNTP) +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-sidebar-nntp +.else +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-sidebar +.endif +.endif +.if defined(WITH_MUTT_GREETING_PATCH) +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-greeting +.endif +.if defined(WITH_MUTT_TRASH_PATCH) +post-patch:: + @${PATCH} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-trash-purge +.endif + +WRKSRC= ${WRKDIR}/${DISTNAME:S/i$//} +MAN1= mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1 +MAN5= muttrc.5 +.if !defined(WITHOUT_MUTT_MAILBOX_MANPAGES) +MAN5+= mbox.5 mmdf.5 +.endif + +post-patch:: + @${REINPLACE_CMD} -e 's,/usr/bin/gpg,${LOCALBASE}/bin/gpg,g' \ + ${WRKSRC}/contrib/gpg.rc + @${REINPLACE_CMD} -e 's,pgp6,pgp,g' \ + ${WRKSRC}/contrib/pgp6.rc + @${REINPLACE_CMD} -E -e 's|@samplesdir@|${EXAMPLESDIR}|g' \ + ${WRKSRC}/contrib/Makefile.am +.if defined(WITHOUT_MUTT_MAILBOX_MANPAGES) + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-no-mbox-manpage +.endif + +pre-configure:: + @(cd ${WRKSRC}; ${SETENV} ${AUTOMAKE_ENV} ${ACLOCAL} -I m4) +.if defined(USE_KRB5_SYS) + @${ECHO_CMD} "#define HAVE_HEIMDAL" >> ${WRKSRC}/config.h.in + @${REINPLACE_CMD} -e 's|||' \ + ${WRKSRC}/imap/auth_gss.c +.endif + +.if defined(MUTT_SLAVE_HTML_PAGES) +SCRIPTS_ENV+= MUTT_SLAVE_HTML_PAGES="${MUTT_SLAVE_HTML_PAGES}" +.endif +.if defined(WITH_MUTT_NNTP) +SCRIPTS_ENV+= MUTT_NNTP="yes" +.endif +.if ! defined (WITHOUT_MUTT_COMPRESSED_FOLDERS) +SCRIPTS_ENV+= MUTT_COMPRESSED_FOLDERS="yes" +.endif +.if ! defined(WITHOUT_MUTT_QUOTE_PATCH) +SCRIPTS_ENV+= MUTT_QUOTE_PATCH="yes" +.endif +.if defined(WITH_MUTT_IMAP_HEADER_CACHE) +.if defined(WITH_TOKYOCABINET) +CONFIGURE_ARGS+= --enable-hcache --without-gdbm --without-bdb --with-tokyocabinet +LIB_DEPENDS+= tokyocabinet.9:${PORTSDIR}/databases/tokyocabinet +.else +USE_BDB= 42+ CONFIGURE_ARGS+= --enable-hcache --without-gdbm --with-bdb +.endif .else CONFIGURE_ARGS+= --disable-hcache .endif -.if ${PORT_OPTIONS:MMAILDIR_HEADER_CACHE} +.if defined(WITH_MUTT_MAILDIR_HEADER_CACHE) CONFIGURE_ARGS+= --without-qdbm .endif +.if defined(WITH_MUTT_SIDEBAR_PATCH) +SCRIPTS_ENV+= MUTT_SIDEBAR_PATCH="yes" +.endif +.if defined(WITH_MUTT_SIGNATURE_MENU) +SCRIPTS_ENV+= MUTT_SIGNATURE_MENU="yes" +.endif +.if defined(WITH_MUTT_IFDEF_PATCH) +SCRIPTS_ENV+= MUTT_IFDEF_PATCH="yes" +.endif +.if ! defined(WITHOUT_MUTT_HTML) +SCRIPTS_ENV+= MUTT_HTML="yes" +.endif +.if !defined(WITHOUT_NLS) +SCRIPTS_ENV+= MUTT_NLS="yes" +.endif +.if defined(WITH_MUTT_REVERSE_REPLY_PATCH) +SCRIPTS_ENV+= MUTT_REVERSE_REPLY_PATCH="yes" +.endif + +.if !defined(NOPORTDOCS) +SCRIPTS_ENV+= MUTT_PORTDOCS="yes" +post-build:: + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-doc-ref + @${REINPLACE_CMD} -E -e 's|\$$\{PREFIX\}|${PREFIX}|g' \ + -e 's|\$$\{DOCSDIR\}|${DOCSDIR}|g' \ + -e 's|\$$\{EXAMPLESDIR\}|${EXAMPLESDIR}|g' \ + ${WRKSRC}/doc/mutt.man + @${REINPLACE_CMD} -E -e 's|\$$\{PREFIX\}|${PREFIX}|g' \ + -e 's|\$$\{DOCSDIR\}|${DOCSDIR}|g' \ + -e 's|\$$\{EXAMPLESDIR\}|${EXAMPLESDIR}|g' \ + ${WRKSRC}/doc/muttrc.man +.if ! defined(WITHOUT_MUTT_HTML) +XML_USED= yes +.endif +.if defined(XML_NEEDED) && !defined(WITHOUT_MUTT_XML) +XML_USED= yes +.endif +.else # ! NOPORTDOCS +post-patch:: + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-nodoc-contrib +.endif # ! NOPORTDOCS + +.if ${XML_USED} == yes +BUILD_DEPENDS+= xsltproc:${PORTSDIR}/textproc/libxslt \ + ${LOCALBASE}/share/xsl/docbook/html/docbook.xsl:${PORTSDIR}/textproc/docbook-xsl \ + lynx:${PORTSDIR}/www/lynx +BUILD_DEPENDS+= w3m:${PORTSDIR}/www/w3m +post-patch:: + @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-doc-xml -NOMANCOMPRESS= yes -MAN1= flea.1 mutt.1 muttbug.1 mutt_dotlock.1 smime_keys.1 -MAN5= muttrc.5 mbox.5 mmdf.5 - -pre-configure: -.if ! ${PORT_OPTIONS:MDOCS} - ${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-nodoc-contrib -.endif - (cd ${WRKSRC}; ${ACLOCAL} -I m4; ${AUTOHEADER}) - -post-configure: - @${REINPLACE_CMD} -E "\ - s|^(s%\@ACLOCAL\@%).+(%g)|\1${ACLOCAL}\2|; \ - s|^(s%\@AUTOCONF\@%).+(%g)|\1${AUTOCONF}\2|; \ - s|^(s%\@AUTOMAKE\@%).+(%g)|\1${AUTOMAKE}\2|; \ - s|^(s%\@AUTOHEADER\@%).+(%g)|\1${AUTOHEADER}\2|" \ - ${BUILD_WRKSRC}/config.status +post-build:: + @cd ${WRKDIR}/docbook; ${GMAKE} +.endif + +pre-install: + @${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/generate-plist > ${PLIST} -.if ${PORT_OPTIONS:MDOCS} post-install: - ${INSTALL_DATA} ${_DISTDIR}/INSTALL.JA-PATCH.ja ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/README.JA-PATCH.ja ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/manual-ja-patch.ja.txt ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/usage-japanese.ja.txt ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/INSTALL.JA-PATCH.ja.html ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/README.JA-PATCH.ja.html ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/manual-ja-patch.ja.html ${DOCSDIR} - ${INSTALL_DATA} ${_DISTDIR}/usage-japanese.ja.html ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual_ja.txt ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual_ja.tex ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual_ja.html ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual_ja.sgml ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual.ja.txt ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual.ja.html ${DOCSDIR} - ${INSTALL_DATA} ${WRKDIR}/manual.ja.sgml ${DOCSDIR} + @${ECHO} > ${PKGMESSAGE} + ${INSTALL_DATA} ${WRKSRC}/doc/Muttrc ${PREFIX}/etc/Muttrc.dist + @for f in ${WRKDIR}/samples/*; do \ + ${INSTALL_DATA} $${f} ${EXAMPLESDIR}; \ + done +.if !defined(NOPORTDOCS) + @${ECHO} "===> Installing Mutt documentation" + @${MKDIR} ${DOCSDIR} && ${CHMOD} a+rx ${DOCSDIR} + @cd ${WRKSRC}/doc ; ${INSTALL_MAN} manual.txt PGP-Notes.txt \ + ../ABOUT-NLS ../contrib/language* ${DOCSDIR} + @cd ${WRKDIR}/docbook ; ${INSTALL_MAN} *.ja *.ja.txt ${DOCSDIR} + @cd ${WRKDIR} ; ${INSTALL_MAN} manual*.txt manual*.sgml manual*.tex \ + ${DOCSDIR} +.if defined(WITH_MUTT_NNTP) + @cd ${WRKSRC} ; ${INSTALL_MAN} ChangeLog.nntp ${DOCSDIR} +.endif +.if ! defined(WITHOUT_MUTT_HTML) + @${MKDIR} ${DOCSDIR}/html && ${CHMOD} a+rx ${DOCSDIR}/html + ${INSTALL_MAN} ${WRKSRC}/doc/*.html ${DOCSDIR}/html + ${INSTALL_MAN} ${WRKDIR}/docbook/*.ja.html ${DOCSDIR}/html + ${INSTALL_MAN} ${WRKDIR}/manual*.html ${DOCSDIR}/html +.endif +.endif +.if defined(MUTT_USES_SLANG) + @${ECHO} "=====================================================" >> ${PKGMESSAGE} + @${ECHO} "You have installed ${PORTNAME} with SLANG support." >> ${PKGMESSAGE} + @${ECHO} "This may work for a color terminal only when defining" >> ${PKGMESSAGE} + @${ECHO} "COLORTERM=yes and COLORFGBG=\"color1;color2\" in your" >> ${PKGMESSAGE} + @${ECHO} "environment." >> ${PKGMESSAGE} + @${ECHO} "=====================================================" >> ${PKGMESSAGE} +.endif +.if !defined(BATCH) + @${CAT} ${PKGMESSAGE} + @${ECHO} .endif - -.include +.include diff -urN mutt-devel/distinfo mutt-devel-1.5.21-ja.2/distinfo --- mutt-devel/distinfo 2012-07-14 22:54:48.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/distinfo 2013-04-07 23:02:19.000000000 +0900 @@ -1,30 +1,14 @@ SHA256 (mutt/mutt-1.5.21.tar.gz) = 2141f36e8d0f4f71c9ca6780001e7cc679fe313e643953fc07f001223e67c4a0 SIZE (mutt/mutt-1.5.21.tar.gz) = 3716886 +SHA256 (mutt/mutt-1.5.21-ja.2.tar.gz) = 0843a5316f0cbd8fb972bc8f4adcfbb5f377777ba78de423ef0a20f8a27d53f7 +SIZE (mutt/mutt-1.5.21-ja.2.tar.gz) = 559120 SHA256 (mutt/manual_ja-1.4i-1.tar.gz) = a0c02908bb5d47c30cf7a8c5e05bfe875439448ec050382671c1368b7d3c4d61 SIZE (mutt/manual_ja-1.4i-1.tar.gz) = 300461 SHA256 (mutt/manual.ja-20050813.tar.gz) = bee26bc377bc51e68611cbfaf2d352ad4bf00648ad86ba96b572a21cd27774cd SIZE (mutt/manual.ja-20050813.tar.gz) = 281491 -SHA256 (mutt/README.JA-PATCH.ja.html) = 6f23bde1416919205cf6a9393abf295b533ca2f82cd59bfabb6f1a6970ae0196 -SIZE (mutt/README.JA-PATCH.ja.html) = 15346 -SHA256 (mutt/README.JA-PATCH.ja) = 4b017013108ac0bf45e6e5117351f8d6f61bedabf46f1c719985f82d1c12993f -SIZE (mutt/README.JA-PATCH.ja) = 8978 -SHA256 (mutt/INSTALL.JA-PATCH.ja.html) = ad2ad98c745544d4558f82c33873380066c526d7775a0685be54758682907646 -SIZE (mutt/INSTALL.JA-PATCH.ja.html) = 11821 -SHA256 (mutt/INSTALL.JA-PATCH.ja) = 2e1e3bc60937f2b116be58bf16987339efaef6c5130e253038b91f364f8ac929 -SIZE (mutt/INSTALL.JA-PATCH.ja) = 7651 -SHA256 (mutt/manual-ja-patch.ja.html) = 8607c4d692956c9b1ce8ad58c88761c7ddfe5089b7b6a343c1fae43b0f72893a -SIZE (mutt/manual-ja-patch.ja.html) = 15415 -SHA256 (mutt/manual-ja-patch.ja.txt) = a68952bfb8b250566cd41e00f99e6b959639df0aa286e7f6b98598f357c8c094 -SIZE (mutt/manual-ja-patch.ja.txt) = 7691 -SHA256 (mutt/usage-japanese.ja.html) = 2d1a9eb0a84d6134da2d94c8456f70f86d6e5be9ec1798ebf81040d06bc27049 -SIZE (mutt/usage-japanese.ja.html) = 14177 -SHA256 (mutt/usage-japanese.ja.txt) = 0ea8d1afeb361a8a4e99563c7173cd7e30b4f4f00ff7b71381ce649d53e7c3cd -SIZE (mutt/usage-japanese.ja.txt) = 9969 -SHA256 (mutt/patch-1.5.21.tt.wcwidth.1.gz) = f08f60d94be290b9d0eff3399ae97f620afba497960e4c3d112dc2f306047f59 -SIZE (mutt/patch-1.5.21.tt.wcwidth.1.gz) = 8145 -SHA256 (mutt/patch-1.5.21.tt.create_rfc2047_params.1.gz) = 71251917b4a9ec791dbe728df26f4f31bc86db8a920c6b70f282796cf8aa4d8d -SIZE (mutt/patch-1.5.21.tt.create_rfc2047_params.1.gz) = 1115 -SHA256 (mutt/patch-1.5.21.tt+yy.delete_prefix.1.gz) = 0b673b504c22e942f92a7df95c9a1bc00551ffc50ac6c3a445713ac18807f460 -SIZE (mutt/patch-1.5.21.tt+yy.delete_prefix.1.gz) = 1568 -SHA256 (mutt/patch-1.5.21.tt.sanitize_ja_char.1.gz) = dea6d350838422f50c9fde9e8238156a55aa1a404e968e86d260fa8e5fa9e954 -SIZE (mutt/patch-1.5.21.tt.sanitize_ja_char.1.gz) = 2924 +SHA256 (mutt/patch-1.5.21.rr.compressed.gz) = 5056b181222c4322667fd99a6314e80a4a8b4613357364d9deddef626136b4d9 +SIZE (mutt/patch-1.5.21.rr.compressed.gz) = 10133 +SHA256 (mutt/patch-1.5.21.vvv.initials.gz) = ecce3643b04d1aced7085bca506896298bd56d991a5d1af057922c8358abf141 +SIZE (mutt/patch-1.5.21.vvv.initials.gz) = 691 +SHA256 (mutt/patch-1.5.21.vvv.quote.gz) = b0613d305932b31eaf005ee0740558d46561a6d7a333c97a00d34a1d0c1ef843 +SIZE (mutt/patch-1.5.21.vvv.quote.gz) = 1280 diff -urN mutt-devel/files/extra-patch-aspell mutt-devel-1.5.21-ja.2/files/extra-patch-aspell --- mutt-devel/files/extra-patch-aspell 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-aspell 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,11 @@ +--- doc/Muttrc.head.orig Thu Jan 24 13:10:47 2002 ++++ doc/Muttrc.head Tue Nov 9 08:53:14 2004 +@@ -19,6 +19,8 @@ + macro index "!less @docdir@/manual.txt\n" "Show Mutt documentation" + macro pager "!less @docdir@/manual.txt\n" "Show Mutt documentation" + ++set ispell="/usr/local/bin/aspell --mode=email check" ++ + # If Mutt is unable to determine your site's domain name correctly, you can + # set the default here. + # diff -urN mutt-devel/files/extra-patch-doc-ref mutt-devel-1.5.21-ja.2/files/extra-patch-doc-ref --- mutt-devel/files/extra-patch-doc-ref 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-doc-ref 2013-01-02 23:57:25.000000000 +0900 @@ -0,0 +1,12 @@ +--- doc/mutt.man.orig 2009-02-06 13:52:38.000000000 +0100 ++++ doc/mutt.man 2009-02-06 13:55:05.000000000 +0100 +@@ -69,7 +69,8 @@ + .PP + Mutt is a small but very powerful text based program for reading and sending electronic + mail under unix operating systems, including support for color terminals, MIME, +-OpenPGP, and a threaded sorting mode. ++OpenPGP, and a threaded sorting mode. Details of how to use all of this is ++available in \fI${DOCSDIR}\fP. + .PP + .I Note: + .IR diff -urN mutt-devel/files/extra-patch-doc-xml mutt-devel-1.5.21-ja.2/files/extra-patch-doc-xml --- mutt-devel/files/extra-patch-doc-xml 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-doc-xml 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,11 @@ +--- doc/Makefile.am.orig 2010-09-17 16:23:30.000000000 +0200 ++++ doc/Makefile.am 2010-09-17 16:25:01.000000000 +0200 +@@ -47,7 +47,7 @@ + + all: makedoc-all + +-makedoc-all: mutt.1 smime_keys.1 muttrc.man ++makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-chunked manual.txt + + install-data-local: makedoc-all instdoc + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 diff -urN mutt-devel/files/extra-patch-greeting mutt-devel-1.5.21-ja.2/files/extra-patch-greeting --- mutt-devel/files/extra-patch-greeting 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-greeting 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,160 @@ +diff -urN mutt-1.5.19/globals.h mutt-1.5.19-vc/globals.h +--- mutt-1.5.19/globals.h 2009-01-04 01:27:10.000000000 +0200 ++++ mutt-1.5.19-vc/globals.h 2009-02-09 19:30:31.000000000 +0200 +@@ -52,6 +52,7 @@ + WHERE char *FolderFormat; + WHERE char *ForwFmt; + WHERE char *Fqdn; ++WHERE char *Greeting; + WHERE char *HdrFmt; + WHERE char *HistFile; + WHERE char *Homedir; +diff -urN mutt-1.5.19/hdrline.c mutt-1.5.19-vc/hdrline.c +--- mutt-1.5.19/hdrline.c 2009-01-05 21:20:53.000000000 +0200 ++++ mutt-1.5.19-vc/hdrline.c 2009-02-09 19:30:31.000000000 +0200 +@@ -741,3 +741,62 @@ + { + mutt_FormatString (dst, dstlen, 0, s, hdr_format_str, (unsigned long) hfi, flags); + } ++ ++/* %n = recipient name ++ * %u = user (login) name of recipient ++ * %v = first name of recipient */ ++const char * ++greeting_string (char *dest, ++ size_t destlen, ++ size_t col, ++ char op, ++ const char *src, ++ const char *prefix, ++ const char *ifstring, ++ const char *elsestring, ++ unsigned long data, ++ format_flag flags) ++{ ++ HEADER *hdr = (HEADER *)data; ++ char *p, buf2[SHORT_STRING]; ++ ++ dest[0] = '\0'; ++ switch (op) ++ { ++ case 'n': ++ mutt_format_s (dest, destlen, prefix, mutt_get_name (hdr->env->to)); ++ break; ++ ++ case 'u': ++ if (hdr->env->to) ++ { ++ strfcpy (buf2, mutt_addr_for_display (hdr->env->to), sizeof (buf2)); ++ if ((p = strpbrk (buf2, "%@"))) ++ *p = '\0'; ++ } ++ else ++ buf2[0] = '\0'; ++ mutt_format_s (dest, destlen, prefix, buf2); ++ break; ++ ++ case 'v': ++ if (hdr->env->to) ++ mutt_format_s (buf2, sizeof (buf2), prefix, mutt_get_name (hdr->env->to)); ++ else if (hdr->env->cc) ++ mutt_format_s (buf2, sizeof (buf2), prefix, mutt_get_name (hdr->env->cc)); ++ else ++ *buf2 = '\0'; ++ if ((p = strpbrk (buf2, " %@"))) ++ *p = '\0'; ++ mutt_format_s (dest, destlen, prefix, buf2); ++ break; ++ ++ default: ++ snprintf (dest, destlen, "%%%s%c", prefix, op); ++ break; ++ } ++ if (flags & M_FORMAT_OPTIONAL) ++ mutt_FormatString (dest, destlen, col, elsestring, greeting_string, data, flags); ++ ++ return(src); ++} +diff -urN mutt-1.5.19/init.h mutt-1.5.19-vc/init.h +--- mutt-1.5.19/init.h 2009-01-05 21:20:53.000000000 +0200 ++++ mutt-1.5.19-vc/init.h 2009-02-09 19:30:31.000000000 +0200 +@@ -745,6 +745,22 @@ + ** .pp + ** This setting defaults to the contents of the environment variable \fC$$$EMAIL\fP. + */ ++ { "greeting", DT_STR, R_NONE, UL &Greeting, UL "" }, ++ /* ++ ** .pp ++ ** When set, this is the string that will precede every message as a ++ ** greeting phrase to the recipients. ++ ** .pp ++ ** ``Format strings'' are similar to the strings used in the ``C'' ++ ** function printf to format output (see the man page for more detail). ++ ** The following sequences are defined in Mutt: ++ ** .pp ++ ** .dl ++ ** .dt %n .dd recipient name ++ ** .dt %u .dd user (login) name of recipient ++ ** .dt %v .dd first name of recipient ++ ** .de ++ */ + { "gecos_mask", DT_RX, R_NONE, UL &GecosMask, UL "^[^,]*" }, + /* + ** .pp +diff -urN mutt-1.5.19/PATCHES mutt-1.5.19-vc/PATCHES +--- mutt-1.5.19/PATCHES 2008-03-19 22:07:06.000000000 +0200 ++++ mutt-1.5.19-vc/PATCHES 2009-02-09 19:30:31.000000000 +0200 +@@ -0,0 +1 @@ ++vc.greeting +diff -urN mutt-1.5.19/protos.h mutt-1.5.19-vc/protos.h +--- mutt-1.5.19/protos.h 2009-01-05 21:20:53.000000000 +0200 ++++ mutt-1.5.19-vc/protos.h 2009-02-09 19:32:15.000000000 +0200 +@@ -526,6 +526,9 @@ + void ci_bounce_message (HEADER *, int *); + int ci_send_message (int, HEADER *, char *, CONTEXT *, HEADER *); + ++const char *greeting_string (char *, size_t, size_t, char, const char *, const char *, ++ const char *, const char *, unsigned long, format_flag); ++ + /* prototypes for compatibility functions */ + + #ifndef HAVE_SETENV +diff -urN mutt-1.5.19/send.c mutt-1.5.19-vc/send.c +--- mutt-1.5.19/send.c.orig 2010-09-17 16:49:09.000000000 +0200 ++++ mutt-1.5.19-vc/send.c 2010-09-17 16:53:15.000000000 +0200 +@@ -469,6 +469,18 @@ + } + } + ++void mutt_make_greeting (HEADER *hdr, FILE *out, int flags) ++{ ++ char buffer[STRING]; ++ if (Greeting) ++ { ++ mutt_FormatString(buffer, sizeof(buffer), 0, Greeting, greeting_string, ++ (unsigned long) hdr, flags); ++ fputs(buffer, out); ++ fputc ('\n', out); ++ } ++} ++ + void mutt_make_post_indent (CONTEXT *ctx, HEADER *cur, FILE *out) + { + char buffer[STRING]; +@@ -1003,7 +1015,6 @@ + } + } + +- + /* look through the recipients of the message we are replying to, and if + we find an address that matches $alternates, we use that as the default + from field */ +@@ -1439,6 +1450,8 @@ + if (option (OPTHDRS)) + process_user_header (msg->env); + ++ mutt_make_greeting(msg, tempfp, flags); ++ + if (flags & SENDBATCH) + mutt_copy_stream (stdin, tempfp); + diff -urN mutt-devel/files/extra-patch-ifdef mutt-devel-1.5.21-ja.2/files/extra-patch-ifdef --- mutt-devel/files/extra-patch-ifdef 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-ifdef 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,79 @@ +--- mutt-1.5.4.orig/init.c 2003-03-04 08:49:48.000000000 +0100 ++++ mutt-1.5.4/init.c 2003-07-22 20:14:47.000000000 +0200 +@@ -349,6 +349,52 @@ static void remove_from_list (LIST **l, + } + } + ++static int parse_ifdef (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) ++{ ++ int i, j, res = 0; ++ BUFFER token; ++ ++ memset (&token, 0, sizeof (token)); ++ mutt_extract_token (tmp, s, 0); ++ ++ /* is the item defined as a variable or a function? */ ++ if (!(res = (mutt_option_index (tmp->data) != -1))) ++ for (i = 0; !res && i < MENU_MAX; i++) ++ { ++ struct binding_t *b = km_get_table (Menus[i].value); ++ ++ if (!b) ++ continue; ++ ++ for (j = 0; b[j].name; j++) ++ if (!ascii_strncasecmp (tmp->data, b[j].name, mutt_strlen (tmp->data)) ++ && (mutt_strlen (b[j].name) == mutt_strlen (tmp->data))) ++ { ++ res = 1; ++ break; ++ } ++ } ++ ++ if (!MoreArgs (s)) ++ { ++ snprintf (err->data, err->dsize, _("ifdef: too few arguments")); ++ return (-1); ++ } ++ mutt_extract_token (tmp, s, M_TOKEN_SPACE); ++ ++ if (res) ++ { ++ if (mutt_parse_rc_line (tmp->data, &token, err) == -1) ++ { ++ mutt_error ("Erreur: %s", err->data); ++ FREE (&token.data); ++ return (-1); ++ } ++ FREE (&token.data); ++ } ++ return 0; ++} ++ + static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) + { + do +diff -pruN mutt-1.5.4.orig/init.h mutt-1.5.4/init.h +--- mutt-1.5.4.orig/init.h.orig 2009-06-22 15:48:16.000000000 +0200 ++++ mutt-1.5.4/init.h 2009-06-22 15:49:28.000000000 +0200 +@@ -3658,6 +3658,7 @@ + static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *); ++static int parse_ifdef (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *); +@@ -3715,6 +3716,7 @@ + { "hdr_order", parse_list, UL &HeaderOrderList }, + #ifdef HAVE_ICONV + { "iconv-hook", mutt_parse_hook, M_ICONVHOOK }, ++ { "ifdef", parse_ifdef, 0 }, + #endif + { "ignore", parse_ignore, 0 }, + { "lists", parse_lists, 0 }, +diff -pruN mutt-1.5.4.orig/PATCHES mutt-1.5.4/PATCHES +--- mutt-1.5.4.orig/PATCHES 2003-03-19 22:33:37.000000000 +0100 ++++ mutt-1.5.4/PATCHES 2003-07-22 20:14:47.000000000 +0200 +@@ -0,0 +1 @@ ++patch-1.5.4.cd.ifdef.1 diff -urN mutt-devel/files/extra-patch-maildir-mtime mutt-devel-1.5.21-ja.2/files/extra-patch-maildir-mtime --- mutt-devel/files/extra-patch-maildir-mtime 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-maildir-mtime 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,52 @@ +--- PATCHES Dec 2002 17:44:54 -0000 3.6 ++++ PATCHES Feb 2004 13:19:42 -0000 +@@ -0,0 +1 @@ ++patch-1.5.7.ust.maildir-mtime.2 +--- browser.c.orig Wed Jan 26 13:41:04 2005 ++++ browser.c Wed Feb 9 09:20:14 2005 +@@ -27,6 +27,7 @@ + #ifdef USE_IMAP + #include "imap.h" + #endif ++#include "mx.h" + + #include + #include +@@ -346,6 +347,21 @@ + menu->data = state->entry; + } + ++static void check_maildir_times (BUFFY *buf, struct stat *st) ++{ ++ char buffer[_POSIX_PATH_MAX + SHORT_STRING]; ++ struct stat s; ++ ++ if(!buf || buf->magic != M_MAILDIR) ++ return; ++ ++ snprintf (buffer, sizeof (buffer), "%s/tmp", buf->path); ++ if (lstat (buffer, &s) != 0) ++ return; ++ ++ st->st_mtime = s.st_mtime; ++} ++ + static int examine_directory (MUTTMENU *menu, struct browser_state *state, + char *d, const char *prefix) + { +@@ -409,6 +425,7 @@ + tmp = Incoming; + while (tmp && mutt_strcmp (buffer, tmp->path)) + tmp = tmp->next; ++ check_maildir_times (tmp, &s); + add_folder (menu, state, de->d_name, &s, (tmp) ? tmp->new : 0); + } + closedir (dp); +@@ -454,6 +471,7 @@ + strfcpy (buffer, NONULL(tmp->path), sizeof (buffer)); + mutt_pretty_mailbox (buffer); + ++ check_maildir_times (tmp, &s); + add_folder (menu, state, buffer, &s, tmp->new); + } + while ((tmp = tmp->next)); diff -urN mutt-devel/files/extra-patch-maildir-mtime-nntp mutt-devel-1.5.21-ja.2/files/extra-patch-maildir-mtime-nntp --- mutt-devel/files/extra-patch-maildir-mtime-nntp 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-maildir-mtime-nntp 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,44 @@ +--- PATCHES Dec 2002 17:44:54 -0000 3.6 ++++ PATCHES Feb 2004 13:19:42 -0000 +@@ -0,0 +1 @@ ++patch-1.5.7.ust.maildir-mtime.2 +--- browser.c.orig Tue Feb 8 10:29:57 2005 ++++ browser.c Tue Feb 8 10:29:58 2005 +@@ -31,4 +31,5 @@ + #include "nntp.h" + #endif ++#include "mx.h" + + #include +@@ -473,4 +474,19 @@ + } + ++static void check_maildir_times (BUFFY *buf, struct stat *st) ++{ ++ char buffer[_POSIX_PATH_MAX + SHORT_STRING]; ++ struct stat s; ++ ++ if(!buf || buf->magic != M_MAILDIR) ++ return; ++ ++ snprintf (buffer, sizeof (buffer), "%s/tmp", buf->path); ++ if (lstat (buffer, &s) != 0) ++ return; ++ ++ st->st_mtime = s.st_mtime; ++} ++ + /* get list of all files/newsgroups with mask */ + static int examine_directory (MUTTMENU *menu, struct browser_state *state, +@@ -562,4 +578,5 @@ + while (tmp && mutt_strcmp (buffer, tmp->path)) + tmp = tmp->next; ++ check_maildir_times (tmp, &s); + add_folder (menu, state, de->d_name, &s, NULL, (tmp) ? tmp->new : 0); + } +@@ -637,4 +654,5 @@ + mutt_pretty_mailbox (buffer); + ++ check_maildir_times (tmp, &s); + add_folder (menu, state, buffer, &s, NULL, tmp->new); + } diff -urN mutt-devel/files/extra-patch-no-mbox-manpage mutt-devel-1.5.21-ja.2/files/extra-patch-no-mbox-manpage --- mutt-devel/files/extra-patch-no-mbox-manpage 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-no-mbox-manpage 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,29 @@ +--- doc/Makefile.am.orig 2008-05-30 08:00:04.000000000 +0100 ++++ doc/Makefile.am 2008-09-19 18:55:55.000000000 +0100 +@@ -18,8 +18,6 @@ + gen-map-doc \ + muttrc.man.head \ + muttrc.man.tail \ +- mbox.man \ +- mmdf.man \ + manual.xml.head \ + manual.xml.tail \ + instdoc.sh.in \ +@@ -57,8 +55,6 @@ + test x@DOTLOCK_TARGET@ = x || ./instdoc $(srcdir)/dotlock.man \ + $(DESTDIR)$(mandir)/man1/mutt_dotlock.1 + ./instdoc muttrc.man $(DESTDIR)$(mandir)/man5/muttrc.5 +- ./instdoc $(srcdir)/mbox.man $(DESTDIR)$(mandir)/man5/mbox.5 +- ./instdoc $(srcdir)/mmdf.man $(DESTDIR)$(mandir)/man5/mmdf.5 + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir) + for f in $(topsrcdir_DOCFILES) ; do \ + $(INSTALL) -m 644 $(top_srcdir)/$$f $(DESTDIR)$(docdir) ; \ +@@ -83,7 +79,7 @@ + for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 ; do \ + rm -f $(DESTDIR)$(mandir)/man1/$$f ; \ + done +- for f in muttrc.5 mbox.5 mmdf.5 ; do \ ++ for f in muttrc.5 ; do \ + rm -f $(DESTDIR)$(mandir)/man5/$$f ; \ + done + for f in $(srcdir_DOCFILES) $(topsrcdir_DOCFILES) $(HTML_DOCFILES) ; \ diff -urN mutt-devel/files/extra-patch-nodoc-contrib mutt-devel-1.5.21-ja.2/files/extra-patch-nodoc-contrib --- mutt-devel/files/extra-patch-nodoc-contrib 2012-07-14 22:54:48.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-nodoc-contrib 2012-07-22 18:15:04.000000000 +0900 @@ -9,9 +9,9 @@ bin_SCRIPTS = muttbug flea @SMIMEAUX_TARGET@ ---- doc/Makefile.am.orig 2009-06-25 14:00:16.000000000 +0900 -+++ doc/Makefile.am 2009-06-25 14:04:02.000000000 +0900 -@@ -59,17 +59,6 @@ +--- doc/Makefile.am.orig 2008-05-19 19:43:38.000000000 +0200 ++++ doc/Makefile.am 2008-05-19 19:45:35.000000000 +0200 +@@ -60,14 +60,6 @@ ./instdoc muttrc.man $(DESTDIR)$(mandir)/man5/muttrc.5 ./instdoc $(srcdir)/mbox.man $(DESTDIR)$(mandir)/man5/mbox.5 ./instdoc $(srcdir)/mmdf.man $(DESTDIR)$(mandir)/man5/mmdf.5 @@ -23,9 +23,6 @@ - $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \ - done - -$(INSTALL) -m 644 manual.txt $(DESTDIR)$(docdir) -- -for f in $(HTML_DOCFILES) ; do \ -- $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir) ; \ -- done $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \ mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \ diff -urN mutt-devel/files/extra-patch-parent-child-match mutt-devel-1.5.21-ja.2/files/extra-patch-parent-child-match --- mutt-devel/files/extra-patch-parent-child-match 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-parent-child-match 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,169 @@ +--- mutt-1.5.20/doc/manual.xml.head 2009-05-30 19:20:08.000000000 +0200 ++++ mutt-1.5.20-parentchildmatch/doc/manual.xml.head 2009-07-18 01:09:23.000000000 +0200 +@@ -3947,6 +3947,22 @@ With the reset comman + which allows you to reset all variables to their system defaults. + + ++ ++Parent and child match. ++You can tell mutt that the following pattern has to be matched against ++the parent message with < or one of its childs with >. ++This example matches all mails which have at least an unread duplicate ++message: ++ ++ ++ ++ ++ ++>(~= ~N) ++ ++ ++ ++ + + + +diff -urNp mutt-1.5.20/mutt.h mutt-1.5.20-parentchildmatch/mutt.h +--- mutt-1.5.20/mutt.h 2009-06-13 00:15:42.000000000 +0200 ++++ mutt-1.5.20-parentchildmatch/mutt.h 2009-07-18 01:14:21.000000000 +0200 +@@ -819,6 +819,8 @@ typedef struct pattern_t + unsigned int alladdr : 1; + unsigned int stringmatch : 1; + unsigned int groupmatch : 1; ++ unsigned int parentmatch : 1; ++ unsigned int childsmatch : 1; + unsigned int ign_case : 1; /* ignore case for local stringmatch searches */ + int min; + int max; +diff -urNp mutt-1.5.20/pattern.c mutt-1.5.20-parentchildmatch/pattern.c +--- mutt-1.5.20/pattern.c 2009-06-03 22:48:31.000000000 +0200 ++++ mutt-1.5.20-parentchildmatch/pattern.c 2009-07-18 01:09:23.000000000 +0200 +@@ -45,6 +45,7 @@ static int eat_regexp (pattern_t *pat, B + static int eat_date (pattern_t *pat, BUFFER *, BUFFER *); + static int eat_range (pattern_t *pat, BUFFER *, BUFFER *); + static int patmatch (const pattern_t *pat, const char *buf); ++static int pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h); + + static struct pattern_flags + { +@@ -769,6 +770,8 @@ pattern_t *mutt_pattern_comp (/* const * + pattern_t *last = NULL; + int not = 0; + int alladdr = 0; ++ int parentmatch = 0; ++ int childsmatch = 0; + int or = 0; + int implicit = 1; /* used to detect logical AND operator */ + struct pattern_flags *entry; +@@ -793,6 +796,24 @@ pattern_t *mutt_pattern_comp (/* const * + ps.dptr++; + not = !not; + break; ++ case '<': ++ ps.dptr++; ++ if (childsmatch) { ++ snprintf (err->data, err->dsize, _("cannot use both < and > as a pattern modifier")); ++ mutt_pattern_free (&curlist); ++ return NULL; ++ } ++ parentmatch = 1; ++ break; ++ case '>': ++ ps.dptr++; ++ if (parentmatch) { ++ snprintf (err->data, err->dsize, _("cannot use both < and > as a pattern modifier")); ++ mutt_pattern_free (&curlist); ++ return NULL; ++ } ++ childsmatch = 1; ++ break; + case '|': + if (!or) + { +@@ -818,6 +839,8 @@ pattern_t *mutt_pattern_comp (/* const * + implicit = 0; + not = 0; + alladdr = 0; ++ parentmatch = 0; ++ childsmatch = 0; + break; + case '%': + case '=': +@@ -841,8 +864,12 @@ pattern_t *mutt_pattern_comp (/* const * + last = tmp; + tmp->not ^= not; + tmp->alladdr |= alladdr; ++ tmp->parentmatch |= parentmatch; ++ tmp->childsmatch |= childsmatch; + not = 0; + alladdr = 0; ++ parentmatch = 0; ++ childsmatch = 0; + /* compile the sub-expression */ + buf = mutt_substrdup (ps.dptr + 1, p); + if ((tmp2 = mutt_pattern_comp (buf, flags, err)) == NULL) +@@ -870,10 +897,14 @@ pattern_t *mutt_pattern_comp (/* const * + tmp = new_pattern (); + tmp->not = not; + tmp->alladdr = alladdr; ++ tmp->parentmatch = parentmatch; ++ tmp->childsmatch = childsmatch; + tmp->stringmatch = (*ps.dptr == '=') ? 1 : 0; + tmp->groupmatch = (*ps.dptr == '%') ? 1 : 0; + not = 0; + alladdr = 0; ++ parentmatch = 0; ++ childsmatch = 0; + + if (last) + last->next = tmp; +@@ -939,8 +970,12 @@ pattern_t *mutt_pattern_comp (/* const * + last = tmp; + tmp->not ^= not; + tmp->alladdr |= alladdr; ++ tmp->parentmatch |= parentmatch; ++ tmp->childsmatch |= childsmatch; + not = 0; + alladdr = 0; ++ parentmatch = 0; ++ childsmatch = 0; + ps.dptr = p + 1; /* restore location */ + break; + default: +@@ -1081,6 +1116,36 @@ static int match_threadcomplete(struct p + int + mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h) + { ++ THREAD *t; ++ ++ if (pat->parentmatch) { ++ if (h->thread && h->thread->parent && h->thread->parent->message) ++ return pattern_exec (pat, flags, ctx, h->thread->parent->message); ++ else ++ return pat->not; ++ } ++ if (pat->childsmatch) { ++ if (!h->thread) ++ return pat->not; ++ if (!h->thread->child) ++ return pat->not; ++ t = h->thread->child; ++ while (t->prev) ++ t = t->prev; ++ for (; t; t = t->next) { ++ if (!t->message) ++ continue; ++ if (pattern_exec (pat, flags, ctx, t->message)) ++ return !pat->not; ++ } ++ return pat->not; ++ } ++ return pattern_exec (pat, flags, ctx, h); ++} ++ ++static int ++pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h) ++{ + switch (pat->op) + { + case M_AND: diff -urN mutt-devel/files/extra-patch-pgp-dw mutt-devel-1.5.21-ja.2/files/extra-patch-pgp-dw --- mutt-devel/files/extra-patch-pgp-dw 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-pgp-dw 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,1039 @@ +--- PATCHES Dec 2002 17:44:54 -0000 3.6 ++++ PATCHES Feb 2004 06:07:13 -0000 +@@ -0,0 +1,4 @@ ++patch-1.5.6.dw.multiple-crypt-hook.2 ++patch-1.5.6.dw.confirm-crypt-hook.1 ++patch-1.5.6.dw.crypt-autoselectkey.1 ++patch-1.5.6.dw.pgp-menu-traditional.2 +--- compose.c Oct 2003 20:34:59 -0000 3.14 ++++ compose.c Feb 2004 06:07:13 -0000 +@@ -133,2 +133,9 @@ static void redraw_crypt_lines (HEADER * + addstr (_("Clear")); ++ ++ if ((WithCrypto & APPLICATION_PGP)) ++ if ((msg->security & (ENCRYPT | SIGN))) ++ if ((msg->security & INLINE)) ++ addstr (_(" (inline)")); ++ else ++ addstr (_(" (PGP/MIME)")); + clrtoeol (); +@@ -158,2 +165,3 @@ static int pgp_send_menu (HEADER *msg, i + { ++ int use_autoinline = 0; + pgp_key_t p; +@@ -164,7 +172,10 @@ static int pgp_send_menu (HEADER *msg, i + +- switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "), +- N_("esabf"))) ++ if (!(msg->security & (SIGN | ENCRYPT))) ++ use_autoinline = 1; ++ ++ switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? "), ++ N_("esabif"))) + { + case 1: /* (e)ncrypt */ +- msg->security |= ENCRYPT; ++ msg->security ^= ENCRYPT; + break; +@@ -172,3 +183,3 @@ static int pgp_send_menu (HEADER *msg, i + case 2: /* (s)ign */ +- msg->security |= SIGN; ++ msg->security ^= SIGN; + break; +@@ -199,6 +210,16 @@ static int pgp_send_menu (HEADER *msg, i + case 4: /* (b)oth */ +- msg->security = ENCRYPT | SIGN; ++ if ((msg->security & (ENCRYPT | SIGN)) == (ENCRYPT | SIGN)) ++ msg->security = 0; ++ else ++ msg->security |= (ENCRYPT | SIGN); + break; + +- case 5: /* (f)orget it */ ++ case 5: /* (i)nline */ ++ if ((msg->security & (ENCRYPT | SIGN))) ++ msg->security ^= INLINE; ++ else ++ msg->security &= ~INLINE; ++ break; ++ ++ case 6: /* (f)orget it */ + msg->security = 0; +@@ -207,6 +228,16 @@ static int pgp_send_menu (HEADER *msg, i + +- if (msg->security && msg->security != APPLICATION_PGP) +- msg->security |= APPLICATION_PGP; +- else +- msg->security = 0; ++ if (msg->security) ++ { ++ if (!(msg->security & (ENCRYPT | SIGN))) ++ { ++ msg->security = 0; ++ } ++ else ++ { ++ msg->security |= APPLICATION_PGP; ++ ++ if (use_autoinline && option (OPTPGPAUTOINLINE)) ++ msg->security |= INLINE; ++ } ++ } + +--- crypt.c Jan 2004 19:59:38 -0000 3.22 ++++ crypt.c Feb 2004 06:07:13 -0000 +@@ -161,3 +161,3 @@ int crypt_valid_passphrase(int flags) + +-int mutt_protect (HEADER *msg, HEADER *cur, char *keylist) ++int mutt_protect (HEADER *msg, char *keylist) + { +@@ -166,3 +166,2 @@ int mutt_protect (HEADER *msg, HEADER *c + BODY *tmp_pgp_pbody = NULL; +- int traditional = 0; + int flags = (WithCrypto & APPLICATION_PGP)? msg->security: 0; +@@ -176,29 +175,9 @@ int mutt_protect (HEADER *msg, HEADER *c + +- if ((WithCrypto & APPLICATION_PGP) && (msg->security & APPLICATION_PGP)) ++ if ((WithCrypto & APPLICATION_PGP) && ((msg->security & PGPINLINE) == PGPINLINE)) + { +- if ((msg->content->type == TYPETEXT) && +- !ascii_strcasecmp (msg->content->subtype, "plain")) +- { +- if (cur && cur->security && option (OPTPGPAUTOTRAD) +- && (option (OPTCRYPTREPLYENCRYPT) +- || option (OPTCRYPTREPLYSIGN) +- || option (OPTCRYPTREPLYSIGNENCRYPTED))) +- { +- if(mutt_is_application_pgp(cur->content)) +- traditional = 1; +- } +- else +- { +- if ((i = query_quadoption (OPT_PGPTRADITIONAL, _("Create a traditional (inline) PGP message?"))) == -1) +- return -1; +- else if (i == M_YES) +- traditional = 1; +- } +- } +- if (traditional) ++ /* they really want to send it inline... go for it */ ++ if (!isendwin ()) mutt_endwin _("Invoking PGP..."); ++ pbody = crypt_pgp_traditional_encryptsign (msg->content, flags, keylist); ++ if (pbody) + { +- if (!isendwin ()) mutt_endwin _("Invoking PGP..."); +- if (!(pbody = crypt_pgp_traditional_encryptsign (msg->content, flags, keylist))) +- return -1; +- + msg->content = pbody; +@@ -206,2 +185,8 @@ int mutt_protect (HEADER *msg, HEADER *c + } ++ ++ /* otherwise inline won't work...ask for revert */ ++ if ((i = query_quadoption (OPT_PGPMIMEASK, _("Message can't be sent inline. Revert to using PGP/MIME?"))) != M_YES) ++ return -1; ++ ++ /* go ahead with PGP/MIME */ + } +@@ -393,2 +378,5 @@ int mutt_is_application_pgp (BODY *m) + } ++ if (t) ++ t |= PGPINLINE; ++ + return t; +--- hook.c Jan 2004 09:52:55 -0000 3.8 ++++ hook.c Feb 2004 06:07:13 -0000 +@@ -119,3 +119,7 @@ int mutt_parse_hook (BUFFER *buf, BUFFER + { ++#ifdef M_CRYPTHOOK ++ if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK | M_CRYPTHOOK)) ++#else + if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK)) ++#endif + { +@@ -445,5 +449,21 @@ char *mutt_iconv_hook (const char *chs) + +-char *mutt_crypt_hook (ADDRESS *adr) ++LIST *mutt_crypt_hook (ADDRESS *adr) + { +- return _mutt_string_hook (adr->mailbox, M_CRYPTHOOK); ++ HOOK *hook; ++ LIST *key_list = NULL; ++ ++ if (!adr && !adr->mailbox) ++ return (NULL); ++ ++ for (hook = Hooks; hook; hook = hook->next) ++ { ++ if (!hook->command) ++ continue; ++ if (!(hook->type & M_CRYPTHOOK)) ++ continue; ++ ++ if ((regexec (hook->rx.rx, adr->mailbox, 0, NULL, 0) == 0) ^ hook->rx.not) ++ key_list = mutt_add_list (key_list, hook->command); ++ } ++ return (key_list); + } +--- init.h Feb 2004 17:10:43 -0000 3.43 ++++ init.h Feb 2004 06:07:14 -0000 +@@ -1205,2 +1205,12 @@ struct option_t MuttVars[] = { + */ ++ ++ ++ { "pgp_autoselectkey", DT_SYN, R_NONE, UL "crypt_autoselectkey", 0 }, ++ { "crypt_autoselectkey", DT_BOOL, R_NONE, OPTCRYPTAUTOSELECT, 0 }, ++ /* ++ ** .pp ++ ** If set, then a list of keys is not presented for selection when only ++ ** one matching key is available. This may be useful in conjunction with ++ ** the \fIcrypt-hook\fP command. ++ */ + { "pgp_autosign", DT_SYN, R_NONE, UL "crypt_autosign", 0 }, +@@ -1230,2 +1240,11 @@ struct option_t MuttVars[] = { + */ ++ { "pgp_confirmhook", DT_SYN, R_NONE, UL "crypt_confirmhook", 1 }, ++ { "crypt_confirmhook", DT_BOOL, R_NONE, OPTCRYPTCONFIRMHOOK, 1 }, ++ /* ++ ** .pp ++ ** If set, then you will be prompted for confirmation of keys when using ++ ** the \fIcrypt-hook\fP command. If unset, no such confirmation prompt will ++ ** be presented. This is generally considered unsafe, especially where ++ ** typos are concerned. ++ */ + { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1}, +@@ -1374,2 +1393,44 @@ struct option_t MuttVars[] = { + */ ++ { "pgp_create_traditional", DT_SYN, R_NONE, UL "pgp_autoinline", 0 }, ++ { "pgp_autoinline", DT_BOOL, R_NONE, OPTPGPAUTOINLINE, 0 }, ++ /* ++ ** .pp ++ ** This option controls whether Mutt generates old-style inline ++ ** (traditional) PGP encrypted or signed messages under certain ++ ** circumstances. This can be overridden by use of the \fIpgp-menu\fP, ++ ** when inline is not required. ++ ** .pp ++ ** Note that Mutt might automatically use PGP/MIME for messages ++ ** which consist of more than a single MIME part. Mutt can be ++ ** configured to ask before sending PGP/MIME messages when inline ++ ** (traditional) would not work. ++ ** See also: ``$$pgp_mime_ask''. ++ ** .pp ++ ** Also note that using the old-style PGP message format is \fBstrongly\fP ++ ** \fBdeprecated\fP. ++ ** (PGP only) ++ */ ++ { "pgp_auto_traditional", DT_SYN, R_NONE, UL "pgp_replyinline", 0 }, ++ { "pgp_replyinline", DT_BOOL, R_NONE, OPTPGPREPLYINLINE, 0 }, ++ /* ++ ** .pp ++ ** Setting this variable will cause Mutt to always attempt to ++ ** create an inline (traditional) message when replying to a ++ ** message which is PGP encrypted/signed inline. This can be ++ ** overridden by use of the \fIpgp-menu\fP, when inline is not ++ ** required. This option does not automatically detect if the ++ ** (replied-to) message is inline; instead it relies on Mutt ++ ** internals for previously checked/flagged messages. ++ ** .pp ++ ** Note that Mutt might automatically use PGP/MIME for messages ++ ** which consist of more than a single MIME part. Mutt can be ++ ** configured to ask before sending PGP/MIME messages when inline ++ ** (traditional) would not work. ++ ** See also: ``$$pgp_mime_ask''. ++ ** .pp ++ ** Also note that using the old-style PGP message format is \fBstrongly\fP ++ ** \fBdeprecated\fP. ++ ** (PGP only) ++ ** ++ */ + { "pgp_show_unusable", DT_BOOL, R_NONE, OPTPGPSHOWUNUSABLE, 1 }, +@@ -1423,11 +1484,8 @@ struct option_t MuttVars[] = { + */ +- { "pgp_create_traditional", DT_QUAD, R_NONE, OPT_PGPTRADITIONAL, M_NO }, ++ { "pgp_mime_ask", DT_QUAD, R_NONE, OPT_PGPMIMEASK, M_NO }, + /* + ** .pp +- ** This option controls whether Mutt generates old-style inline PGP +- ** encrypted or signed messages. +- ** .pp +- ** Note that PGP/MIME will be used automatically for messages which have +- ** a character set different from us-ascii, or which consist of more than +- ** a single MIME part. ++ ** This option controls whether Mutt will prompt you for ++ ** automatically sending a (signed/encrypted) message using ++ ** PGP/MIME when inline (traditional) fails (for any reason). + ** .pp +@@ -1435,19 +1493,2 @@ struct option_t MuttVars[] = { + ** \fBdeprecated\fP. +- ** (PGP only) +- */ +- { "pgp_auto_traditional", DT_BOOL, R_NONE, OPTPGPAUTOTRAD, 0 }, +- /* +- ** .pp +- ** This option causes Mutt to generate an old-style inline PGP +- ** encrypted or signed message when replying to an old-style +- ** message, and a PGP/MIME message when replying to a PGP/MIME +- ** message. Note that this option is only meaningful when using +- ** ``$$crypt_replyencrypt'', ``$$crypt_replysign'', or +- ** ``$$crypt_replysignencrypted''. +- ** .pp +- ** Also note that PGP/MIME will be used automatically for messages +- ** which have a character set different from us-ascii, or which +- ** consist of more than a single MIME part. +- ** .pp +- ** This option overrides ``$$pgp_create_traditional'' + ** (PGP only) +--- mutt.h Feb 2004 17:10:43 -0000 3.23 ++++ mutt.h Feb 2004 06:07:14 -0000 +@@ -278,3 +278,2 @@ enum + OPT_MOVE, +- OPT_PGPTRADITIONAL, /* create old-style PGP messages */ + #ifdef USE_POP +@@ -284,2 +283,3 @@ enum + OPT_POSTPONE, ++ OPT_PGPMIMEASK, /* ask to revert to PGP/MIME when inline fails */ + OPT_PRINT, +@@ -431,2 +431,3 @@ enum + ++ OPTCRYPTAUTOSELECT, + OPTCRYPTAUTOSIGN, +@@ -442,2 +443,3 @@ enum + OPTSDEFAULTDECRYPTKEY, ++ OPTCRYPTCONFIRMHOOK, + OPTPGPIGNORESUB, +@@ -445,3 +447,2 @@ enum + OPTPGPLONGIDS, +- OPTPGPAUTOTRAD, + #if 0 +@@ -453,2 +454,4 @@ enum + OPTPGPSHOWUNUSABLE, ++ OPTPGPAUTOINLINE, ++ OPTPGPREPLYINLINE, + +@@ -642,4 +645,4 @@ typedef struct header + { +- unsigned int security : 9; /* bit 0-6: flags, bit 7,8: application. +- see: crypt.h pgplib.h, smime.h */ ++ unsigned int security : 10; /* bit 0-7: flags, bit 8,9: application. ++ see: mutt_crypt.h */ + +--- mutt_crypt.h Dec 2003 13:04:20 -0000 3.5 ++++ mutt_crypt.h Feb 2004 06:07:14 -0000 +@@ -38,6 +38,7 @@ + #define SIGNOPAQUE (1 << 5) +-/* (1 << 6) is used by PGPKEY below. */ ++#define KEYBLOCK (1 << 6) /* KEY too generic? */ ++#define INLINE (1 << 7) + +-#define APPLICATION_PGP (1 << 7) +-#define APPLICATION_SMIME (1 << 8) ++#define APPLICATION_PGP (1 << 8) ++#define APPLICATION_SMIME (1 << 9) + +@@ -46,3 +47,4 @@ + #define PGPGOODSIGN (APPLICATION_PGP | GOODSIGN) +-#define PGPKEY (APPLICATION_PGP | (1 << 6)) ++#define PGPKEY (APPLICATION_PGP | KEYBLOCK) ++#define PGPINLINE (APPLICATION_PGP | INLINE) + +@@ -105,3 +107,3 @@ typedef struct pgp_keyinfo *pgp_key_t; + +-int mutt_protect (HEADER *, HEADER *, char *); ++int mutt_protect (HEADER *, char *); + +--- pgp.c Sep 2003 13:03:26 -0000 3.26 ++++ pgp.c Feb 2004 06:07:14 -0000 +@@ -1018,2 +1018,4 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS + size_t keylist_used = 0; ++ LIST *hook_list = NULL; ++ LIST *hook = NULL; + ADDRESS *tmp = NULL, *addr = NULL; +@@ -1051,66 +1053,93 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS + q = p; +- k_info = NULL; + +- if ((keyID = mutt_crypt_hook (p)) != NULL) ++ /* ++ * grab the list of matching hooks (matching on recipient address) ++ * process each entry singly so that auto key selection still works ++ */ ++ hook_list = mutt_crypt_hook (p); ++ hook = hook_list; ++ while (1) + { + int r; +- snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox); +- if ((r = mutt_yesorno (buf, M_YES)) == M_YES) ++ ++ k_info = NULL; ++ key = NULL; ++ ++ if (hook) + { +- if (is_numerical_keyid (keyID)) ++ keyID = (char *)hook->data; ++ snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox); ++ if (!option(OPTCRYPTCONFIRMHOOK) || (r = mutt_yesorno (buf, M_YES)) == M_YES) + { +- if (strncmp (keyID, "0x", 2) == 0) +- keyID += 2; +- goto bypass_selection; /* you don't see this. */ ++ if (is_numerical_keyid (keyID)) ++ { ++ if (strncmp (keyID, "0x", 2) == 0) ++ keyID += 2; ++ goto bypass_selection; /* you don't see this. */ ++ } ++ ++ /* check for e-mail address */ ++ if ((t = strchr (keyID, '@')) && ++ (addr = rfc822_parse_adrlist (NULL, keyID))) ++ { ++ if (fqdn) rfc822_qualify (addr, fqdn); ++ q = addr; ++ } ++ else ++ k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); + } +- +- /* check for e-mail address */ +- if ((t = strchr (keyID, '@')) && +- (addr = rfc822_parse_adrlist (NULL, keyID))) ++ else if (r == -1) + { +- if (fqdn) rfc822_qualify (addr, fqdn); +- q = addr; ++ /* ++ * yes, this implies that if one key fails they all do ++ */ ++ FREE (&keylist); ++ rfc822_free_address (&tmp); ++ rfc822_free_address (&addr); ++ mutt_free_list (&hook_list); ++ return NULL; + } +- else +- k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); + } +- else if (r == -1) +- { +- FREE (&keylist); +- rfc822_free_address (&tmp); +- rfc822_free_address (&addr); +- return NULL; +- } +- } + +- if (k_info == NULL) +- pgp_invoke_getkeys (q); +- +- if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) +- { +- snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); ++ if (k_info == NULL) ++ pgp_invoke_getkeys (q); + +- if ((key = pgp_ask_for_key (buf, q->mailbox, +- KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) ++ if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) + { +- FREE (&keylist); +- rfc822_free_address (&tmp); +- rfc822_free_address (&addr); +- return NULL; ++ snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); ++ ++ if ((key = pgp_ask_for_key (buf, q->mailbox, ++ KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) ++ { ++ FREE (&keylist); ++ rfc822_free_address (&tmp); ++ rfc822_free_address (&addr); ++ mutt_free_list (&hook_list); ++ return NULL; ++ } + } +- } +- else +- key = k_info; ++ else ++ key = k_info; + +- keyID = pgp_keyid (key); ++ keyID = pgp_keyid (key); + + bypass_selection: +- keylist_size += mutt_strlen (keyID) + 4; +- safe_realloc (&keylist, keylist_size); +- sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */ +- keyID); +- keylist_used = mutt_strlen (keylist); ++ keylist_size += mutt_strlen (keyID) + 4; ++ safe_realloc (&keylist, keylist_size); ++ sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */ ++ keyID); ++ keylist_used = mutt_strlen (keylist); + +- pgp_free_key (&key); +- rfc822_free_address (&addr); ++ pgp_free_key (&key); ++ rfc822_free_address (&addr); ++ ++ if (!hook_list) ++ break; ++ ++ hook = hook->next; ++ if (!hook) ++ break; ++ ++ } ++ mutt_free_list (&hook_list); + +--- pgpkey.c Oct 2003 19:55:39 -0000 3.8 ++++ pgpkey.c Feb 2004 06:07:14 -0000 +@@ -437,4 +437,9 @@ static int pgp_id_matches_addr (ADDRESS + ++ ++#define pgp_trusted_id(uid) (!option(OPTPGPCHECKTRUST) \ ++ || (pgp_id_is_valid((uid)) \ ++ && pgp_id_is_strong((uid)))) ++ + static pgp_key_t pgp_select_key (pgp_key_t keys, +- ADDRESS * p, const char *s) ++ ADDRESS * p, const char *s) + { +@@ -452,2 +457,3 @@ static pgp_key_t pgp_select_key (pgp_key + ++ int keymatch = 0; /* count matching keys */ + int unusable = 0; +@@ -481,2 +487,3 @@ static pgp_key_t pgp_select_key (pgp_key + } ++ keymatch++; + } +@@ -489,2 +496,17 @@ static pgp_key_t pgp_select_key (pgp_key + } ++ else if (keymatch == 1 && option(OPTCRYPTAUTOSELECT)) ++ { ++ /* ++ * Only one matching key...see if there's an id with enough trust to auto-select ++ */ ++ kp = KeyTable[0]->parent; ++ for (a = kp->address; a; a = a->next) ++ { ++ if (pgp_trusted_id(a)) ++ { ++ safe_free ((void **) &KeyTable); ++ return (kp); ++ } ++ } ++ } + +@@ -599,5 +621,3 @@ static pgp_key_t pgp_select_key (pgp_key + +- if (option (OPTPGPCHECKTRUST) && +- (!pgp_id_is_valid (KeyTable[menu->current]) +- || !pgp_id_is_strong (KeyTable[menu->current]))) ++ if (!pgp_trusted_id(KeyTable[menu->current])) + { +--- postpone.c Sep 2003 17:22:09 -0000 3.9 ++++ postpone.c Feb 2004 06:07:14 -0000 +@@ -486,2 +486,7 @@ int mutt_parse_crypt_hdr (char *p, int s + ++ case 'i': ++ case 'I': ++ pgp |= INLINE; ++ break; ++ + default: +--- protos.h Feb 2004 17:10:43 -0000 3.19 ++++ protos.h Feb 2004 06:07:14 -0000 +@@ -131,3 +131,3 @@ const char *mutt_get_name (ADDRESS *); + char *mutt_get_parameter (const char *, PARAMETER *); +-char *mutt_crypt_hook (ADDRESS *); ++LIST *mutt_crypt_hook (ADDRESS *); + char *mutt_make_date (char *, size_t); +--- send.c Jan 2004 10:03:46 -0000 3.29 ++++ send.c Feb 2004 06:07:14 -0000 +@@ -1258,2 +1258,9 @@ ci_send_message (int flags, /* send mod + msg->security |= SIGN; ++ if ((WithCrypto & APPLICATION_PGP) && (msg->security & (ENCRYPT | SIGN))) ++ { ++ if (option (OPTPGPAUTOINLINE)) ++ msg->security |= INLINE; ++ if (option (OPTPGPREPLYINLINE) && cur && (cur->security & INLINE)) ++ msg->security |= INLINE; ++ } + } +@@ -1496,3 +1503,3 @@ main_loop: + if ((crypt_get_keys (msg, &pgpkeylist) == -1) || +- mutt_protect (msg, cur, pgpkeylist) == -1) ++ mutt_protect (msg, pgpkeylist) == -1) + { +@@ -1576,3 +1583,3 @@ main_loop: + +- if (mutt_protect (msg, cur, pgpkeylist) == -1) ++ if (mutt_protect (msg, pgpkeylist) == -1) + { +--- sendlib.c Sep 2003 13:03:26 -0000 3.24 ++++ sendlib.c Feb 2004 06:07:14 -0000 +@@ -2407,2 +2407,4 @@ int mutt_write_fcc (const char *path, HE + } ++ if (hdr->security & INLINE) ++ fputc ('I', msg->fp); + fputc ('\n', msg->fp); +--- doc/manual.sgml.head Feb 2004 17:45:33 -0000 3.26 ++++ doc/manual.sgml.head Feb 2004 06:07:15 -0000 +@@ -1450,3 +1450,5 @@ normally use. The crypt-hook command pr + specify the ID of the public key to be used when encrypting messages to +-a certain recipient. ++a certain recipient. You may use multiple pgp-hook's with the same ++pattern; multiple matching pgp-hook's result in the use of multiple ++keyids for recipient. + +--- doc/muttrc.man.head Feb 2004 17:10:43 -0000 3.10 ++++ doc/muttrc.man.head Feb 2004 06:07:15 -0000 +@@ -297,3 +297,6 @@ to a certain recipient. The meaning of + broadly: This can be a different e-mail address, a numerical key ID, +-or even just an arbitrary search string. ++or even just an arbitrary search string. You may use multiple ++\fBpgp-hook\fPs with the same \fIpattern\fP; multiple matching ++\fBpgp-hook\fPs result in the use of multiple \fIkey-id\fPs for ++recipient. + .TP +--- po/ca.po Feb 2004 18:26:11 -0000 3.13 ++++ po/ca.po Feb 2004 06:07:15 -0000 +@@ -603,10 +603,10 @@ msgstr "Xifra amb: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP: (x)ifra, (s)igna, si(g)na com a, (a)mbdóó, o en (c)lar? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP: (x)ifra, (s)igna, s(i)gna com a, (a)mbdóó, en (l)íîia, o en (c)lar? " + + # ivb (2003/03/26) +-# ivb (x)ifra, (s)igna, si(g)na com a, (a)mbdóó, (c)lar ++# ivb (x)ifra, (s)igna, s(i)gna com a, (a)mbdóó, en (l)íîia, o en (c)lar + #: compose.c:166 +-msgid "esabf" +-msgstr "xsgac" ++msgid "esabif" ++msgstr "xsialc" + +--- po/cs.po Feb 2004 18:26:11 -0000 3.12 ++++ po/cs.po Feb 2004 06:07:16 -0000 +@@ -683,4 +683,4 @@ msgstr "Za¹éfrovat pomocíº" + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP - (¹©ifrovat, (p)odepsat, podepsat (j)ako, (o)bojí¬ èé (n)ic?" ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP - (¹©ifrovat, (p)odepsat, podepsat (j)ako, (o)bojí¬ pøí(m)ý¬ èé (n)ic?" + +@@ -688,4 +688,4 @@ msgstr "PGP - (¹©ifrovat, (p)odepsat, po + #: compose.c:166 +-msgid "esabf" +-msgstr "¹ðjon" ++msgid "esabif" ++msgstr "¹ðjomn" + +--- po/da.po Feb 2004 18:26:11 -0000 3.11 ++++ po/da.po Feb 2004 06:07:16 -0000 +@@ -578,8 +578,8 @@ msgstr "Kryptéò" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "(k)ryptéò, (u)nderskriv, underskriv (s)om, (b)egge, (i)ngen PGP" ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "(k)ryptéò, (u)nderskriv, underskriv (s)om, (b)egge, i(n)tegreret, (i)ngen PGP" + + #: compose.c:166 +-msgid "esabf" +-msgstr "kusbi" ++msgid "esabif" ++msgstr "kusbni" + +--- po/de.po Feb 2004 18:26:11 -0000 3.15 ++++ po/de.po Feb 2004 06:07:16 -0000 +@@ -569,8 +569,8 @@ msgstr "Verschlüóseln mit: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (k)ein PGP? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (i)nline, (k)ein PGP? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "vsabk" ++msgid "esabif" ++msgstr "vsabik" + +--- po/el.po Feb 2004 18:26:11 -0000 3.12 ++++ po/el.po Feb 2004 06:07:17 -0000 +@@ -700,4 +700,4 @@ msgstr "ÊñõðôïãñÜöçóç ìå: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, Ýþ(f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)êåßìåíï¬ Ýþ(f)orget it? " + +@@ -706,4 +706,4 @@ msgstr "PGP (e)ncrypt, (s)ign, sign (a)s + #: compose.c:166 +-msgid "esabf" +-msgstr "esabf" ++msgid "esabif" ++msgstr "esabif" + +--- po/eo.po Feb 2004 18:26:11 -0000 3.13 ++++ po/eo.po Feb 2004 06:07:17 -0000 +@@ -571,8 +571,8 @@ msgstr "Æéfri per: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP æ¨i)fri, (s)ubskribi, subskribi (k)iel, (a)mbaý¬ aý (f)orgesi? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP æ¨i)fri, (s)ubskribi, subskribi (k)iel, (a)mbaý¬ \"i(n)line\", aý (f)orgesi? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "iskaf" ++msgid "esabif" ++msgstr "iskanf" + +--- po/es.po Feb 2004 18:26:11 -0000 3.14 ++++ po/es.po Feb 2004 06:07:17 -0000 +@@ -576,4 +576,4 @@ msgstr "Cifrar" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "¿ão(d)ificar, f(i)rmar (c)omo, amb(o)s o ca(n)celar? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "¿ão(d)ificar, f(i)rmar (c)omo, amb(o)s, inc(l)uido, o ca(n)celar? " + +@@ -581,4 +581,4 @@ msgstr "¿ão(d)ificar, f(i)rmar (c)omo, a + #, fuzzy +-msgid "esabf" +-msgstr "dicon" ++msgid "esabif" ++msgstr "dicoln" + +--- po/et.po Feb 2004 18:26:11 -0000 3.13 ++++ po/et.po Feb 2004 06:07:18 -0000 +@@ -571,8 +571,8 @@ msgstr "Krüðti kasutades: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (k)rüðti, (a)llkiri, allk. ku(i), (m)õìemad võé (u)nusta? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (k)rüðti, (a)llkiri, allk. ku(i), (m)õìemad, k(e)hasse, võé (u)nusta? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "kaimu" ++msgid "esabif" ++msgstr "kaimeu" + +--- po/fr.po Feb 2004 18:26:11 -0000 3.23 ++++ po/fr.po Feb 2004 06:07:18 -0000 +@@ -596,8 +596,8 @@ msgstr "Chiffrer avec : " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, ou (o)ublier ? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, en (l)igne, ou (o)ublier ? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "csedo" ++msgid "esabif" ++msgstr "csedlo" + +--- po/gl.po Feb 2004 18:26:11 -0000 3.11 ++++ po/gl.po Feb 2004 06:07:18 -0000 +@@ -580,8 +580,8 @@ msgstr "Encriptar" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "¿¨e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas ou (o)lvidar? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "¿¨e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas, (i)nterior, ou (o)lvidar? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "efcao" ++msgid "esabif" ++msgstr "efcaio" + +--- po/hu.po Feb 2004 18:26:11 -0000 3.12 ++++ po/hu.po Feb 2004 06:07:19 -0000 +@@ -571,8 +571,8 @@ msgstr "Titkosíôáó: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (t)itkosíô, (a)láír, aláír (m)int, titkosíô é¨s) aláír, mé¨g)se? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (t)itkosíô, (a)láír, aláír (m)int, titkosíô é¨s) aláír, (b)eáçyazott, mé¨g)se? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "tamsg" ++msgid "esabif" ++msgstr "tamsbg" + +--- po/id.po Feb 2004 18:26:12 -0000 3.14 ++++ po/id.po Feb 2004 06:07:19 -0000 +@@ -572,8 +572,8 @@ msgstr "Enkrip dengan: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (b)atal? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (i)nline, (b)atal? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "etsdb" ++msgid "esabif" ++msgstr "etsdib" + +--- po/it.po Feb 2004 18:26:12 -0000 3.11 ++++ po/it.po Feb 2004 06:07:19 -0000 +@@ -582,8 +582,8 @@ msgstr "Crittografa" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "cifra(e), firma(s), firma come(a), entrambi(b), annulla(f) " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "cifra(e), firma(s), firma come(a), entrambi(b), in l(i)nea , annulla(f) " + + #: compose.c:166 +-msgid "esabf" +-msgstr "esabf" ++msgid "esabif" ++msgstr "esabif" + +--- po/ja.po Feb 2004 18:26:12 -0000 3.21 ++++ po/ja.po Feb 2004 06:07:20 -0000 +@@ -569,8 +569,8 @@ msgstr " °Å¹æ²½Êý¼°: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (e)°Å¹æ²½,(s)½ð̾,(a)..¤È¤·¤Æ½ð̾,(b)ξ¼Ô,(f)²ò½ü?" ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (e)°Å¹æ²½,(s)½ð̾,(a)..¤È¤·¤Æ½ð̾,(b)ξ¼Ô,(i)nline,(f)²ò½ü?" + + #: compose.c:166 +-msgid "esabf" +-msgstr "esabf" ++msgid "esabif" ++msgstr "esabif" + +--- po/ko.po Feb 2004 18:26:12 -0000 3.15 ++++ po/ko.po Feb 2004 06:07:20 -0000 +@@ -570,8 +570,8 @@ msgstr "¾Ïȣȭ ¹æ½Ä: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP ¾Ïȣȭ(e), ¼­¸í(s), »ç¿ë ¼­¸í(a), µÑ ´Ù(b), Ãë¼Ò(f)? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP ¾Ïȣȭ(e), ¼­¸í(s), »ç¿ë ¼­¸í(a), µÑ ´Ù(b), (i)nline, Ãë¼Ò(f)? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "esabf" ++msgid "esabif" ++msgstr "esabif" + +--- po/lt.po Feb 2004 18:26:12 -0000 3.11 ++++ po/lt.po Feb 2004 06:07:20 -0000 +@@ -578,5 +578,5 @@ msgstr "Uþðifruoti" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " + msgstr "" +-"(u)þðifruot, pa(s)iraðùt, pasiraðùt k(a)ip, a(b)u, rinktis (m)ic algoritmଠ" ++"(u)þðifruot, pa(s)iraðùt, pasiraðùt k(a)ip, a(b)u, (l)aiðëe, " + "ar (p)amirðôi?" +@@ -585,4 +585,4 @@ msgstr "" + #, fuzzy +-msgid "esabf" +-msgstr "usabmp" ++msgid "esabif" ++msgstr "usablp" + +@@ -598,4 +598,3 @@ msgid "" + msgstr "" +-"(u)þðifruot, pa(s)iraðùt, pasiraðùt k(a)ip, a(b)u, rinktis (m)ic algoritmଠ" +-"ar (p)amirðôi?" ++"(u)þðifruot, pa(s)iraðùt, uþðifruo(t) su, pasiraðùt k(a)ip, a(b)u, ar (p)amirðôi?" + +@@ -604,3 +603,3 @@ msgstr "" + msgid "eswabf" +-msgstr "usabmp" ++msgstr "ustabp" + +--- po/nl.po Feb 2004 18:26:12 -0000 3.16 ++++ po/nl.po Feb 2004 06:07:21 -0000 +@@ -568,8 +568,8 @@ msgstr "Versleutelen met: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eiden, (g)een? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eiden, ber(i)cht, (g)een? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "voabg" ++msgid "esabif" ++msgstr "voabig" + +--- po/pl.po Feb 2004 18:26:12 -0000 3.17 ++++ po/pl.po Feb 2004 06:07:21 -0000 +@@ -571,8 +571,8 @@ msgstr "Zaszyfruj u¿ùwaj±ã: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP: (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, b(e)z PGP? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP: (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, (i)nline, b(e)z PGP? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "zsabe" ++msgid "esabif" ++msgstr "zsabie" + +--- po/pt_BR.po Feb 2004 18:26:13 -0000 3.12 ++++ po/pt_BR.po Feb 2004 06:07:21 -0000 +@@ -581,5 +581,5 @@ msgstr "Encriptar" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " + msgstr "" +-"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? " ++"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, em l(i)nha, ou es(q)uece? " + +@@ -587,4 +587,4 @@ msgstr "" + #, fuzzy +-msgid "esabf" +-msgstr "escamq" ++msgid "esabif" ++msgstr "escaiq" + +@@ -600,3 +600,3 @@ msgid "" + msgstr "" +-"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? " ++"(e)ncripa, a(s)sina, e(n)cripa com, assina (c)omo, (a)mbos, ou es(q)uece? " + +@@ -605,3 +605,3 @@ msgstr "" + msgid "eswabf" +-msgstr "escamq" ++msgstr "esncaq" + +--- po/ru.po Feb 2004 18:26:13 -0000 3.19 ++++ po/ru.po Feb 2004 06:07:22 -0000 +@@ -577,8 +577,8 @@ msgstr "úÁÛÉÆÒÏ×ÁÔغ " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP (e)ÛÉÆÒ, (s)ÐÏÄÐÉÓج (a)ÐÏÄÐÉÓ×þËÁˬ (b)ÏÂÁ¬ (f)ÏÔËÁÚÁÔØÓÑ? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP (e)ÛÉÆÒ, (s)ÐÏÄÐÉÓج (a)ÐÏÄÐÉÓ×þËÁˬ (b)ÏÂÁ¬ (i)nline, (f)ÏÔËÁÚÁÔØÓÑ? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "esabf" ++msgid "esabif" ++msgstr "esabif" + +--- po/sk.po Feb 2004 18:26:13 -0000 3.11 ++++ po/sk.po Feb 2004 06:07:22 -0000 +@@ -586,5 +586,5 @@ msgstr "Za¹éfruj" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " + msgstr "" +-"(e)-¹éfr, (s)-podp, podp (a)ko, o(b)e, oznaçþalg. mi(c), alebo (f)-zabudnú» " ++"(e)-¹éfr, (s)-podp, podp (a)ko, o(b)e, (i)nline, alebo (f)-zabudnú» " + "na to? " +@@ -593,4 +593,4 @@ msgstr "" + #, fuzzy +-msgid "esabf" +-msgstr "esabmf" ++msgid "esabif" ++msgstr "esabif" + +@@ -606,4 +606,3 @@ msgid "" + msgstr "" +-"(e)-¹éfr, (s)-podp, podp (a)ko, o(b)e, oznaçþalg. mi(c), alebo (f)-zabudnú» " +-"na to? " ++"(e)-¹éfr, (s)-podp, (w)-¹éfr s, podp (a)ko, o(b)e, alebo (f)-zabudnú» na to? " + +@@ -612,3 +611,3 @@ msgstr "" + msgid "eswabf" +-msgstr "esabmf" ++msgstr "eswabf" + +--- po/sv.po Feb 2004 18:26:13 -0000 3.12 ++++ po/sv.po Feb 2004 06:07:22 -0000 +@@ -568,8 +568,8 @@ msgstr "Kryptera med: " + #: compose.c:165 +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)åäa, eller sk(i)ppa det?" ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)åäa, i(n)fogat, eller sk(i)ppa det?" + + #: compose.c:166 +-msgid "esabf" +-msgstr "ksobi" ++msgid "esabif" ++msgstr "ksobni" + +--- po/tr.po Feb 2004 18:26:13 -0000 3.11 ++++ po/tr.po Feb 2004 06:07:22 -0000 +@@ -577,5 +577,5 @@ msgstr "Þéfrele" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " + msgstr "" +-"þ¨i)frele, i(m)zala, (f)arklý imzala, i(k)isi de, mi(c) algoritmini seç " ++"þ¨i)frele, i(m)zala, (f)arklý imzala, i(k)isi de, (i)nline, " + "yoksa i(p)talmý¿ " +@@ -583,4 +583,4 @@ msgstr "" + #: compose.c:166 +-msgid "esabf" +-msgstr "imfkcp" ++msgid "esabif" ++msgstr "imfkip" + +--- po/uk.po Feb 2004 18:26:13 -0000 3.12 ++++ po/uk.po Feb 2004 06:07:23 -0000 +@@ -572,8 +572,8 @@ msgstr "ûÉÆÒÕ×ÁÎÎÑ" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +-msgstr "ÛÉÆÒ.(e), ЦÄÐ.(s), ЦÄÐ. ÑË(a), ÕÓŨb) ÞÉ ×¦ÄͦÎÁ¨f)? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " ++msgstr "ÛÉÆÒ.(e), ЦÄÐ.(s), ЦÄÐ. ÑË(a), ÕÓŨb), (i)nline ÞÉ ×¦ÄͦÎÁ¨f)? " + + #: compose.c:166 +-msgid "esabf" +-msgstr "" ++msgid "esabif" ++msgstr "esabif" + +--- po/zh_CN.po Feb 2004 18:26:13 -0000 3.11 ++++ po/zh_CN.po Feb 2004 06:07:23 -0000 +@@ -585,5 +585,5 @@ msgstr "¼ÓÃÜ" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " + msgstr "" +-"(e)¼ÓÃÜ, (s)Ç©Ãû, (a)ÓñðµÄÉí·ÝÇ©, (b)Á½Õß½ÔÒª, Ñ¡Ôñ (m)ic ÑÝËã·¨ »ò (f)·Å" ++"(e)¼ÓÃÜ, (s)Ç©Ãû, (a)ÓñðµÄÉí·ÝÇ©, (b)Á½Õß½ÔÒª, (i)nline, »ò (f)·Å" + "Æú£¿" +@@ -591,4 +591,4 @@ msgstr "" + #: compose.c:166 +-msgid "esabf" +-msgstr "" ++msgid "esabif" ++msgstr "esabif" + +--- po/zh_TW.po Feb 2004 18:26:13 -0000 3.11 ++++ po/zh_TW.po Feb 2004 06:07:24 -0000 +@@ -577,3 +577,3 @@ msgstr "加å¯" + #, fuzzy +-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " ++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " + msgstr "(1)加å¯, (2)ç°½å , (3)用å¥ç身份簽¬ (4)å…©è€çšè¦, åæ (5)åò¾æ£„ï¼" +@@ -581,4 +581,4 @@ msgstr "(1)加å¯, (2)ç°½å , (3)用å¥ç + #: compose.c:166 +-msgid "esabf" +-msgstr "12345" ++msgid "esabif" ++msgstr "1234i5" + diff -urN mutt-devel/files/extra-patch-reverse_reply mutt-devel-1.5.21-ja.2/files/extra-patch-reverse_reply --- mutt-devel/files/extra-patch-reverse_reply 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-reverse_reply 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,92 @@ +diff -u PATCHES PATCHES +--- PATCHES ++++ PATCHES +@@ -0,0 +1 @@ ++patch-1.5.6.cb.reverse_reply.2 +--- init.h.orig 2005-03-01 16:56:02.000000000 +0100 ++++ init.h 2005-05-25 18:20:57.000000000 +0200 +@@ -2257,6 +2257,13 @@ + ** possibly including eventual real names. When it is unset, mutt will + ** override any such real names with the setting of the $realname variable. + */ ++ { "reverse_reply", DT_BOOL, R_NONE, OPTREVREPLY, 0 }, ++ /* ++ ** .pp ++ ** When set, this variable uses the name from your aliases in the To and Cc ++ ** headers of reply mails you send, like $reverse_alias does in the index. ++ ** When unset, the headers taken from the original mail are left unchanged. ++ */ + { "rfc2047_parameters", DT_BOOL, R_NONE, OPTRFC2047PARAMS, 0 }, + /* + ** .pp +--- mutt.h.orig 2005-02-28 16:13:57.000000000 +0100 ++++ mutt.h 2005-05-25 18:20:57.000000000 +0200 +@@ -410,6 +410,7 @@ + OPTREVALIAS, + OPTREVNAME, + OPTREVREAL, ++ OPTREVREPLY, + OPTRFC2047PARAMS, + OPTSAVEADDRESS, + OPTSAVEEMPTY, +--- protos.h.orig Wed Jul 12 01:32:28 2006 ++++ protos.h Mon Jul 17 16:14:16 2006 +@@ -92,6 +92,7 @@ + ADDRESS *mutt_lookup_alias (const char *s); + ADDRESS *mutt_remove_duplicates (ADDRESS *); + ADDRESS *mutt_remove_xrefs (ADDRESS *, ADDRESS *); ++ADDRESS *mutt_reverse_address (ADDRESS *); + ADDRESS *mutt_expand_aliases (ADDRESS *); + ADDRESS *mutt_parse_adrlist (ADDRESS *, const char *); + +--- send.c.orig 2005-02-03 19:47:53.000000000 +0100 ++++ send.c 2005-05-25 18:20:57.000000000 +0200 +@@ -588,6 +588,10 @@ + /* the CC field can get cluttered, especially with lists */ + env->to = mutt_remove_duplicates (env->to); + env->cc = mutt_remove_duplicates (env->cc); ++ if (option (OPTREVREPLY)){ ++ env->to = mutt_reverse_address (env->to); ++ env->cc = mutt_reverse_address (env->cc); ++ } + env->cc = mutt_remove_xrefs (env->to, env->cc); + } + +--- sendlib.c.orig 2005-02-21 05:45:57.000000000 +0100 ++++ sendlib.c 2005-05-25 18:20:57.000000000 +0200 +@@ -2341,6 +2341,35 @@ + } + } + ++/* given a list of addresses, return a list of reverse_alias'ed addresses */ ++ADDRESS *mutt_reverse_address (ADDRESS *addr) ++{ ++ ADDRESS *top,*tmp,*alias; ++ ++ if (addr == NULL) ++ return NULL; ++ ++ if ((alias = alias_reverse_lookup (addr)) && alias->personal) { ++ tmp = rfc822_cpy_adr_real(alias); ++ tmp->next = addr->next; ++ addr->next = NULL; ++ rfc822_free_address(&addr); ++ addr = tmp; ++ } ++ ++ for (top = addr; top->next != NULL; top = tmp) { ++ tmp = top->next; ++ if ((alias = alias_reverse_lookup (tmp)) && alias->personal) { ++ top->next = rfc822_cpy_adr_real(alias); ++ top->next->next = tmp->next; ++ tmp->next = NULL; ++ rfc822_free_address(&tmp); ++ tmp = top->next; ++ } ++ } ++ return addr; ++} ++ + int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc) + { + CONTEXT f; diff -urN mutt-devel/files/extra-patch-sidebar mutt-devel-1.5.21-ja.2/files/extra-patch-sidebar --- mutt-devel/files/extra-patch-sidebar 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-sidebar 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,1603 @@ +--- orig/buffy.c.orig 2010-09-18 14:12:40.000000000 +0200 ++++ new/buffy.c 2010-09-18 14:17:36.000000000 +0200 +@@ -161,6 +161,49 @@ + } + } + ++static int buffy_compare_name(const void *a, const void *b) { ++ const BUFFY *b1 = * (BUFFY * const *) a; ++ const BUFFY *b2 = * (BUFFY * const *) b; ++ ++ return mutt_strcoll(b1->path, b2->path); ++} ++ ++static BUFFY *buffy_sort(BUFFY *b) ++{ ++ BUFFY *tmp = b; ++ int buffycount = 0; ++ BUFFY **ary; ++ int i; ++ ++ if (!option(OPTSIDEBARSORT)) ++ return b; ++ ++ for (; tmp != NULL; tmp = tmp->next) ++ buffycount++; ++ ++ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); ++ ++ tmp = b; ++ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { ++ ary[i] = tmp; ++ } ++ ++ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); ++ ++ for (i = 0; i < buffycount - 1; i++) { ++ ary[i]->next = ary[i+1]; ++ } ++ ary[buffycount - 1]->next = NULL; ++ for (i = 1; i < buffycount; i++) { ++ ary[i]->prev = ary[i-1]; ++ } ++ ary[0]->prev = NULL; ++ ++ tmp = ary[0]; ++ free(ary); ++ return tmp; ++} ++ + BUFFY *mutt_find_mailbox (const char *path) + { + BUFFY *tmp = NULL; +@@ -282,6 +325,7 @@ + else + (*tmp)->size = 0; + } ++ Incoming = buffy_sort(Incoming); + return 0; + } + +@@ -371,12 +415,17 @@ + return rc; + } + ++#define STAT_CHECK_SIZE (sb.st_size > tmp->size) ++#define STAT_CHECK_TIME (sb.st_mtime > sb.st_atime || (tmp->newly_created && sb.st_ctime == sb.st_mtime && sb.st_ctime == sb.st_atime)) ++#define STAT_CHECK (option(OPTCHECKMBOXSIZE) ? STAT_CHECK_SIZE : STAT_CHECK_TIME) ++ + int mutt_buffy_check (int force) + { + BUFFY *tmp; + struct stat sb; + struct stat contex_sb; + time_t t; ++ CONTEXT *ctx; + + sb.st_size=0; + contex_sb.st_dev=0; +@@ -416,6 +465,8 @@ + + for (tmp = Incoming; tmp; tmp = tmp->next) + { ++ if ( tmp->new == 1 ) ++ tmp->has_new = 1; + if (tmp->magic != M_IMAP) + { + tmp->new = 0; +@@ -455,18 +506,122 @@ + { + case M_MBOX: + case M_MMDF: +- if (buffy_mbox_hasnew (tmp, &sb) > 0) +- BuffyCount++; +- break; ++ { ++ if (STAT_CHECK || tmp->msgcount == 0) ++ { ++ BUFFY b = *tmp; ++ int msgcount = 0; ++ int msg_unread = 0; ++ /* parse the mailbox, to see how much mail there is */ ++ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); ++ if(ctx) ++ { ++ msgcount = ctx->msgcount; ++ msg_unread = ctx->unread; ++ mx_close_mailbox(ctx, 0); ++ } ++ *tmp = b; ++ tmp->msgcount = msgcount; ++ tmp->msg_unread = msg_unread; ++ if(STAT_CHECK) { ++ tmp->has_new = tmp->new = 1; ++ BuffyCount++; ++ } ++ } ++ else if (option(OPTCHECKMBOXSIZE)) ++ { ++ /* some other program has deleted mail from the folder */ ++ tmp->size = (off_t) sb.st_size; ++ } ++ if (tmp->newly_created && ++ (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) ++ tmp->newly_created = 0; ++ } ++ break; ++ + + case M_MAILDIR: +- if (buffy_maildir_hasnew (tmp) > 0) +- BuffyCount++; ++ { ++ char path[_POSIX_PATH_MAX]; ++ DIR *dirp; ++ struct dirent *de; ++ /* count new message */ ++ snprintf (path, sizeof (path), "%s/new", tmp->path); ++ if ((dirp = opendir (path)) == NULL) ++ { ++ tmp->magic = 0; ++ break; ++ } ++ tmp->msgcount = 0; ++ tmp->msg_unread = 0; ++ tmp->msg_flagged = 0; ++ while ((de = readdir (dirp)) != NULL) ++ { ++ char *p; ++ if (*de->d_name != '.' && ++ (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) ++ { ++ tmp->has_new = tmp->new = 1; ++ tmp->msgcount++; ++ tmp->msg_unread++; ++ } ++ } ++ if(tmp->msg_unread) ++ BuffyCount++; ++ ++ closedir (dirp); ++ ++ /* ++ * count read messages (for folderlist (sidebar) we also need to count ++ * messages in cur so that we the total number of messages ++ */ ++ snprintf (path, sizeof (path), "%s/cur", tmp->path); ++ if ((dirp = opendir (path)) == NULL) ++ { ++ tmp->magic = 0; ++ break; ++ } ++ while ((de = readdir (dirp)) != NULL) ++ { ++ char *p; ++ if (*de->d_name != '.') { ++ if ((p = strstr (de->d_name, ":2,"))) { ++ if (!strchr (p + 3, 'T')) { ++ tmp->msgcount++; ++ if ( !strchr (p + 3, 'S')) ++ tmp->msg_unread++; ++ if (strchr(p + 3, 'F')) ++ tmp->msg_flagged++; ++ } ++ } else ++ tmp->msgcount++; ++ } ++ } ++ closedir (dirp); ++ } + break; + + case M_MH: +- if ((tmp->new = mh_buffy (tmp->path)) > 0) +- BuffyCount++; ++ { ++ DIR *dp; ++ char path[_POSIX_PATH_MAX]; ++ struct dirent *de; ++ if ((tmp->new = mh_buffy (tmp->path)) > 0) ++ BuffyCount++; ++ ++ if ((dp = opendir (path)) == NULL) ++ break; ++ tmp->msgcount = 0; ++ while ((de = readdir (dp))) ++ { ++ if (mh_valid_message (de->d_name)) ++ { ++ tmp->msgcount++; ++ tmp->has_new = tmp->new = 1; ++ } ++ } ++ closedir (dp); ++ } + break; + } + } +*** mutt-1.5.20-orig/buffy.h 2009-04-30 00:36:16.000000000 -0500 +--- mutt-1.5.20-patched/buffy.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 25,31 **** +--- 25,36 ---- + char path[_POSIX_PATH_MAX]; + off_t size; + struct buffy_t *next; ++ struct buffy_t *prev; + short new; /* mailbox has new mail */ ++ short has_new; /* set it new if new and not read */ ++ int msgcount; /* total number of messages */ ++ int msg_unread; /* number of unread messages */ ++ int msg_flagged; /* number of flagged messages */ + short notified; /* user has been notified */ + short magic; /* mailbox type */ + short newly_created; /* mbox or mmdf just popped into existence */ +*** mutt-1.5.20-orig/color.c 2009-05-18 19:11:35.000000000 -0500 +--- mutt-1.5.20-patched/color.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 93,98 **** +--- 93,100 ---- + { "bold", MT_COLOR_BOLD }, + { "underline", MT_COLOR_UNDERLINE }, + { "index", MT_COLOR_INDEX }, ++ { "sidebar_new", MT_COLOR_NEW }, ++ { "sidebar_flagged", MT_COLOR_FLAGGED }, + { NULL, 0 } + }; + +*** mutt-1.5.20-orig/curs_main.c 2009-06-13 21:48:36.000000000 -0500 +--- mutt-1.5.20-patched/curs_main.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 26,32 **** +--- 26,34 ---- + #include "mailbox.h" + #include "mapping.h" + #include "sort.h" ++ #include "buffy.h" + #include "mx.h" ++ #include "sidebar.h" + + #ifdef USE_POP + #include "pop.h" +*************** +*** 523,530 **** + menu->redraw |= REDRAW_STATUS; + if (do_buffy_notify) + { +! if (mutt_buffy_notify () && option (OPTBEEPNEW)) +! beep (); + } + else + do_buffy_notify = 1; +--- 525,536 ---- + menu->redraw |= REDRAW_STATUS; + if (do_buffy_notify) + { +! if (mutt_buffy_notify ()) +! { +! menu->redraw |= REDRAW_FULL; +! if (option (OPTBEEPNEW)) +! beep (); +! } + } + else + do_buffy_notify = 1; +*************** +*** 536,541 **** +--- 542,548 ---- + if (menu->redraw & REDRAW_FULL) + { + menu_redraw_full (menu); ++ draw_sidebar(menu->menu); + mutt_show_error (); + } + +*************** +*** 558,567 **** +--- 565,577 ---- + + if (menu->redraw & REDRAW_STATUS) + { ++ DrawFullLine = 1; + menu_status_line (buf, sizeof (buf), menu, NONULL (Status)); ++ DrawFullLine = 0; + CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); ++ set_buffystats(Context); + mutt_paddstr (COLS, buf); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +*************** +*** 575,581 **** + menu->oldcurrent = -1; + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +--- 585,591 ---- + menu->oldcurrent = -1; + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +*************** +*** 1055,1060 **** +--- 1065,1071 ---- + menu->redraw = REDRAW_FULL; + break; + ++ case OP_SIDEBAR_OPEN: + case OP_MAIN_CHANGE_FOLDER: + case OP_MAIN_NEXT_UNREAD_MAILBOX: + +*************** +*** 1086,1092 **** + { + mutt_buffy (buf, sizeof (buf)); + +! if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) + { + if (menu->menu == MENU_PAGER) + { +--- 1097,1107 ---- + { + mutt_buffy (buf, sizeof (buf)); + +! if ( op == OP_SIDEBAR_OPEN ) { +! if(!CurBuffy) +! break; +! strncpy( buf, CurBuffy->path, sizeof(buf) ); +! } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) + { + if (menu->menu == MENU_PAGER) + { +*************** +*** 1104,1109 **** +--- 1119,1125 ---- + } + + mutt_expand_path (buf, sizeof (buf)); ++ set_curbuffy(buf); + if (mx_get_magic (buf) <= 0) + { + mutt_error (_("%s is not a mailbox."), buf); +*************** +*** 2183,2188 **** +--- 2199,2210 ---- + mutt_what_key(); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(op, menu->menu); ++ break; + default: + if (menu->menu == MENU_MAIN) + km_error_key (MENU_MAIN); +*** mutt-1.5.20-orig/flags.c 2008-12-16 21:50:09.000000000 -0600 +--- mutt-1.5.20-patched/flags.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 22,29 **** +--- 22,31 ---- + + #include "mutt.h" + #include "mutt_curses.h" ++ #include "mutt_menu.h" + #include "sort.h" + #include "mx.h" ++ #include "sidebar.h" + + void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) + { +*************** +*** 263,268 **** +--- 265,271 ---- + */ + if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged)) + h->searched = 0; ++ draw_sidebar(0); + } + + void mutt_tag_set_flag (int flag, int bf) +*** mutt-1.5.20-orig/functions.h 2009-04-30 00:36:17.000000000 -0500 +--- mutt-1.5.20-patched/functions.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 168,173 **** +--- 168,178 ---- + { "decrypt-save", OP_DECRYPT_SAVE, NULL }, + + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +*************** +*** 268,273 **** +--- 273,283 ---- + + { "what-key", OP_WHAT_KEY, NULL }, + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +*** mutt-1.5.20-orig/globals.h 2009-06-03 15:48:31.000000000 -0500 +--- mutt-1.5.20-patched/globals.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 117,122 **** +--- 117,123 ---- + WHERE char *SendCharset; + WHERE char *Sendmail; + WHERE char *Shell; ++ WHERE char *SidebarDelim; + WHERE char *Signature; + WHERE char *SimpleSearch; + #if USE_SMTP +*************** +*** 206,211 **** +--- 207,215 ---- + WHERE short ScoreThresholdRead; + WHERE short ScoreThresholdFlag; + ++ WHERE struct buffy_t *CurBuffy INITVAL(0); ++ WHERE short DrawFullLine INITVAL(0); ++ WHERE short SidebarWidth; + #ifdef USE_IMAP + WHERE short ImapKeepalive; + WHERE short ImapPipelineDepth; +*** mutt-1.5.20-orig/init.h 2009-06-13 16:35:21.000000000 -0500 +--- mutt-1.5.20-patched/init.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1941,1946 **** +--- 1941,1967 ---- + ** not used. + ** (PGP only) + */ ++ {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"}, ++ /* ++ ** .pp ++ ** This specifies the delimiter between the sidebar (if visible) and ++ ** other screens. ++ */ ++ { "sidebar_visible", DT_BOOL, R_BOTH, OPTSIDEBAR, 0 }, ++ /* ++ ** .pp ++ ** This specifies whether or not to show sidebar (left-side list of folders). ++ */ ++ { "sidebar_sort", DT_BOOL, R_BOTH, OPTSIDEBARSORT, 0 }, ++ /* ++ ** .pp ++ ** This specifies whether or not to sort the sidebar alphabetically. ++ */ ++ { "sidebar_width", DT_NUM, R_BOTH, UL &SidebarWidth, 0 }, ++ /* ++ ** .pp ++ ** The width of the sidebar. ++ */ + { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, + /* + ** .pp +*** mutt-1.5.20-orig/mailbox.h 2009-04-30 00:36:17.000000000 -0500 +--- mutt-1.5.20-patched/mailbox.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 27,32 **** +--- 27,33 ---- + #define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses + * safe_fopen() for mbox-style folders. + */ ++ #define M_PEEK (1<<5) /* revert atime back after taking a look (if applicable) */ + + /* mx_open_new_message() */ + #define M_ADD_FROM 1 /* add a From_ line */ +--- orig/Makefile.am.orig 2010-09-18 13:23:19.000000000 +0200 ++++ new/Makefile.am 2010-09-18 13:25:19.000000000 +0200 +@@ -34,7 +34,7 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c ++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c + + nodist_mutt_SOURCES = $(BUILT_SOURCES) + +--- orig/Makefile.in.orig 2010-09-18 13:23:19.000000000 +0200 ++++ new/Makefile.in 2010-09-18 13:27:19.000000000 +0200 +@@ -89,7 +89,7 @@ + system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ + history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ + editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ +- ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) ++ ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) sidebar.$(OBJEXT) + am__objects_1 = + am__objects_2 = patchlist.$(OBJEXT) $(am__objects_1) + nodist_mutt_OBJECTS = $(am__objects_2) +@@ -363,7 +363,7 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c ++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c + + nodist_mutt_SOURCES = $(BUILT_SOURCES) + mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ +@@ -397,7 +397,7 @@ + README.SSL smime.h group.h \ + muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ + ChangeLog mkchangelog.sh mutt_idna.h \ +- snprintf.c regex.c crypt-gpgme.h hcachever.sh.in ++ snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in + + EXTRA_SCRIPTS = smime_keys + mutt_dotlock_SOURCES = mutt_dotlock.c +*** mutt-1.5.20-orig/mbox.c 2009-06-10 23:29:41.000000000 -0500 +--- mutt-1.5.20-patched/mbox.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 100,105 **** +--- 100,106 ---- + mutt_perror (ctx->path); + return (-1); + } ++ ctx->atime = sb.st_atime; + ctx->mtime = sb.st_mtime; + ctx->size = sb.st_size; + +*************** +*** 255,260 **** +--- 256,262 ---- + + ctx->size = sb.st_size; + ctx->mtime = sb.st_mtime; ++ ctx->atime = sb.st_atime; + + #ifdef NFS_ATTRIBUTE_HACK + if (sb.st_mtime > sb.st_atime) +*** mutt-1.5.20-orig/menu.c 2009-06-01 11:29:32.000000000 -0500 +--- mutt-1.5.20-patched/menu.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 24,29 **** +--- 24,30 ---- + #include "mutt_curses.h" + #include "mutt_menu.h" + #include "mbyte.h" ++ #include "sidebar.h" + + #include + #include +*************** +*** 156,162 **** + { + char *scratch = safe_strdup (s); + int shift = option (OPTARROWCURSOR) ? 3 : 0; +! int cols = COLS - shift; + + mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1); + s[n - 1] = 0; +--- 157,163 ---- + { + char *scratch = safe_strdup (s); + int shift = option (OPTARROWCURSOR) ? 3 : 0; +! int cols = COLS - shift - SidebarWidth; + + mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1); + s[n - 1] = 0; +*************** +*** 207,212 **** +--- 208,214 ---- + char buf[LONG_STRING]; + int i; + ++ draw_sidebar(1); + for (i = menu->top; i < menu->top + menu->pagelen; i++) + { + if (i < menu->max) +*************** +*** 217,223 **** + if (option (OPTARROWCURSOR)) + { + attrset (menu->color (i)); +! CLEARLINE (i - menu->top + menu->offset); + + if (i == menu->current) + { +--- 219,225 ---- + if (option (OPTARROWCURSOR)) + { + attrset (menu->color (i)); +! CLEARLINE_WIN (i - menu->top + menu->offset); + + if (i == menu->current) + { +*************** +*** 246,259 **** + BKGDSET (MT_COLOR_INDICATOR); + } + +! CLEARLINE (i - menu->top + menu->offset); + print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + } + else +! CLEARLINE (i - menu->top + menu->offset); + } + menu->redraw = 0; + } +--- 248,261 ---- + BKGDSET (MT_COLOR_INDICATOR); + } + +! CLEARLINE_WIN (i - menu->top + menu->offset); + print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + } + else +! CLEARLINE_WIN (i - menu->top + menu->offset); + } + menu->redraw = 0; + } +*************** +*** 268,274 **** + return; + } + +! move (menu->oldcurrent + menu->offset - menu->top, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + +--- 270,276 ---- + return; + } + +! move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + +*************** +*** 283,295 **** + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); +! move (menu->oldcurrent + menu->offset - menu->top, 3); + print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + + /* now draw it in the new location */ +! move (menu->current + menu->offset - menu->top, 0); + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + addstr ("->"); +--- 285,297 ---- + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); +! move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth + 3); + print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + + /* now draw it in the new location */ +! move (menu->current + menu->offset - menu->top, SidebarWidth); + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + addstr ("->"); +*************** +*** 310,316 **** + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); +! CLEARLINE (menu->current - menu->top + menu->offset); + print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +--- 312,318 ---- + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); +! CLEARLINE_WIN (menu->current - menu->top + menu->offset); + print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +*************** +*** 322,328 **** + { + char buf[LONG_STRING]; + +! move (menu->current + menu->offset - menu->top, 0); + menu_make_entry (buf, sizeof (buf), menu, menu->current); + menu_pad_string (buf, sizeof (buf)); + +--- 324,330 ---- + { + char buf[LONG_STRING]; + +! move (menu->current + menu->offset - menu->top, SidebarWidth); + menu_make_entry (buf, sizeof (buf), menu, menu->current); + menu_pad_string (buf, sizeof (buf)); + +*************** +*** 876,882 **** + + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +--- 878,884 ---- + + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +*** mutt-1.5.20-orig/mutt_curses.h 2008-11-11 13:55:47.000000000 -0600 +--- mutt-1.5.20-patched/mutt_curses.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 64,69 **** +--- 64,70 ---- + #undef lines + #endif /* lines */ + ++ #define CLEARLINE_WIN(x) move(x,SidebarWidth), clrtoeol() + #define CLEARLINE(x) move(x,0), clrtoeol() + #define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x) + #define BEEP() do { if (option (OPTBEEP)) beep(); } while (0) +*************** +*** 126,131 **** +--- 127,134 ---- + MT_COLOR_BOLD, + MT_COLOR_UNDERLINE, + MT_COLOR_INDEX, ++ MT_COLOR_NEW, ++ MT_COLOR_FLAGGED, + MT_COLOR_MAX + }; + +*** mutt-1.5.20-orig/mutt.h 2009-06-12 17:15:42.000000000 -0500 +--- mutt-1.5.20-patched/mutt.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 418,423 **** +--- 418,425 ---- + OPTSAVEEMPTY, + OPTSAVENAME, + OPTSCORE, ++ OPTSIDEBAR, ++ OPTSIDEBARSORT, + OPTSIGDASHES, + OPTSIGONTOP, + OPTSORTRE, +*************** +*** 854,859 **** +--- 856,862 ---- + { + char *path; + FILE *fp; ++ time_t atime; + time_t mtime; + off_t size; + off_t vsize; +*************** +*** 888,893 **** +--- 891,897 ---- + unsigned int quiet : 1; /* inhibit status messages? */ + unsigned int collapsed : 1; /* are all threads collapsed? */ + unsigned int closing : 1; /* mailbox is being closed */ ++ unsigned int peekonly : 1; /* just taking a glance, revert atime */ + + /* driver hooks */ + void *data; /* driver specific data */ +*** mutt-1.5.20-orig/muttlib.c 2009-05-18 19:11:35.000000000 -0500 +--- mutt-1.5.20-patched/muttlib.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1232,1237 **** +--- 1232,1239 ---- + pl = pw = 1; + + /* see if there's room to add content, else ignore */ ++ if ( DrawFullLine ) ++ { + if ((col < COLS && wlen < destlen) || soft) + { + int pad; +*************** +*** 1274,1279 **** +--- 1276,1327 ---- + col += wid; + src += pl; + } ++ } ++ else ++ { ++ if ((col < COLS-SidebarWidth && wlen < destlen) || soft) ++ { ++ int pad; ++ ++ /* get contents after padding */ ++ mutt_FormatString (buf, sizeof (buf), 0, src + pl, callback, data, flags); ++ len = mutt_strlen (buf); ++ wid = mutt_strwidth (buf); ++ ++ /* try to consume as many columns as we can, if we don't have ++ * memory for that, use as much memory as possible */ ++ pad = (COLS - SidebarWidth - col - wid) / pw; ++ if (pad > 0 && wlen + (pad * pl) + len > destlen) ++ pad = ((signed)(destlen - wlen - len)) / pl; ++ if (pad > 0) ++ { ++ while (pad--) ++ { ++ memcpy (wptr, src, pl); ++ wptr += pl; ++ wlen += pl; ++ col += pw; ++ } ++ } ++ else if (soft && pad < 0) ++ { ++ /* \0-terminate dest for length computation in mutt_wstr_trunc() */ ++ *wptr = 0; ++ /* make sure right part is at most as wide as display */ ++ len = mutt_wstr_trunc (buf, destlen, COLS, &wid); ++ /* truncate left so that right part fits completely in */ ++ wlen = mutt_wstr_trunc (dest, destlen - len, col + pad, &col); ++ wptr = dest + wlen; ++ } ++ if (len + wlen > destlen) ++ len = mutt_wstr_trunc (buf, destlen - wlen, COLS - SidebarWidth - col, NULL); ++ memcpy (wptr, buf, len); ++ wptr += len; ++ wlen += len; ++ col += wid; ++ src += pl; ++ } ++ } + break; /* skip rest of input */ + } + else if (ch == '|') +*** mutt-1.5.20-orig/mx.c 2009-06-10 23:29:41.000000000 -0500 +--- mutt-1.5.20-patched/mx.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 581,586 **** +--- 581,587 ---- + * M_APPEND open mailbox for appending + * M_READONLY open mailbox in read-only mode + * M_QUIET only print error messages ++ * M_PEEK revert atime where applicable + * ctx if non-null, context struct to use + */ + CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx) +*************** +*** 603,608 **** +--- 604,611 ---- + ctx->quiet = 1; + if (flags & M_READONLY) + ctx->readonly = 1; ++ if (flags & M_PEEK) ++ ctx->peekonly = 1; + + if (flags & (M_APPEND|M_NEWFOLDER)) + { +*************** +*** 702,710 **** +--- 705,725 ---- + void mx_fastclose_mailbox (CONTEXT *ctx) + { + int i; ++ #ifndef BUFFY_SIZE ++ struct utimbuf ut; ++ #endif + + if(!ctx) + return; ++ #ifndef BUFFY_SIZE ++ /* fix up the times so buffy won't get confused */ ++ if (ctx->peekonly && ctx->path && ctx->mtime > ctx->atime) ++ { ++ ut.actime = ctx->atime; ++ ut.modtime = ctx->mtime; ++ utime (ctx->path, &ut); ++ } ++ #endif + + if (ctx->mx_close) + ctx->mx_close (ctx); +*** mutt-1.5.20-orig/OPS 2009-05-13 00:01:13.000000000 -0500 +--- mutt-1.5.20-patched/OPS 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 178,180 **** +--- 178,185 ---- + OP_MAIN_SHOW_LIMIT "show currently active limit pattern" + OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread" + OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads" ++ OP_SIDEBAR_SCROLL_UP "scroll the mailbox pane up 1 page" ++ OP_SIDEBAR_SCROLL_DOWN "scroll the mailbox pane down 1 page" ++ OP_SIDEBAR_NEXT "go down to next mailbox" ++ OP_SIDEBAR_PREV "go to previous mailbox" ++ OP_SIDEBAR_OPEN "open hilighted mailbox" +--- orig/pager.c.orig 2010-09-18 13:23:19.000000000 +0200 ++++ new/pager.c 2010-09-18 14:03:08.000000000 +0200 +@@ -29,6 +29,7 @@ + #include "pager.h" + #include "attach.h" + #include "mbyte.h" ++#include "sidebar.h" + + #include "mutt_crypt.h" + +@@ -1104,6 +1105,7 @@ + if (check_attachment_marker ((char *)buf) == 0) + wrap_cols = COLS; + ++ wrap_cols -= SidebarWidth; + /* FIXME: this should come from lineInfo */ + memset(&mbstate, 0, sizeof(mbstate)); + +@@ -1778,7 +1780,7 @@ + if ((redraw & REDRAW_BODY) || topline != oldtopline) + { + do { +- move (bodyoffset, 0); ++ move (bodyoffset, SidebarWidth); + curline = oldtopline = topline; + lines = 0; + force_redraw = 0; +@@ -1791,6 +1793,7 @@ + &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) + lines++; + curline++; ++ move(lines + bodyoffset, SidebarWidth); + } + last_offset = lineInfo[curline].offset; + } while (force_redraw); +@@ -1804,6 +1807,7 @@ + addch ('~'); + addch ('\n'); + lines++; ++ move(lines + bodyoffset, SidebarWidth); + } + /* We are going to update the pager status bar, so it isn't + * necessary to reset to normal color now. */ +@@ -1827,21 +1831,21 @@ + /* print out the pager status bar */ + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); +- CLEARLINE (statusoffset); ++ CLEARLINE_WIN (statusoffset); + + if (IsHeader (extra) || IsMsgAttach (extra)) + { +- size_t l1 = COLS * MB_LEN_MAX; ++ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; + size_t l2 = sizeof (buffer); + hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; + mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); +- mutt_paddstr (COLS, buffer); ++ mutt_paddstr (COLS-SidebarWidth, buffer); + } + else + { + char bn[STRING]; + snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); +- mutt_paddstr (COLS, bn); ++ mutt_paddstr (COLS-SidebarWidth, bn); + } + BKGDSET (MT_COLOR_NORMAL); + SETCOLOR (MT_COLOR_NORMAL); +@@ -1852,18 +1856,23 @@ + /* redraw the pager_index indicator, because the + * flags for this message might have changed. */ + menu_redraw_current (index); ++ draw_sidebar(MENU_PAGER); + + /* print out the index status bar */ + menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); + +- move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); ++ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); +- mutt_paddstr (COLS, buffer); ++ mutt_paddstr (COLS-SidebarWidth, buffer); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + ++ /* if we're not using the index, update every time */ ++ if ( index == 0 ) ++ draw_sidebar(MENU_PAGER); ++ + redraw = 0; + + if (option(OPTBRAILLEFRIENDLY)) { +@@ -2852,6 +2861,13 @@ + mutt_what_key (); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(ch, MENU_PAGER); ++ break; ++ + default: + ch = -1; + break; +*** mutt-1.5.20-orig/PATCHES 2008-11-11 13:55:46.000000000 -0600 +--- mutt-1.5.20-patched/PATCHES 2009-06-19 22:20:31.000000000 -0500 +*************** +*** 0 **** +--- 1 ---- ++ patch-1.5.20.sidebar.20090619.txt +*** mutt-1.5.20-orig/sidebar.c 1969-12-31 18:00:00.000000000 -0600 +--- mutt-1.5.20-patched/sidebar.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 0 **** +--- 1,333 ---- ++ /* ++ * Copyright (C) ????-2004 Justin Hibbits ++ * Copyright (C) 2004 Thomer M. Gil ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++ ++ #if HAVE_CONFIG_H ++ # include "config.h" ++ #endif ++ ++ #include "mutt.h" ++ #include "mutt_menu.h" ++ #include "mutt_curses.h" ++ #include "sidebar.h" ++ #include "buffy.h" ++ #include ++ #include "keymap.h" ++ #include ++ ++ /*BUFFY *CurBuffy = 0;*/ ++ static BUFFY *TopBuffy = 0; ++ static BUFFY *BottomBuffy = 0; ++ static int known_lines = 0; ++ ++ static int quick_log10(int n) ++ { ++ char string[32]; ++ sprintf(string, "%d", n); ++ return strlen(string); ++ } ++ ++ void calc_boundaries (int menu) ++ { ++ BUFFY *tmp = Incoming; ++ ++ if ( known_lines != LINES ) { ++ TopBuffy = BottomBuffy = 0; ++ known_lines = LINES; ++ } ++ for ( ; tmp->next != 0; tmp = tmp->next ) ++ tmp->next->prev = tmp; ++ ++ if ( TopBuffy == 0 && BottomBuffy == 0 ) ++ TopBuffy = Incoming; ++ if ( BottomBuffy == 0 ) { ++ int count = LINES - 2 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); ++ BottomBuffy = TopBuffy; ++ while ( --count && BottomBuffy->next ) ++ BottomBuffy = BottomBuffy->next; ++ } ++ else if ( TopBuffy == CurBuffy->next ) { ++ int count = LINES - 2 - (menu != MENU_PAGER); ++ BottomBuffy = CurBuffy; ++ tmp = BottomBuffy; ++ while ( --count && tmp->prev) ++ tmp = tmp->prev; ++ TopBuffy = tmp; ++ } ++ else if ( BottomBuffy == CurBuffy->prev ) { ++ int count = LINES - 2 - (menu != MENU_PAGER); ++ TopBuffy = CurBuffy; ++ tmp = TopBuffy; ++ while ( --count && tmp->next ) ++ tmp = tmp->next; ++ BottomBuffy = tmp; ++ } ++ } ++ ++ char *make_sidebar_entry(char *box, int size, int new, int flagged) ++ { ++ static char *entry = 0; ++ char *c; ++ int i = 0; ++ int delim_len = strlen(SidebarDelim); ++ ++ c = realloc(entry, SidebarWidth - delim_len + 2); ++ if ( c ) entry = c; ++ entry[SidebarWidth - delim_len + 1] = 0; ++ for (; i < SidebarWidth - delim_len + 1; entry[i++] = ' ' ); ++ i = strlen(box); ++ strncpy( entry, box, i < (SidebarWidth - delim_len + 1) ? i : (SidebarWidth - delim_len + 1) ); ++ ++ if (size == -1) ++ sprintf(entry + SidebarWidth - delim_len - 3, "?"); ++ else if ( new ) { ++ if (flagged > 0) { ++ sprintf( ++ entry + SidebarWidth - delim_len - 5 - quick_log10(size) - quick_log10(new) - quick_log10(flagged), ++ "% d(%d)[%d]", size, new, flagged); ++ } else { ++ sprintf( ++ entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(new), ++ "% d(%d)", size, new); ++ } ++ } else if (flagged > 0) { ++ sprintf( entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(flagged), "% d[%d]", size, flagged); ++ } else { ++ sprintf( entry + SidebarWidth - delim_len - 1 - quick_log10(size), "% d", size); ++ } ++ return entry; ++ } ++ ++ void set_curbuffy(char buf[LONG_STRING]) ++ { ++ BUFFY* tmp = CurBuffy = Incoming; ++ ++ if (!Incoming) ++ return; ++ ++ while(1) { ++ if(!strcmp(tmp->path, buf)) { ++ CurBuffy = tmp; ++ break; ++ } ++ ++ if(tmp->next) ++ tmp = tmp->next; ++ else ++ break; ++ } ++ } ++ ++ int draw_sidebar(int menu) { ++ ++ int lines = option(OPTHELP) ? 1 : 0; ++ BUFFY *tmp; ++ #ifndef USE_SLANG_CURSES ++ attr_t attrs; ++ #endif ++ short delim_len = strlen(SidebarDelim); ++ short color_pair; ++ ++ static bool initialized = false; ++ static int prev_show_value; ++ static short saveSidebarWidth; ++ ++ /* initialize first time */ ++ if(!initialized) { ++ prev_show_value = option(OPTSIDEBAR); ++ saveSidebarWidth = SidebarWidth; ++ if(!option(OPTSIDEBAR)) SidebarWidth = 0; ++ initialized = true; ++ } ++ ++ /* save or restore the value SidebarWidth */ ++ if(prev_show_value != option(OPTSIDEBAR)) { ++ if(prev_show_value && !option(OPTSIDEBAR)) { ++ saveSidebarWidth = SidebarWidth; ++ SidebarWidth = 0; ++ } else if(!prev_show_value && option(OPTSIDEBAR)) { ++ SidebarWidth = saveSidebarWidth; ++ } ++ prev_show_value = option(OPTSIDEBAR); ++ } ++ ++ ++ // if ( SidebarWidth == 0 ) return 0; ++ if (SidebarWidth > 0 && option (OPTSIDEBAR) ++ && delim_len >= SidebarWidth) { ++ unset_option (OPTSIDEBAR); ++ /* saveSidebarWidth = SidebarWidth; */ ++ if (saveSidebarWidth > delim_len) { ++ SidebarWidth = saveSidebarWidth; ++ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar.")); ++ sleep (2); ++ } else { ++ SidebarWidth = 0; ++ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar. Please set your sidebar_width to a sane value.")); ++ sleep (4); /* the advise to set a sane value should be seen long enough */ ++ } ++ saveSidebarWidth = 0; ++ return (0); ++ } ++ ++ if ( SidebarWidth == 0 || !option(OPTSIDEBAR)) { ++ if (SidebarWidth > 0) { ++ saveSidebarWidth = SidebarWidth; ++ SidebarWidth = 0; ++ } ++ unset_option(OPTSIDEBAR); ++ return 0; ++ } ++ ++ /* get attributes for divider */ ++ SETCOLOR(MT_COLOR_STATUS); ++ #ifndef USE_SLANG_CURSES ++ attr_get(&attrs, &color_pair, 0); ++ #else ++ color_pair = attr_get(); ++ #endif ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ /* draw the divider */ ++ ++ for ( ; lines < LINES-1-(menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { ++ move(lines, SidebarWidth - delim_len); ++ addstr(NONULL(SidebarDelim)); ++ #ifndef USE_SLANG_CURSES ++ mvchgat(lines, SidebarWidth - delim_len, delim_len, 0, color_pair, NULL); ++ #endif ++ } ++ ++ if ( Incoming == 0 ) return 0; ++ lines = option(OPTHELP) ? 1 : 0; /* go back to the top */ ++ ++ if ( known_lines != LINES || TopBuffy == 0 || BottomBuffy == 0 ) ++ calc_boundaries(menu); ++ if ( CurBuffy == 0 ) CurBuffy = Incoming; ++ ++ tmp = TopBuffy; ++ ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ for ( ; tmp && lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); tmp = tmp->next ) { ++ if ( tmp == CurBuffy ) ++ SETCOLOR(MT_COLOR_INDICATOR); ++ else if ( tmp->msg_unread > 0 ) ++ SETCOLOR(MT_COLOR_NEW); ++ else if ( tmp->msg_flagged > 0 ) ++ SETCOLOR(MT_COLOR_FLAGGED); ++ else ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ move( lines, 0 ); ++ if ( Context && !strcmp( tmp->path, Context->path ) ) { ++ tmp->msg_unread = Context->unread; ++ tmp->msgcount = Context->msgcount; ++ tmp->msg_flagged = Context->flagged; ++ } ++ // check whether Maildir is a prefix of the current folder's path ++ short maildir_is_prefix = 0; ++ if ( (strlen(tmp->path) > strlen(Maildir)) && ++ (strncmp(Maildir, tmp->path, strlen(Maildir)) == 0) ) ++ maildir_is_prefix = 1; ++ // calculate depth of current folder and generate its display name with indented spaces ++ int sidebar_folder_depth = 0; ++ char *sidebar_folder_name; ++ sidebar_folder_name = basename(tmp->path); ++ if ( maildir_is_prefix ) { ++ char *tmp_folder_name; ++ int i; ++ tmp_folder_name = tmp->path + strlen(Maildir); ++ for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) { ++ if (tmp_folder_name[i] == '/') sidebar_folder_depth++; ++ } ++ if (sidebar_folder_depth > 0) { ++ sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1); ++ for (i=0; i < sidebar_folder_depth; i++) ++ sidebar_folder_name[i]=' '; ++ sidebar_folder_name[i]=0; ++ strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth); ++ } ++ } ++ printw( "%.*s", SidebarWidth - delim_len + 1, ++ make_sidebar_entry(sidebar_folder_name, tmp->msgcount, ++ tmp->msg_unread, tmp->msg_flagged)); ++ if (sidebar_folder_depth > 0) ++ free(sidebar_folder_name); ++ lines++; ++ } ++ SETCOLOR(MT_COLOR_NORMAL); ++ for ( ; lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { ++ int i = 0; ++ move( lines, 0 ); ++ for ( ; i < SidebarWidth - delim_len; i++ ) ++ addch(' '); ++ } ++ return 0; ++ } ++ ++ ++ void set_buffystats(CONTEXT* Context) ++ { ++ BUFFY *tmp = Incoming; ++ while(tmp) { ++ if(Context && !strcmp(tmp->path, Context->path)) { ++ tmp->msg_unread = Context->unread; ++ tmp->msgcount = Context->msgcount; ++ break; ++ } ++ tmp = tmp->next; ++ } ++ } ++ ++ void scroll_sidebar(int op, int menu) ++ { ++ if(!SidebarWidth) return; ++ if(!CurBuffy) return; ++ ++ switch (op) { ++ case OP_SIDEBAR_NEXT: ++ if ( CurBuffy->next == NULL ) return; ++ CurBuffy = CurBuffy->next; ++ break; ++ case OP_SIDEBAR_PREV: ++ if ( CurBuffy->prev == NULL ) return; ++ CurBuffy = CurBuffy->prev; ++ break; ++ case OP_SIDEBAR_SCROLL_UP: ++ CurBuffy = TopBuffy; ++ if ( CurBuffy != Incoming ) { ++ calc_boundaries(menu); ++ CurBuffy = CurBuffy->prev; ++ } ++ break; ++ case OP_SIDEBAR_SCROLL_DOWN: ++ CurBuffy = BottomBuffy; ++ if ( CurBuffy->next ) { ++ calc_boundaries(menu); ++ CurBuffy = CurBuffy->next; ++ } ++ break; ++ default: ++ return; ++ } ++ calc_boundaries(menu); ++ draw_sidebar(menu); ++ } ++ +*** mutt-1.5.20-orig/sidebar.h 1969-12-31 18:00:00.000000000 -0600 +--- mutt-1.5.20-patched/sidebar.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 0 **** +--- 1,36 ---- ++ /* ++ * Copyright (C) ????-2004 Justin Hibbits ++ * Copyright (C) 2004 Thomer M. Gil ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++ #ifndef SIDEBAR_H ++ #define SIDEBAR_H ++ ++ struct MBOX_LIST { ++ char *path; ++ int msgcount; ++ int new; ++ } MBLIST; ++ ++ /* parameter is whether or not to go to the status line */ ++ /* used for omitting the last | that covers up the status bar in the index */ ++ int draw_sidebar(int); ++ void scroll_sidebar(int, int); ++ void set_curbuffy(char*); ++ void set_buffystats(CONTEXT*); ++ ++ #endif /* SIDEBAR_H */ +*** mutt-1.5.20-orig/doc/Muttrc 2009-06-14 13:53:24.000000000 -0500 +--- mutt-1.5.20-patched/doc/Muttrc 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 657,662 **** +--- 657,682 ---- + # $crypt_autosign, $crypt_replysign and $smime_is_default. + # + # ++ # set sidebar_visible=no ++ # ++ # Name: sidebar_visible ++ # Type: boolean ++ # Default: no ++ # ++ # ++ # This specifies whether or not to show sidebar (left-side list of folders). ++ # ++ # ++ # set sidebar_width=0 ++ # ++ # Name: sidebar_width ++ # Type: number ++ # Default: 0 ++ # ++ # ++ # The width of the sidebar. ++ # ++ # + # set crypt_autosign=no + # + # Name: crypt_autosign +*** mutt-1.5.20-orig/imap/imap.c 2009-06-14 12:19:16.000000000 -0500 +--- mutt-1.5.20-patched/imap/imap.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1521,1527 **** + + imap_munge_mbox_name (munged, sizeof (munged), name); + snprintf (command, sizeof (command), +! "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT)", munged); + + if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0) + { +--- 1521,1527 ---- + + imap_munge_mbox_name (munged, sizeof (munged), name); + snprintf (command, sizeof (command), +! "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT MESSAGES)", munged); + + if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0) + { +*** mutt-1.5.20-orig/imap/command.c 2009-01-05 20:58:31.000000000 -0600 +--- mutt-1.5.20-patched/imap/command.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1009,1014 **** +--- 1009,1021 ---- + opened */ + status->uidnext = oldun; + ++ /* Added to make the sidebar show the correct numbers */ ++ if (status->messages) ++ { ++ inc->msgcount = status->messages; ++ inc->msg_unread = status->unseen; ++ } ++ + FREE (&value); + return; + } +--- orig/compose.c.orig 2010-04-14 20:50:19.000000000 +0200 ++++ new/compose.c 2010-09-18 15:29:09.000000000 +0200 +@@ -72,7 +72,7 @@ + + #define HDR_XOFFSET 10 + #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ +-#define W (COLS - HDR_XOFFSET) ++#define W (COLS - HDR_XOFFSET - SidebarWidth) + + static char *Prompts[] = + { +@@ -112,7 +112,7 @@ + { + int off = 0; + +- mvaddstr (HDR_CRYPT, 0, "Security: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, "Security: "); + + if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME)) == 0) + { +@@ -144,7 +144,7 @@ + } + + clrtoeol (); +- move (HDR_CRYPTINFO, 0); ++ move (HDR_CRYPTINFO, SidebarWidth); + clrtoeol (); + + if ((WithCrypto & APPLICATION_PGP) +@@ -161,7 +161,7 @@ + && (msg->security & ENCRYPT) + && SmimeCryptAlg + && *SmimeCryptAlg) { +- mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), ++ mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), + NONULL(SmimeCryptAlg)); + off = 20; + } +@@ -190,7 +190,7 @@ + if (t && t[0] == '0' && t[1] == '\0') + t = ""; + +- if (c + mutt_strlen (t) + 2 >= COLS) ++ if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) + break; + + addstr (NONULL(t)); +@@ -242,7 +242,7 @@ + + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), addr, 1); +- mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); ++ mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); + mutt_paddstr (W, buf); + } + +@@ -252,10 +252,10 @@ + draw_envelope_addr (HDR_TO, msg->env->to); + draw_envelope_addr (HDR_CC, msg->env->cc); + draw_envelope_addr (HDR_BCC, msg->env->bcc); +- mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); ++ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); + mutt_paddstr (W, NONULL (msg->env->subject)); + draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); +- mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]); ++ mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]); + mutt_paddstr (W, fcc); + + if (WithCrypto) +@@ -266,7 +266,7 @@ + #endif + + SETCOLOR (MT_COLOR_STATUS); +- mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); ++ mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); + BKGDSET (MT_COLOR_STATUS); + clrtoeol (); + +@@ -304,7 +304,7 @@ + /* redraw the expanded list so the user can see the result */ + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), *addr, 1); +- move (line, HDR_XOFFSET); ++ move (line, HDR_XOFFSET+SidebarWidth); + mutt_paddstr (W, buf); + + return 0; +@@ -549,7 +549,7 @@ + if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) + { + mutt_str_replace (&msg->env->subject, buf); +- move (HDR_SUBJECT, HDR_XOFFSET); ++ move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth); + clrtoeol (); + if (msg->env->subject) + mutt_paddstr (W, msg->env->subject); +@@ -566,7 +566,7 @@ + { + strfcpy (fcc, buf, fcclen); + mutt_pretty_mailbox (fcc, fcclen); +- move (HDR_FCC, HDR_XOFFSET); ++ move (HDR_FCC, HDR_XOFFSET + SidebarWidth); + mutt_paddstr (W, fcc); + fccSet = 1; + } diff -urN mutt-devel/files/extra-patch-sidebar-nntp mutt-devel-1.5.21-ja.2/files/extra-patch-sidebar-nntp --- mutt-devel/files/extra-patch-sidebar-nntp 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-sidebar-nntp 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,1616 @@ +--- orig/buffy.c.orig 2010-09-18 14:12:40.000000000 +0200 ++++ new/buffy.c 2010-09-18 14:17:36.000000000 +0200 +@@ -161,6 +161,49 @@ + } + } + ++static int buffy_compare_name(const void *a, const void *b) { ++ const BUFFY *b1 = * (BUFFY * const *) a; ++ const BUFFY *b2 = * (BUFFY * const *) b; ++ ++ return mutt_strcoll(b1->path, b2->path); ++} ++ ++static BUFFY *buffy_sort(BUFFY *b) ++{ ++ BUFFY *tmp = b; ++ int buffycount = 0; ++ BUFFY **ary; ++ int i; ++ ++ if (!option(OPTSIDEBARSORT)) ++ return b; ++ ++ for (; tmp != NULL; tmp = tmp->next) ++ buffycount++; ++ ++ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); ++ ++ tmp = b; ++ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { ++ ary[i] = tmp; ++ } ++ ++ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); ++ ++ for (i = 0; i < buffycount - 1; i++) { ++ ary[i]->next = ary[i+1]; ++ } ++ ary[buffycount - 1]->next = NULL; ++ for (i = 1; i < buffycount; i++) { ++ ary[i]->prev = ary[i-1]; ++ } ++ ary[0]->prev = NULL; ++ ++ tmp = ary[0]; ++ free(ary); ++ return tmp; ++} ++ + BUFFY *mutt_find_mailbox (const char *path) + { + BUFFY *tmp = NULL; +@@ -282,6 +325,7 @@ + else + (*tmp)->size = 0; + } ++ Incoming = buffy_sort(Incoming); + return 0; + } + +@@ -371,12 +415,17 @@ + return rc; + } + ++#define STAT_CHECK_SIZE (sb.st_size > tmp->size) ++#define STAT_CHECK_TIME (sb.st_mtime > sb.st_atime || (tmp->newly_created && sb.st_ctime == sb.st_mtime && sb.st_ctime == sb.st_atime)) ++#define STAT_CHECK (option(OPTCHECKMBOXSIZE) ? STAT_CHECK_SIZE : STAT_CHECK_TIME) ++ + int mutt_buffy_check (int force) + { + BUFFY *tmp; + struct stat sb; + struct stat contex_sb; + time_t t; ++ CONTEXT *ctx; + + sb.st_size=0; + contex_sb.st_dev=0; +@@ -416,6 +465,8 @@ + + for (tmp = Incoming; tmp; tmp = tmp->next) + { ++ if ( tmp->new == 1 ) ++ tmp->has_new = 1; + if (tmp->magic != M_IMAP) + { + tmp->new = 0; +@@ -455,18 +506,122 @@ + { + case M_MBOX: + case M_MMDF: +- if (buffy_mbox_hasnew (tmp, &sb) > 0) +- BuffyCount++; +- break; ++ { ++ if (STAT_CHECK || tmp->msgcount == 0) ++ { ++ BUFFY b = *tmp; ++ int msgcount = 0; ++ int msg_unread = 0; ++ /* parse the mailbox, to see how much mail there is */ ++ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); ++ if(ctx) ++ { ++ msgcount = ctx->msgcount; ++ msg_unread = ctx->unread; ++ mx_close_mailbox(ctx, 0); ++ } ++ *tmp = b; ++ tmp->msgcount = msgcount; ++ tmp->msg_unread = msg_unread; ++ if(STAT_CHECK) { ++ tmp->has_new = tmp->new = 1; ++ BuffyCount++; ++ } ++ } ++ else if (option(OPTCHECKMBOXSIZE)) ++ { ++ /* some other program has deleted mail from the folder */ ++ tmp->size = (off_t) sb.st_size; ++ } ++ if (tmp->newly_created && ++ (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) ++ tmp->newly_created = 0; ++ } ++ break; ++ + + case M_MAILDIR: +- if (buffy_maildir_hasnew (tmp) > 0) +- BuffyCount++; ++ { ++ char path[_POSIX_PATH_MAX]; ++ DIR *dirp; ++ struct dirent *de; ++ /* count new message */ ++ snprintf (path, sizeof (path), "%s/new", tmp->path); ++ if ((dirp = opendir (path)) == NULL) ++ { ++ tmp->magic = 0; ++ break; ++ } ++ tmp->msgcount = 0; ++ tmp->msg_unread = 0; ++ tmp->msg_flagged = 0; ++ while ((de = readdir (dirp)) != NULL) ++ { ++ char *p; ++ if (*de->d_name != '.' && ++ (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) ++ { ++ tmp->has_new = tmp->new = 1; ++ tmp->msgcount++; ++ tmp->msg_unread++; ++ } ++ } ++ if(tmp->msg_unread) ++ BuffyCount++; ++ ++ closedir (dirp); ++ ++ /* ++ * count read messages (for folderlist (sidebar) we also need to count ++ * messages in cur so that we the total number of messages ++ */ ++ snprintf (path, sizeof (path), "%s/cur", tmp->path); ++ if ((dirp = opendir (path)) == NULL) ++ { ++ tmp->magic = 0; ++ break; ++ } ++ while ((de = readdir (dirp)) != NULL) ++ { ++ char *p; ++ if (*de->d_name != '.') { ++ if ((p = strstr (de->d_name, ":2,"))) { ++ if (!strchr (p + 3, 'T')) { ++ tmp->msgcount++; ++ if ( !strchr (p + 3, 'S')) ++ tmp->msg_unread++; ++ if (strchr(p + 3, 'F')) ++ tmp->msg_flagged++; ++ } ++ } else ++ tmp->msgcount++; ++ } ++ } ++ closedir (dirp); ++ } + break; + + case M_MH: +- if ((tmp->new = mh_buffy (tmp->path)) > 0) +- BuffyCount++; ++ { ++ DIR *dp; ++ char path[_POSIX_PATH_MAX]; ++ struct dirent *de; ++ if ((tmp->new = mh_buffy (tmp->path)) > 0) ++ BuffyCount++; ++ ++ if ((dp = opendir (path)) == NULL) ++ break; ++ tmp->msgcount = 0; ++ while ((de = readdir (dp))) ++ { ++ if (mh_valid_message (de->d_name)) ++ { ++ tmp->msgcount++; ++ tmp->has_new = tmp->new = 1; ++ } ++ } ++ closedir (dp); ++ } + break; + } + } +*** mutt-1.5.20-orig/buffy.h 2009-04-30 00:36:16.000000000 -0500 +--- mutt-1.5.20-patched/buffy.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 25,31 **** +--- 25,36 ---- + char path[_POSIX_PATH_MAX]; + off_t size; + struct buffy_t *next; ++ struct buffy_t *prev; + short new; /* mailbox has new mail */ ++ short has_new; /* set it new if new and not read */ ++ int msgcount; /* total number of messages */ ++ int msg_unread; /* number of unread messages */ ++ int msg_flagged; /* number of flagged messages */ + short notified; /* user has been notified */ + short magic; /* mailbox type */ + short newly_created; /* mbox or mmdf just popped into existence */ +*** mutt-1.5.20-orig/color.c 2009-05-18 19:11:35.000000000 -0500 +--- mutt-1.5.20-patched/color.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 93,98 **** +--- 93,100 ---- + { "bold", MT_COLOR_BOLD }, + { "underline", MT_COLOR_UNDERLINE }, + { "index", MT_COLOR_INDEX }, ++ { "sidebar_new", MT_COLOR_NEW }, ++ { "sidebar_flagged", MT_COLOR_FLAGGED }, + { NULL, 0 } + }; + +*** mutt-1.5.20-orig/curs_main.c 2009-06-13 21:48:36.000000000 -0500 +--- mutt-1.5.20-patched/curs_main.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 26,32 **** +--- 26,34 ---- + #include "mailbox.h" + #include "mapping.h" + #include "sort.h" ++ #include "buffy.h" + #include "mx.h" ++ #include "sidebar.h" + + #ifdef USE_POP + #include "pop.h" +*************** +*** 523,530 **** + menu->redraw |= REDRAW_STATUS; + if (do_buffy_notify) + { +! if (mutt_buffy_notify () && option (OPTBEEPNEW)) +! beep (); + } + else + do_buffy_notify = 1; +--- 525,536 ---- + menu->redraw |= REDRAW_STATUS; + if (do_buffy_notify) + { +! if (mutt_buffy_notify ()) +! { +! menu->redraw |= REDRAW_FULL; +! if (option (OPTBEEPNEW)) +! beep (); +! } + } + else + do_buffy_notify = 1; +*************** +*** 536,541 **** +--- 542,548 ---- + if (menu->redraw & REDRAW_FULL) + { + menu_redraw_full (menu); ++ draw_sidebar(menu->menu); + mutt_show_error (); + } + +*************** +*** 558,567 **** +--- 565,577 ---- + + if (menu->redraw & REDRAW_STATUS) + { ++ DrawFullLine = 1; + menu_status_line (buf, sizeof (buf), menu, NONULL (Status)); ++ DrawFullLine = 0; + CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); ++ set_buffystats(Context); + mutt_paddstr (COLS, buf); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +*************** +*** 575,581 **** + menu->oldcurrent = -1; + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +--- 585,591 ---- + menu->oldcurrent = -1; + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +*************** +*** 1055,1060 **** +--- 1065,1071 ---- + menu->redraw = REDRAW_FULL; + break; + ++ case OP_SIDEBAR_OPEN: + case OP_MAIN_CHANGE_FOLDER: + case OP_MAIN_NEXT_UNREAD_MAILBOX: + +*************** +*** 1086,1092 **** + { + mutt_buffy (buf, sizeof (buf)); + +! if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) + { + if (menu->menu == MENU_PAGER) + { +--- 1097,1107 ---- + { + mutt_buffy (buf, sizeof (buf)); + +! if ( op == OP_SIDEBAR_OPEN ) { +! if(!CurBuffy) +! break; +! strncpy( buf, CurBuffy->path, sizeof(buf) ); +! } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) + { + if (menu->menu == MENU_PAGER) + { +*************** +*** 1104,1109 **** +--- 1119,1125 ---- + } + + mutt_expand_path (buf, sizeof (buf)); ++ set_curbuffy(buf); + if (mx_get_magic (buf) <= 0) + { + mutt_error (_("%s is not a mailbox."), buf); +*************** +*** 2183,2188 **** +--- 2199,2210 ---- + mutt_what_key(); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(op, menu->menu); ++ break; + default: + if (menu->menu == MENU_MAIN) + km_error_key (MENU_MAIN); +*** mutt-1.5.20-orig/flags.c 2008-12-16 21:50:09.000000000 -0600 +--- mutt-1.5.20-patched/flags.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 22,29 **** +--- 22,31 ---- + + #include "mutt.h" + #include "mutt_curses.h" ++ #include "mutt_menu.h" + #include "sort.h" + #include "mx.h" ++ #include "sidebar.h" + + void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) + { +*************** +*** 263,268 **** +--- 265,271 ---- + */ + if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged)) + h->searched = 0; ++ draw_sidebar(0); + } + + void mutt_tag_set_flag (int flag, int bf) +*** mutt-1.5.20-orig/functions.h 2009-04-30 00:36:17.000000000 -0500 +--- mutt-1.5.20-patched/functions.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 168,173 **** +--- 168,178 ---- + { "decrypt-save", OP_DECRYPT_SAVE, NULL }, + + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +*************** +*** 268,273 **** +--- 273,283 ---- + + { "what-key", OP_WHAT_KEY, NULL }, + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +*** mutt-1.5.20-orig/globals.h 2009-06-03 15:48:31.000000000 -0500 +--- mutt-1.5.20-patched/globals.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 117,122 **** +--- 117,123 ---- + WHERE char *SendCharset; + WHERE char *Sendmail; + WHERE char *Shell; ++ WHERE char *SidebarDelim; + WHERE char *Signature; + WHERE char *SimpleSearch; + #if USE_SMTP +*************** +*** 206,211 **** +--- 207,215 ---- + WHERE short ScoreThresholdRead; + WHERE short ScoreThresholdFlag; + ++ WHERE struct buffy_t *CurBuffy INITVAL(0); ++ WHERE short DrawFullLine INITVAL(0); ++ WHERE short SidebarWidth; + #ifdef USE_IMAP + WHERE short ImapKeepalive; + WHERE short ImapPipelineDepth; +*** mutt-1.5.20-orig/init.h 2009-06-13 16:35:21.000000000 -0500 +--- mutt-1.5.20-patched/init.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1941,1946 **** +--- 1941,1967 ---- + ** not used. + ** (PGP only) + */ ++ {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"}, ++ /* ++ ** .pp ++ ** This specifies the delimiter between the sidebar (if visible) and ++ ** other screens. ++ */ ++ { "sidebar_visible", DT_BOOL, R_BOTH, OPTSIDEBAR, 0 }, ++ /* ++ ** .pp ++ ** This specifies whether or not to show sidebar (left-side list of folders). ++ */ ++ { "sidebar_sort", DT_BOOL, R_BOTH, OPTSIDEBARSORT, 0 }, ++ /* ++ ** .pp ++ ** This specifies whether or not to sort the sidebar alphabetically. ++ */ ++ { "sidebar_width", DT_NUM, R_BOTH, UL &SidebarWidth, 0 }, ++ /* ++ ** .pp ++ ** The width of the sidebar. ++ */ + { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, + /* + ** .pp +*** mutt-1.5.20-orig/mailbox.h 2009-04-30 00:36:17.000000000 -0500 +--- mutt-1.5.20-patched/mailbox.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 27,32 **** +--- 27,33 ---- + #define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses + * safe_fopen() for mbox-style folders. + */ ++ #define M_PEEK (1<<5) /* revert atime back after taking a look (if applicable) */ + + /* mx_open_new_message() */ + #define M_ADD_FROM 1 /* add a From_ line */ +--- orig/Makefile.am.orig 2010-09-18 13:23:19.000000000 +0200 ++++ new/Makefile.am 2010-09-18 13:25:19.000000000 +0200 +@@ -34,7 +34,7 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c ++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c + + nodist_mutt_SOURCES = $(BUILT_SOURCES) + +--- orig/Makefile.in.orig 2010-09-18 13:23:19.000000000 +0200 ++++ new/Makefile.in 2010-09-18 13:27:19.000000000 +0200 +@@ -89,7 +89,7 @@ + system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ + history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ + editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ +- ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) ++ ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) sidebar.$(OBJEXT) + am__objects_1 = + am__objects_2 = patchlist.$(OBJEXT) $(am__objects_1) + nodist_mutt_OBJECTS = $(am__objects_2) +@@ -363,7 +363,7 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c ++ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c sidebar.c + + nodist_mutt_SOURCES = $(BUILT_SOURCES) + mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ +@@ -397,7 +397,7 @@ + README.SSL smime.h group.h \ + muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ + ChangeLog mkchangelog.sh mutt_idna.h \ +- snprintf.c regex.c crypt-gpgme.h hcachever.sh.in ++ snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in + + EXTRA_SCRIPTS = smime_keys + mutt_dotlock_SOURCES = mutt_dotlock.c +*** mutt-1.5.20-orig/mbox.c 2009-06-10 23:29:41.000000000 -0500 +--- mutt-1.5.20-patched/mbox.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 100,105 **** +--- 100,106 ---- + mutt_perror (ctx->path); + return (-1); + } ++ ctx->atime = sb.st_atime; + ctx->mtime = sb.st_mtime; + ctx->size = sb.st_size; + +*************** +*** 255,260 **** +--- 256,262 ---- + + ctx->size = sb.st_size; + ctx->mtime = sb.st_mtime; ++ ctx->atime = sb.st_atime; + + #ifdef NFS_ATTRIBUTE_HACK + if (sb.st_mtime > sb.st_atime) +*** mutt-1.5.20-orig/menu.c 2009-06-01 11:29:32.000000000 -0500 +--- mutt-1.5.20-patched/menu.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 24,29 **** +--- 24,30 ---- + #include "mutt_curses.h" + #include "mutt_menu.h" + #include "mbyte.h" ++ #include "sidebar.h" + + #include + #include +*************** +*** 156,162 **** + { + char *scratch = safe_strdup (s); + int shift = option (OPTARROWCURSOR) ? 3 : 0; +! int cols = COLS - shift; + + mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1); + s[n - 1] = 0; +--- 157,163 ---- + { + char *scratch = safe_strdup (s); + int shift = option (OPTARROWCURSOR) ? 3 : 0; +! int cols = COLS - shift - SidebarWidth; + + mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1); + s[n - 1] = 0; +*************** +*** 207,212 **** +--- 208,214 ---- + char buf[LONG_STRING]; + int i; + ++ draw_sidebar(1); + for (i = menu->top; i < menu->top + menu->pagelen; i++) + { + if (i < menu->max) +*************** +*** 217,223 **** + if (option (OPTARROWCURSOR)) + { + attrset (menu->color (i)); +! CLEARLINE (i - menu->top + menu->offset); + + if (i == menu->current) + { +--- 219,225 ---- + if (option (OPTARROWCURSOR)) + { + attrset (menu->color (i)); +! CLEARLINE_WIN (i - menu->top + menu->offset); + + if (i == menu->current) + { +*************** +*** 246,259 **** + BKGDSET (MT_COLOR_INDICATOR); + } + +! CLEARLINE (i - menu->top + menu->offset); + print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + } + else +! CLEARLINE (i - menu->top + menu->offset); + } + menu->redraw = 0; + } +--- 248,261 ---- + BKGDSET (MT_COLOR_INDICATOR); + } + +! CLEARLINE_WIN (i - menu->top + menu->offset); + print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + } + else +! CLEARLINE_WIN (i - menu->top + menu->offset); + } + menu->redraw = 0; + } +*************** +*** 268,274 **** + return; + } + +! move (menu->oldcurrent + menu->offset - menu->top, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + +--- 270,276 ---- + return; + } + +! move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + +*************** +*** 283,295 **** + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); +! move (menu->oldcurrent + menu->offset - menu->top, 3); + print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + + /* now draw it in the new location */ +! move (menu->current + menu->offset - menu->top, 0); + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + addstr ("->"); +--- 285,297 ---- + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); +! move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth + 3); + print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + + /* now draw it in the new location */ +! move (menu->current + menu->offset - menu->top, SidebarWidth); + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + addstr ("->"); +*************** +*** 310,316 **** + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); +! CLEARLINE (menu->current - menu->top + menu->offset); + print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +--- 312,318 ---- + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); +! CLEARLINE_WIN (menu->current - menu->top + menu->offset); + print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +*************** +*** 322,328 **** + { + char buf[LONG_STRING]; + +! move (menu->current + menu->offset - menu->top, 0); + menu_make_entry (buf, sizeof (buf), menu, menu->current); + menu_pad_string (buf, sizeof (buf)); + +--- 324,330 ---- + { + char buf[LONG_STRING]; + +! move (menu->current + menu->offset - menu->top, SidebarWidth); + menu_make_entry (buf, sizeof (buf), menu, menu->current); + menu_pad_string (buf, sizeof (buf)); + +*************** +*** 876,882 **** + + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +--- 878,884 ---- + + + if (option (OPTARROWCURSOR)) +! move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +*** mutt-1.5.20-orig/mutt_curses.h 2008-11-11 13:55:47.000000000 -0600 +--- mutt-1.5.20-patched/mutt_curses.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 64,69 **** +--- 64,70 ---- + #undef lines + #endif /* lines */ + ++ #define CLEARLINE_WIN(x) move(x,SidebarWidth), clrtoeol() + #define CLEARLINE(x) move(x,0), clrtoeol() + #define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x) + #define BEEP() do { if (option (OPTBEEP)) beep(); } while (0) +*************** +*** 126,131 **** +--- 127,134 ---- + MT_COLOR_BOLD, + MT_COLOR_UNDERLINE, + MT_COLOR_INDEX, ++ MT_COLOR_NEW, ++ MT_COLOR_FLAGGED, + MT_COLOR_MAX + }; + +*** mutt-1.5.20-orig/mutt.h 2009-06-12 17:15:42.000000000 -0500 +--- mutt-1.5.20-patched/mutt.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 418,423 **** +--- 418,425 ---- + OPTSAVEEMPTY, + OPTSAVENAME, + OPTSCORE, ++ OPTSIDEBAR, ++ OPTSIDEBARSORT, + OPTSIGDASHES, + OPTSIGONTOP, + OPTSORTRE, +*************** +*** 854,859 **** +--- 856,862 ---- + { + char *path; + FILE *fp; ++ time_t atime; + time_t mtime; + off_t size; + off_t vsize; +*************** +*** 888,893 **** +--- 891,897 ---- + unsigned int quiet : 1; /* inhibit status messages? */ + unsigned int collapsed : 1; /* are all threads collapsed? */ + unsigned int closing : 1; /* mailbox is being closed */ ++ unsigned int peekonly : 1; /* just taking a glance, revert atime */ + + /* driver hooks */ + void *data; /* driver specific data */ +*** mutt-1.5.20-orig/muttlib.c 2009-05-18 19:11:35.000000000 -0500 +--- mutt-1.5.20-patched/muttlib.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1232,1237 **** +--- 1232,1239 ---- + pl = pw = 1; + + /* see if there's room to add content, else ignore */ ++ if ( DrawFullLine ) ++ { + if ((col < COLS && wlen < destlen) || soft) + { + int pad; +*************** +*** 1274,1279 **** +--- 1276,1327 ---- + col += wid; + src += pl; + } ++ } ++ else ++ { ++ if ((col < COLS-SidebarWidth && wlen < destlen) || soft) ++ { ++ int pad; ++ ++ /* get contents after padding */ ++ mutt_FormatString (buf, sizeof (buf), 0, src + pl, callback, data, flags); ++ len = mutt_strlen (buf); ++ wid = mutt_strwidth (buf); ++ ++ /* try to consume as many columns as we can, if we don't have ++ * memory for that, use as much memory as possible */ ++ pad = (COLS - SidebarWidth - col - wid) / pw; ++ if (pad > 0 && wlen + (pad * pl) + len > destlen) ++ pad = ((signed)(destlen - wlen - len)) / pl; ++ if (pad > 0) ++ { ++ while (pad--) ++ { ++ memcpy (wptr, src, pl); ++ wptr += pl; ++ wlen += pl; ++ col += pw; ++ } ++ } ++ else if (soft && pad < 0) ++ { ++ /* \0-terminate dest for length computation in mutt_wstr_trunc() */ ++ *wptr = 0; ++ /* make sure right part is at most as wide as display */ ++ len = mutt_wstr_trunc (buf, destlen, COLS, &wid); ++ /* truncate left so that right part fits completely in */ ++ wlen = mutt_wstr_trunc (dest, destlen - len, col + pad, &col); ++ wptr = dest + wlen; ++ } ++ if (len + wlen > destlen) ++ len = mutt_wstr_trunc (buf, destlen - wlen, COLS - SidebarWidth - col, NULL); ++ memcpy (wptr, buf, len); ++ wptr += len; ++ wlen += len; ++ col += wid; ++ src += pl; ++ } ++ } + break; /* skip rest of input */ + } + else if (ch == '|') +*** mutt-1.5.20-orig/mx.c 2009-06-10 23:29:41.000000000 -0500 +--- mutt-1.5.20-patched/mx.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 581,586 **** +--- 581,587 ---- + * M_APPEND open mailbox for appending + * M_READONLY open mailbox in read-only mode + * M_QUIET only print error messages ++ * M_PEEK revert atime where applicable + * ctx if non-null, context struct to use + */ + CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx) +*************** +*** 603,608 **** +--- 604,611 ---- + ctx->quiet = 1; + if (flags & M_READONLY) + ctx->readonly = 1; ++ if (flags & M_PEEK) ++ ctx->peekonly = 1; + + if (flags & (M_APPEND|M_NEWFOLDER)) + { +*************** +*** 702,710 **** +--- 705,725 ---- + void mx_fastclose_mailbox (CONTEXT *ctx) + { + int i; ++ #ifndef BUFFY_SIZE ++ struct utimbuf ut; ++ #endif + + if(!ctx) + return; ++ #ifndef BUFFY_SIZE ++ /* fix up the times so buffy won't get confused */ ++ if (ctx->peekonly && ctx->path && ctx->mtime > ctx->atime) ++ { ++ ut.actime = ctx->atime; ++ ut.modtime = ctx->mtime; ++ utime (ctx->path, &ut); ++ } ++ #endif + + if (ctx->mx_close) + ctx->mx_close (ctx); +*** mutt-1.5.20-orig/OPS 2009-05-13 00:01:13.000000000 -0500 +--- mutt-1.5.20-patched/OPS 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 178,180 **** +--- 178,185 ---- + OP_MAIN_SHOW_LIMIT "show currently active limit pattern" + OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread" + OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads" ++ OP_SIDEBAR_SCROLL_UP "scroll the mailbox pane up 1 page" ++ OP_SIDEBAR_SCROLL_DOWN "scroll the mailbox pane down 1 page" ++ OP_SIDEBAR_NEXT "go down to next mailbox" ++ OP_SIDEBAR_PREV "go to previous mailbox" ++ OP_SIDEBAR_OPEN "open hilighted mailbox" +--- orig/pager.c.orig 2010-09-18 13:23:19.000000000 +0200 ++++ new/pager.c 2010-09-18 14:03:08.000000000 +0200 +@@ -29,6 +29,7 @@ + #include "pager.h" + #include "attach.h" + #include "mbyte.h" ++#include "sidebar.h" + + #include "mutt_crypt.h" + +@@ -1104,6 +1105,7 @@ + if (check_attachment_marker ((char *)buf) == 0) + wrap_cols = COLS; + ++ wrap_cols -= SidebarWidth; + /* FIXME: this should come from lineInfo */ + memset(&mbstate, 0, sizeof(mbstate)); + +@@ -1778,7 +1780,7 @@ + if ((redraw & REDRAW_BODY) || topline != oldtopline) + { + do { +- move (bodyoffset, 0); ++ move (bodyoffset, SidebarWidth); + curline = oldtopline = topline; + lines = 0; + force_redraw = 0; +@@ -1791,6 +1793,7 @@ + &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) + lines++; + curline++; ++ move(lines + bodyoffset, SidebarWidth); + } + last_offset = lineInfo[curline].offset; + } while (force_redraw); +@@ -1804,6 +1807,7 @@ + addch ('~'); + addch ('\n'); + lines++; ++ move(lines + bodyoffset, SidebarWidth); + } + /* We are going to update the pager status bar, so it isn't + * necessary to reset to normal color now. */ +@@ -1827,21 +1831,21 @@ + /* print out the pager status bar */ + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); +- CLEARLINE (statusoffset); ++ CLEARLINE_WIN (statusoffset); + + if (IsHeader (extra) || IsMsgAttach (extra)) + { +- size_t l1 = COLS * MB_LEN_MAX; ++ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; + size_t l2 = sizeof (buffer); + hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; + mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); +- mutt_paddstr (COLS, buffer); ++ mutt_paddstr (COLS-SidebarWidth, buffer); + } + else + { + char bn[STRING]; + snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); +- mutt_paddstr (COLS, bn); ++ mutt_paddstr (COLS-SidebarWidth, bn); + } + BKGDSET (MT_COLOR_NORMAL); + SETCOLOR (MT_COLOR_NORMAL); +@@ -1852,18 +1856,23 @@ + /* redraw the pager_index indicator, because the + * flags for this message might have changed. */ + menu_redraw_current (index); ++ draw_sidebar(MENU_PAGER); + + /* print out the index status bar */ + menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); + +- move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); ++ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); +- mutt_paddstr (COLS, buffer); ++ mutt_paddstr (COLS-SidebarWidth, buffer); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + ++ /* if we're not using the index, update every time */ ++ if ( index == 0 ) ++ draw_sidebar(MENU_PAGER); ++ + redraw = 0; + + if (option(OPTBRAILLEFRIENDLY)) { +@@ -2852,6 +2861,13 @@ + mutt_what_key (); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(ch, MENU_PAGER); ++ break; ++ + default: + ch = -1; + break; +*** mutt-1.5.20-orig/PATCHES 2008-11-11 13:55:46.000000000 -0600 +--- mutt-1.5.20-patched/PATCHES 2009-06-19 22:20:31.000000000 -0500 +*************** +*** 0 **** +--- 1 ---- ++ patch-1.5.20.sidebar.20090619.txt +*** mutt-1.5.20-orig/sidebar.c 1969-12-31 18:00:00.000000000 -0600 +--- mutt-1.5.20-patched/sidebar.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 0 **** +--- 1,333 ---- ++ /* ++ * Copyright (C) ????-2004 Justin Hibbits ++ * Copyright (C) 2004 Thomer M. Gil ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++ ++ #if HAVE_CONFIG_H ++ # include "config.h" ++ #endif ++ ++ #include "mutt.h" ++ #include "mutt_menu.h" ++ #include "mutt_curses.h" ++ #include "sidebar.h" ++ #include "buffy.h" ++ #include ++ #include "keymap.h" ++ #include ++ ++ /*BUFFY *CurBuffy = 0;*/ ++ static BUFFY *TopBuffy = 0; ++ static BUFFY *BottomBuffy = 0; ++ static int known_lines = 0; ++ ++ static int quick_log10(int n) ++ { ++ char string[32]; ++ sprintf(string, "%d", n); ++ return strlen(string); ++ } ++ ++ void calc_boundaries (int menu) ++ { ++ BUFFY *tmp = Incoming; ++ ++ if ( known_lines != LINES ) { ++ TopBuffy = BottomBuffy = 0; ++ known_lines = LINES; ++ } ++ for ( ; tmp->next != 0; tmp = tmp->next ) ++ tmp->next->prev = tmp; ++ ++ if ( TopBuffy == 0 && BottomBuffy == 0 ) ++ TopBuffy = Incoming; ++ if ( BottomBuffy == 0 ) { ++ int count = LINES - 2 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); ++ BottomBuffy = TopBuffy; ++ while ( --count && BottomBuffy->next ) ++ BottomBuffy = BottomBuffy->next; ++ } ++ else if ( TopBuffy == CurBuffy->next ) { ++ int count = LINES - 2 - (menu != MENU_PAGER); ++ BottomBuffy = CurBuffy; ++ tmp = BottomBuffy; ++ while ( --count && tmp->prev) ++ tmp = tmp->prev; ++ TopBuffy = tmp; ++ } ++ else if ( BottomBuffy == CurBuffy->prev ) { ++ int count = LINES - 2 - (menu != MENU_PAGER); ++ TopBuffy = CurBuffy; ++ tmp = TopBuffy; ++ while ( --count && tmp->next ) ++ tmp = tmp->next; ++ BottomBuffy = tmp; ++ } ++ } ++ ++ char *make_sidebar_entry(char *box, int size, int new, int flagged) ++ { ++ static char *entry = 0; ++ char *c; ++ int i = 0; ++ int delim_len = strlen(SidebarDelim); ++ ++ c = realloc(entry, SidebarWidth - delim_len + 2); ++ if ( c ) entry = c; ++ entry[SidebarWidth - delim_len + 1] = 0; ++ for (; i < SidebarWidth - delim_len + 1; entry[i++] = ' ' ); ++ i = strlen(box); ++ strncpy( entry, box, i < (SidebarWidth - delim_len + 1) ? i : (SidebarWidth - delim_len + 1) ); ++ ++ if (size == -1) ++ sprintf(entry + SidebarWidth - delim_len - 3, "?"); ++ else if ( new ) { ++ if (flagged > 0) { ++ sprintf( ++ entry + SidebarWidth - delim_len - 5 - quick_log10(size) - quick_log10(new) - quick_log10(flagged), ++ "% d(%d)[%d]", size, new, flagged); ++ } else { ++ sprintf( ++ entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(new), ++ "% d(%d)", size, new); ++ } ++ } else if (flagged > 0) { ++ sprintf( entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(flagged), "% d[%d]", size, flagged); ++ } else { ++ sprintf( entry + SidebarWidth - delim_len - 1 - quick_log10(size), "% d", size); ++ } ++ return entry; ++ } ++ ++ void set_curbuffy(char buf[LONG_STRING]) ++ { ++ BUFFY* tmp = CurBuffy = Incoming; ++ ++ if (!Incoming) ++ return; ++ ++ while(1) { ++ if(!strcmp(tmp->path, buf)) { ++ CurBuffy = tmp; ++ break; ++ } ++ ++ if(tmp->next) ++ tmp = tmp->next; ++ else ++ break; ++ } ++ } ++ ++ int draw_sidebar(int menu) { ++ ++ int lines = option(OPTHELP) ? 1 : 0; ++ BUFFY *tmp; ++ #ifndef USE_SLANG_CURSES ++ attr_t attrs; ++ #endif ++ short delim_len = strlen(SidebarDelim); ++ short color_pair; ++ ++ static bool initialized = false; ++ static int prev_show_value; ++ static short saveSidebarWidth; ++ ++ /* initialize first time */ ++ if(!initialized) { ++ prev_show_value = option(OPTSIDEBAR); ++ saveSidebarWidth = SidebarWidth; ++ if(!option(OPTSIDEBAR)) SidebarWidth = 0; ++ initialized = true; ++ } ++ ++ /* save or restore the value SidebarWidth */ ++ if(prev_show_value != option(OPTSIDEBAR)) { ++ if(prev_show_value && !option(OPTSIDEBAR)) { ++ saveSidebarWidth = SidebarWidth; ++ SidebarWidth = 0; ++ } else if(!prev_show_value && option(OPTSIDEBAR)) { ++ SidebarWidth = saveSidebarWidth; ++ } ++ prev_show_value = option(OPTSIDEBAR); ++ } ++ ++ ++ // if ( SidebarWidth == 0 ) return 0; ++ if (SidebarWidth > 0 && option (OPTSIDEBAR) ++ && delim_len >= SidebarWidth) { ++ unset_option (OPTSIDEBAR); ++ /* saveSidebarWidth = SidebarWidth; */ ++ if (saveSidebarWidth > delim_len) { ++ SidebarWidth = saveSidebarWidth; ++ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar.")); ++ sleep (2); ++ } else { ++ SidebarWidth = 0; ++ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar. Please set your sidebar_width to a sane value.")); ++ sleep (4); /* the advise to set a sane value should be seen long enough */ ++ } ++ saveSidebarWidth = 0; ++ return (0); ++ } ++ ++ if ( SidebarWidth == 0 || !option(OPTSIDEBAR)) { ++ if (SidebarWidth > 0) { ++ saveSidebarWidth = SidebarWidth; ++ SidebarWidth = 0; ++ } ++ unset_option(OPTSIDEBAR); ++ return 0; ++ } ++ ++ /* get attributes for divider */ ++ SETCOLOR(MT_COLOR_STATUS); ++ #ifndef USE_SLANG_CURSES ++ attr_get(&attrs, &color_pair, 0); ++ #else ++ color_pair = attr_get(); ++ #endif ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ /* draw the divider */ ++ ++ for ( ; lines < LINES-1-(menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { ++ move(lines, SidebarWidth - delim_len); ++ addstr(NONULL(SidebarDelim)); ++ #ifndef USE_SLANG_CURSES ++ mvchgat(lines, SidebarWidth - delim_len, delim_len, 0, color_pair, NULL); ++ #endif ++ } ++ ++ if ( Incoming == 0 ) return 0; ++ lines = option(OPTHELP) ? 1 : 0; /* go back to the top */ ++ ++ if ( known_lines != LINES || TopBuffy == 0 || BottomBuffy == 0 ) ++ calc_boundaries(menu); ++ if ( CurBuffy == 0 ) CurBuffy = Incoming; ++ ++ tmp = TopBuffy; ++ ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ for ( ; tmp && lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); tmp = tmp->next ) { ++ if ( tmp == CurBuffy ) ++ SETCOLOR(MT_COLOR_INDICATOR); ++ else if ( tmp->msg_unread > 0 ) ++ SETCOLOR(MT_COLOR_NEW); ++ else if ( tmp->msg_flagged > 0 ) ++ SETCOLOR(MT_COLOR_FLAGGED); ++ else ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ move( lines, 0 ); ++ if ( Context && !strcmp( tmp->path, Context->path ) ) { ++ tmp->msg_unread = Context->unread; ++ tmp->msgcount = Context->msgcount; ++ tmp->msg_flagged = Context->flagged; ++ } ++ // check whether Maildir is a prefix of the current folder's path ++ short maildir_is_prefix = 0; ++ if ( (strlen(tmp->path) > strlen(Maildir)) && ++ (strncmp(Maildir, tmp->path, strlen(Maildir)) == 0) ) ++ maildir_is_prefix = 1; ++ // calculate depth of current folder and generate its display name with indented spaces ++ int sidebar_folder_depth = 0; ++ char *sidebar_folder_name; ++ sidebar_folder_name = basename(tmp->path); ++ if ( maildir_is_prefix ) { ++ char *tmp_folder_name; ++ int i; ++ tmp_folder_name = tmp->path + strlen(Maildir); ++ for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) { ++ if (tmp_folder_name[i] == '/') sidebar_folder_depth++; ++ } ++ if (sidebar_folder_depth > 0) { ++ sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1); ++ for (i=0; i < sidebar_folder_depth; i++) ++ sidebar_folder_name[i]=' '; ++ sidebar_folder_name[i]=0; ++ strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth); ++ } ++ } ++ printw( "%.*s", SidebarWidth - delim_len + 1, ++ make_sidebar_entry(sidebar_folder_name, tmp->msgcount, ++ tmp->msg_unread, tmp->msg_flagged)); ++ if (sidebar_folder_depth > 0) ++ free(sidebar_folder_name); ++ lines++; ++ } ++ SETCOLOR(MT_COLOR_NORMAL); ++ for ( ; lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { ++ int i = 0; ++ move( lines, 0 ); ++ for ( ; i < SidebarWidth - delim_len; i++ ) ++ addch(' '); ++ } ++ return 0; ++ } ++ ++ ++ void set_buffystats(CONTEXT* Context) ++ { ++ BUFFY *tmp = Incoming; ++ while(tmp) { ++ if(Context && !strcmp(tmp->path, Context->path)) { ++ tmp->msg_unread = Context->unread; ++ tmp->msgcount = Context->msgcount; ++ break; ++ } ++ tmp = tmp->next; ++ } ++ } ++ ++ void scroll_sidebar(int op, int menu) ++ { ++ if(!SidebarWidth) return; ++ if(!CurBuffy) return; ++ ++ switch (op) { ++ case OP_SIDEBAR_NEXT: ++ if ( CurBuffy->next == NULL ) return; ++ CurBuffy = CurBuffy->next; ++ break; ++ case OP_SIDEBAR_PREV: ++ if ( CurBuffy->prev == NULL ) return; ++ CurBuffy = CurBuffy->prev; ++ break; ++ case OP_SIDEBAR_SCROLL_UP: ++ CurBuffy = TopBuffy; ++ if ( CurBuffy != Incoming ) { ++ calc_boundaries(menu); ++ CurBuffy = CurBuffy->prev; ++ } ++ break; ++ case OP_SIDEBAR_SCROLL_DOWN: ++ CurBuffy = BottomBuffy; ++ if ( CurBuffy->next ) { ++ calc_boundaries(menu); ++ CurBuffy = CurBuffy->next; ++ } ++ break; ++ default: ++ return; ++ } ++ calc_boundaries(menu); ++ draw_sidebar(menu); ++ } ++ +*** mutt-1.5.20-orig/sidebar.h 1969-12-31 18:00:00.000000000 -0600 +--- mutt-1.5.20-patched/sidebar.h 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 0 **** +--- 1,36 ---- ++ /* ++ * Copyright (C) ????-2004 Justin Hibbits ++ * Copyright (C) 2004 Thomer M. Gil ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++ #ifndef SIDEBAR_H ++ #define SIDEBAR_H ++ ++ struct MBOX_LIST { ++ char *path; ++ int msgcount; ++ int new; ++ } MBLIST; ++ ++ /* parameter is whether or not to go to the status line */ ++ /* used for omitting the last | that covers up the status bar in the index */ ++ int draw_sidebar(int); ++ void scroll_sidebar(int, int); ++ void set_curbuffy(char*); ++ void set_buffystats(CONTEXT*); ++ ++ #endif /* SIDEBAR_H */ +*** mutt-1.5.20-orig/doc/Muttrc 2009-06-14 13:53:24.000000000 -0500 +--- mutt-1.5.20-patched/doc/Muttrc 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 657,662 **** +--- 657,682 ---- + # $crypt_autosign, $crypt_replysign and $smime_is_default. + # + # ++ # set sidebar_visible=no ++ # ++ # Name: sidebar_visible ++ # Type: boolean ++ # Default: no ++ # ++ # ++ # This specifies whether or not to show sidebar (left-side list of folders). ++ # ++ # ++ # set sidebar_width=0 ++ # ++ # Name: sidebar_width ++ # Type: number ++ # Default: 0 ++ # ++ # ++ # The width of the sidebar. ++ # ++ # + # set crypt_autosign=no + # + # Name: crypt_autosign +*** mutt-1.5.20-orig/imap/imap.c 2009-06-14 12:19:16.000000000 -0500 +--- mutt-1.5.20-patched/imap/imap.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1521,1527 **** + + imap_munge_mbox_name (munged, sizeof (munged), name); + snprintf (command, sizeof (command), +! "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT)", munged); + + if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0) + { +--- 1521,1527 ---- + + imap_munge_mbox_name (munged, sizeof (munged), name); + snprintf (command, sizeof (command), +! "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT MESSAGES)", munged); + + if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0) + { +*** mutt-1.5.20-orig/imap/command.c 2009-01-05 20:58:31.000000000 -0600 +--- mutt-1.5.20-patched/imap/command.c 2009-06-19 22:07:04.000000000 -0500 +*************** +*** 1009,1014 **** +--- 1009,1021 ---- + opened */ + status->uidnext = oldun; + ++ /* Added to make the sidebar show the correct numbers */ ++ if (status->messages) ++ { ++ inc->msgcount = status->messages; ++ inc->msg_unread = status->unseen; ++ } ++ + FREE (&value); + return; + } +--- orig/compose.c.orig 2010-09-18 13:23:18.000000000 +0200 ++++ new/compose.c 2010-09-18 14:01:09.000000000 +0200 +@@ -80,7 +80,7 @@ + + #define HDR_XOFFSET 14 + #define TITLE_FMT "%14s" /* Used for Prompts, which are ASCII */ +-#define W (COLS - HDR_XOFFSET) ++#define W (COLS - HDR_XOFFSET - SidebarWidth) + + static char *Prompts[] = + { +@@ -143,7 +143,7 @@ + { + int off = 0; + +- mvprintw (HDR_CRYPT, 0, TITLE_FMT, "Security: "); ++ mvprintw (HDR_CRYPT, SidebarWidth, TITLE_FMT, "Security: "); + + if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME)) == 0) + { +@@ -175,7 +175,7 @@ + } + + clrtoeol (); +- move (HDR_CRYPTINFO, 0); ++ move (HDR_CRYPTINFO, SidebarWidth); + clrtoeol (); + + if ((WithCrypto & APPLICATION_PGP) +@@ -195,7 +195,7 @@ + && (msg->security & ENCRYPT) + && SmimeCryptAlg + && *SmimeCryptAlg) { +- mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), ++ mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), + NONULL(SmimeCryptAlg)); + off = 20; + } +@@ -224,7 +224,7 @@ + if (t && t[0] == '0' && t[1] == '\0') + t = ""; + +- if (c + mutt_strlen (t) + 2 >= COLS) ++ if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) + break; + + addstr (NONULL(t)); +@@ -276,7 +276,7 @@ + + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), addr, 1); +- mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); ++ mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); + mutt_paddstr (W, buf); + } + +@@ -294,21 +294,21 @@ + } + else + { +- mvprintw (HDR_TO, 0, TITLE_FMT , Prompts[HDR_NEWSGROUPS - 1]); ++ mvprintw (HDR_TO, SidebarWidth, TITLE_FMT , Prompts[HDR_NEWSGROUPS - 1]); + mutt_paddstr (W, NONULL (msg->env->newsgroups)); +- mvprintw (HDR_CC, 0, TITLE_FMT , Prompts[HDR_FOLLOWUPTO - 1]); ++ mvprintw (HDR_CC, SidebarWidth, TITLE_FMT , Prompts[HDR_FOLLOWUPTO - 1]); + mutt_paddstr (W, NONULL (msg->env->followup_to)); + if (option (OPTXCOMMENTTO)) + { +- mvprintw (HDR_BCC, 0, TITLE_FMT , Prompts[HDR_XCOMMENTTO - 1]); ++ mvprintw (HDR_BCC, SidebarWidth, TITLE_FMT , Prompts[HDR_XCOMMENTTO - 1]); + mutt_paddstr (W, NONULL (msg->env->x_comment_to)); + } + } + #endif +- mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); ++ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); + mutt_paddstr (W, NONULL (msg->env->subject)); + draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); +- mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]); ++ mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]); + mutt_paddstr (W, fcc); + + if (WithCrypto) +@@ -319,7 +319,7 @@ + #endif + + SETCOLOR (MT_COLOR_STATUS); +- mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); ++ mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); + BKGDSET (MT_COLOR_STATUS); + clrtoeol (); + +@@ -357,7 +357,7 @@ + /* redraw the expanded list so the user can see the result */ + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), *addr, 1); +- move (line, HDR_XOFFSET); ++ move (line, HDR_XOFFSET+SidebarWidth); + mutt_paddstr (W, buf); + + return 0; +@@ -686,7 +686,7 @@ + if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) + { + mutt_str_replace (&msg->env->subject, buf); +- move (HDR_SUBJECT, HDR_XOFFSET); ++ move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth); + clrtoeol (); + if (msg->env->subject) + mutt_paddstr (W, msg->env->subject); +@@ -703,7 +703,7 @@ + { + strfcpy (fcc, buf, fcclen); + mutt_pretty_mailbox (fcc, fcclen); +- move (HDR_FCC, HDR_XOFFSET); ++ move (HDR_FCC, HDR_XOFFSET + SidebarWidth); + mutt_paddstr (W, fcc); + fccSet = 1; diff -urN mutt-devel/files/extra-patch-signature-menu mutt-devel-1.5.21-ja.2/files/extra-patch-signature-menu --- mutt-devel/files/extra-patch-signature-menu 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-signature-menu 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,729 @@ +--- mutt-1.5.11/PATCHES Dec 2002 17:44:54 -0000 3.6 ++++ mutt-1.5.11/PATCHES Feb 2004 13:19:42 -0000 +@@ -0,0 +1 @@ ++patch-1.5.11.cd.signatures_menu.2.1 +--- mutt-1.5.11/Makefile.am.orig Thu Aug 11 23:27:28 2005 ++++ mutt-1.5.11/Makefile.am Sat Mar 11 21:47:55 2006 +@@ -25,7 +25,7 @@ + main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \ + postpone.c query.c recvattach.c recvcmd.c \ + rfc822.c rfc1524.c rfc2047.c rfc2231.c \ +- score.c send.c sendlib.c signal.c sort.c \ ++ score.c send.c sendlib.c signal.c signature.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c utf8.c mbyte.c wcwidth.c \ + url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h +--- mutt-1.5.12/Makefile.in.orig Mon Jul 17 16:29:15 2006 ++++ mutt-1.5.12/Makefile.in Mon Jul 17 16:30:26 2006 +@@ -90,7 +90,7 @@ + query.$(OBJEXT) recvattach.$(OBJEXT) recvcmd.$(OBJEXT) \ + rfc822.$(OBJEXT) rfc1524.$(OBJEXT) rfc2047.$(OBJEXT) \ + rfc2231.$(OBJEXT) score.$(OBJEXT) send.$(OBJEXT) \ +- sendlib.$(OBJEXT) signal.$(OBJEXT) sort.$(OBJEXT) \ ++ sendlib.$(OBJEXT) signal.$(OBJEXT) signature.$(OBJEXT) sort.$(OBJEXT) \ + status.$(OBJEXT) system.$(OBJEXT) thread.$(OBJEXT) \ + charset.$(OBJEXT) history.$(OBJEXT) lib.$(OBJEXT) \ + muttlib.$(OBJEXT) editmsg.$(OBJEXT) utf8.$(OBJEXT) \ +@@ -309,7 +309,7 @@ + main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \ + postpone.c query.c recvattach.c recvcmd.c \ + rfc822.c rfc1524.c rfc2047.c rfc2231.c \ +- score.c send.c sendlib.c signal.c sort.c \ ++ score.c send.c sendlib.c signal.c signature.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c utf8.c mbyte.c wcwidth.c \ + url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h +--- mutt-1.5.11/OPS.orig Sun Jul 24 18:56:42 2005 ++++ mutt-1.5.11/OPS Sat Mar 11 21:47:55 2006 +@@ -38,6 +38,7 @@ + OP_COMPOSE_POSTPONE_MESSAGE "save this message to send later" + OP_COMPOSE_RENAME_FILE "rename/move an attached file" + OP_COMPOSE_SEND_MESSAGE "send the message" ++OP_COMPOSE_SIG "choose a signature" + OP_COMPOSE_TOGGLE_DISPOSITION "toggle disposition between inline/attachment" + OP_COMPOSE_TOGGLE_UNLINK "toggle whether to delete file after sending it" + OP_COMPOSE_UPDATE_ENCODING "update an attachment's encoding info" +@@ -131,6 +132,7 @@ + OP_NEXT_ENTRY "move to the next entry" + OP_NEXT_LINE "scroll down one line" + OP_NEXT_PAGE "move to the next page" ++OP_NEXT_SIG "move to the next signature" + OP_PAGER_BOTTOM "jump to the bottom of the message" + OP_PAGER_HIDE_QUOTED "toggle display of quoted text" + OP_PAGER_SKIP_QUOTED "skip beyond quoted text" +@@ -139,10 +141,12 @@ + OP_PREV_ENTRY "move to the previous entry" + OP_PREV_LINE "scroll up one line" + OP_PREV_PAGE "move to the previous page" ++OP_PREV_SIG "move to the previous signature" + OP_PRINT "print the current entry" + OP_QUERY "query external program for addresses" + OP_QUERY_APPEND "append new query results to current results" + OP_QUIT "save changes to mailbox and quit" ++OP_RANDOM_SIG "pick a signature at random" + OP_RECALL_MESSAGE "recall a postponed message" + OP_REDRAW "clear and redraw the screen" + OP_REFORMAT_WINCH "{internal}" +@@ -156,6 +160,7 @@ + OP_SEARCH_OPPOSITE "search for next match in opposite direction" + OP_SEARCH_TOGGLE "toggle search pattern coloring" + OP_SHELL_ESCAPE "invoke a command in a subshell" ++OP_SIG_SEARCH "search signatures matching a pattern" + OP_SORT "sort messages" + OP_SORT_REVERSE "sort messages in reverse order" + OP_TAG "tag the current entry" +--- mutt-1.5.11/compose.c.orig Thu Aug 11 21:37:23 2005 ++++ mutt-1.5.11/compose.c Sat Mar 11 21:47:55 2006 +@@ -1128,6 +1128,12 @@ + /* no send2hook, since this doesn't modify the message */ + break; + ++ case OP_COMPOSE_SIG: ++ mutt_signature(msg->content->filename); ++ MAYBE_REDRAW (menu->redraw); ++ mutt_update_encoding (msg->content); ++ break; ++ + case OP_PIPE: + case OP_FILTER: + CHECK_COUNT; +--- mutt-1.5.12/doc/manual.xml.head.orig Mon Jul 17 16:21:01 2006 ++++ mutt-1.5.12/doc/manual.xml.head Mon Jul 17 16:24:46 2006 +@@ -999,6 +999,7 @@ + cedit-ccedit the Cc field + bedit-bccedit the Bcc field + ysend-messagesend the message ++ESC ssignature-menuselect a signature and append it to your mail + sedit-subjectedit the Subject + Ssmime-menuselect S/MIME options + fedit-fccspecify an ``Fcc'' mailbox +--- mutt-1.5.11/functions.h.orig Sun Jul 24 18:56:42 2005 ++++ mutt-1.5.11/functions.h Sat Mar 11 21:48:05 2006 +@@ -311,6 +311,7 @@ + { "view-attach", OP_VIEW_ATTACH, M_ENTER_S }, + { "send-message", OP_COMPOSE_SEND_MESSAGE, "y" }, + { "pipe-entry", OP_PIPE, "|" }, ++ { "signature-menu", OP_COMPOSE_SIG, "\033s" }, + + { "attach-key", OP_COMPOSE_ATTACH_KEY, "\033k" }, + { "pgp-menu", OP_COMPOSE_PGP_MENU, "p" }, +@@ -368,6 +369,19 @@ + { "mail", OP_MAIL, "m" }, + { "query", OP_QUERY, "Q" }, + { "query-append", OP_QUERY_APPEND, "A" }, ++ { NULL, 0, NULL } ++}; ++ ++/* Signature Menu */ ++struct binding_t OpSig[] = { ++ { "next-sig", OP_NEXT_SIG, "j" }, ++ { "previous-sig", OP_PREV_SIG, "k" }, ++ { "random-sig", OP_RANDOM_SIG, "r" }, ++ { NULL, 0, NULL } ++}; ++ ++struct binding_t OpSigDir[] = { ++ { "search-sig", OP_SIG_SEARCH, "/" }, + { NULL, 0, NULL } + }; + +--- mutt-1.5.11/globals.h.orig Thu Sep 15 16:19:54 2005 ++++ mutt-1.5.11/globals.h Sat Mar 11 21:48:05 2006 +@@ -109,6 +109,7 @@ + WHERE char *Sendmail; + WHERE char *Shell; + WHERE char *Signature; ++WHERE char *SigDirectory; + WHERE char *SimpleSearch; + WHERE char *Spoolfile; + WHERE char *SpamSep; +--- mutt-1.5.11/init.h.orig Thu Sep 15 16:19:54 2005 ++++ mutt-1.5.11/init.h Sat Mar 11 21:48:05 2006 +@@ -2457,6 +2457,14 @@ + ** assumed that filename is a shell command and input should be read from + ** its stdout. + */ ++ { "signatures_directory", DT_PATH, R_NONE, UL &SigDirectory, UL "" }, ++ /* ++ ** .pp ++ ** Specifies the path where your signatures are located. In the files of ++ ** this directory, the signatures are separated by blank lines and/or ++ ** sig_dashes (``-- ''). ++ ** You can choose between these signatures from the compose menu. ++ */ + { "simple_search", DT_STR, R_NONE, UL &SimpleSearch, UL "~f %s | ~s %s" }, + /* + ** .pp +--- mutt-1.5.11/keymap.c.orig Wed Sep 7 10:19:43 2005 ++++ mutt-1.5.11/keymap.c Sat Mar 11 21:48:05 2006 +@@ -55,6 +55,8 @@ + + + { "query", MENU_QUERY }, ++ { "signature", MENU_SIG }, ++ { "sig_directory", MENU_SIG_DIR }, + { "generic", MENU_GENERIC }, + { NULL, 0 } + }; +@@ -560,6 +562,8 @@ + create_bindings (OpPost, MENU_POST); + create_bindings (OpQuery, MENU_QUERY); + create_bindings (OpAlias, MENU_ALIAS); ++ create_bindings (OpSig, MENU_SIG); ++ create_bindings (OpSigDir, MENU_SIG_DIR); + + + if ((WithCrypto & APPLICATION_PGP)) +@@ -658,6 +662,9 @@ + km_bindkey ("", MENU_ATTACH, OP_VIEW_ATTACH); + km_bindkey ("", MENU_COMPOSE, OP_VIEW_ATTACH); + ++ km_bindkey ("", MENU_SIG, OP_PREV_SIG); ++ km_bindkey ("", MENU_SIG, OP_NEXT_SIG); ++ + /* edit-to (default "t") hides generic tag-entry in Compose menu + This will bind tag-entry to "T" in the Compose menu */ + km_bindkey ("T", MENU_COMPOSE, OP_TAG); +@@ -793,6 +800,10 @@ + return OpEditor; + case MENU_QUERY: + return OpQuery; ++ case MENU_SIG: ++ return OpSig; ++ case MENU_SIG_DIR: ++ return OpSigDir; + + case MENU_PGP: + return (WithCrypto & APPLICATION_PGP)? OpPgp:NULL; +--- mutt-1.5.11/keymap.h.orig Thu Jun 17 22:33:04 2004 ++++ mutt-1.5.11/keymap.h Sat Mar 11 21:48:05 2006 +@@ -62,6 +62,8 @@ + MENU_PAGER, + MENU_POST, + MENU_QUERY, ++ MENU_SIG, ++ MENU_SIG_DIR, + + + MENU_PGP, +@@ -108,6 +110,8 @@ + extern struct binding_t OpEditor[]; + extern struct binding_t OpQuery[]; + extern struct binding_t OpAlias[]; ++extern struct binding_t OpSig[]; ++extern struct binding_t OpSigDir[]; + + extern struct binding_t OpPgp[]; + +--- mutt-1.5.11/protos.h.orig Wed Sep 7 10:19:43 2005 ++++ mutt-1.5.11/protos.h Sat Mar 11 21:48:05 2006 +@@ -242,6 +242,7 @@ + void mutt_shell_escape (void); + void mutt_show_error (void); + void mutt_signal_init (void); ++void mutt_signature (char *); + void mutt_stamp_attachment (BODY *a); + void mutt_tabs_to_spaces (char *); + void mutt_tag_set_flag (int, int); +--- mutt-1.5.11/signature.c.orig Sat Mar 11 21:58:38 2006 ++++ mutt-1.5.11/signature.c Sat Mar 11 22:07:31 2006 +@@ -0,0 +1,499 @@ ++/* ++ * Copyright (C) 2001 Cedric Duval ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "mutt.h" ++#include "mutt_menu.h" ++#include "mapping.h" ++#include "mutt_curses.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++#define SIG_DISPLAY_LINES 4 ++#define SEPARATOR(x) ((*x == '\n') || (mutt_strcmp (x, "-- \n") == 0)) ++#define SIG_ADD_LINE(x,y) mutt_add_list (x, strtok (y, "\n")) ++ ++typedef struct sig_list ++{ ++ struct sig_list *next; ++ LIST *sig; ++} SIG_LIST; ++ ++typedef struct sig_dir ++{ ++ struct sig_dir *next; ++ char *name; ++} SIG_DIR; ++ ++typedef LIST * ENTRY; ++ ++typedef struct entry_dir ++{ ++ int tagged; ++ SIG_DIR *data; ++} ENTRY_DIR; ++ ++static struct mapping_t SigHelp[] = { ++ { N_("Exit"), OP_EXIT }, ++ { N_("Search"), OP_SEARCH }, ++ { N_("Random"), OP_RANDOM_SIG }, ++ { N_("Help"), OP_HELP }, ++ { NULL } ++}; ++ ++static struct mapping_t SigDirHelp[] = { ++ { N_("Exit"), OP_EXIT }, ++ { N_("Search signature"), OP_SIG_SEARCH }, ++ { N_("Help"), OP_HELP }, ++ { NULL } ++}; ++ ++void menu_next_entry (MUTTMENU *menu); ++void menu_prev_entry (MUTTMENU *menu); ++ ++ ++static int sig_match (LIST *s, regex_t *re) ++{ ++ while (s) ++ { ++ if (regexec (re, s->data, (size_t)0, NULL, (int)0) == 0) ++ return 1; ++ s = s->next; ++ } ++ return 0; ++} ++ ++static void read_sig_file (char *name, SIG_LIST **begin, regex_t *re) ++{ ++ FILE *fp; ++ char buf[STRING]; ++ LIST *sig = NULL; ++ SIG_LIST *first, *cur; ++ int append = 0; ++ ++ if (!(fp = safe_fopen (name, "r"))) ++ { ++ mutt_error (_("Can't open signature file %s"), name); ++ return; ++ } ++ ++ for (first = *begin; first && first->next; first = first->next, append++) ++ ; /* append results to an existing list */ ++ cur = first; ++ ++ while (fgets (buf, sizeof (buf), fp)) ++ { ++ if (buf[0] && !SEPARATOR (buf)) ++ { ++ sig = SIG_ADD_LINE (NULL, buf); ++ ++ while (fgets (buf, sizeof (buf), fp) && buf[0] && !SEPARATOR (buf)) ++ SIG_ADD_LINE (sig, buf); ++ ++ if (re && !sig_match (sig, re)) ++ mutt_free_list (&sig); /* previous sig didn't match the regexp */ ++ else ++ { ++ /* add signature */ ++ if (first == NULL) ++ first = cur = (SIG_LIST *) safe_calloc (1, sizeof (SIG_LIST)); ++ else ++ { ++ cur->next = (SIG_LIST *) safe_calloc (1, sizeof (SIG_LIST)); ++ cur = cur->next; ++ } ++ ++ cur->sig = sig; ++ cur->next = NULL; ++ } ++ } ++ } ++ ++ if (!append) ++ *begin = first; ++ ++ safe_fclose (&fp); ++} ++ ++static void sig_make_entry (char *s, size_t slen, MUTTMENU *menu, int num) ++{ ++ ENTRY *table = (ENTRY *) menu->data; ++ ++ snprintf (s, slen, "%3d %s", ++ num + 1, ++ table[num]->data); ++} ++ ++static int sig_menu_search (MUTTMENU *menu, regex_t *re, int num) ++{ ++ return (sig_match (((ENTRY *)menu->data)[num], re) ? 0 : REG_NOMATCH); ++} ++ ++static void draw_sig_frame (LIST *s) ++{ ++ int i; ++ ++ for (i = 1; i <= SIG_DISPLAY_LINES; i++) ++ { ++ if (s) ++ { ++ mvaddstr (i, 0, s->data); ++ s = s->next; ++ } ++ else ++ move (i, 0); ++ ++ clrtoeol (); ++ } ++ ++ SETCOLOR (MT_COLOR_STATUS); ++ mvaddstr (SIG_DISPLAY_LINES + 1, 0, _("-- Signature")); ++ BKGDSET (MT_COLOR_STATUS); ++ clrtoeol (); ++ ++ BKGDSET (MT_COLOR_NORMAL); ++ SETCOLOR (MT_COLOR_NORMAL); ++} ++ ++static void free_sig_list (SIG_LIST **sigs) ++{ ++ SIG_LIST *cur; ++ ++ while (*sigs) ++ { ++ cur = *sigs; ++ *sigs = (*sigs)->next; ++ mutt_free_list (&cur->sig); ++ safe_free ((void **)&cur); ++ } ++} ++ ++static void append_signature (char *msg_file, LIST *s) ++{ ++ FILE *fp; ++ ++ if ((fp = safe_fopen (msg_file, "a")) == 0) ++ mutt_perror (msg_file); ++ else ++ { ++ if (option (OPTSIGDASHES)) ++ fputs ("\n-- \n", fp); ++ ++ for (; s; s = s->next) ++ fprintf (fp, "%s\n", s->data); ++ ++ mutt_message (_("Signature appended to your mail")); ++ safe_fclose (&fp); ++ } ++} ++ ++static LIST *sig_list_menu (char *file, SIG_LIST *list) ++{ ++ LIST *result = NULL; ++ SIG_LIST *sigl; ++ MUTTMENU *menu; ++ ENTRY *SigTable; ++ char helpstr[SHORT_STRING], title[SHORT_STRING]; ++ int i, done = 0; ++ ++ snprintf (title, sizeof (title), _("Signature : %s"), file); ++ ++ menu = mutt_new_menu (); ++ menu->make_entry = sig_make_entry; ++ menu->tag = NULL; ++ menu->search = sig_menu_search; ++ menu->menu = MENU_SIG; ++ menu->title = title; ++ menu->help = mutt_compile_help (helpstr, sizeof (helpstr), ++ MENU_SIG, SigHelp); ++ menu->offset = SIG_DISPLAY_LINES + 2; ++ menu->pagelen = LINES - SIG_DISPLAY_LINES - 4; ++ ++ for (sigl = list; sigl; sigl = sigl->next) ++ menu->max++; ++ ++ menu->data = SigTable = (ENTRY *) safe_calloc (menu->max, sizeof (ENTRY)); ++ ++ for (i = 0, sigl = list; sigl; i++, sigl = sigl->next) ++ SigTable[i] = sigl->sig; ++ ++ while (!done) ++ { ++ switch (mutt_menuLoop (menu)) ++ { ++ case OP_GENERIC_SELECT_ENTRY: ++ result = SigTable[menu->current]; ++ done = 1; ++ break; ++ ++ case OP_PREV_SIG: ++ menu_prev_entry (menu); ++ draw_sig_frame (SigTable[menu->current]); ++ break; ++ ++ case OP_NEXT_SIG: ++ menu_next_entry (menu); ++ draw_sig_frame (SigTable[menu->current]); ++ break; ++ ++ case OP_REDRAW: ++ menu->offset = SIG_DISPLAY_LINES + 2; ++ menu->pagelen = LINES - SIG_DISPLAY_LINES - 4; ++ draw_sig_frame (SigTable[menu->current]); ++ break; ++ ++ case OP_RANDOM_SIG: ++ menu->current = LRAND () % menu->max; ++ draw_sig_frame (SigTable[menu->current]); ++ menu->redraw |= REDRAW_MOTION; ++ break; ++ ++ case OP_EXIT: ++ set_option (OPTNEEDREDRAW); ++ done = 1; ++ break; ++ } ++ } ++ ++ mutt_menuDestroy (&menu); ++ safe_free ((void **)&SigTable); ++ return result; ++} ++ ++static SIG_LIST *sig_search_filter (MUTTMENU *menu, char *path) ++{ ++ regex_t re; ++ char buf[STRING]; ++ SIG_LIST *result = NULL; ++ int i; ++ ++ snprintf (buf, sizeof(buf), menu->searchBuf ? menu->searchBuf : ""); ++ if (mutt_get_field (_("Search for: "), buf, ++ sizeof (buf), M_CLEAR) != 0 || !buf[0]) ++ return (NULL); ++ mutt_str_replace (&menu->searchBuf, buf); ++ ++ if ((i = regcomp (&re, menu->searchBuf, REG_NOSUB | REG_EXTENDED | REG_WORDS ++ | mutt_which_case (menu->searchBuf))) != 0) ++ { ++ regerror (i, &re, buf, sizeof (buf)); ++ regfree (&re); ++ mutt_error ("%s", buf); ++ return (NULL); ++ } ++ ++ /* building list of sigs matching the regexp */ ++ for (i = 0; i < menu->max; i++) ++ { ++ /* search in every file if none is tagged */ ++ if (((ENTRY_DIR *) menu->data)[i].tagged || (menu->tagged == 0)) ++ { ++ snprintf (buf, sizeof (buf), "%s/%s", path, ++ ((ENTRY_DIR *) menu->data)[i].data->name); ++ read_sig_file (buf, &result, &re); ++ } ++ } ++ ++ regfree (&re); ++ if (!result) ++ mutt_error (_("Not found.")); ++ ++ return (result); ++} ++ ++/* returns the list of files in this directory */ ++static SIG_DIR *sig_directory (char *path) ++{ ++ DIR *dp; ++ struct dirent *de; ++ struct stat s; ++ SIG_DIR *first = NULL, *cur = NULL; ++ char file[_POSIX_PATH_MAX + SHORT_STRING]; ++ ++ if ((dp = opendir (path)) == NULL) ++ { ++ mutt_perror (path); ++ return (NULL); ++ } ++ ++ while ((de = readdir (dp))) ++ { ++ if ((de->d_name)[0] == '.') /* no hidden files */ ++ continue; ++ ++ snprintf (file, sizeof (file), "%s/%s", path, de->d_name); ++ if (lstat (file, &s) == -1) ++ continue; ++ ++ if ((!S_ISREG (s.st_mode)) && (!S_ISLNK (s.st_mode))) ++ continue; ++ ++ if (first == NULL) ++ cur = first = safe_calloc (1, sizeof (SIG_DIR)); ++ else ++ { ++ cur->next = safe_calloc (1, sizeof (SIG_DIR)); ++ cur = cur->next; ++ } ++ cur->name = safe_strdup (de->d_name); ++ cur->next = NULL; ++ } ++ closedir (dp); ++ return first; ++} ++ ++static void sig_dir_make_entry (char *s, size_t slen, MUTTMENU *menu, int num) ++{ ++ ENTRY_DIR *table = (ENTRY_DIR *) menu->data; ++ ++ snprintf (s, slen, "%c %3d - %s", ++ table[num].tagged ? '*' : ' ', ++ num + 1, ++ table[num].data->name); ++} ++ ++static int sig_dir_tag (MUTTMENU *menu, int n, int m) ++{ ++ ENTRY_DIR *cur = &((ENTRY_DIR *) menu->data)[n]; ++ int ot = cur->tagged; ++ ++ cur->tagged = m >= 0 ? m : !cur->tagged; ++ return cur->tagged - ot; ++ ++} ++ ++static int sig_dir_sort (const void *a, const void *b) ++{ ++ ENTRY_DIR *pa = (ENTRY_DIR *) a; ++ ENTRY_DIR *pb = (ENTRY_DIR *) b; ++ ++ return (mutt_strcmp (pa->data->name, pb->data->name)); ++} ++ ++static int sig_dir_menu (char *path, char *msg_file) ++{ ++ MUTTMENU *menu; ++ SIG_LIST *sigl; ++ LIST *result = NULL; ++ ENTRY_DIR *FileTable; ++ SIG_DIR *list, *files; ++ char buf[STRING], helpstr[SHORT_STRING], title[SHORT_STRING]; ++ int i, done = 0; ++ ++ if ((list = sig_directory (path)) == NULL) ++ return -1; ++ ++ snprintf (title, sizeof (title), "Signature directory : %s", path); ++ ++ menu = mutt_new_menu (); ++ menu->make_entry = sig_dir_make_entry; ++ menu->search = NULL; /* search within files with sig_search_filter() */ ++ menu->tag = sig_dir_tag; ++ menu->menu = MENU_SIG_DIR; ++ menu->title = title; ++ menu->help = mutt_compile_help (helpstr, sizeof (helpstr), ++ MENU_SIG_DIR, SigDirHelp); ++ ++ for (files = list; files; files = files->next) ++ menu->max++; ++ ++ menu->data = FileTable = (ENTRY_DIR *) safe_calloc (menu->max, ++ sizeof (ENTRY_DIR)); ++ ++ for (i = 0, files = list; files; i++, files = files->next) ++ FileTable[i].data = files; ++ ++ qsort (FileTable, menu->max, sizeof (ENTRY_DIR), sig_dir_sort); ++ ++ while (!done) ++ { ++ switch (mutt_menuLoop (menu)) ++ { ++ case OP_SIG_SEARCH: ++ sigl = sig_search_filter (menu, path); ++ ++ if (sigl) ++ { ++ if ((result = sig_list_menu (_("query results"), sigl)) != NULL) ++ { ++ append_signature (msg_file, result); ++ done = 1; ++ } ++ ++ MAYBE_REDRAW (menu->redraw); ++ free_sig_list (&sigl); ++ } ++ break; ++ ++ case OP_GENERIC_SELECT_ENTRY: ++ snprintf (buf, sizeof (buf), "%s/%s", path, ++ FileTable[menu->current].data->name); ++ sigl = NULL; ++ read_sig_file (buf, &sigl, NULL); ++ ++ if (sigl) ++ { ++ if ((result = sig_list_menu (buf, sigl)) != NULL) ++ { ++ append_signature (msg_file, result); ++ done = 1; ++ } ++ ++ MAYBE_REDRAW (menu->redraw); ++ free_sig_list (&sigl); ++ } ++ break; ++ ++ case OP_EXIT: ++ done = 1; ++ break; ++ } ++ } ++ ++ while (list) ++ { ++ safe_free ((void **)&list->name); ++ files = list; ++ list = list->next; ++ safe_free ((void **)&files); ++ } ++ safe_free ((void **)&FileTable); ++ mutt_menuDestroy (&menu); ++ return 0; ++} ++ ++void mutt_signature (char *msg_file) ++{ ++ if (!SigDirectory) ++ { ++ mutt_error (_("variable 'signatures_directory' is unset")); ++ return; ++ } ++ ++ if (sig_dir_menu (SigDirectory, msg_file) == -1) ++ mutt_error (_("%s: no files in this directory"), SigDirectory); ++ else ++ set_option (OPTNEEDREDRAW); ++} diff -urN mutt-devel/files/extra-patch-smime-outlook mutt-devel-1.5.21-ja.2/files/extra-patch-smime-outlook --- mutt-devel/files/extra-patch-smime-outlook 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-smime-outlook 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,11 @@ +--- crypt.c.orig Fri Mar 7 09:23:44 2003 ++++ crypt.c Fri Mar 21 00:06:48 2003 +@@ -440,7 +440,7 @@ + { + len++; + if (!ascii_strcasecmp ((t+len), "p7m")) +-#if 0 ++#if 1 + return SMIMEENCRYPT; + #else + /* Not sure if this is the correct thing to do, but diff -urN mutt-devel/files/extra-patch-trash-purge mutt-devel-1.5.21-ja.2/files/extra-patch-trash-purge --- mutt-devel/files/extra-patch-trash-purge 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/extra-patch-trash-purge 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,403 @@ +diff -pruN -x'*.orig' mutt-1.5.20/OPS mutt-1.5.20-trash/OPS +--- mutt-1.5.20/OPS 2009-05-13 01:01:13.000000000 -0400 ++++ mutt-1.5.20-trash/OPS 2009-07-23 09:44:40.000000000 -0400 +@@ -141,6 +141,7 @@ OP_PREV_ENTRY "move to the previous entr + OP_PREV_LINE "scroll up one line" + OP_PREV_PAGE "move to the previous page" + OP_PRINT "print the current entry" ++OP_PURGE_MESSAGE "really delete the current entry, bypassing the trash folder" + OP_QUERY "query external program for addresses" + OP_QUERY_APPEND "append new query results to current results" + OP_QUIT "save changes to mailbox and quit" +diff -pruN -x'*.orig' mutt-1.5.20/PATCHES mutt-1.5.20-trash/PATCHES +--- mutt-1.5.20/PATCHES 2008-11-11 14:55:46.000000000 -0500 ++++ mutt-1.5.20-trash/PATCHES 2009-07-23 09:53:20.000000000 -0400 +@@ -0,0 +1 @@ ++patch-1.5.20.bk.trash_folder-purge_message.1 +diff -pruN -x'*.orig' mutt-1.5.20/commands.c mutt-1.5.20-trash/commands.c +--- mutt-1.5.20/commands.c 2009-06-12 19:38:52.000000000 -0400 ++++ mutt-1.5.20-trash/commands.c 2009-07-23 09:44:40.000000000 -0400 +@@ -716,6 +716,7 @@ int _mutt_save_message (HEADER *h, CONTE + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, h, M_TAG, 0); + } ++ mutt_set_flag (Context, h, M_APPENDED, 1); + + return 0; + } +diff -pruN -x'*.orig' mutt-1.5.20/curs_main.c mutt-1.5.20-trash/curs_main.c +--- mutt-1.5.20/curs_main.c 2009-06-13 22:48:36.000000000 -0400 ++++ mutt-1.5.20-trash/curs_main.c 2009-07-23 09:44:40.000000000 -0400 +@@ -1803,6 +1803,7 @@ int mutt_index_menu (void) + MAYBE_REDRAW (menu->redraw); + break; + ++ case OP_PURGE_MESSAGE: + case OP_DELETE: + + CHECK_MSGCOUNT; +@@ -1813,6 +1814,7 @@ int mutt_index_menu (void) + if (tag) + { + mutt_tag_set_flag (M_DELETE, 1); ++ mutt_tag_set_flag (M_PURGED, (op != OP_PURGE_MESSAGE) ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_tag_set_flag (M_TAG, 0); + menu->redraw = REDRAW_INDEX; +@@ -1820,6 +1822,8 @@ int mutt_index_menu (void) + else + { + mutt_set_flag (Context, CURHDR, M_DELETE, 1); ++ mutt_set_flag (Context, CURHDR, M_PURGED, ++ (op != OP_PURGE_MESSAGE) ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, CURHDR, M_TAG, 0); + if (option (OPTRESOLVE)) +@@ -2116,11 +2120,13 @@ int mutt_index_menu (void) + if (tag) + { + mutt_tag_set_flag (M_DELETE, 0); ++ mutt_tag_set_flag (M_PURGED, 0); + menu->redraw = REDRAW_INDEX; + } + else + { + mutt_set_flag (Context, CURHDR, M_DELETE, 0); ++ mutt_set_flag (Context, CURHDR, M_PURGED, 0); + if (option (OPTRESOLVE) && menu->current < Context->vcount - 1) + { + menu->current++; +@@ -2141,9 +2147,11 @@ int mutt_index_menu (void) + CHECK_ACL(M_ACL_DELETE, _("undelete message(s)")); + + rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0, +- op == OP_UNDELETE_THREAD ? 0 : 1); ++ op == OP_UNDELETE_THREAD ? 0 : 1) ++ + mutt_thread_set_flag (CURHDR, M_PURGED, 0, ++ op == OP_UNDELETE_THREAD ? 0 : 1); + +- if (rc != -1) ++ if (rc > -1) + { + if (option (OPTRESOLVE)) + { +diff -pruN -x'*.orig' mutt-1.5.20/flags.c mutt-1.5.20-trash/flags.c +--- mutt-1.5.20/flags.c 2008-12-16 22:50:09.000000000 -0500 ++++ mutt-1.5.20-trash/flags.c 2009-07-23 09:44:40.000000000 -0400 +@@ -65,7 +65,13 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE + { + h->deleted = 0; + update = 1; +- if (upd_ctx) ctx->deleted--; ++ if (upd_ctx) ++ { ++ ctx->deleted--; ++ if (h->appended) ++ ctx->appended--; ++ } ++ h->appended = 0; /* when undeleting, also reset the appended flag */ + #ifdef USE_IMAP + /* see my comment above */ + if (ctx->magic == M_IMAP) +@@ -87,6 +93,27 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE + } + break; + ++ case M_APPENDED: ++ if (bf) ++ { ++ if (!h->appended) ++ { ++ h->appended = 1; ++ if (upd_ctx) ctx->appended++; ++ } ++ } ++ break; ++ ++ case M_PURGED: ++ if (bf) ++ { ++ if (!h->purged) ++ h->purged = 1; ++ } ++ else if (h->purged) ++ h->purged = 0; ++ break; ++ + case M_NEW: + + if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN)) +diff -pruN -x'*.orig' mutt-1.5.20/functions.h mutt-1.5.20-trash/functions.h +--- mutt-1.5.20/functions.h 2009-04-30 01:36:17.000000000 -0400 ++++ mutt-1.5.20-trash/functions.h 2009-07-23 09:44:40.000000000 -0400 +@@ -120,6 +120,7 @@ struct binding_t OpMain[] = { /* map: in + { "toggle-write", OP_TOGGLE_WRITE, "%" }, + { "next-thread", OP_MAIN_NEXT_THREAD, "\016" }, + { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" }, ++ { "purge-message", OP_PURGE_MESSAGE, NULL }, + { "query", OP_QUERY, "Q" }, + { "quit", OP_QUIT, "q" }, + { "reply", OP_REPLY, "r" }, +@@ -209,6 +210,7 @@ struct binding_t OpPager[] = { /* map: p + { "print-message", OP_PRINT, "p" }, + { "previous-thread", OP_MAIN_PREV_THREAD, "\020" }, + { "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" }, ++ { "purge-message", OP_PURGE_MESSAGE, NULL }, + { "quit", OP_QUIT, "Q" }, + { "exit", OP_EXIT, "q" }, + { "reply", OP_REPLY, "r" }, +diff -pruN -x'*.orig' mutt-1.5.20/globals.h mutt-1.5.20-trash/globals.h +--- mutt-1.5.20/globals.h 2009-06-03 16:48:31.000000000 -0400 ++++ mutt-1.5.20-trash/globals.h 2009-07-23 09:44:40.000000000 -0400 +@@ -139,6 +139,7 @@ WHERE char *StChars; + WHERE char *Status; + WHERE char *Tempdir; + WHERE char *Tochars; ++WHERE char *TrashPath; + WHERE char *Username; + WHERE char *Visual; + +diff -pruN -x'*.orig' mutt-1.5.20/imap/message.c mutt-1.5.20-trash/imap/message.c +--- mutt-1.5.20/imap/message.c 2009-06-07 13:52:57.000000000 -0400 ++++ mutt-1.5.20-trash/imap/message.c 2009-07-23 09:44:40.000000000 -0400 +@@ -867,6 +867,7 @@ int imap_copy_messages (CONTEXT* ctx, HE + if (ctx->hdrs[n]->tagged) + { + mutt_set_flag (ctx, ctx->hdrs[n], M_DELETE, 1); ++ mutt_set_flag (ctx, ctx->hdrs[n], M_APPENDED, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (ctx, ctx->hdrs[n], M_TAG, 0); + } +@@ -874,6 +875,7 @@ int imap_copy_messages (CONTEXT* ctx, HE + else + { + mutt_set_flag (ctx, h, M_DELETE, 1); ++ mutt_set_flag (ctx, h, M_APPENDED, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (ctx, h, M_TAG, 0); + } +diff -pruN -x'*.orig' mutt-1.5.20/init.h mutt-1.5.20-trash/init.h +--- mutt-1.5.20/init.h 2009-06-13 17:35:21.000000000 -0400 ++++ mutt-1.5.20-trash/init.h 2009-07-23 09:44:40.000000000 -0400 +@@ -3180,6 +3180,16 @@ struct option_t MuttVars[] = { + ** by \fIyou\fP. The sixth character is used to indicate when a mail + ** was sent to a mailing-list you subscribe to. + */ ++ { "trash", DT_PATH, R_NONE, UL &TrashPath, 0 }, ++ /* ++ ** .pp ++ ** If set, this variable specifies the path of the trash folder where the ++ ** mails marked for deletion will be moved, instead of being irremediably ++ ** purged. ++ ** .pp ++ ** NOTE: When you delete a message in the trash folder, it is really ++ ** deleted, so that you have a way to clean the trash. ++ */ + #ifdef USE_SOCKET + { "tunnel", DT_STR, R_NONE, UL &Tunnel, UL 0 }, + /* +diff -pruN -x'*.orig' mutt-1.5.20/mutt.h mutt-1.5.20-trash/mutt.h +--- mutt-1.5.20/mutt.h 2009-06-12 18:15:42.000000000 -0400 ++++ mutt-1.5.20-trash/mutt.h 2009-07-23 09:44:40.000000000 -0400 +@@ -187,6 +187,8 @@ enum + M_DELETE, + M_UNDELETE, + M_DELETED, ++ M_APPENDED, ++ M_PURGED, + M_FLAG, + M_TAG, + M_UNTAG, +@@ -701,6 +703,8 @@ typedef struct header + unsigned int mime : 1; /* has a MIME-Version header? */ + unsigned int flagged : 1; /* marked important? */ + unsigned int tagged : 1; ++ unsigned int appended : 1; /* has been saved */ ++ unsigned int purged : 1; /* bypassing the trash folder */ + unsigned int deleted : 1; + unsigned int changed : 1; + unsigned int attach_del : 1; /* has an attachment marked for deletion */ +@@ -873,6 +877,7 @@ typedef struct _context + int new; /* how many new messages? */ + int unread; /* how many unread messages? */ + int deleted; /* how many deleted messages */ ++ int appended; /* how many saved messages? */ + int flagged; /* how many flagged messages */ + int msgnotreadyet; /* which msg "new" in pager, -1 if none */ + +diff -pruN -x'*.orig' mutt-1.5.20/muttlib.c mutt-1.5.20-trash/muttlib.c +--- mutt-1.5.20/muttlib.c 2009-05-18 20:11:35.000000000 -0400 ++++ mutt-1.5.20-trash/muttlib.c 2009-07-23 09:44:40.000000000 -0400 +@@ -1460,7 +1460,9 @@ int mutt_save_confirm (const char *s, st + + if (magic > 0 && !mx_access (s, W_OK)) + { +- if (option (OPTCONFIRMAPPEND)) ++ if (option (OPTCONFIRMAPPEND) && ++ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0))) ++ /* if we're appending to the trash, there's no point in asking */ + { + snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s); + if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO) +diff -pruN -x'*.orig' mutt-1.5.20/mx.c mutt-1.5.20-trash/mx.c +--- mutt-1.5.20/mx.c 2009-06-11 00:29:41.000000000 -0400 ++++ mutt-1.5.20-trash/mx.c 2009-07-23 09:44:40.000000000 -0400 +@@ -773,6 +773,54 @@ static int sync_mailbox (CONTEXT *ctx, i + return rc; + } + ++/* move deleted mails to the trash folder */ ++static int trash_append (CONTEXT *ctx) ++{ ++ CONTEXT *ctx_trash; ++ int i = 0; ++ struct stat st, stc; ++ ++ if (!TrashPath || !ctx->deleted || ++ (ctx->magic == M_MAILDIR && option (OPTMAILDIRTRASH))) ++ return 0; ++ ++ for (;i < ctx->msgcount && (!ctx->hdrs[i]->deleted || ++ ctx->hdrs[i]->appended); i++); ++ if (i == ctx->msgcount) ++ return 0; /* nothing to be done */ ++ ++ if (mutt_save_confirm (TrashPath, &st) != 0) ++ { ++ mutt_error _("message(s) not deleted"); ++ return -1; ++ } ++ ++ if (lstat (ctx->path, &stc) == 0 && stc.st_ino == st.st_ino ++ && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev) ++ return 0; /* we are in the trash folder: simple sync */ ++ ++ if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL) ++ { ++ for (i = 0 ; i < ctx->msgcount ; i++) ++ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended ++ && !ctx->hdrs[i]->purged ++ && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1) ++ { ++ mx_close_mailbox (ctx_trash, NULL); ++ return -1; ++ } ++ ++ mx_close_mailbox (ctx_trash, NULL); ++ } ++ else ++ { ++ mutt_error _("Can't open trash folder"); ++ return -1; ++ } ++ ++ return 0; ++} ++ + /* save changes and close mailbox */ + int mx_close_mailbox (CONTEXT *ctx, int *index_hint) + { +@@ -909,6 +957,7 @@ int mx_close_mailbox (CONTEXT *ctx, int + if (mutt_append_message (&f, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN) == 0) + { + mutt_set_flag (ctx, ctx->hdrs[i], M_DELETE, 1); ++ mutt_set_flag (ctx, ctx->hdrs[i], M_APPENDED, 1); + } + else + { +@@ -931,6 +980,14 @@ int mx_close_mailbox (CONTEXT *ctx, int + return 0; + } + ++ /* copy mails to the trash before expunging */ ++ if (purge && ctx->deleted) ++ if (trash_append (ctx) != 0) ++ { ++ ctx->closing = 0; ++ return -1; ++ } ++ + #ifdef USE_IMAP + /* allow IMAP to preserve the deleted flag across sessions */ + if (ctx->magic == M_IMAP) +@@ -1130,6 +1187,12 @@ int mx_sync_mailbox (CONTEXT *ctx, int * + msgcount = ctx->msgcount; + deleted = ctx->deleted; + ++ if (purge && ctx->deleted) ++ { ++ if (trash_append (ctx) == -1) ++ return -1; ++ } ++ + #ifdef USE_IMAP + if (ctx->magic == M_IMAP) + rc = imap_sync_mailbox (ctx, purge, index_hint); +diff -pruN -x'*.orig' mutt-1.5.20/pager.c mutt-1.5.20-trash/pager.c +--- mutt-1.5.20/pager.c 2009-06-03 16:48:31.000000000 -0400 ++++ mutt-1.5.20-trash/pager.c 2009-07-23 09:44:40.000000000 -0400 +@@ -2309,12 +2309,15 @@ search_next: + MAYBE_REDRAW (redraw); + break; + ++ case OP_PURGE_MESSAGE: + case OP_DELETE: + CHECK_MODE(IsHeader (extra)); + CHECK_READONLY; + CHECK_ACL(M_ACL_DELETE, _("delete message")); + + mutt_set_flag (Context, extra->hdr, M_DELETE, 1); ++ mutt_set_flag (Context, extra->hdr, M_PURGED, ++ ch != OP_PURGE_MESSAGE ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, extra->hdr, M_TAG, 0); + redraw = REDRAW_STATUS | REDRAW_INDEX; +@@ -2641,6 +2644,7 @@ search_next: + CHECK_ACL(M_ACL_DELETE, _("undelete message")); + + mutt_set_flag (Context, extra->hdr, M_DELETE, 0); ++ mutt_set_flag (Context, extra->hdr, M_PURGED, 0); + redraw = REDRAW_STATUS | REDRAW_INDEX; + if (option (OPTRESOLVE)) + { +@@ -2656,9 +2660,11 @@ search_next: + CHECK_ACL(M_ACL_DELETE, _("undelete message(s)")); + + r = mutt_thread_set_flag (extra->hdr, M_DELETE, 0, ++ ch == OP_UNDELETE_THREAD ? 0 : 1) ++ + mutt_thread_set_flag (extra->hdr, M_PURGED, 0, + ch == OP_UNDELETE_THREAD ? 0 : 1); + +- if (r != -1) ++ if (r > -1) + { + if (option (OPTRESOLVE)) + { +diff -pruN -x'*.orig' mutt-1.5.20/pattern.c mutt-1.5.20-trash/pattern.c +--- mutt-1.5.20/pattern.c 2009-06-03 16:48:31.000000000 -0400 ++++ mutt-1.5.20-trash/pattern.c 2009-07-23 09:44:40.000000000 -0400 +@@ -1347,8 +1347,10 @@ int mutt_pattern_func (int op, char *pro + { + switch (op) + { +- case M_DELETE: + case M_UNDELETE: ++ mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_PURGED, ++ 0); ++ case M_DELETE: + mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE, + (op == M_DELETE)); + break; +diff -pruN -x'*.orig' mutt-1.5.20/postpone.c mutt-1.5.20-trash/postpone.c +--- mutt-1.5.20/postpone.c 2009-06-13 17:28:37.000000000 -0400 ++++ mutt-1.5.20-trash/postpone.c 2009-07-23 09:44:40.000000000 -0400 +@@ -276,6 +276,9 @@ int mutt_get_postponed (CONTEXT *ctx, HE + /* finished with this message, so delete it. */ + mutt_set_flag (PostContext, h, M_DELETE, 1); + ++ /* and consider it saved, so that it won't be moved to the trash folder */ ++ mutt_set_flag (PostContext, h, M_APPENDED, 1); ++ + /* update the count for the status display */ + PostCount = PostContext->msgcount - PostContext->deleted; + diff -urN mutt-devel/files/patch-02 mutt-devel-1.5.21-ja.2/files/patch-02 --- mutt-devel/files/patch-02 2012-07-14 22:54:48.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-02 2013-01-02 23:57:27.000000000 +0900 @@ -9,3 +9,24 @@ install-data-local: makedoc-all instdoc $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 +@@ -70,9 +70,6 @@ + $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \ + done + -$(INSTALL) -m 644 manual.txt $(DESTDIR)$(docdir) +- -for f in $(HTML_DOCFILES) ; do \ +- $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir) ; \ +- done + $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist + -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \ + mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \ +@@ -103,9 +100,7 @@ + + check: + manual.txt: manual.html +- -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ || \ +- LC_ALL=C w3m -dump manual.html > $@ || \ +- LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@ ++ -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ + + Muttrc: stamp-doc-rc + diff -urN mutt-devel/files/patch-05 mutt-devel-1.5.21-ja.2/files/patch-05 --- mutt-devel/files/patch-05 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-05 2013-01-02 23:57:27.000000000 +0900 @@ -0,0 +1,43 @@ +--- curs_lib.c.old Wed Sep 1 19:39:20 1999 ++++ curs_lib.c Sun Sep 26 23:47:03 1999 +@@ -156,6 +156,16 @@ + def = 0; + break; + } ++ else if (tolower(ch.ch) == 'y') ++ { ++ def = 1; ++ break; ++ } ++ else if (tolower(ch.ch) == 'n') ++ { ++ def = 0; ++ break; ++ } + else + { + BEEP(); +@@ -413,8 +423,9 @@ + { + event_t ch; + int choice; +- char *p; ++ char *p, *nletters; + ++ nletters = _(letters); + mvaddstr (LINES - 1, 0, prompt); + clrtoeol (); + FOREVER +@@ -428,6 +439,12 @@ + } + else + { ++ p = strchr (nletters, ch.ch); ++ if (p) ++ { ++ choice = p - nletters + 1; ++ break; ++ } + p = strchr (letters, ch.ch); + if (p) + { diff -urN mutt-devel/files/patch-08 mutt-devel-1.5.21-ja.2/files/patch-08 --- mutt-devel/files/patch-08 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-08 2013-01-02 23:57:27.000000000 +0900 @@ -0,0 +1,10 @@ +--- doc/Muttrc.orig Sat May 13 08:30:44 2000 ++++ doc/Muttrc Sat May 13 08:32:05 2000 +@@ -629,6 +629,7 @@ + # Type: boolean + # Default: yes + # ++set followup_to=no + # + # Controls whether or not the Mail-Followup-To header field is + # generated when sending mail. When set, Mutt will generate this diff -urN mutt-devel/files/patch-Makefile.am mutt-devel-1.5.21-ja.2/files/patch-Makefile.am --- mutt-devel/files/patch-Makefile.am 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-Makefile.am 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,13 @@ +--- Makefile.am.orig 2008-05-19 19:00:44.000000000 +0200 ++++ Makefile.am 2008-05-19 19:03:20.000000000 +0200 +@@ -136,10 +136,6 @@ + + install-data-local: + $(srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir) +- $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir)/mime.types.dist +- -if [ ! -f $(DESTDIR)$(sysconfdir)/mime.types ]; then \ +- $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir); \ +- fi + + uninstall-local: + for i in mime.types ; do \ diff -urN mutt-devel/files/patch-bdb mutt-devel-1.5.21-ja.2/files/patch-bdb --- mutt-devel/files/patch-bdb 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-bdb 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,11 @@ +--- configure.ac.orig 2009-06-09 08:50:33.000000000 +0200 ++++ configure.ac 2010-01-27 18:15:31.000000000 +0100 +@@ -976,7 +976,7 @@ + bdbpfx="$bdbpfx $d/$v" + done + done +- BDB_VERSIONS="db-4 db4 db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db ''" ++ BDB_VERSIONS="db-4 db4 db-5 db5 db-5.2 db5.2 db52 db-5.1 db5.1 db51 db-5.0 db5.0 db50 db-4.8 db4.8 db48 db-4.7 db4.7 db47 db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db ''" + AC_MSG_CHECKING([for BerkeleyDB > 4.0]) + for d in $bdbpfx; do + BDB_INCLUDE_DIR="" diff -urN mutt-devel/files/patch-color-eol mutt-devel-1.5.21-ja.2/files/patch-color-eol --- mutt-devel/files/patch-color-eol 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-color-eol 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,62 @@ +--- mutt.h.orig Fri Jun 4 13:35:59 2004 ++++ mutt.h Fri Jun 4 13:49:26 2004 +@@ -350,6 +350,7 @@ + OPTBEEPNEW, + OPTBOUNCEDELIVERED, + OPTCHECKNEW, ++ OPTCOLORAFTEREOL, + OPTCOLLAPSEUNREAD, + OPTCONFIRMAPPEND, + OPTCONFIRMCREATE, +--- init.h.orig Fri Jun 4 13:35:56 2004 ++++ init.h Fri Jun 4 13:45:43 2004 +@@ -315,6 +315,12 @@ + ** \fIcheck_new\fP is \fIunset\fP, no check for new mail is performed + ** while the mailbox is open. + */ ++ { "color_after_eol", DT_BOOL, R_NONE, OPTCOLORAFTEREOL, 1 }, ++ /* ++ ** .pp ++ ** When \fIset\fP, Mutt will color a line after the last character extending ++ ** to the end of the window. ++ */ + { "collapse_unread", DT_BOOL, R_NONE, OPTCOLLAPSEUNREAD, 1 }, + /* + ** .pp +--- pager.c.orig Sat Jun 5 09:13:33 2004 ++++ pager.c Sat Jun 5 09:12:31 2004 +@@ -1392,7 +1392,7 @@ + * ncurses does an implicit clrtoeol() when you do addch('\n') so we have + * to make sure to reset the color *after* that + */ +- if (flags & M_SHOWCOLOR) ++ if (option (OPTCOLORAFTEREOL) && (flags & M_SHOWCOLOR)) + { + m = ((*lineInfo)[n].continuation) ? ((*lineInfo)[n].syntax)[0].first : n; + if ((*lineInfo)[m].type == MT_COLOR_HEADER) +@@ -1406,6 +1406,16 @@ + #endif + } + ++ /* ++ * reset the color back to normal. This *must* come before the ++ * addch('\n') for the color not to be filled to the right margin. ++ */ ++ if (!option (OPTCOLORAFTEREOL) && (flags & M_SHOWCOLOR)) ++ { ++ SETCOLOR(MT_COLOR_NORMAL); ++ BKGDSET(MT_COLOR_NORMAL); ++ } ++ + /* ncurses always wraps lines when you get to the right side of the + * screen, but S-Lang seems to only wrap if the next character is *not* + * a newline (grr!). +@@ -1420,7 +1430,7 @@ + * addch('\n'), otherwise the color for this line will not be + * filled to the right margin. + */ +- if (flags & M_SHOWCOLOR) ++ if (option (OPTCOLORAFTEREOL) && (flags & M_SHOWCOLOR)) + { + SETCOLOR(MT_COLOR_NORMAL); + BKGDSET(MT_COLOR_NORMAL); diff -urN mutt-devel/files/patch-configure.ac mutt-devel-1.5.21-ja.2/files/patch-configure.ac --- mutt-devel/files/patch-configure.ac 2012-07-14 22:54:48.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-configure.ac 2012-07-22 18:15:04.000000000 +0900 @@ -1,5 +1,5 @@ --- configure.ac.orig 2010-08-24 09:34:21.000000000 -0700 -+++ configure.ac 2012-05-03 18:35:26.000000000 -0700 ++++ configure.ac 2012-05-03 18:14:34.000000000 -0700 @@ -29,6 +29,2 @@ AC_ISC_POSIX -AM_C_PROTOTYPES diff -urN mutt-devel/files/patch-contrib-Makefile.am mutt-devel-1.5.21-ja.2/files/patch-contrib-Makefile.am --- mutt-devel/files/patch-contrib-Makefile.am 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-contrib-Makefile.am 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,11 @@ +--- contrib/Makefile.am.orig Tue Jul 18 20:04:14 2006 ++++ contrib/Makefile.am Wed Aug 30 16:15:04 2006 +@@ -2,7 +2,7 @@ + + subdir = contrib + +-SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \ ++SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp6.rc Tin.rc \ + sample.muttrc sample.mailcap sample.muttrc-tlr \ + colors.default colors.linux smime.rc \ + ca-bundle.crt smime_keys_test.pl diff -urN mutt-devel/files/patch-crypt-gpgme.c mutt-devel-1.5.21-ja.2/files/patch-crypt-gpgme.c --- mutt-devel/files/patch-crypt-gpgme.c 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-crypt-gpgme.c 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,10 @@ +--- ./crypt-gpgme.c.orig 2009-07-01 21:28:51.000000000 -0400 ++++ ./crypt-gpgme.c 2009-07-01 21:31:52.000000000 -0400 +@@ -342,6 +342,7 @@ + gpgme_error_t err; + gpgme_ctx_t ctx; + ++ gpgme_check_version (NULL); + if (!GpgmeLocaleSet) + { + gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL)); diff -urN mutt-devel/files/patch-date-conditional mutt-devel-1.5.21-ja.2/files/patch-date-conditional --- mutt-devel/files/patch-date-conditional 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-date-conditional 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,147 @@ +--- PATCHES~ never ++++ PATCHES Thu Jun 13 16:25:05 CDT 2002 +@@ -0,0 +1 @@ ++dgc.deepif.1 +diff -Pur mutt-1.5.1-base/muttlib.c mutt-1.5.1/muttlib.c +--- muttlib.c Tue Mar 26 16:47:06 2002 ++++ muttlib.c Thu Jun 13 15:28:20 2002 +@@ -978,6 +978,12 @@ + count = 0; + while (count < sizeof (ifstring) && *src && *src != '?' && *src != '&') + { ++ if (*src == '\\') ++ { ++ src++; ++ if (!*src) ++ break; ++ } + *cp++ = *src++; + count++; + } +@@ -990,7 +996,13 @@ + count = 0; + while (count < sizeof (elsestring) && *src && *src != '?') + { +- *cp++ = *src++; ++ if (*src == '\\') ++ { ++ src++; ++ if (!*src) ++ break; ++ } ++ *cp++ = *src++; + count++; + } + *cp = 0; +Index: PATCHES +=================================================================== +--- PATCHES (revision 22) ++++ PATCHES (revision 22) +@@ -0,0 +1 @@ ++patch-1.5.0.ats.date_conditional.1 +Index: muttlib.c +=================================================================== +--- muttlib.c (revision 22) ++++ muttlib.c (revision 22) +@@ -944,7 +944,16 @@ + if (*src == '?') + { + flags |= M_FORMAT_OPTIONAL; +- src++; ++ ch = *(++src); /* save the character to switch on */ ++ cp = prefix; ++ ++src; ++ count = 0; ++ while (count < sizeof (prefix) && *src != '?') ++ { ++ *cp++ = *src++; ++ count++; ++ } ++ *cp = 0; + } + else + { +@@ -960,12 +969,12 @@ + count++; + } + *cp = 0; +- } + +- if (!*src) +- break; /* bad format */ ++ if (!*src) ++ break; /* bad format */ + +- ch = *src++; /* save the character to switch on */ ++ ch = *src++; /* save the character to switch on */ ++ } + + if (flags & M_FORMAT_OPTIONAL) + { +--- hdrline.c.orig Tue Jun 29 15:01:28 2004 ++++ hdrline.c Tue Jun 29 15:02:59 2004 +@@ -316,6 +316,64 @@ + const char *cp; + struct tm *tm; + time_t T; ++ int i = 0, invert = 0; ++ ++ if (optional && (op == '[' || op == '(')) { ++ char *is; ++ int d; ++ T = time(NULL); ++ tm = localtime(&T); ++ d = (T + tm->tm_gmtoff) % 86400; ++ T -= (op == '(') ? hdr->received : hdr->date_sent; ++ ++ is = (char *)prefix; ++ if( *is == '>' ) { ++ invert = 1; ++ ++is; ++ } ++ ++ while( *is && *is != '?' ) { ++ int t = strtol (is, &is, 10); ++ switch (*(is++)) { ++ case '?': ++ break; ++ case 'y': ++ t *= 365 * 24 * 60 * 60; ++ break; ++ case 'M': ++ t *= 30 * 24 * 60 * 60; ++ break; ++ case 'w': ++ t *= 7 * 24 * 60 * 60; ++ break; ++ case 'd': ++ t *= 24 * 60 * 60; ++ break; ++ case 't': ++ if (t > 1) { ++ t = (t-1) * 24 * 60 * 60; ++ } else { ++ t = 0; ++ } ++ t += d; ++ break; ++ case 'h': ++ t *= 60 * 60; ++ break; ++ case 'm': ++ t *= 60; ++ break; ++ } ++ i += t; ++ } ++ ++ if (i < 0) ++ i *= -1; ++ ++ if( (T > i || T < -1*i) ^ invert ) ++ optional = 0; ++ break; ++ } + + p = dest; + diff -urN mutt-devel/files/patch-doc-manual.xml.head mutt-devel-1.5.21-ja.2/files/patch-doc-manual.xml.head --- mutt-devel/files/patch-doc-manual.xml.head 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-doc-manual.xml.head 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,10 @@ +--- doc/manual.xml.head.orig 2009-06-22 08:35:06.000000000 +0200 ++++ doc/manual.xml.head 2009-06-22 08:37:31.000000000 +0200 +@@ -1,6 +1,6 @@ + + ++ "/usr/local/share/xml/docbook/4.2/docbookx.dtd"> + + + diff -urN mutt-devel/files/patch-examples mutt-devel-1.5.21-ja.2/files/patch-examples --- mutt-devel/files/patch-examples 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-examples 2013-01-02 23:57:27.000000000 +0900 @@ -0,0 +1,109 @@ +--- contrib/Makefile.am.orig Tue Jul 18 20:04:14 2006 ++++ contrib/Makefile.am Wed Aug 30 16:05:33 2006 +@@ -1,6 +1,7 @@ + # $Id: Makefile.am,v 3.1 2006/07/18 18:04:14 brendan Exp $ + + subdir = contrib ++samplesdir = @samplesdir@ + + SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \ + sample.muttrc sample.mailcap sample.muttrc-tlr \ +@@ -14,12 +15,12 @@ + iconv/make.sh + + install-data-local: +- $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir)/samples $(DESTDIR)$(docdir)/samples/iconv ++ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(samplesdir) $(DESTDIR)$(samplesdir)/iconv + for f in $(SAMPLES) ; do \ +- $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir)/samples ; \ ++ $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(samplesdir) ; \ + done + for f in $(srcdir)/iconv/*.rc ; do \ +- $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir)/samples/iconv ; \ ++ $(INSTALL) -m 644 $$f $(DESTDIR)$(samplesdir)/iconv ; \ + done + + uninstall-local: +--- init.h.orig 2009-02-06 13:27:52.000000000 +0100 ++++ init.h 2009-02-06 13:34:09.000000000 +0100 +@@ -1808,9 +1808,8 @@ + ** .pp + ** For examples on how to configure these formats for the various versions + ** of PGP which are floating around, see the pgp and gpg sample configuration files in +- ** the \fCsamples/\fP subdirectory which has been installed on your system +- ** alongside the documentation. +- ** (PGP only) ++ ** the \fCshare/examples/mutt/\fP subdirectory which has been installed on ++ ** your system. (PGP only) + */ + { "pgp_getkeys_command", DT_STR, R_NONE, UL &PgpGetkeysCommand, 0}, + /* +@@ -2017,9 +2016,8 @@ + ** .de + ** .pp + ** For examples on how to configure these formats, see the \fCsmime.rc\fP in +- ** the \fCsamples/\fP subdirectory which has been installed on your system +- ** alongside the documentation. +- ** (S/MIME only) ++ ** the \fCshare/examples/mutt/\fP subdirectory which has been installed on ++ ** your system. (S/MIME only) + */ + { "smime_verify_command", DT_STR, R_NONE, UL &SmimeVerifyCommand, 0}, + /* +--- INSTALL.orig Mon Nov 25 15:16:46 2002 ++++ INSTALL Wed Mar 26 15:59:57 2003 +@@ -225,13 +225,13 @@ + need to tell mutt about implementation-defined names for some + character sets. Sample configuration files for various systems can + be found in the directory contrib/iconv/ in this source +-distribution, and will be installed in the samples/iconv directory ++distribution, and will be installed in the share/examples/mutt/iconv directory + as part of mutt's documentation. + + In order to use these sample configuration files, just put a line + like + +- source /usr/local/doc/mutt/samples/iconv/iconv.osf1-4.0d.rc ++ source /usr/local/share/examples/mutt/iconv/iconv.osf1-4.0d.rc + + into your system's global Muttrc, which normally resides in /etc or + /usr/local/etc. +--- doc/manual.txt.orig 2009-06-14 20:54:56.000000000 +0200 ++++ doc/manual.txt 2009-06-22 15:11:26.000000000 +0200 +@@ -3225,9 +3225,9 @@ + shows that arguments can be quoted: the script will receive the expanded string + between the single quotes as the only argument. + +-A practical example is the mutt_xtitle script installed in the samples +-subdirectory of the Mutt documentation: it can be used as filter for +-$status_format to set the current terminal's title, if supported. ++A practical example is the mutt_xtitle script installed in the ++share/examples/mutt/ subdirectory of the Mutt documentation: it can be used as ++filter for $status_format to set the current terminal's title, if supported. + + 29.4. Padding + +@@ -7740,8 +7740,8 @@ + + For examples on how to configure these formats for the various versions of PGP + which are floating around, see the pgp and gpg sample configuration files in +-the samples/ subdirectory which has been installed on your system alongside the +-documentation. (PGP only) ++the share/examples/mutt/ subdirectory which has been installed on your system. ++(PGP only) + + 3.158. pgp_decrypt_command + +@@ -8751,9 +8751,9 @@ + | |$smime_ca_location?. | + +-----------------------------------------------------------------------------+ + +-For examples on how to configure these formats, see the smime.rc in the samples +-/ subdirectory which has been installed on your system alongside the +-documentation. (S/MIME only) ++For examples on how to configure these formats, see the smime.rc in the ++share/examples/mutt/ subdirectory which has been installed on your system. ++(S/MIME only) + + 3.244. smime_decrypt_use_default_key + diff -urN mutt-devel/files/patch-gnutls-CN-validation mutt-devel-1.5.21-ja.2/files/patch-gnutls-CN-validation --- mutt-devel/files/patch-gnutls-CN-validation 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-gnutls-CN-validation 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,29 @@ +--- mutt_ssl_gnutls.c.orig ++++ mutt_ssl_gnutls.c +@@ -999,6 +999,7 @@ + unsigned int cert_list_size = 0; + gnutls_certificate_status certstat; + int certerr, i, preauthrc, savedcert, rc = 0; ++ int rcpeer; + + if (gnutls_auth_get_type (state) != GNUTLS_CRD_CERTIFICATE) + { +@@ -1024,6 +1025,9 @@ + for (i = 0; i < cert_list_size; i++) { + rc = tls_check_preauth(&cert_list[i], certstat, conn->account.host, i, + &certerr, &savedcert); ++ if (i == 0) ++ rcpeer = rc; ++ + preauthrc += rc; + + if (savedcert) +@@ -1049,7 +1053,7 @@ + dprint (1, (debugfile, "error trusting certificate %d: %d\n", i, rc)); + + certstat = tls_verify_peers (state); +- if (!certstat) ++ if (!certstat && !rcpeer) + return 1; + } + } diff -urN mutt-devel/files/patch-imap-message.c mutt-devel-1.5.21-ja.2/files/patch-imap-message.c --- mutt-devel/files/patch-imap-message.c 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-imap-message.c 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,15 @@ +This patch fixes a segfault that happens when the IMAP server sends some +additional flags for the same message ID, see upstream bug +http://bugs.mutt.org/3288 + +--- imap/message.c ++++ imap/message.c +@@ -288,7 +288,7 @@ + continue; + } + /* May receive FLAGS updates in a separate untagged response (#2935) */ +- if (idx < ctx->msgcount) ++ if (ctx->hdrs[idx] != NULL) + { + dprint (2, (debugfile, "imap_read_headers: message %d is not new\n", + h.sid)); diff -urN mutt-devel/files/patch-init.c mutt-devel-1.5.21-ja.2/files/patch-init.c --- mutt-devel/files/patch-init.c 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-init.c 2003-05-03 16:44:15.000000000 +0900 @@ -0,0 +1,39 @@ +--- init.c.orig Wed Jul 24 10:41:29 2002 ++++ init.c Sat May 3 08:46:29 2003 +@@ -1707,7 +1707,11 @@ + void mutt_init (int skip_sys_rc, LIST *commands) + { + struct passwd *pw; ++#if __FreeBSD_version < 500000 ++ char nodename[STRING]; ++#else + struct utsname utsname; ++#endif + char *p, buffer[STRING], error[STRING]; + int i, default_rc = 0, need_pause = 0; + BUFFER err; +@@ -1765,16 +1769,21 @@ + #endif + + /* And about the host... */ ++#if __FreeBSD_version < 500000 ++ gethostname(nodename, sizeof (nodename)); ++#else + uname (&utsname); ++ strfcpy (nodename, utsname.nodename, sizeof (nodename)); ++#endif + /* some systems report the FQDN instead of just the hostname */ +- if ((p = strchr (utsname.nodename, '.'))) ++ if ((p = strchr (nodename, '.'))) + { +- Hostname = mutt_substrdup (utsname.nodename, p); ++ Hostname = mutt_substrdup (nodename, p); + p++; + strfcpy (buffer, p, sizeof (buffer)); /* save the domain for below */ + } + else +- Hostname = safe_strdup (utsname.nodename); ++ Hostname = safe_strdup (nodename); + + #ifndef DOMAIN + #define DOMAIN buffer diff -urN mutt-devel/files/patch-mktemp mutt-devel-1.5.21-ja.2/files/patch-mktemp --- mutt-devel/files/patch-mktemp 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-mktemp 2013-01-02 23:57:27.000000000 +0900 @@ -0,0 +1,23 @@ +--- muttlib.c.orig 2010-09-19 09:58:24.000000000 +0200 ++++ muttlib.c 2010-09-19 10:36:26.000000000 +0200 +@@ -788,14 +788,15 @@ + + void _mutt_mktemp (char *s, size_t slen, const char *src, int line) + { +- size_t n = snprintf (s, slen, "%s/mutt-%s-%d-%d-%ld%ld", NONULL (Tempdir), NONULL (Hostname), +- (int) getuid (), (int) getpid (), random (), random ()); ++ size_t n = snprintf (s, slen, "%s/mutt-%s-XXXXXXXX", NONULL (Tempdir), NONULL (Hostname)); + if (n >= slen) + dprint (1, (debugfile, "%s:%d: ERROR: insufficient buffer space to hold temporary filename! slen=%zu but need %zu\n", + src, line, slen, n)); +- dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); +- if (unlink (s) && errno != ENOENT) +- dprint (1, (debugfile, "%s:%d: ERROR: unlink(\"%s\"): %s (errno %d)\n", src, line, s, strerror (errno), errno)); ++ if (mktemp (s)) { ++ dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); ++ } else { ++ dprint (1, (debugfile, "%s:%d: ERROR: mktemp(\"%s\"): %s (errno %d)\n", src, line, s, strerror (errno), errno)); ++ } + } + + void mutt_free_alias (ALIAS **p) diff -urN mutt-devel/files/patch-nbsp mutt-devel-1.5.21-ja.2/files/patch-nbsp --- mutt-devel/files/patch-nbsp 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-nbsp 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,22 @@ +diff --git a/pager.c b/pager.c +--- pager.c ++++ pager.c +@@ -1187,10 +1187,17 @@ + last_special = special; + } + +- if (IsWPrint (wc)) ++ if (IsWPrint (wc) || (Charset_is_utf8 && wc == 0x00A0)) + { + if (wc == ' ') + space = ch; ++ else if (Charset_is_utf8 && wc == 0x00A0) ++ { ++ /* Convert non-breaking space to normal space. The local variable ++ * `space' is not set here so that the caller of this function won't ++ * attempt to wrap at this character. */ ++ wc = ' '; ++ } + t = wcwidth (wc); + if (col + t > wrap_cols) + break; diff -urN mutt-devel/files/patch-pgp mutt-devel-1.5.21-ja.2/files/patch-pgp --- mutt-devel/files/patch-pgp 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-pgp 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,134 @@ +--- crypt-gpgme.c~ 2010-09-10 07:41:33.584316201 +1000 ++++ crypt-gpgme.c 2010-09-10 08:22:32.948976728 +1000 +@@ -2003,12 +2003,14 @@ + { + if (!mutt_strncmp ("-----BEGIN PGP ", buf, 15)) + { +- if (!mutt_strcmp ("MESSAGE-----\n", buf + 15)) ++ if (!mutt_strcmp ("MESSAGE-----\n", buf + 15) || ++ !mutt_strcmp ("MESSAGE-----\r\n", buf + 15)) + { + enc = 1; + break; + } +- else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15)) ++ else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) || ++ !mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15)) + { + sgn = 1; + break; +@@ -2128,7 +2130,8 @@ + continue; + } + +- if (!mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n")) ++ if (!mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") || ++ !mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\r\n")) + break; + + if (armor_header) +@@ -2196,14 +2199,17 @@ + clearsign = 0; + start_pos = last_pos; + +- if (!mutt_strcmp ("MESSAGE-----\n", buf + 15)) ++ if (!mutt_strcmp ("MESSAGE-----\n", buf + 15) || ++ !mutt_strcmp ("MESSAGE-----\r\n", buf + 15)) + needpass = 1; +- else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15)) ++ else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) || ++ !mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15)) + { + clearsign = 1; + needpass = 0; + } +- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15)) ++ else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) || ++ !mutt_strcmp ("PUBLIC KEY BLOCK-----\r\n", buf + 15)) + { + needpass = 0; + pgp_keyblock = 1; +--- pgp.c~ 2009-05-31 03:20:08.000000000 +1000 ++++ pgp.c 2010-09-10 08:27:40.317064142 +1000 +@@ -219,7 +219,8 @@ + continue; + } + +- if (mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0) ++ if (mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0 || ++ mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\r\n") == 0) + break; + + if (armor_header) +@@ -287,14 +288,17 @@ + clearsign = 0; + start_pos = last_pos; + +- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0) ++ if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0 || ++ mutt_strcmp ("MESSAGE-----\r\n", buf + 15) == 0) + needpass = 1; +- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) ++ else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0 || ++ mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15) == 0) + { + clearsign = 1; + needpass = 0; + } +- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15)) ++ else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) || ++ !mutt_strcmp ("PUBLIC KEY BLOCK-----\r\n", buf + 15)) + { + needpass = 0; + pgp_keyblock = 1; +@@ -327,10 +331,14 @@ + + fputs (buf, tmpfp); + +- if ((needpass && mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0) || +- (!needpass +- && (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0 +- || mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0))) ++ if ((needpass && ++ (mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0 || ++ mutt_strcmp ("-----END PGP MESSAGE-----\r\n", buf) == 0)) || ++ (!needpass && ++ (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0 || ++ mutt_strcmp ("-----END PGP SIGNATURE-----\r\n", buf) == 0 || ++ mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0 || ++ mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\r\n",buf) == 0))) + break; + /* remember optional Charset: armor header as defined by RfC4880 */ + if (mutt_strncmp ("Charset: ", buf, 9) == 0) +@@ -554,11 +562,14 @@ + { + if (mutt_strncmp ("-----BEGIN PGP ", buf, 15) == 0) + { +- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0) ++ if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0 || ++ mutt_strcmp ("MESSAGE-----\r\n", buf + 15) == 0) + enc = 1; +- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0) ++ else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0 || ++ mutt_strcmp ("SIGNED MESSAGE-----\r\n", buf + 15) == 0) + sgn = 1; +- else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0) ++ else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0 || ++ mutt_strcmp ("PUBLIC KEY BLOCK-----\r\n", buf + 15) == 0) + key = 1; + } + } +@@ -1067,9 +1078,11 @@ + */ + while (fgets (buffer, sizeof (buffer) - 1, pgpout) != NULL) + { +- if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0) ++ if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0 || ++ mutt_strcmp ("-----BEGIN PGP MESSAGE-----\r\n", buffer) == 0) + fputs ("-----BEGIN PGP SIGNATURE-----\n", fp); +- else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0) ++ else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0 || ++ mutt_strcmp("-----END PGP MESSAGE-----\r\n", buffer) == 0) + fputs ("-----END PGP SIGNATURE-----\n", fp); + else + fputs (buffer, fp); diff -urN mutt-devel/files/patch-smime-self mutt-devel-1.5.21-ja.2/files/patch-smime-self --- mutt-devel/files/patch-smime-self 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-smime-self 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,66 @@ +Base: http://descolada.dartmouth.edu/mutt/patch-1.5.4+-ow.smime-encrypt-self.2 +--- crypt.c 7 Mar 2003 08:23:27 -0000 3.17 ++++ crypt.c 7 May 2003 14:57:00 -0000 +@@ -246,8 +246,18 @@ + if ((WithCrypto & APPLICATION_SMIME) + && (msg->security & APPLICATION_SMIME)) + { +- if (!(tmp_pbody = crypt_smime_build_smime_entity (tmp_smime_pbody, +- keylist))) ++ char *new_keylist = keylist; ++ ++ if (SmimeDefaultKey && query_quadoption(OPT_SMIMEENCRYPTSELF, _("Encrypt message to S/MIME Default Key also?")) == M_YES) ++ { ++ int size = mutt_strlen(keylist) + mutt_strlen (SmimeDefaultKey) + 2; /* +1 for NULL, +1 for \n */ ++ new_keylist = safe_malloc(size); ++ snprintf(new_keylist, size, "%s%s\n", keylist, SmimeDefaultKey); ++ } ++ ++ tmp_pbody = crypt_smime_build_smime_entity (tmp_smime_pbody, new_keylist); ++ safe_free((void **)&new_keylist); ++ if (!tmp_pbody) + { + /* signed ? free it! */ + return (-1); +--- init.h.orig 2009-02-06 13:43:14.000000000 +0100 ++++ init.h 2009-02-06 13:46:53.000000000 +0100 +@@ -1957,6 +1957,11 @@ + ** not used. + ** (S/MIME only) + */ ++ { "smime_encrypt_self", DT_QUAD, R_NONE, OPT_SMIMEENCRYPTSELF, 1 }, ++ /* ++ ** .pp ++ ** Encrypt the message to smime_default_key too. ++ */ + { "smime_encrypt_with", DT_STR, R_NONE, UL &SmimeCryptAlg, 0 }, + /* + ** .pp +diff -u -d -b -B -r3.18 mutt.h +--- mutt.h.orig Thu Nov 6 08:15:51 2003 ++++ mutt.h Thu Nov 6 08:16:43 2003 +@@ -275,6 +275,7 @@ + OPT_DELETE, + OPT_FORWEDIT, + OPT_INCLUDE, ++ OPT_SMIMEENCRYPTSELF, + OPT_MFUPTO, + OPT_MIMEFWD, + OPT_MIMEFWDREST, +--- contrib/smime.rc.orig Sat Mar 2 13:11:35 2002 ++++ contrib/smime.rc Sat Oct 25 17:56:28 2003 +@@ -23,9 +23,12 @@ + + # The (default) keyfile for signing/decrypting. Uncomment the following + # line and replace the keyid with your own. +-set smime_default_key="12345678.0" ++# set smime_default_key="12345678.0" ++# Uncomment the following line in addition to the one above, if you want that ++# all encrypted messages are also encrypted with your default key. ++# set smime_encrypt_self = yes + +-# Uncommen to make mutt ask what key to use when trying to decrypt a message. ++# Uncomment to make mutt ask what key to use when trying to decrypt a message. + # It will use the default key above (if that was set) else. + # unset smime_decrypt_use_default_key + diff -urN mutt-devel/files/patch-smime-sender mutt-devel-1.5.21-ja.2/files/patch-smime-sender --- mutt-devel/files/patch-smime-sender 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-smime-sender 2012-07-22 18:15:04.000000000 +0900 @@ -0,0 +1,54 @@ +--- commands.c.orig Thu Mar 20 20:37:21 2003 ++++ commands.c Thu Mar 20 20:40:29 2003 +@@ -178,7 +178,7 @@ + { + if (cur->security & GOODSIGN) + { +- if (!crypt_smime_verify_sender(cur)) ++ if (option(OPTSMIMENOSENDER) || !crypt_smime_verify_sender(cur)) + mutt_message ( _("S/MIME signature successfully verified.")); + else + mutt_error ( _("S/MIME certificate owner does not match sender.")); +--- init.h.orig2 Fri May 31 10:14:05 2002 ++++ init.h Fri May 31 10:54:55 2002 +@@ -1435,6 +1435,15 @@ + ** This flag controls wether you want to be asked to enter a label for a certificate + ** about to be added to the database or not. It is set by default. + */ ++ { "smime_dont_check_sender", DT_BOOL, R_NONE, OPTSMIMENOSENDER, 0 }, ++ /* ++ ** .pp ++ ** This flag controls wether you want the skip the check for the sender's ++ ** email address against the email address stored in the certificate. ++ ** This can be useful if most of your email senders use SMIMEv3 which no ++ ** longer needs email-addresses as part of the certificates. ++ ** It is not set by default. ++ */ + { "smime_decrypt_use_default_key", DT_BOOL, R_NONE, OPTSDEFAULTDECRYPTKEY, 1 }, + /* + ** .pp +--- mutt.h.orig2 Fri May 31 10:14:06 2002 ++++ mutt.h Fri May 31 10:24:03 2002 +@@ -453,6 +453,7 @@ + #ifdef HAVE_SMIME + OPTSMIMEISDEFAULT, + OPTASKCERTLABEL, ++ OPTSMIMENOSENDER, + OPTSDEFAULTDECRYPTKEY, + #endif + #ifdef HAVE_PGP +--- contrib/smime.rc.orig Sat Oct 25 17:57:35 2003 ++++ contrib/smime.rc Sat Oct 25 17:57:35 2003 +@@ -6,8 +6,11 @@ + # will be the default method unless the following option is set + set smime_is_default + +-# Uncoment this if you don't want to set labels for certificates you add. ++# Uncomment this if you don't want to set labels for certificates you add. + # unset smime_ask_cert_label ++ ++# Uncomment this if you don't want to check for sender's email address ++# set smime_dont_check_sender = yes + + # Passphrase expiration + set smime_timeout=300 diff -urN mutt-devel/files/patch-threadcomplete mutt-devel-1.5.21-ja.2/files/patch-threadcomplete --- mutt-devel/files/patch-threadcomplete 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/files/patch-threadcomplete 2013-01-02 23:57:28.000000000 +0900 @@ -0,0 +1,37 @@ +--- mutt.h.orig2 Mon Sep 6 09:24:17 2004 ++++ mutt.h Mon Sep 6 09:27:04 2004 +@@ -212,6 +212,7 @@ + M_LIMIT, + M_EXPIRED, + M_SUPERSEDED, ++ M_THREADCOMPLETE, + + /* actions for mutt_pattern_comp/mutt_pattern_exec */ + M_AND, +--- pattern.c.orig2 Sun Sep 18 15:17:46 2005 ++++ pattern.c Sun Sep 18 15:19:48 2005 +@@ -54,6 +54,7 @@ + } + Flags[] = + { ++ { 'a', M_THREADCOMPLETE, 0, NULL }, + { 'A', M_ALL, 0, NULL }, + { 'b', M_BODY, M_FULL_MSG, eat_regexp }, + { 'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp }, +@@ -1139,6 +1140,16 @@ + 2, h->env->to, h->env->cc)); + case M_LIST: /* known list, subscribed or not */ + return (pat->not ^ mutt_is_list_cc (pat->alladdr, h->env->to, h->env->cc)); ++ case M_THREADCOMPLETE: ++ { static pattern_t tmp; ++ static short pattern_set = 0; ++ if(! pattern_set) { ++ memset (&tmp, 0, sizeof (tmp)); ++ tmp.op = M_TAG; ++ pattern_set = 1; ++ } ++ return (pat->not ^ (h->env && match_threadcomplete(&tmp, flags, ctx, h->thread, 1, 1, 1, 1))); ++ } + case M_SUBSCRIBED_LIST: + return (pat->not ^ mutt_is_list_recipient (pat->alladdr, h->env->to, h->env->cc)); + case M_PERSONAL_RECIP: diff -urN mutt-devel/pkg-descr mutt-devel-1.5.21-ja.2/pkg-descr --- mutt-devel/pkg-descr 2012-07-14 22:54:48.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/pkg-descr 2012-11-27 10:54:06.000000000 +0900 @@ -1,9 +1,16 @@ -Mutt is a small but very powerful text-based MIME mail client. Mutt -is highly configurable, and is well suited to the mail power user with -advanced features like key bindings, keyboard macros, mail threading, -regular expression searches and a powerful pattern matching language -for selecting groups of messages. +Mutt -- "The Mongrel of Mail User Agents" (part Elm, part Pine, part mh, +part slrn, part everything else) is an interactive screen-oriented mailer +program that supersedes Elm, Pine, mail and mailx. +Features include color support, message threading, MIME support (including +RFC1522 support for encoded headers), customizable key bindings, POP3, +Delivery Status Notification (DSN) support, and PGP/MIME. + +WWW: http://www.mutt.org/ +Mutt User Information: http://www.math.fu-berlin.de/~guckes/mutt/ + + -- David (obrien@cs.ucdavis.edu) +----------------------------------------------------------------------- This is japanized development version. see /usr/local/share/doc/mutt/README.JA-PATCH diff -urN mutt-devel/pkg-plist mutt-devel-1.5.21-ja.2/pkg-plist --- mutt-devel/pkg-plist 2012-07-14 22:54:48.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/pkg-plist 1970-01-01 09:00:00.000000000 +0900 @@ -1,118 +0,0 @@ -bin/flea -bin/mutt -bin/mutt_dotlock -bin/muttbug -bin/pgpewrap -bin/pgpring -bin/smime_keys -@unexec if cmp -s %D/etc/Muttrc.dist %D/etc/Muttrc; then rm -f %D/etc/Muttrc; fi -etc/Muttrc.dist -etc/mime.types.dist -%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT -%%PORTDOCS%%%%DOCSDIR%%/ChangeLog -%%PORTDOCS%%%%DOCSDIR%%/GPL -%%PORTDOCS%%%%DOCSDIR%%/INSTALL -%%PORTDOCS%%%%DOCSDIR%%/INSTALL.JA-PATCH.ja -%%PORTDOCS%%%%DOCSDIR%%/NEWS -%%PORTDOCS%%%%DOCSDIR%%/PGP-Notes.txt -%%PORTDOCS%%%%DOCSDIR%%/README -%%PORTDOCS%%%%DOCSDIR%%/README.JA-PATCH.ja -%%PORTDOCS%%%%DOCSDIR%%/README.SECURITY -%%PORTDOCS%%%%DOCSDIR%%/README.SSL -%%PORTDOCS%%%%DOCSDIR%%/TODO -%%PORTDOCS%%%%DOCSDIR%%/applying-patches.txt -%%PORTDOCS%%%%DOCSDIR%%/devel-notes.txt -%%PORTDOCS%%%%DOCSDIR%%/manual-ja-patch.ja.txt -%%PORTDOCS%%%%DOCSDIR%%/usage-japanese.ja.txt -%%PORTDOCS%%%%DOCSDIR%%/INSTALL.JA-PATCH.ja.html -%%PORTDOCS%%%%DOCSDIR%%/README.JA-PATCH.ja.html -%%PORTDOCS%%%%DOCSDIR%%/advancedusage.html -%%PORTDOCS%%%%DOCSDIR%%/configuration.html -%%PORTDOCS%%%%DOCSDIR%%/gettingstarted.html -%%PORTDOCS%%%%DOCSDIR%%/index.html -%%PORTDOCS%%%%DOCSDIR%%/intro.html -%%PORTDOCS%%%%DOCSDIR%%/manual.html -%%PORTDOCS%%%%DOCSDIR%%/mimesupport.html -%%PORTDOCS%%%%DOCSDIR%%/miscellany.html -%%PORTDOCS%%%%DOCSDIR%%/reference.html -%%PORTDOCS%%%%DOCSDIR%%/manual-ja-patch.ja.html -%%PORTDOCS%%%%DOCSDIR%%/usage-japanese.ja.html -%%PORTDOCS%%%%DOCSDIR%%/manual.txt -%%PORTDOCS%%%%DOCSDIR%%/manual_ja.html -%%PORTDOCS%%%%DOCSDIR%%/manual_ja.sgml -%%PORTDOCS%%%%DOCSDIR%%/manual_ja.tex -%%PORTDOCS%%%%DOCSDIR%%/manual_ja.txt -%%PORTDOCS%%%%DOCSDIR%%/manual.ja.html -%%PORTDOCS%%%%DOCSDIR%%/manual.ja.sgml -%%PORTDOCS%%%%DOCSDIR%%/manual.ja.txt -%%PORTDOCS%%%%DOCSDIR%%/optionalfeatures.html -%%PORTDOCS%%%%DOCSDIR%%/patch-notes.txt -%%PORTDOCS%%%%DOCSDIR%%/samples/Mush.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/Pine.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/Tin.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/ca-bundle.crt -%%PORTDOCS%%%%DOCSDIR%%/samples/gpg.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.aix-3.2.5.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.aix-4.1.5.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.aix-4.2.0.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.aix-4.3.2.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.freebsd-3.3.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.glibc-2.1.3.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.glibc-2.1.90.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.hpux-10.01.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.hpux-10.20.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.hpux-11.00.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.irix-6.5.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.osf1-4.0a.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.osf1-4.0d.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.solaris-2.4.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.solaris-2.5.1.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.solaris-2.6-cjk.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.solaris-2.6.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/iconv/iconv.solaris-2.7.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/pgp2.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/pgp5.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/pgp6.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/sample.mailcap -%%PORTDOCS%%%%DOCSDIR%%/samples/sample.muttrc -%%PORTDOCS%%%%DOCSDIR%%/samples/sample.muttrc-tlr -%%PORTDOCS%%%%DOCSDIR%%/samples/smime.rc -%%PORTDOCS%%%%DOCSDIR%%/samples/smime_keys_test.pl -%%PORTDOCS%%%%DOCSDIR%%/samples/colors.default -%%PORTDOCS%%%%DOCSDIR%%/samples/colors.linux -%%PORTDOCS%%%%DOCSDIR%%/samples/mutt_xtitle -%%PORTDOCS%%%%DOCSDIR%%/security.html -%%PORTDOCS%%%%DOCSDIR%%/smime-notes.txt -%%PORTDOCS%%%%DOCSDIR%%/tuning.html -%%NLS%%share/locale/bg/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/ca/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/cs/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/da/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/de/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/el/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/eo/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/es/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/et/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/eu/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/fr/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/ga/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/gl/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/hu/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/id/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/it/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/ja/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/ko/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/lt/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/nl/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/pl/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/pt_BR/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/ru/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/sk/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/sv/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/tr/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/uk/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/zh_CN/LC_MESSAGES/mutt.mo -%%NLS%%share/locale/zh_TW/LC_MESSAGES/mutt.mo -%%PORTDOCS%%@dirrm %%DOCSDIR%%/samples/iconv -%%PORTDOCS%%@dirrm %%DOCSDIR%%/samples -%%PORTDOCS%%@dirrm %%DOCSDIR%% diff -urN mutt-devel/scripts/generate-plist mutt-devel-1.5.21-ja.2/scripts/generate-plist --- mutt-devel/scripts/generate-plist 1970-01-01 09:00:00.000000000 +0900 +++ mutt-devel-1.5.21-ja.2/scripts/generate-plist 2013-04-08 00:29:11.000000000 +0900 @@ -0,0 +1,189 @@ +#!/bin/sh +# +# $FreeBSD: ports/mail/mutt/scripts/generate-plist,v 1.2 2012/11/17 05:59:06 svnexp Exp $ +# +# set -x + +trap ' cleanup ' 0 +trap ' echo_signal; exit 1' 1 2 3 15 + +tmp_first=$(mktemp ${WRKDIR:=/tmp}/.plist-first.XXXXXXXXXX) +tmp_last=$(mktemp ${WRKDIR}/.plist-last.XXXXXXXXXX) + +cleanup() { + rm -f $tmp_first $tmp_last +} + +echo_signal() { + echo "Got Signal -- aborting `basename $0`" +} + +PATH=/bin:/usr/bin + +cat > $tmp_first <> $tmp_first <> $tmp_first <> $tmp_first + fi + + if [ "$MUTT_HTML" = "yes" ]; then + echo "%%DOCSDIR%%/html/advancedusage.html" >> $tmp_first + echo "%%DOCSDIR%%/html/configuration.html" >> $tmp_first + echo "%%DOCSDIR%%/html/gettingstarted.html" >> $tmp_first + echo "%%DOCSDIR%%/html/index.html" >> $tmp_first + echo "%%DOCSDIR%%/html/intro.html" >> $tmp_first + echo "%%DOCSDIR%%/html/manual.html" >> $tmp_first + echo "%%DOCSDIR%%/html/mimesupport.html" >> $tmp_first + echo "%%DOCSDIR%%/html/miscellany.html" >> $tmp_first + echo "%%DOCSDIR%%/html/optionalfeatures.html" >> $tmp_first + echo "%%DOCSDIR%%/html/reference.html" >> $tmp_first + echo "%%DOCSDIR%%/html/security.html" >> $tmp_first + echo "%%DOCSDIR%%/html/tuning.html" >> $tmp_first + echo "%%DOCSDIR%%/html/INSTALL.JA-PATCH.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/README.JA-PATCH.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/INSTALL.JA-PATCH.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/README.JA-PATCH.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/manual-ja-patch.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/manual.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/manual_ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/usage-japanese.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/manual-ja-patch.ja.html" >> $tmp_first + echo "%%DOCSDIR%%/html/usage-japanese.ja.html" >> $tmp_first + if [ "$MUTT_COMPRESSED_FOLDERS" = "yes" ]; then + echo "%%DOCSDIR%%/html/compressed-folders.html" >> $tmp_first + fi + echo "@dirrm %%DOCSDIR%%/html" >> $tmp_last + fi + cat >> $tmp_last <Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 11:50:23 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C9F5ECDD; Sun, 12 May 2013 11:50:23 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A300D833; Sun, 12 May 2013 11:50:23 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CBoN59083229; Sun, 12 May 2013 11:50:23 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CBoNwU083228; Sun, 12 May 2013 11:50:23 GMT (envelope-from edwin) Date: Sun, 12 May 2013 11:50:23 GMT Message-Id: <201305121150.r4CBoNwU083228@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, jgh@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178530: japanese/mutt-devel update to 1.5.21-ja.2 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 11:50:23 -0000 Synopsis: japanese/mutt-devel update to 1.5.21-ja.2 Responsible-Changed-From-To: freebsd-ports-bugs->jgh Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 11:50:23 UTC 2013 Responsible-Changed-Why: jgh@ wants this port PRs (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178530 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 12:20:02 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id CCD26793 for ; Sun, 12 May 2013 12:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id BECCF940 for ; Sun, 12 May 2013 12:20:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CCK1oj087932 for ; Sun, 12 May 2013 12:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CCK13l087931; Sun, 12 May 2013 12:20:01 GMT (envelope-from gnats) Date: Sun, 12 May 2013 12:20:01 GMT Message-Id: <201305121220.r4CCK13l087931@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Alastair Hogge Subject: Re: ports/178502: Chase upstream releases for mail/dovecot2* X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Alastair Hogge List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 12:20:02 -0000 The following reply was made to PR ports/178502; it has been noted by GNATS. From: Alastair Hogge To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/178502: Chase upstream releases for mail/dovecot2* Date: Sun, 12 May 2013 20:13:26 +0800 Hi, $LICENSE for mail/dovecot2/ in the diff is incorrect per COPYING[0]. An improved diff follows: Index: Makefile =================================================================== --- Makefile (revision 317908) +++ Makefile (working copy) @@ -2,13 +2,16 @@ # $FreeBSD$ PORTNAME= dovecot -PORTVERSION= 2.1.16 +PORTVERSION= 2.2.1 CATEGORIES= mail ipv6 MASTER_SITES= http://www.dovecot.org/releases/${PORTVERSION:R}/ MAINTAINER= bra@fsn.hu COMMENT= Secure and compact IMAP and POP3 servers +LICENSE= BSD LGPLv2 MIT +LICENSE_COMB= multi + LATEST_LINK= dovecot2 CONFLICTS= dovecot-1.[0-9]* [0]: http://hg.dovecot.org/dovecot-2.2/file/62874b472dc6/COPYING Cheers -- Q: What regular expression do you often see around Christmas? A: [^L] From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 13:20:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id E084FB77 for ; Sun, 12 May 2013 13:20:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id C7A2AB1C for ; Sun, 12 May 2013 13:20:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CDK0e7098899 for ; Sun, 12 May 2013 13:20:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CDK0Z3098898; Sun, 12 May 2013 13:20:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 13:20:00 GMT Resent-Message-Id: <201305121320.r4CDK0Z3098898@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Claudius Herder Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E5AF2AF4 for ; Sun, 12 May 2013 13:15:11 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id BE4A9AFF for ; Sun, 12 May 2013 13:15:11 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4CDFAOF088204 for ; Sun, 12 May 2013 13:15:10 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4CDFAtH088203; Sun, 12 May 2013 13:15:10 GMT (envelope-from nobody) Message-Id: <201305121315.r4CDFAtH088203@oldred.FreeBSD.org> Date: Sun, 12 May 2013 13:15:10 GMT From: Claudius Herder To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178531: [PATCH] sysutils/munin-master: remove interactive questions from pkg-install and pkg-deinstall X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 13:20:01 -0000 >Number: 178531 >Category: ports >Synopsis: [PATCH] sysutils/munin-master: remove interactive questions from pkg-install and pkg-deinstall >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun May 12 13:20:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Claudius Herder >Release: FreeBSD 9.1-STABLE FreeBSD 9.1-STABLE #1 r250556: Sun May 12 11:38:33 CEST >Organization: >Environment: >Description: I would like to see the interactive questions removed from munin-master. Answering the same questions with every update is quite annoying and forces commands like portmaster -af to wait for userinput everytime >How-To-Repeat: >Fix: Patch attached with submission follows: ===> Updating from SVN Updating '.': At revision 317952. ===> Generating patch ===> Viewing diff with more Index: pkg-deinstall =================================================================== --- pkg-deinstall (revision 317952) +++ pkg-deinstall (working copy) @@ -1,34 +1,5 @@ #! /bin/sh -ask() { - local question default answer - - question=$1 - default=$2 - if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then - read -p "${question} [${default}]? " answer - fi - if [ x${answer} = x ]; then - answer=${default} - fi - echo ${answer} -} - -yesno() { - local dflt question answer - - question=$1 - dflt=$2 - while :; do - answer=$(ask "${question}" "${dflt}") - case "${answer}" in - [Yy]*) return 0;; - [Nn]*) return 1;; - esac - echo "Please answer yes or no." - done -} - delete_crontab_entries() { local b e b=$1 @@ -63,10 +34,9 @@ exit 0 elif [ "$ENTRY" = "$DEFAULT" ]; then delnewsyslog - elif yesno "You have changed the default munin-master entry in \"/etc/newsyslog.conf\". -Do you want me to delete it?" y; then - delnewsyslog - echo "Done." + else + echo "You have changed the default munin-master entry in \"/etc/newsyslog.conf\"". + echo "If you deinstall munin-master permanently, you have to manually remove it" fi } Index: pkg-install =================================================================== --- pkg-install (revision 317952) +++ pkg-install (working copy) @@ -1,34 +1,5 @@ #! /bin/sh -ask() { - local question default answer - - question=$1 - default=$2 - if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then - read -p "${question} [${default}]? " answer - fi - if [ x${answer} = x ]; then - answer=${default} - fi - echo ${answer} -} - -yesno() { - local dflt question answer - - question=$1 - dflt=$2 - while :; do - answer=$(ask "${question}" "${dflt}") - case "${answer}" in - [Yy]*) return 0;; - [Nn]*) return 1;; - esac - echo "Please answer yes or no." - done -} - create_crontab_entries() { local b e b=$1 ===> Done >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 13:20:09 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1797EBAA; Sun, 12 May 2013 13:20:09 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id E616DB20; Sun, 12 May 2013 13:20:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CDK8B3099032; Sun, 12 May 2013 13:20:08 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CDK873099031; Sun, 12 May 2013 13:20:08 GMT (envelope-from edwin) Date: Sun, 12 May 2013 13:20:08 GMT Message-Id: <201305121320.r4CDK873099031@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, flo@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178531: [PATCH] sysutils/munin-master: remove interactive questions from pkg-install and pkg-deinstall X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 13:20:09 -0000 Synopsis: [PATCH] sysutils/munin-master: remove interactive questions from pkg-install and pkg-deinstall Responsible-Changed-From-To: freebsd-ports-bugs->flo Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 13:20:08 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178531 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 13:30:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 82716CFC for ; Sun, 12 May 2013 13:30:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 68BCBB6A for ; Sun, 12 May 2013 13:30:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CDU0oa000705 for ; Sun, 12 May 2013 13:30:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CDU0j2000704; Sun, 12 May 2013 13:30:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 13:30:00 GMT Resent-Message-Id: <201305121330.r4CDU0j2000704@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Claudius Herder Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id F0AF5CE6 for ; Sun, 12 May 2013 13:28:20 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id E1D9DB61 for ; Sun, 12 May 2013 13:28:20 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4CDSKdK063682 for ; Sun, 12 May 2013 13:28:20 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4CDSKNu063681; Sun, 12 May 2013 13:28:20 GMT (envelope-from nobody) Message-Id: <201305121328.r4CDSKNu063681@oldred.FreeBSD.org> Date: Sun, 12 May 2013 13:28:20 GMT From: Claudius Herder To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178532: [PATCH] sysutils/munin-node: add PORT_OPTIONS for SNMP and CIDR, remove interactive questions from pkg-install and pkg-deinstall, remove initscripts from pkg-install X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 13:30:00 -0000 >Number: 178532 >Category: ports >Synopsis: [PATCH] sysutils/munin-node: add PORT_OPTIONS for SNMP and CIDR, remove interactive questions from pkg-install and pkg-deinstall, remove initscripts from pkg-install >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun May 12 13:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Claudius Herder >Release: FreeBSD 9.1-STABLE FreeBSD 9.1-STABLE #1 r250556: Sun May 12 11:38:33 CEST >Organization: >Environment: >Description: Add PORT_OPTIONS for optional SNMP and CIDR dependencies. I would like to see the interactive questions removed from munin-node. Answering the same questions with every update is quite annoying and forces commands like portmaster -af to wait for userinput everytime. In my opinion running munin-node-configure --shell |sh -x with every update is also not optimal. For example I only use postgres_*_ALL, with the current implementation I have to remove > 50 plugins after updating. >How-To-Repeat: >Fix: Patch attached with submission follows: ===> Updating from SVN Updating '.': At revision 317951. ===> Generating patch ===> Viewing diff with more Index: Makefile =================================================================== --- Makefile (revision 317951) +++ Makefile (working copy) @@ -15,14 +15,11 @@ p5-DateTime-HiRes>=0:${PORTSDIR}/devel/p5-DateTime-HiRes \ munin-common>=0:${PORTSDIR}/sysutils/munin-common \ p5-Net-Server>=0:${PORTSDIR}/net/p5-Net-Server \ - p5-Net-SNMP>=0:${PORTSDIR}/net-mgmt/p5-Net-SNMP \ bash:${PORTSDIR}/shells/bash RUN_DEPENDS= p5-Cache-Cache>=0:${PORTSDIR}/devel/p5-Cache-Cache \ p5-DateTime-HiRes>=0:${PORTSDIR}/devel/p5-DateTime-HiRes \ munin-common>=0:${PORTSDIR}/sysutils/munin-common \ p5-Net-Server>=0:${PORTSDIR}/net/p5-Net-Server \ - p5-Net-SNMP>=0:${PORTSDIR}/net-mgmt/p5-Net-SNMP \ - p5-Net-CIDR>=0:${PORTSDIR}/net-mgmt/p5-Net-CIDR \ bash:${PORTSDIR}/shells/bash DISTINFO_FILE= ${MUNIN_DISTINFO} @@ -39,6 +36,22 @@ ALL_TARGET= build-node build-plugins INSTALL_TARGET= install-node-prime install-plugins-prime +OPTIONS_DEFINE= SNMP CIDR +OPTIONS_DEFAULT= SNMP CIDR +SNMP_DESC= Include support for SNMP plugins +CIDR_DESC= Enable support for CIDR notation in munin-node.conf + +.include + +.if ${PORT_OPTIONS:MSNMP} +BUILD_DEPENDS+= p5-Net-SNMP>=0:${PORTSDIR}/net-mgmt/p5-Net-SNMP +RUN_DEPENDS+= p5-Net-SNMP>=0:${PORTSDIR}/net-mgmt/p5-Net-SNMP +.endif + +.if ${PORT_OPTIONS:MCIDR} +RUN_DEPENDS+= p5-Net-CIDR>=0:${PORTSDIR}/net-mgmt/p5-Net-CIDR +.endif + MAN1= munin-node-configure.1 \ munin-node.1 \ munin-run.1 \ Index: files/pkg-message.in =================================================================== --- files/pkg-message.in (revision 317951) +++ files/pkg-message.in (working copy) @@ -17,3 +17,8 @@ %%PREFIX%%/etc/rc.d/munin-node start ******************************************************************** + +For a list of plugins that will probably work run +%%PREFIX%%/sbin/munin-node-configure --suggest +or +%%PREFIX%%/sbin/munin-node-configure --shell | sh -x to install them automatically Index: pkg-deinstall =================================================================== --- pkg-deinstall (revision 317951) +++ pkg-deinstall (working copy) @@ -1,34 +1,5 @@ #! /bin/sh -ask() { - local question default answer - - question=$1 - default=$2 - if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then - read -p "${question} [${default}]? " answer - fi - if [ x${answer} = x ]; then - answer=${default} - fi - echo ${answer} -} - -yesno() { - local dflt question answer - - question=$1 - dflt=$2 - while :; do - answer=$(ask "${question}" "${dflt}") - case "${answer}" in - [Yy]*) return 0;; - [Nn]*) return 1;; - esac - echo "Please answer yes or no." - done -} - stop_process() { STARTSTOP=${PKG_PREFIX}/etc/rc.d/munin-node @@ -51,10 +22,9 @@ exit 0 elif [ "$ENTRY" = "$DEFAULT" ]; then delnewsyslog - elif yesno "You have changed the default munin-node entry in \"/etc/newsyslog.conf\". -Do you want me to delete it?" y; then - delnewsyslog - echo "Done." + else + echo "You have changed the default munin-node entry in \"/etc/newsyslog.conf\"". + echo "If you deinstall munin-node permanently, you have to manually remove it" fi } Index: pkg-install =================================================================== --- pkg-install (revision 317951) +++ pkg-install (working copy) @@ -29,21 +29,6 @@ done } -init_plugins() { - if [ -f /tmp/.munin-node.version ]; then - prevver=$(cat /tmp/.munin-node.version) - fi - - if [ -n "$prevver" ]; then - echo -n "Initializing new plugins.." - ${PKG_PREFIX}/sbin/munin-node-configure --shell --newer "${prevver%-*}" | sh -x - else - echo -n "Initializing plugins.." - ${PKG_PREFIX}/sbin/munin-node-configure --shell | sh -x - fi - echo "done." -} - create_crontab_entries() { local sched prog sched=$1 @@ -65,7 +50,6 @@ } newsyslog() { - if yesno "Would you like me to set up log rotation" y; then if grep -q /var/log/munin/munin-node.log /etc/newsyslog.conf; then : else @@ -73,9 +57,6 @@ /var/log/munin/munin-node.log 644 7 * @T00 Z /var/run/munin/munin-node.pid EOT fi - else - echo "/var/log/munin-node.log will grow without bounds." - fi } @@ -86,7 +67,6 @@ ;; POST-INSTALL) if [ -z "${PACKAGE_BUILDING}" ]; then - init_plugins ${PKG_PREFIX}/etc/rc.d/munin-node start newsyslog fi ===> Done >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 13:30:08 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 268B0D30; Sun, 12 May 2013 13:30:08 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 015E9B6D; Sun, 12 May 2013 13:30:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CDU7o5000848; Sun, 12 May 2013 13:30:07 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CDU7kc000847; Sun, 12 May 2013 13:30:07 GMT (envelope-from edwin) Date: Sun, 12 May 2013 13:30:07 GMT Message-Id: <201305121330.r4CDU7kc000847@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, flo@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178532: [PATCH] sysutils/munin-node: add PORT_OPTIONS for SNMP and CIDR, remove interactive questions from pkg-install and pkg-deinstall, remove initscripts from pkg-install X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 13:30:08 -0000 Synopsis: [PATCH] sysutils/munin-node: add PORT_OPTIONS for SNMP and CIDR, remove interactive questions from pkg-install and pkg-deinstall, remove initscripts from pkg-install Responsible-Changed-From-To: freebsd-ports-bugs->flo Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 13:30:07 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178532 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 13:50:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 0EB022F5 for ; Sun, 12 May 2013 13:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id E8A9DCE5 for ; Sun, 12 May 2013 13:50:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CDo0QY004106 for ; Sun, 12 May 2013 13:50:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CDo0aT004105; Sun, 12 May 2013 13:50:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 13:50:00 GMT Resent-Message-Id: <201305121350.r4CDo0aT004105@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Bartosz Kupidura Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 81AFF2DD for ; Sun, 12 May 2013 13:49:08 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 5B068CD6 for ; Sun, 12 May 2013 13:49:08 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4CDn7oj035018 for ; Sun, 12 May 2013 13:49:07 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4CDn7Sf035014; Sun, 12 May 2013 13:49:07 GMT (envelope-from nobody) Message-Id: <201305121349.r4CDn7Sf035014@oldred.FreeBSD.org> Date: Sun, 12 May 2013 13:49:07 GMT From: Bartosz Kupidura To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178533: [PATCH] nginx+3rd syslog support X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 13:50:01 -0000 >Number: 178533 >Category: ports >Synopsis: [PATCH] nginx+3rd syslog support >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 13:50:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Bartosz Kupidura >Release: 9.1-RELEASE >Organization: >Environment: FreeBSD spof.pl 9.1-RELEASE FreeBSD 9.1-RELEASE #2: Fri Jan 18 22:07:25 CET 2013 root@spof.pl:/usr/obj/usr/src/sys/SPOF amd64 >Description: After enabling SYSLOG_SUPPORT nginx isn't compiled with syslog. extra-patch-syslog_support use "NGX_ENABLE_SYSLOG" which is not defined. # strings work/nginx-1.4.1/objs/nginx|grep syslog configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_stub_status_module --with-pcre --with-syslog --with-syslog-facility=LOG_DAEMON --with-http_ssl_module After changing configure: # strings work/nginx-1.4.1/objs/nginx | grep syslog syslog configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_stub_status_module --with-pcre --with-syslog --with-syslog-facility=LOG_DAEMON --with-http_ssl_module invalid syslog priority "%V" invalid syslog facility "%V" syslog You must set the syslog directive and enable it first. >How-To-Repeat: Build www/nginx with syslog support. >Fix: diff -u /usr/ports/www/nginx/work/nginx-1.4.1/configure /root/configure --- /usr/ports/www/nginx/work/nginx-1.4.1/configure 2013-05-06 12:26:49.000000000 +0200 +++ /root/configure 2013-05-12 15:41:54.087373650 +0200 @@ -107,5 +107,6 @@ have=NGX_USER value="\"$NGX_USER\"" . auto/define have=NGX_GROUP value="\"$NGX_GROUP\"" . auto/define +have=NGX_ENABLE_SYSLOG value="1" . auto/define . auto/summary >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 14:10:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C5BA89BC for ; Sun, 12 May 2013 14:10:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id AB650D80 for ; Sun, 12 May 2013 14:10:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CEA0Fk007917 for ; Sun, 12 May 2013 14:10:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CEA0fs007906; Sun, 12 May 2013 14:10:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 14:10:00 GMT Resent-Message-Id: <201305121410.r4CEA0fs007906@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, John Marino Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id CD302994 for ; Sun, 12 May 2013 14:06:17 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id A5E4ED6B for ; Sun, 12 May 2013 14:06:17 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4CE6Hmk094506 for ; Sun, 12 May 2013 14:06:17 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4CE6Ht6094505; Sun, 12 May 2013 14:06:17 GMT (envelope-from nobody) Message-Id: <201305121406.r4CE6Ht6094505@oldred.FreeBSD.org> Date: Sun, 12 May 2013 14:06:17 GMT From: John Marino To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178534: sysutils/gkrelltop: master_site disappeared (university account), checksum failure X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 14:10:00 -0000 >Number: 178534 >Category: ports >Synopsis: sysutils/gkrelltop: master_site disappeared (university account), checksum failure >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 14:10:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: John Marino >Release: >Organization: >Environment: >Description: sysutils/gkrelltop has a MASTER_SITES value of: http://psychology.rutgers.edu/~zaimi/html/gkrelltop/ This university account now redirects to the main page. It falls over the FreeBSD backup. >How-To-Repeat: >Fix: find a new MASTER_SITES or remove it completely. >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 14:10:09 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 35DA79EF; Sun, 12 May 2013 14:10:09 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 112D3D82; Sun, 12 May 2013 14:10:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CEA8Xd008031; Sun, 12 May 2013 14:10:08 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CEA8pN008030; Sun, 12 May 2013 14:10:08 GMT (envelope-from edwin) Date: Sun, 12 May 2013 14:10:08 GMT Message-Id: <201305121410.r4CEA8pN008030@freefall.freebsd.org> To: draco@marino.st, edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178534: sysutils/gkrelltop: master_site disappeared (university account), checksum failure X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 14:10:09 -0000 Synopsis: sysutils/gkrelltop: master_site disappeared (university account), checksum failure State-Changed-From-To: open->feedback State-Changed-By: edwin State-Changed-When: Sun May 12 14:10:08 UTC 2013 State-Changed-Why: Awaiting maintainers feedback (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178534 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 14:20:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 158E4BBA for ; Sun, 12 May 2013 14:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 065C7DCF for ; Sun, 12 May 2013 14:20:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CEK010010647 for ; Sun, 12 May 2013 14:20:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CEK0oS010646; Sun, 12 May 2013 14:20:00 GMT (envelope-from gnats) Date: Sun, 12 May 2013 14:20:00 GMT Message-Id: <201305121420.r4CEK0oS010646@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Edwin Groothuis Subject: Re: ports/178534: sysutils/gkrelltop: master_site disappeared (university account), checksum failure X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Edwin Groothuis List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 14:20:01 -0000 The following reply was made to PR ports/178534; it has been noted by GNATS. From: Edwin Groothuis To: david@pinko.net Cc: bug-followup@FreeBSD.org Subject: Re: ports/178534: sysutils/gkrelltop: master_site disappeared (university account), checksum failure Date: Sun, 12 May 2013 14:10:08 UT Maintainer of sysutils/gkrelltop, Please note that PR ports/178534 has just been submitted. If it contains a patch for an upgrade, an enhancement or a bug fix you agree on, reply to this email stating that you approve the patch and a committer will take care of it. The full text of the PR can be found at: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/178534 -- Edwin Groothuis via the GNATS Auto Assign Tool edwin@FreeBSD.org From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 15:10:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9681A529 for ; Sun, 12 May 2013 15:10:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 78B13F22 for ; Sun, 12 May 2013 15:10:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CFA0Nb019713 for ; Sun, 12 May 2013 15:10:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CFA0R2019712; Sun, 12 May 2013 15:10:00 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 15:10:00 GMT Resent-Message-Id: <201305121510.r4CFA0R2019712@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, John Marino Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id A2A87359 for ; Sun, 12 May 2013 15:02:38 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 9575CEED for ; Sun, 12 May 2013 15:02:38 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4CF2cjE084166 for ; Sun, 12 May 2013 15:02:38 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4CF2coe084163; Sun, 12 May 2013 15:02:38 GMT (envelope-from nobody) Message-Id: <201305121502.r4CF2coe084163@oldred.FreeBSD.org> Date: Sun, 12 May 2013 15:02:38 GMT From: John Marino To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178535: textproc/docbook-sk: RUN_DEPENDS misconfigured for pkgng X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 15:10:00 -0000 >Number: 178535 >Category: ports >Synopsis: textproc/docbook-sk: RUN_DEPENDS misconfigured for pkgng >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 12 15:10:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: John Marino >Release: >Organization: >Environment: >Description: The docbook-sk port defines the RUN_DEPENDS as a full path including the $PREFIX. pkg doesn't seem to like it and emits an error. The fix is just give the binary without a path to RUN_DEPENDS example before the patch is applied: ============================= ===> Installing existing package /usr/packages/All/docbook-xsl-1.76.1.txz Installing docbook-xsl-1.76.1...Installing docbook-sk-4.1.2_4...missing dependency xmlcatmgr-2.2 Failed to install the following 1 package(s): /usr/packages/All/docbook-xsl-1.76.1.txz ===> Returning to build of roxterm-2.7.1 same example after the patch is applied: ============================= Installing docbook-xsl-1.76.1...Installing docbook-sk-4.1.2_4...Installing xmlcatmgr-2.2... + Creating /usr/local/share/sgml/catalog + Registering CATALOG catalog.ports (SGML) + Creating /usr/local/share/sgml/catalog.ports + Creating /usr/local/share/xml/catalog + Registering nextCatalog catalog.ports (XML) + Creating /usr/local/share/xml/catalog.ports done done >How-To-Repeat: try to build x11/roxterm in poudriere with pkgng >Fix: Patch attached with submission follows: --- Makefile.orig 2012-11-17 06:01:54.000000000 +0000 +++ Makefile @@ -15,7 +15,7 @@ DISTNAME= docbkx${PORTVERSION:S/.//g} MAINTAINER= gnome@FreeBSD.org COMMENT= XML version of the DocBook DTD version controlled for ScrollKeeper -RUN_DEPENDS= ${XMLCATMGR}:${PORTSDIR}/textproc/xmlcatmgr +RUN_DEPENDS= xmlcatmgr:${PORTSDIR}/textproc/xmlcatmgr USE_ZIP= yes NO_BUILD= yes >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 15:10:09 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3056A560; Sun, 12 May 2013 15:10:09 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 0B58FF26; Sun, 12 May 2013 15:10:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CFA82w019847; Sun, 12 May 2013 15:10:08 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CFA8VE019846; Sun, 12 May 2013 15:10:08 GMT (envelope-from edwin) Date: Sun, 12 May 2013 15:10:08 GMT Message-Id: <201305121510.r4CFA8VE019846@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, gnome@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178535: textproc/docbook-sk: RUN_DEPENDS misconfigured for pkgng X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 15:10:09 -0000 Synopsis: textproc/docbook-sk: RUN_DEPENDS misconfigured for pkgng Responsible-Changed-From-To: freebsd-ports-bugs->gnome Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 15:10:08 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178535 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 15:16:10 2013 Return-Path: Delivered-To: freebsd-ports-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DE171809; Sun, 12 May 2013 15:16:10 +0000 (UTC) (envelope-from draco@marino.st) Received: from shepard.synsport.net (mail.synsport.com [208.69.230.148]) by mx1.freebsd.org (Postfix) with ESMTP id BCA1CF57; Sun, 12 May 2013 15:16:10 +0000 (UTC) Received: from [192.168.0.21] (unknown [130.255.16.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by shepard.synsport.net (Postfix) with ESMTP id 018AE43BD9; Sun, 12 May 2013 10:16:06 -0500 (CDT) Message-ID: <518FB22F.8040809@marino.st> Date: Sun, 12 May 2013 17:15:59 +0200 From: John Marino User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20120129 Thunderbird/10.0 MIME-Version: 1.0 To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/178535: textproc/docbook-sk: RUN_DEPENDS misconfigured for pkgng References: <201305121510.r4CFA0DY019697@freefall.freebsd.org> In-Reply-To: <201305121510.r4CFA0DY019697@freefall.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 15:16:10 -0000 Actually, it is possible that something else explains this. I have been deleting and recreating xmlcatmgr and it's possible that poudriere built roxterm simultaneously with xmlcatmgr instead of after it. This report may be a red herring. (my apologies if it is) From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 16:17:38 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 10B4459E; Sun, 12 May 2013 16:17:38 +0000 (UTC) (envelope-from crees@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id DC6EF1B5; Sun, 12 May 2013 16:17:37 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CGHbNr034352; Sun, 12 May 2013 16:17:37 GMT (envelope-from crees@freefall.freebsd.org) Received: (from crees@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CGHbB1034351; Sun, 12 May 2013 16:17:37 GMT (envelope-from crees) Date: Sun, 12 May 2013 16:17:37 GMT Message-Id: <201305121617.r4CGHbB1034351@freefall.freebsd.org> To: tota@FreeBSD.org, crees@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org From: crees@FreeBSD.org Subject: Re: ports/178193: [PATCH] Tools/scripts/addport: Fix behavior with -c option X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 16:17:38 -0000 Synopsis: [PATCH] Tools/scripts/addport: Fix behavior with -c option State-Changed-From-To: feedback->closed State-Changed-By: crees State-Changed-When: Sun May 12 16:17:37 UTC 2013 State-Changed-Why: Committed. Thanks! http://www.freebsd.org/cgi/query-pr.cgi?pr=178193 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 16:20:02 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A02BC78D for ; Sun, 12 May 2013 16:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 927671D7 for ; Sun, 12 May 2013 16:20:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CGK27e034474 for ; Sun, 12 May 2013 16:20:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CGK2Cf034472; Sun, 12 May 2013 16:20:02 GMT (envelope-from gnats) Date: Sun, 12 May 2013 16:20:02 GMT Message-Id: <201305121620.r4CGK2Cf034472@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: dfilter@FreeBSD.ORG (dfilter service) Subject: Re: ports/178193: commit references a PR X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: dfilter service List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 16:20:02 -0000 The following reply was made to PR ports/178193; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/178193: commit references a PR Date: Sun, 12 May 2013 16:17:39 +0000 (UTC) Author: crees Date: Sun May 12 16:17:21 2013 New Revision: 317968 URL: http://svnweb.freebsd.org/changeset/ports/317968 Log: Fix -c option PR: ports/178193 Submitted by: tota Modified: head/Tools/scripts/addport Modified: head/Tools/scripts/addport ============================================================================== --- head/Tools/scripts/addport Sun May 12 16:16:56 2013 (r317967) +++ head/Tools/scripts/addport Sun May 12 16:17:21 2013 (r317968) @@ -251,10 +251,11 @@ foreach my $thisdir (@dirs) { # Do commitfile checking but only if the user did not request automatic filling. if (!$autofill) { if (-f $c) { - system("$mv $c $tmpdir/commitfile") or errx(1, "Oops, can't move commitfile!"); + system("$mv $c $tmpdir/commitfile") && errx(1, "Oops, can't move commitfile!"); print "\nRemember, you asked to use a commit file to read for the commit log.\n"; print "This means you'll get a message saying the log message was unchanged or\n"; print "not specified. Just tell it to continue and it will be committed.\n\n"; + $commitfile = "--file $tmpdir/commitfile"; } } else { ## Set up the autofill file. _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org" From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 16:20:03 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1219A78F for ; Sun, 12 May 2013 16:20:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id ED3B81D9 for ; Sun, 12 May 2013 16:20:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CGK2ZZ034485 for ; Sun, 12 May 2013 16:20:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CGK2nj034484; Sun, 12 May 2013 16:20:02 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 16:20:02 GMT Resent-Message-Id: <201305121620.r4CGK2nj034484@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Piotr Florczyk Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 64D0776A for ; Sun, 12 May 2013 16:18:43 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.FreeBSD.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 3D1891CB for ; Sun, 12 May 2013 16:18:43 +0000 (UTC) Received: from oldred.FreeBSD.org ([127.0.1.6]) by oldred.FreeBSD.org (8.14.5/8.14.5) with ESMTP id r4CGIfek020273 for ; Sun, 12 May 2013 16:18:41 GMT (envelope-from nobody@oldred.FreeBSD.org) Received: (from nobody@localhost) by oldred.FreeBSD.org (8.14.5/8.14.5/Submit) id r4CGIfLK020233; Sun, 12 May 2013 16:18:41 GMT (envelope-from nobody) Message-Id: <201305121618.r4CGIfLK020233@oldred.FreeBSD.org> Date: Sun, 12 May 2013 16:18:41 GMT From: Piotr Florczyk To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/178536: mail/rspamd: Fails to build (missing dependency) X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 16:20:03 -0000 >Number: 178536 >Category: ports >Synopsis: mail/rspamd: Fails to build (missing dependency) >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun May 12 16:20:02 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Piotr Florczyk >Release: FreeBSD 9.1 >Organization: NNV Sp. z o.o. >Environment: >Description: During conversion to USES pkgconfig disappeared from dependencies >How-To-Repeat: make build >Fix: Add pkgconfig to USES. >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 16:20:15 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9765A7F2; Sun, 12 May 2013 16:20:15 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 722301DE; Sun, 12 May 2013 16:20:15 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CGKF1I034786; Sun, 12 May 2013 16:20:15 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CGKFoJ034738; Sun, 12 May 2013 16:20:15 GMT (envelope-from edwin) Date: Sun, 12 May 2013 16:20:15 GMT Message-Id: <201305121620.r4CGKFoJ034738@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, vsevolod@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178536: mail/rspamd: Fails to build (missing dependency) X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 16:20:15 -0000 Synopsis: mail/rspamd: Fails to build (missing dependency) Responsible-Changed-From-To: freebsd-ports-bugs->vsevolod Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 16:20:15 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178536 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 17:34:11 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 690A93AD; Sun, 12 May 2013 17:34:11 +0000 (UTC) (envelope-from stefan@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 41118402; Sun, 12 May 2013 17:34:11 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CHYBct050026; Sun, 12 May 2013 17:34:11 GMT (envelope-from stefan@freefall.freebsd.org) Received: (from stefan@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CHYB5C050025; Sun, 12 May 2013 17:34:11 GMT (envelope-from stefan) Date: Sun, 12 May 2013 17:34:11 GMT Message-Id: <201305121734.r4CHYB5C050025@freefall.freebsd.org> To: anders@FreeBSD.org, stefan@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, stefan@FreeBSD.org From: stefan@FreeBSD.org Subject: Re: ports/161278: net/dante: getoutaddr(): address [...] selected, but not set for external interface X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 17:34:11 -0000 Synopsis: net/dante: getoutaddr(): address [...] selected, but not set for external interface Responsible-Changed-From-To: freebsd-ports-bugs->stefan Responsible-Changed-By: stefan Responsible-Changed-When: Sun May 12 17:33:53 UTC 2013 Responsible-Changed-Why: Track this while waiting for submitter's feedback. http://www.freebsd.org/cgi/query-pr.cgi?pr=161278 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 17:40:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9CFAE5ED for ; Sun, 12 May 2013 17:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 7F05D60B for ; Sun, 12 May 2013 17:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CHe10q050231 for ; Sun, 12 May 2013 17:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CHe1Rb050230; Sun, 12 May 2013 17:40:01 GMT (envelope-from gnats) Resent-Date: Sun, 12 May 2013 17:40:01 GMT Resent-Message-Id: <201305121740.r4CHe1Rb050230@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Thierry Thomas Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 56A05395; Sun, 12 May 2013 17:32:29 +0000 (UTC) (envelope-from thierry@pompo.net) Received: from mx1b.lautre.net (etna.lautre.net [80.67.160.72]) by mx1.freebsd.org (Postfix) with ESMTP id E48253F6; Sun, 12 May 2013 17:32:28 +0000 (UTC) Received: from graf.pompo.net (graf.pompo.net [78.225.128.39]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: thierry@pompo.net) by mx1b.lautre.net (Postfix) with ESMTPSA id 476667E0AB; Sun, 12 May 2013 19:32:27 +0200 (CEST) Received: by graf.pompo.net (Postfix, from userid 1001) id BED2742D19AC; Sun, 12 May 2013 19:32:26 +0200 (CEST) Message-Id: <20130512173226.BED2742D19AC@graf.pompo.net> Date: Sun, 12 May 2013 19:32:26 +0200 (CEST) From: Thierry Thomas To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.114 Subject: ports/178538: cad/netgen: chase OpenCascade's upgrade and unbreak. Cc: stephen@FreeBSD.org X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Thierry Thomas List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 17:40:01 -0000 >Number: 178538 >Category: ports >Synopsis: cad/netgen: chase OpenCascade's upgrade and unbreak. >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sun May 12 17:40:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Thierry Thomas >Release: FreeBSD 9.1-STABLE i386 >Organization: Kabbale Eros >Environment: System: FreeBSD graf.pompo.net 9.1-STABLE FreeBSD 9.1-STABLE #0 r248682: Sun Mar 24 18:59:01 CET 2013 thierry@graf.pompo.net:/usr/obj/usr/src/sys/GRAF130324 i386 >Description: Attached is a patch to chase OpenCascade's upgrade to 6.6.0. >How-To-Repeat: N/A >Fix: Please apply the following patch. --- netgen.diff begins here --- diff -urN cad/netgen.orig/Makefile cad/netgen/Makefile --- cad/netgen.orig/Makefile 2013-03-01 17:55:49.000000000 +0100 +++ cad/netgen/Makefile 2013-05-12 11:57:07.000000000 +0200 @@ -3,6 +3,7 @@ PORTNAME= netgen PORTVERSION= 5.0.0 +PORTREVISION= 1 CATEGORIES= cad MASTER_SITES= SF/netgen-mesher/netgen-mesher/${PORTVERSION:S|.0$||}/ @@ -29,14 +30,13 @@ OPTIONS_DEFINE= OCC FFMPEG OCC_DESC= Compile with OpenCascade geometry kernel FFMPEG_DESC= video recording with FFmpeg -OPTIONS_DEFAULT= # OCC Switch it back on when opencascade is updated. +OPTIONS_DEFAULT= OCC .include .if ${PORT_OPTIONS:MOCC} -BROKEN= The opencascade port needs to be updated before OCC will work LIB_DEPENDS+= TKernel.0:${PORTSDIR}/cad/opencascade -CXXFLAGS+= -DOCCGEOMETRY -DOCC63 -DHAVE_WOK_CONFIG_H -DHAVE_CONFIG_H -D${ARCH} -I${LOCALBASE}/OpenCAS/ros/inc +CXXFLAGS+= -DOCCGEOMETRY -DHAVE_CONFIG_H -D${ARCH} -I${LOCALBASE}/include/OpenCASCADE CONFIGURE_ARGS+= --enable-occ .endif diff -urN cad/netgen.orig/files/patch-libsrc_occ_Partition_Inter3d.cxx cad/netgen/files/patch-libsrc_occ_Partition_Inter3d.cxx --- cad/netgen.orig/files/patch-libsrc_occ_Partition_Inter3d.cxx 1970-01-01 01:00:00.000000000 +0100 +++ cad/netgen/files/patch-libsrc_occ_Partition_Inter3d.cxx 2013-05-12 11:32:23.000000000 +0200 @@ -0,0 +1,13 @@ +--- libsrc/occ/Partition_Inter3d.cxx.orig 2012-11-09 16:15:02.000000000 +0100 ++++ libsrc/occ/Partition_Inter3d.cxx 2013-05-12 11:31:45.000000000 +0200 +@@ -243,8 +243,8 @@ + Standard_Integer i, nbExt = anExtPS.NbExt(); + Extrema_POnSurf aPOnSurf; + for (i = 1; i <= nbExt; ++i ) +- if (anExtPS.Value( i ) <= TolE) // V6.3 +- // if (anExtPS.SquareDistance( i ) <= TolE) // V6.5 ++ // if (anExtPS.Value( i ) <= TolE) // V6.3 ++ if (anExtPS.SquareDistance( i ) <= TolE) // V6.5 + { + aPOnSurf = anExtPS.Point( i ); + break; diff -urN cad/netgen.orig/files/patch-libsrc_occ_Partition_Loop2d.cxx cad/netgen/files/patch-libsrc_occ_Partition_Loop2d.cxx --- cad/netgen.orig/files/patch-libsrc_occ_Partition_Loop2d.cxx 1970-01-01 01:00:00.000000000 +0100 +++ cad/netgen/files/patch-libsrc_occ_Partition_Loop2d.cxx 2013-05-12 11:41:36.000000000 +0200 @@ -0,0 +1,13 @@ +--- libsrc/occ/Partition_Loop2d.cxx.orig 2012-11-09 16:15:02.000000000 +0100 ++++ libsrc/occ/Partition_Loop2d.cxx 2013-05-12 11:41:09.000000000 +0200 +@@ -52,6 +52,10 @@ + #include + #include + ++#ifndef PI ++#define PI 3.14159265358979323846 ++#endif ++ + //======================================================================= + //function : Partition_Loop2d + //purpose : diff -urN cad/netgen.orig/files/patch-libsrc_occ_Partition_Spliter.cxx cad/netgen/files/patch-libsrc_occ_Partition_Spliter.cxx --- cad/netgen.orig/files/patch-libsrc_occ_Partition_Spliter.cxx 1970-01-01 01:00:00.000000000 +0100 +++ cad/netgen/files/patch-libsrc_occ_Partition_Spliter.cxx 2013-05-12 11:36:04.000000000 +0200 @@ -0,0 +1,13 @@ +--- libsrc/occ/Partition_Spliter.cxx.orig 2012-11-09 16:15:02.000000000 +0100 ++++ libsrc/occ/Partition_Spliter.cxx 2013-05-12 11:35:38.000000000 +0200 +@@ -1169,8 +1169,8 @@ + for (; j<=nbj && ok; ++j) { + if (Extrema.IsMin(j)) { + hasMin = Standard_True; +- ok = Extrema.Value(j) <= tol; // V6.3 +- // ok = Extrema.SquareDistance(j) <= tol; // V6.5 ++ // ok = Extrema.Value(j) <= tol; // V6.3 ++ ok = Extrema.SquareDistance(j) <= tol; // V6.5 + } + } + } --- netgen.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 17:40:10 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3767A61D; Sun, 12 May 2013 17:40:10 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 12EF460E; Sun, 12 May 2013 17:40:10 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4CHe9s2050308; Sun, 12 May 2013 17:40:09 GMT (envelope-from edwin@freefall.freebsd.org) Received: (from edwin@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4CHe9J2050307; Sun, 12 May 2013 17:40:09 GMT (envelope-from edwin) Date: Sun, 12 May 2013 17:40:09 GMT Message-Id: <201305121740.r4CHe9J2050307@freefall.freebsd.org> To: edwin@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org, stephen@FreeBSD.org From: edwin@FreeBSD.org Subject: Re: ports/178538: cad/netgen: chase OpenCascade's upgrade and unbreak. X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 May 2013 17:40:10 -0000 Synopsis: cad/netgen: chase OpenCascade's upgrade and unbreak. Responsible-Changed-From-To: freebsd-ports-bugs->stephen Responsible-Changed-By: edwin Responsible-Changed-When: Sun May 12 17:40:09 UTC 2013 Responsible-Changed-Why: Over to maintainer (via the GNATS Auto Assign Tool) http://www.freebsd.org/cgi/query-pr.cgi?pr=178538 From owner-freebsd-ports-bugs@FreeBSD.ORG Sun May 12 17:47:58 2013 Return-Path: Delivered-To: freebsd-ports-bugs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 403F86FB; Sun, 12 May 2013 17:47:58 +0000 (UTC) (envelope-from cvs-src@yandex.ru) Received: from forward1h.mail.yandex.net (forward1h.mail.yandex.net [IPv6:2a02:6b8:0:f05::10]) by mx1.freebsd.org (Postfix) with ESMTP id E885C648; Sun, 12 May 2013 17:47:57 +0000 (UTC) Received: from smtp1h.mail.yandex.net (smtp1h.mail.yandex.net [84.201.187.144]) by forward1h.mail.yandex.net (Yandex) with ESMTP id AFA5B9E04FE; Sun, 12 May 2013 21:47:56 +0400 (MSK) Received: from smtp1h.mail.yandex.net (localhost [127.0.0.1]) by smtp1h.mail.yandex.net (Yandex) with ESMTP id 3EC85134005A; Sun, 12 May 2013 21:47:56 +0400 (MSK) Received: from unknown (unknown [178.76.224.133]) by smtp1h.mail.yandex.net (nwsmtp/Yandex) with ESMTP id YrqFuT3zme-ltHqJWqF; Sun, 12 May 2013 21:47:55 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1368380876; bh=WIP43ahfUGr8za5H8bI6L2wFxmB33/LX/RaubDZkAkk=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=syA/rfSc9PQqouHW57ou5kuoXV6owGUCcgUubISQBac6kZpWwbEaXQ1CIzaQUc2ZQ qrItLi5EVRZp7p1jQ0cmXc/Gi/QX4iEVvLRIMt7TWZTMdMYYOYLw7xKeEi6H96M5ZO Y5DdA3UQh9HWHUgb+A/dJxyU9LrvjEmoH8zy6vUQ= Authentication-Results: smtp1h.mail.yandex.net; dkim=pass header.i=@yandex.ru Message-ID: <518FD59C.6050906@yandex.ru> Date: Sun, 12 May 2013 21:47:08 +0400 From: Ruslan Makhmatkhanov User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130418 Thunderbird/17.0.5 MIME-Version: 1.0 To: =?ISO-8859-1?Q?Micka=EBl_Maillot?= Subject: Re: ports/177207: multimedia/xbmc maint update to 12.1 References: <201303260446.r2Q4krwV016245@freefall.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: FreeBSD Ports Mailing List , freebsd-ports-bugs@freebsd.org X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: