From a7f5170d68c0b75a9864763a90ac11e51ec67c81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?= <marc.cornella@live.com>
Date: Mon, 31 Aug 2020 17:38:30 +0200
Subject: [PATCH] Remove perl dependency

---
 plugins/timer/timer.plugin.zsh |  5 ++++-
 themes/fishy.zsh-theme         | 15 +++++++++------
 themes/trapd00r.zsh-theme      |  2 +-
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/plugins/timer/timer.plugin.zsh b/plugins/timer/timer.plugin.zsh
index 1be7516a3..b261f71c5 100644
--- a/plugins/timer/timer.plugin.zsh
+++ b/plugins/timer/timer.plugin.zsh
@@ -1,5 +1,8 @@
+zmodload zsh/datetime
+
 __timer_current_time() {
-  perl -MTime::HiRes=time -e'print time'
+  zmodload zsh/datetime
+  echo $EPOCHREALTIME
 }
 
 __timer_format_duration() {
diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme
index 00a60f45b..f6dae6181 100644
--- a/themes/fishy.zsh-theme
+++ b/themes/fishy.zsh-theme
@@ -1,12 +1,15 @@
 # ZSH Theme emulating the Fish shell's default prompt.
 
 _fishy_collapsed_wd() {
-  echo $(pwd | perl -pe '
-   BEGIN {
-      binmode STDIN,  ":encoding(UTF-8)";
-      binmode STDOUT, ":encoding(UTF-8)";
-   }; s|^$ENV{HOME}|~|g; s|/([^/.])[^/]*(?=/)|/$1|g; s|/\.([^/])[^/]*(?=/)|/.$1|g
-')
+  local -a pwd=("${(s:/:)PWD/#$HOME/~}")
+  for i in {1..$(($#pwd-1))}; do
+    if [[ "$pwd[$i]" = .* ]]; then
+      pwd[$i]="${${pwd[$i]}[1,2]}"
+    else
+      pwd[$i]="${${pwd[$i]}[1]}"
+    fi
+  done
+  echo "${(j:/:)pwd}"
 }
 
 local user_color='green'; [ $UID -eq 0 ] && user_color='red'
diff --git a/themes/trapd00r.zsh-theme b/themes/trapd00r.zsh-theme
index 7a589a699..4e3238393 100644
--- a/themes/trapd00r.zsh-theme
+++ b/themes/trapd00r.zsh-theme
@@ -2,7 +2,7 @@
 #
 # This theme needs a terminal supporting 256 colors as well as unicode.
 # In order to avoid external dependencies, it also has a zsh version of
-# the perl script at https://github.com/trapd00r/utils/blob/master/zsh_path,
+# the previously used perl script https://github.com/trapd00r/utils/blob/master/zsh_path,
 # which splits up the current path and makes it fancy.
 #
 # By default it spans over two lines like so: