#!/bin/sh
#
# Allow sort to sort 3-letter month and/or day-of-week via pre/post processing
#
# Corey Satten, corey @ cac.washington.edu, 7/2002
# http://staff.washington.edu/corey

MONTH1='s/Jan/01_&/g
	s/Feb/02_&/g
	s/Mar/03_&/g
	s/Apr/04_&/g
	s/May/05_&/g
	s/Jun/06_&/g
	s/Jul/07_&/g
	s/Aug/08_&/g
	s/Sep/09_&/g
	s/Oct/10_&/g
	s/Nov/11_&/g
	s/Dec/12_&/g
'

MONTH2='s/01_\(Jan\)/\1/g
	s/02_\(Feb\)/\1/g
	s/03_\(Mar\)/\1/g
	s/04_\(Apr\)/\1/g
	s/05_\(May\)/\1/g
	s/06_\(Jun\)/\1/g
	s/07_\(Jul\)/\1/g
	s/08_\(Aug\)/\1/g
	s/09_\(Sep\)/\1/g
	s/10_\(Oct\)/\1/g
	s/11_\(Nov\)/\1/g
	s/12_\(Dec\)/\1/g
'

DAY1='	s/Sun/00_&/g
	s/Mon/01_&/g
	s/Tue/02_&/g
	s/Wed/03_&/g
	s/Thu/04_&/g
	s/Fri/05_&/g
	s/Sat/06_&/g
'

DAY2='	s/00_\(Sun\)/\1/g
	s/01_\(Mon\)/\1/g
	s/02_\(Tue\)/\1/g
	s/03_\(Wed\)/\1/g
	s/04_\(Thu\)/\1/g
	s/05_\(Fri\)/\1/g
	s/06_\(Sat\)/\1/g
'

for i in $*; do
    case "$1" in
	[-+]*) ARGS="$ARGS $1"; shift;;
	    *) if [ -f $1 ] ;then break ;else ARGS="$ARGS $1"; shift; fi;;
    esac
done
    
sed "$MONTH1 $DAY1" $* | sort $ARGS | sed "$MONTH2 $DAY2"
