From owner-svn-src-all@FreeBSD.ORG Sun Jan 20 12:44:52 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]) by hub.freebsd.org (Postfix) with ESMTP id 65D7EEEF; Sun, 20 Jan 2013 12:44:52 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3EF63197; Sun, 20 Jan 2013 12:44:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0KCiq4j066961; Sun, 20 Jan 2013 12:44:52 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0KCipIN066956; Sun, 20 Jan 2013 12:44:51 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201301201244.r0KCipIN066956@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 20 Jan 2013 12:44:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r245689 - head/bin/sh 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: Sun, 20 Jan 2013 12:44:52 -0000 Author: jilles Date: Sun Jan 20 12:44:50 2013 New Revision: 245689 URL: http://svnweb.freebsd.org/changeset/base/245689 Log: sh: Remove mkinit's initialization routine. Instead, call the only init function left directly from main(). Modified: head/bin/sh/TOUR head/bin/sh/init.h head/bin/sh/main.c head/bin/sh/mkinit.c head/bin/sh/var.c Modified: head/bin/sh/TOUR ============================================================================== --- head/bin/sh/TOUR Sun Jan 20 11:58:49 2013 (r245688) +++ head/bin/sh/TOUR Sun Jan 20 12:44:50 2013 (r245689) @@ -33,10 +33,6 @@ programs is: There are undoubtedly too many of these. Mkinit searches all the C source files for entries looking like: - INIT { - x = 1; /* executed during initialization */ - } - RESET { x = 2; /* executed when the shell does a longjmp back to the main command loop */ Modified: head/bin/sh/init.h ============================================================================== --- head/bin/sh/init.h Sun Jan 20 11:58:49 2013 (r245688) +++ head/bin/sh/init.h Sun Jan 20 12:44:50 2013 (r245689) @@ -33,5 +33,4 @@ * $FreeBSD$ */ -void init(void); void reset(void); Modified: head/bin/sh/main.c ============================================================================== --- head/bin/sh/main.c Sun Jan 20 11:58:49 2013 (r245688) +++ head/bin/sh/main.c Sun Jan 20 12:44:50 2013 (r245689) @@ -139,7 +139,7 @@ main(int argc, char *argv[]) #endif rootpid = getpid(); rootshell = 1; - init(); + initvar(); setstackmark(&smark); setstackmark(&smark2); procargs(argc, argv); Modified: head/bin/sh/mkinit.c ============================================================================== --- head/bin/sh/mkinit.c Sun Jan 20 11:58:49 2013 (r245688) +++ head/bin/sh/mkinit.c Sun Jan 20 12:44:50 2013 (r245689) @@ -101,7 +101,7 @@ struct block { */ struct event { - const char *name; /* name of event (e.g. INIT) */ + const char *name; /* name of event (e.g. RESET) */ const char *routine; /* name of routine called on event */ const char *comment; /* comment describing routine */ struct text code; /* code for handling event */ @@ -114,11 +114,6 @@ char writer[] = "\ */\n\ \n"; -char init[] = "\ -/*\n\ - * Initialization code.\n\ - */\n"; - char reset[] = "\ /*\n\ * This routine is called when an error or an interrupt occurs in an\n\ @@ -127,7 +122,6 @@ char reset[] = "\ struct event event[] = { - { "INIT", "init", init, { NULL, 0, NULL, NULL } }, { "RESET", "reset", reset, { NULL, 0, NULL, NULL } }, { NULL, NULL, NULL, { NULL, 0, NULL, NULL } } }; Modified: head/bin/sh/var.c ============================================================================== --- head/bin/sh/var.c Sun Jan 20 11:58:49 2013 (r245688) +++ head/bin/sh/var.c Sun Jan 20 12:44:50 2013 (r245689) @@ -146,29 +146,11 @@ static int varequal(const char *, const static struct var *find_var(const char *, struct var ***, int *); static int localevar(const char *); -/* - * Initialize the variable symbol tables and import the environment. - */ - -#ifdef mkinit -INCLUDE "var.h" -MKINIT char **environ; -INIT { - char **envp; - - initvar(); - for (envp = environ ; *envp ; envp++) { - if (strchr(*envp, '=')) { - setvareq(*envp, VEXPORT|VTEXTFIXED); - } - } -} -#endif - +extern char **environ; /* - * This routine initializes the builtin variables. It is called when the - * shell is initialized. + * This routine initializes the builtin variables and imports the environment. + * It is called when the shell is initialized. */ void @@ -178,6 +160,7 @@ initvar(void) const struct varinit *ip; struct var *vp; struct var **vpp; + char **envp; for (ip = varinit ; (vp = ip->var) != NULL ; ip++) { if (find_var(ip->text, &vpp, &vp->name_len) != NULL) @@ -201,6 +184,11 @@ initvar(void) fmtstr(ppid, sizeof(ppid), "%d", (int)getppid()); setvarsafe("PPID", ppid, 0); } + for (envp = environ ; *envp ; envp++) { + if (strchr(*envp, '=')) { + setvareq(*envp, VEXPORT|VTEXTFIXED); + } + } } /* @@ -356,7 +344,7 @@ setvareq(char *s, int flags) * a regular variable function callback, but why bother? * * Note: this assumes iflag is not set to 1 initially. - * As part of init(), this is called before arguments + * As part of initvar(), this is called before arguments * are looked at. */ if ((vp == &vmpath || (vp == &vmail && ! mpathset())) &&