fixing column flags for splitter. also need to fix some persistent issues with end...
[feisty_meow.git] / scripts / core / functions.sh
index f6c4a714c852282fde76e4d860ba3f146f0ffb71..c1c3c8b6356d78000badcb52ee9389194d7a603a 100644 (file)
@@ -281,10 +281,12 @@ if [ -z "$skip_all" ]; then
     fi
   }
   
-  # switches from an X:/ form to an /X/path form.
+  # switches from an X:/ form to a /cygdrive/X/path form.  this is only useful
+  # for the cygwin environment currently.
   function dos_to_unix_path() {
     # we always remove dos slashes in favor of forward slashes.
-    echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/'
+#old:    echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/'
+         echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/cygdrive\/\1\/\2/'
   }
 
   # returns a successful value (0) if this system is debian or ubuntu.
@@ -470,23 +472,38 @@ if [ -z "$skip_all" ]; then
         echo "failure to find a file or directory named '$arg'."
         continue
       fi
+
+      # first we will capture the output of the character replacement operation for reporting.
+      # this is done first since some filenames can't be properly renamed in perl (e.g. if they
+      # have pipe characters apparently).
+      intermediate_name="$(bash "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg")"
+      local saw_intermediate_result=0
+      if [ -z "$intermediate_name" ]; then
+        # make sure we report something, if there are no further name changes.
+        intermediate_name="'$arg'"
+      else 
+        # now zap the first part of the name off (since original name isn't needed).
+        intermediate_name="$(echo $intermediate_name | sed -e 's/.*=> //')"
+        saw_intermediate_result=1
+      fi
+
       # first we rename the file to be lower case.
-      perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$arg" &>/dev/null
-      # oops, now the name is all lower-case.  we need to make the
-      # same adjustment.
-      arg2="$(echo "$arg" | tr A-Z a-z)"
-      # we definitely wanted to adjust the case first, rather than doing all
-      # the wacky stuff this script does to the filename...  we will capture
-      # the output of the replace operaton for reporting.
-      final_name="$(bash "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg2")"
+      actual_file="$(echo $intermediate_name | sed -e "s/'\([^']*\)'/\1/")"
+      final_name="$(perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$actual_file")"
+      local saw_final_result=0
       if [ -z "$final_name" ]; then
-        # make sure we report something, if there are no further name changes.
-        final_name="$arg2"
+        final_name="$intermediate_name"
+      else
+        final_name="$(echo $final_name | sed -e 's/.*=> //')"
+        saw_final_result=1
+      fi
+#echo intermed=$saw_intermediate_result 
+#echo final=$saw_final_result 
+
+      if [[ $saw_intermediate_result != 0 || $saw_final_result != 0 ]]; then
+        # printout the combined operation results.
+        echo "'$arg' => $final_name"
       fi
-      # now zap the intermediate part of the name off.
-      final_name="$(echo $final_name | sed -e 's/.*=> //')"
-      # printout the combined operation results.
-      echo "'$arg' => $final_name"
     done
   }