aboutsummaryrefslogtreecommitdiff
path: root/ce
diff options
context:
space:
mode:
Diffstat (limited to 'ce')
-rwxr-xr-xce33
1 files changed, 19 insertions, 14 deletions
diff --git a/ce b/ce
index 08550aa..c00d1bf 100755
--- a/ce
+++ b/ce
@@ -2,22 +2,27 @@
# ce -- center text
-usage() { echo usage: $0 [-cols] text ... 1>&2; exit 1; }
+usage() { echo usage: $0 [cols] 1>&2; exit 1; }
-case "$1" in
--*) cols=${1#-}
+[ $# -gt 1 ] && usage
+
+if [ $# -eq 1 ]; then
+ cols=${1#-}
[ "$cols" -gt 0 ] || usage
- shift ;;
-*) cols=`tput cols`
+ shift
+else
+ cols=`tput cols`
[ "$cols" -le 80 ] || cols=80
- ;;
-esac
+fi
-[ $# -gt 0 ] || usage
-len=`echo "$@" | wc -c`
-max=$(((cols - len) / 2))
-i=0
-while [ $((i++)) -lt $max ]; do
- printf ' '
+while read line; do
+ line=${line## }
+ line=${line%% }
+ len=`echo "$line" | wc -c`
+ max=$(((cols - len) / 2))
+ i=0
+ while [ $((i++)) -lt $max ]; do
+ printf ' '
+ done
+ echo "$line"
done
-echo "$@"