about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-12-11 17:51:06 +0100
committerbptato <nincsnevem662@gmail.com>2024-12-11 17:53:02 +0100
commita32104f93b19061d85388178793040bc083151e1 (patch)
tree0df94e43d882c8e31e73e57a30ff17ab49af306c /src
parent8140f97c25e60318df9d2b09b79b9d07ade6380c (diff)
downloadchawan-a32104f93b19061d85388178793040bc083151e1.tar.gz
twtstr: small cleanup
Diffstat (limited to 'src')
-rw-r--r--src/utils/twtstr.nim16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/utils/twtstr.nim b/src/utils/twtstr.nim
index a5493738..2734e5ce 100644
--- a/src/utils/twtstr.nim
+++ b/src/utils/twtstr.nim
@@ -579,18 +579,16 @@ func utf16Len*(s: openArray[char]): int =
       result += 2
 
 proc expandPath*(path: string): string =
-  if path.len == 0 or path[0] != '~':
-    return path
-  if path.len == 1:
-    return getHomeDir()
-  elif path[1] == '/':
-    return getHomeDir() / path.substr(2)
-  else:
+  if path.len > 0 and path[0] == '~':
+    if path.len == 1:
+      return getHomeDir()
+    if path[1] == '/':
+      return getHomeDir() / path.substr(2)
     let usr = path.until({'/'}, 1)
     let p = getpwnam(cstring(usr))
-    if p != nil:
+    if p != nil and p.pw_dir != nil:
       return $p.pw_dir / path.substr(usr.len)
-    return path
+  return path
 
 func deleteChars*(s: openArray[char]; todel: set[char]): string =
   result = newStringOfCap(s.len)