From: Sergey Matveev Date: Tue, 15 Mar 2022 09:18:08 +0000 (+0300) Subject: mapfile instead of cat-like call is faster X-Git-Url: http://www.git.stargrave.org/?p=zk.zsh.git;a=commitdiff_plain;h=c71abad14654a1f74202171813c2d8c12d7efa1b mapfile instead of cat-like call is faster --- diff --git a/zk.zsh b/zk.zsh index 94653b1..fe3f62e 100755 --- a/zk.zsh +++ b/zk.zsh @@ -19,7 +19,6 @@ EOF [[ $# -eq 2 ]] || usage -# Collect all pages setopt GLOB_STAR_SHORT zmodload -F zsh/stat b:zstat typeset -A pages @@ -30,13 +29,13 @@ for p (**(.)) { typeset -a cats for p (**(/)) cats=($p $cats) -# Determine the links between them +zmodload zsh/mapfile typeset -A links typeset -A backs typeset -aU words for p (${(k)pages}) { words=() - for w (`< $p`) { + for w (${=mapfile[$p]}) { [[ $w =~ "\[(.*)\]" ]] || continue w=${match[1]} [[ ${pages[$w]} ]] || { @@ -74,7 +73,7 @@ getrel() { genHTML() { local page=$1 local data p - [[ $# -eq 1 ]] && data=`< $page` || data=$2 + [[ $# -eq 1 ]] && data=${mapfile[$page]} || data=$2 data=${data//&/&} data=${data///>} @@ -99,7 +98,7 @@ $data } zmodload -F zsh/datetime b:strftime -now=$(strftime "%F %T") +strftime -s now "%F %T" genIndex() { local p