From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6049 invoked by alias); 23 Jan 2010 10:26:46 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 27619 Received: (qmail 12976 invoked from network); 23 Jan 2010 10:26:34 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.2.5 Received-SPF: none (ns1.primenet.com.au: domain at bewatermyfriend.org does not designate permitted sender hosts) From: Frank Terbeck To: zsh-workers@zsh.org Cc: vmail@mycircuit.org, ft@bewatermyfriend.org Subject: PATCH: Add `sourcetrace' option Date: Sat, 23 Jan 2010 11:18:02 +0100 Message-Id: <1264241882-29700-1-git-send-email-ft@bewatermyfriend.org> X-Mailer: git-send-email 1.6.6.rc1.31.g1a56b In-Reply-To: <4B58AB3A.7050300@mycircuit.org> References: <4B58AB3A.7050300@mycircuit.org> X-Df-Sender: 430444 Peter wrote: > Is there a way to list the files that the shell has read on startup? With this patch, you can invoke zsh like this: % zsh -o sourcetrace to make zsh tell you which files it sources right before it does. That would catch all the files, that are read upon startup, too. I don't know how much sense it would make to make this part of zsh in this or another form; but this was easy enough, so no time wasted. Regards, Frank --- Doc/Zsh/options.yo | 8 ++++++++ Src/init.c | 5 +++++ Src/options.c | 1 + Src/zsh.h | 1 + 4 files changed, 15 insertions(+), 0 deletions(-) diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo index 8c11c82..e19a58a 100644 --- a/Doc/Zsh/options.yo +++ b/Doc/Zsh/options.yo @@ -1584,6 +1584,14 @@ Sequences of digits indicating a numeric base such as the `tt(08)' component in `tt(08#77)' are always interpreted as decimal, regardless of leading zeroes. ) +pindex(SOURCE_TRACE) +pindex(NO_SOURCE_TRACE) +pindex(SOURCETRACE) +pindex(NOSOURCETRACE) +item(tt(SOURCE_TRACE))( +If set, when sourcing a file zsh will print a message about which file +it is about to source. +) pindex(TYPESET_SILENT) pindex(NO_TYPESET_SILENT) pindex(TYPESETSILENT) diff --git a/Src/init.c b/Src/init.c index 123e20e..c59d632 100644 --- a/Src/init.c +++ b/Src/init.c @@ -1102,6 +1102,11 @@ source(char *s) return SOURCE_NOT_FOUND; } + if (isset(SOURCETRACE)) { + fprintf(stderr, "sourcetrace> \"%s\"\n", s); + fflush(stderr); + } + /* save the current shell state */ fd = SHIN; /* store the shell input fd */ obshin = bshin; /* store file handle for buffered shell input */ diff --git a/Src/options.c b/Src/options.c index a5f299e..7055466 100644 --- a/Src/options.c +++ b/Src/options.c @@ -233,6 +233,7 @@ static struct optname optns[] = { {{NULL, "shwordsplit", OPT_EMULATE|OPT_BOURNE}, SHWORDSPLIT}, {{NULL, "singlecommand", OPT_SPECIAL}, SINGLECOMMAND}, {{NULL, "singlelinezle", OPT_KSH}, SINGLELINEZLE}, +{{NULL, "sourcetrace", 0}, SOURCETRACE}, {{NULL, "sunkeyboardhack", 0}, SUNKEYBOARDHACK}, {{NULL, "transientrprompt", 0}, TRANSIENTRPROMPT}, {{NULL, "trapsasync", 0}, TRAPSASYNC}, diff --git a/Src/zsh.h b/Src/zsh.h index 060f8a6..f2bab06 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1999,6 +1999,7 @@ enum { SHWORDSPLIT, SINGLECOMMAND, SINGLELINEZLE, + SOURCETRACE, SUNKEYBOARDHACK, TRANSIENTRPROMPT, TRAPSASYNC, -- 1.6.6.rc1.31.g1a56b