From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 13:56:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1F81BC4F; Fri, 16 Aug 2013 13:56:44 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E67FF2891; Fri, 16 Aug 2013 13:56:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7GDuhfr095698; Fri, 16 Aug 2013 13:56:43 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7GDuhOs095696; Fri, 16 Aug 2013 13:56:43 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308161356.r7GDuhOs095696@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 16 Aug 2013 13:56:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254413 - in head: bin/sh tools/regression/bin/sh/builtins X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 13:56:44 -0000 Author: jilles Date: Fri Aug 16 13:56:43 2013 New Revision: 254413 URL: http://svnweb.freebsd.org/changeset/base/254413 Log: sh: Recognize "--" as end of options in bg/fg/jobid builtins. Added: head/tools/regression/bin/sh/builtins/jobid2.0 (contents, props changed) Modified: head/bin/sh/jobs.c Modified: head/bin/sh/jobs.c ============================================================================== --- head/bin/sh/jobs.c Fri Aug 16 13:48:11 2013 (r254412) +++ head/bin/sh/jobs.c Fri Aug 16 13:56:43 2013 (r254413) @@ -183,13 +183,14 @@ out: out2fmt_flush("sh: can't access #if JOBS int -fgcmd(int argc __unused, char **argv) +fgcmd(int argc __unused, char **argv __unused) { struct job *jp; pid_t pgrp; int status; - jp = getjob(argv[1]); + nextopt(""); + jp = getjob(*argptr); if (jp->jobctl == 0) error("job not created under job control"); printjobcmd(jp); @@ -210,8 +211,9 @@ bgcmd(int argc, char **argv) { struct job *jp; + nextopt(""); do { - jp = getjob(*++argv); + jp = getjob(*argptr); if (jp->jobctl == 0) error("job not created under job control"); if (jp->state == JOBDONE) @@ -220,7 +222,7 @@ bgcmd(int argc, char **argv) jp->foreground = 0; out1fmt("[%td] ", jp - jobtab + 1); printjobcmd(jp); - } while (--argc > 1); + } while (*argptr != NULL && *++argptr != NULL); return 0; } @@ -542,12 +544,13 @@ waitcmdloop(struct job *job) int -jobidcmd(int argc __unused, char **argv) +jobidcmd(int argc __unused, char **argv __unused) { struct job *jp; int i; - jp = getjob(argv[1]); + nextopt(""); + jp = getjob(*argptr); for (i = 0 ; i < jp->nprocs ; ) { out1fmt("%d", (int)jp->ps[i].pid); out1c(++i < jp->nprocs? ' ' : '\n'); Added: head/tools/regression/bin/sh/builtins/jobid2.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/builtins/jobid2.0 Fri Aug 16 13:56:43 2013 (r254413) @@ -0,0 +1,9 @@ +# $FreeBSD$ + +: & +p1=$(jobid) +p2=$(jobid --) +p3=$(jobid %+) +p4=$(jobid -- %+) +[ "${p1:?}" = "${p2:?}" ] && [ "${p2:?}" = "${p3:?}" ] && +[ "${p3:?}" = "${p4:?}" ] && [ "${p4:?}" = "${p1:?}" ]