From owner-svn-src-user@FreeBSD.ORG  Mon May 10 02:07:43 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 2A535106564A;
	Mon, 10 May 2010 02:07:43 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [69.147.83.44])
	by mx1.freebsd.org (Postfix) with ESMTP id 1B0B68FC13;
	Mon, 10 May 2010 02:07:43 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4A27gG2012552;
	Mon, 10 May 2010 02:07:42 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4A27gZM012550;
	Mon, 10 May 2010 02:07:42 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201005100207.o4A27gZM012550@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Mon, 10 May 2010 02:07:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r207837 - user/dougb/portmaster
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 10 May 2010 02:07:43 -0000

Author: dougb
Date: Mon May 10 02:07:42 2010
New Revision: 207837
URL: http://svn.freebsd.org/changeset/base/207837

Log:
  Improve cross-option error checking for the --packages* options

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Mon May 10 01:23:31 2010	(r207836)
+++ user/dougb/portmaster/portmaster	Mon May 10 02:07:42 2010	(r207837)
@@ -397,21 +397,26 @@ pm_sv             () { [ -n "$PM_SU_VERB
 #=============== End functions we always want to have ===============
 
 packages_init () {
-	local e1 e2
+	local e1 e2 e3
 
 e1="The -P/--packages and -PP/--packages-only options are mutually exclusive"
 e2="The --packages-build option and the -P[P] options are mutually exclusive"
+e3="The --packages-if-newer and -PP/--packages-only options are mutually exclusive"
 
 	case "$1" in
-	first)		[ "$PM_PACKAGES" = only ] && fail $e1
-			[ -n "$PM_PACKAGES_BUILD" ] && fail $e2 ;;
-	only)		[ "$PM_PACKAGES" = first ] && fail $e1
-			[ -n "$PM_PACKAGES_BUILD" ] && fail $e2 ;;
-	build)		case "$PM_PACKAGES" in first|only) fail $e2 ;; esac ;;
-	newer)		[ -z "$PM_PACKAGES" -a -z "$PM_PACKAGES_BUILD" ] && {
-				PM_PACKAGES=newer ; export PM_PACKAGES; } ;;
-	local)		[ -z "$PM_PACKAGES" -a -z "$PM_PACKAGES_BUILD" ] && {
-				PM_PACKAGES=local ; export PM_PACKAGES; } ;;
+	first)	[ "$PM_PACKAGES" = only ] && fail $e1
+		[ -n "$PM_PACKAGES_BUILD" ] && fail $e2
+		[ -z "$PM_PACKAGES" ] && {
+			PM_PACKAGES=first ; export PM_PACKAGES; } ;;
+	only)	[ "$PM_PACKAGES" = first ] && fail $e1
+		[ "$PM_PACKAGES" = newer ] && fail $e3
+		[ -n "$PM_PACKAGES_BUILD" ] && fail $e2 ;;
+	build)	case "$PM_PACKAGES" in first|only) fail $e2 ;; esac ;;
+	newer)	[ "$PM_PACKAGES" = only ] && fail $e3
+		[ -z "$PM_PACKAGES" -a -z "$PM_PACKAGES_BUILD" ] && {
+			PM_PACKAGES=newer ; export PM_PACKAGES; } ;;
+	local)	[ -z "$PM_PACKAGES" -a -z "$PM_PACKAGES_BUILD" ] && {
+			PM_PACKAGES=local ; export PM_PACKAGES; } ;;
 	esac
 }
 
@@ -431,8 +436,7 @@ for var in "$@" ; do
 	case "$var" in
 	-PP[A-Za-z0-9]*|-*[A-Za-z0-9]PP*)
 				fail "The -PP option must stand alone" ;;
-	--packages)		packages_init first
-				PM_PACKAGES=first ; export PM_PACKAGES ;;
+	--packages)		packages_init first ;;
 	-PP|--packages-only)	packages_init only
 				PM_PACKAGES=only ; export PM_PACKAGES ;;
 	--packages-build)	packages_init build