From owner-cvs-src@FreeBSD.ORG Wed Feb 16 05:17:59 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 186BE16A4CE; Wed, 16 Feb 2005 05:17:59 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 004A043D1F; Wed, 16 Feb 2005 05:17:59 +0000 (GMT) (envelope-from gad@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j1G5Hwx9083697; Wed, 16 Feb 2005 05:17:58 GMT (envelope-from gad@repoman.freebsd.org) Received: (from gad@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j1G5HwRL083696; Wed, 16 Feb 2005 05:17:58 GMT (envelope-from gad) Message-Id: <200502160517.j1G5HwRL083696@repoman.freebsd.org> From: Garance A Drosehn Date: Wed, 16 Feb 2005 05:17:58 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/bin/sh options.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Feb 2005 05:17:59 -0000 gad 2005-02-16 05:17:58 UTC FreeBSD src repository Modified files: bin/sh options.c Log: Change /bin/sh so *it* implements the processing needed for scripts to work as expected when they have a "shebang line" of: #!/bin/sh -- # -*- perl -*- -p This specific line is recommended in some perl documentation, and I think I've seen similar lines in documentation for ruby and python. Those write-ups expect `sh' to ignore everything after the '--' if the first thing after the '--' is a '#'. See chapter 19, "The Command-Line Interface" in 3rd edition of "Programming Perl", for some discussion of why perl recommends using this line in some circumstances. The above line does work on solaris, irix and aix (as three data points), and it used to work on FreeBSD by means of a similar patch to execve(). However, that change to execve() effected *all* shells (which caused other problems), and that processing was recently removed. PR: 16393 (the original request to fix the same issue) Reviewed by: freebsd-current (looking at a slightly different patch) MFC after: 1 week Revision Changes Path 1.22 +43 -11 src/bin/sh/options.c