chiark / gitweb /
don't use return when being sourced
[topgit.git] / tg.sh
diff --git a/tg.sh b/tg.sh
index 43d1c9f69c6ab3dc7639598568ca7ccec9411ae0..0804f733018773b89ab7890442ecd3c38ba7bef0 100644 (file)
--- a/tg.sh
+++ b/tg.sh
@@ -340,8 +340,9 @@ setup_hook "pre-commit"
 ## Dispatch
 
 # We were sourced from another script for our utility functions;
-# this is set by hooks.
-[ -z "$tg__include" ] || return 0
+# this is set by hooks.  Skip the rest of the file.  A simple return doesn't
+# work as expected in every shell.  See http://bugs.debian.org/516188
+if [ -z "$tg__include" ]; then
 
 if [ "$1" = "-r" ]; then
        shift
@@ -374,4 +375,6 @@ help|--help|-h)
        . "@cmddir@"/tg-$cmd;;
 esac
 
+fi
+
 # vim:noet