From 0e31c204f7e8fa589a24d4159909f50d3391fa48 Mon Sep 17 00:00:00 2001
From: romkatv <roman.perepelitsa@gmail.com>
Date: Thu, 25 Jul 2019 17:54:12 +0200
Subject: cleanup in nordvpn

---
 internal/p10k.zsh | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 7e58f346..3305483b 100755
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -2957,43 +2957,43 @@ typeset -gra __p9k_nordvpn_tag=(
 
 function _p9k_fetch_nordvpn_status() {
   setopt err_return
-  unset $__p9k_nordvpn_tag P9K_NORDVPN_COUNTRY_CODE
-  (( $+commands[nordvpn] ))
-  [[ -e /run/nordvpnd.sock ]]
   local REPLY
-  zsocket /run/nordvpnd.sock 2>/dev/null
+  zsocket /run/nordvpnd.sock
   local -i fd=$REPLY
   {
     >&$fd echo -nE - $'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n\0\0\0\4\1\0\0\0\0\0\0N\1\4\0\0\0\1\203\206E\221bA\226\223\325\\k\337\31i=LnH\323j?A\223\266\243y\270\303\fYmLT{$\357]R.\203\223\257_\213\35u\320b\r&=LMedz\212\232\312\310\264\307`+\210K\203@\2te\206M\2035\5\261\37\0\0\5\0\1\0\0\0\1\0\0\0\0\0'
     local tag len val
     local -i n
-    IFS='' read -r tag <&3
+    IFS='' read -t 0.25 -r tag <&3
     tag=$'\015'
     while true; do
       tag=${__p9k_char2byte[${(q+)tag}]:-0}
       (( (tag >>= 3) && tag <= $#__p9k_nordvpn_tag )) || break
       tag=$__p9k_nordvpn_tag[tag]
-      sysread -c n -s 1 len <&3
-      (( n == 1 ))
+      sysread -c n -s 1 -t 0.25 len <&3
       len=${__p9k_char2byte[${(q+)len}]}
       [[ -n $len ]]
       val=
       (( ! len )) || {
-        sysread -c n -s $len val <&3
+        sysread -c n -s $len -t 0.25 val <&3
         (( n == len ))
       }
       typeset -g $tag=$val
-      sysread -c n -s 1 tag <&3
-      (( n < 2 ))
+      sysread -c n -s 1 -t 0.25 tag <&3
     done
   } always {
     exec {fd}>&-
-    [[ $P9K_NORDVPN_SERVER != (#b)([[:alpha:]]##)[[:digit:]]##.nordvpn.com ]] || P9K_NORDVPN_COUNTRY_CODE=${(U)match[1]}
   }
 }
 
 function prompt_nordvpn() {
-  _p9k_fetch_nordvpn_status
+  unset $__p9k_nordvpn_tag P9K_NORDVPN_COUNTRY_CODE
+  if [[ $+commands[nordvpn] == 1 && -e /run/nordvpnd.sock ]]; then
+    _p9k_fetch_nordvpn_status 2>/dev/null
+    if [[ $P9K_NORDVPN_SERVER == (#b)([[:alpha:]]##)[[:digit:]]##.nordvpn.com ]]; then
+      typeset -g P9K_NORDVPN_COUNTRY_CODE=${(U)match[1]}
+    fi
+  fi
   case $P9K_NORDVPN_STATUS in
     '')
       _p9k_prompt_segment $0_MISSING      blue white ''          0 '' '';;
-- 
cgit v1.2.3