improvements and fixes
[distro-setup] / brc
diff --git a/brc b/brc
index ebbe38eab55b7d3e3debc8dc6e1d23b8cc279d71..2a770ae0e416297add55e9293f1779907f44681e 100644 (file)
--- a/brc
+++ b/brc
@@ -426,15 +426,17 @@ utcl() { # utc 24 hour time to local hour 24 hour time
 }
 
 # c. better cd
-if type -p wcd &>/dev/null; then
-  if [[ $LC_INSIDE_EMACS ]]; then
-    c() { wcd -c -z 50 -o "$@"; }
+if ! type -t c &>/dev/null; then
+  if type -p wcd &>/dev/null; then
+    if [[ $LC_INSIDE_EMACS ]]; then
+      c() { wcd -c -z 50 -o "$@"; }
+    else
+      # lets see what the fancy terminal does from time to time
+      c() { wcd -c -z 50 "$@"; }
+    fi
   else
-    # lets see what the fancy terminal does from time to time
-    c() { wcd -c -z 50 "$@"; }
+    c() { cd "$@"; }
   fi
-else
-  c() { cd "$@"; }
 fi
 ccomp cd c
 
@@ -1118,7 +1120,7 @@ low() {  # make filenames lowercase, remove bad chars
     fi
     f="${arg##*/}"
     new="${f,,}" # downcase
-    new="${new//[^[:alnum:]._-]/_}" # sub bad chars
+    new="${new//[^a-zA-Z0-9._-]/_}" # sub bad chars
     new="${new#"${new%%[[:alnum:]]*}"}" # remove leading/trailing non-alnum
     new="${new%"${new##*[[:alnum:]]}"}"
     # remove bad underscores, like __ and _._