From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8762 invoked by alias); 2 Oct 2015 21:15:41 -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: 36751 Received: (qmail 21534 invoked from network); 2 Oct 2015 21:15:40 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.0 From: Matthew Hamilton DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tthamilton.com; s=dkim; t=1443819983; bh=yRIpqAB/O/s7mQvbzhXVvWxKeWE7Jwp3WqwgXcFKrnM=; h=From:Subject:To:Date; b=EXrCETSHOWa2C9HoYhYZdT9h3O2GmtUh+75K+KQkdJvuP7vqHNQN9WhBsuQrL9R7g Zp3qIWtnq9uW+SzCGVecDv3f86hawQuuf31kNyxW7LVAO2OI7YFT7Y6Fh9oUqQfigv Apre02ARQxLBt9Vt07LJ6dOIddulDAOqhmHCI/3A= Subject: PATCH: minor variable allocation change in add-zsh-hook X-Enigmail-Draft-Status: N1110 To: zsh-workers@zsh.org Message-ID: <560EF1CD.6060009@tthamilton.com> Date: Fri, 2 Oct 2015 17:06:21 -0400 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit The 'local usage' variable is allocated in main, outside of the if loop that determines if it is going to print the usage information. This means time is spent allocating that variable, when in most cases, it will never be printed. It would be better to set it within the if loop, or alternatively, not using a variable and simply output the usage text as as literal string (as many other functions do). A trace of the time being needlessly being spent allocating the variable can be seen here: https://gist.github.com/Eriner/3192c9eb98fabdd70607 It's not that much time, but it adds up and is inefficient/unnecessary. diff --git a/Functions/Misc/add-zsh-hook b/Functions/Misc/add-zsh-hook index ee37d67..bccd115 100644 --- a/Functions/Misc/add-zsh-hook +++ b/Functions/Misc/add-zsh-hook @@ -19,7 +19,6 @@ hooktypes=( chpwd precmd preexec periodic zshaddhistory zshexit zsh_directory_name ) -local usage="Usage: $0 hook function\nValid hooks are:\n $hooktypes" local opt local -a autoopts @@ -58,6 +57,7 @@ if (( list )); then typeset -mp "(${1:-${(@j:|:)hooktypes}})_functions" return $? elif (( help || $# != 2 || ${hooktypes[(I)$1]} == 0 )); then + local usage="Usage: $0 hook function\nValid hooks are:\n $hooktypes" print -u$(( 2 - help )) $usage return $(( 1 - help )) fi