From c71abad14654a1f74202171813c2d8c12d7efa1b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 15 Mar 2022 12:18:08 +0300 Subject: [PATCH] mapfile instead of cat-like call is faster --- zk.zsh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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 -- 2.44.0