diff --git a/vcsh b/vcsh
index b03df7aaca40292c9a15c8e3a4565ffbbc5ae80c..fb99ffb46b953e9fec026c3286c98a3b8bff6e94 100755
--- a/vcsh
+++ b/vcsh
@@ -12,6 +12,12 @@
 # which is admittedly extremely unlikely to the point of being impossible,
 # this software will most likely follow suit.
 
+basename() {
+	local f; f="${1##*/}"
+	[ -z "$2" ] || f="${f%$2}"
+	echo "$f"
+}
+
 SELF=$(basename $0)
 VERSION='1.2'
 
@@ -23,7 +29,7 @@ fatal() {
 # We need to run getops as soon as possible so we catch -d and other
 # options that will modify our behaviour.
 # Commands are handled at the end of this script.
-while getopts  "c:dv" flag; do
+while getopts "c:dv" flag; do
 	if [ "$1" = '-d' ] || [ "$1" = '--debug' ]; then
 		set -vx
 		VCSH_DEBUG=1