#! /bin/sh
#	$Header: cls,v 1.2 88/02/03 14:21:20 jerryp Exp $
#
###	clf,cls,clf2,cls2 - compressed "ls" and "ls -F" directory listings
###	Usage: cmd [dirs]
##
##	clf, cls, clf2, AND cls2 ARE SUBSTITUTES FOR ls -F AND ls.
##	THEY MAKE COMPRESSED LISTINGS OF THE DIRECTORY.  NAMES LONGER
##	THAN 14 CHARACTERS ARE TRUNCATED LIKE THIS:
##		- ON ALL REGULAR FILES (NOT EXECUTABLE, DIRECTORIES, ETC.),
##		  THE 14TH AND SUCCEEDING CHARACTERS ARE REPLACED WITH A ">".
##		- WHEN USING clf AND clf2: EXECUTABLE FILES, DIRECTORIES,
##		  ETC. WITH NAMES LONGER THAN 13 CHARACTERS... THE 13TH
##		  CHARACTER IS REPLACED WITH ">", AND THE 14TH CHARACTER
##		  WILL BE A * FOR EXECUTABLE FILES, / FOR DIRECTORIES, ETC.
##
##	cls AND clf LIST FILES ALPHABETICALLY DOWN SCREEN, LIKE ls DOES:
##		a	d	k	p	s
##		b	j	n	r	z
##	cls2 AND clf2 LIST THEM ALPHABETICALLY ACROSS THE SCREEN:
##		a	b	d	j	k
##		n	p	r	s	z
##
##	USAGE:  
##		% clf [file] [files]
##		% clf2 [file] [files]
##		% cls [file] [files]
##		% cls2 [file] [files]

temp=/tmp/CLS$$		# TEMP FILE

# pr PROGRAM: MAKE 5 COLUMNS, NO HEADING, 78 COLUMNS WIDE:
pr='pr -5 -t -w78'

# sed PROGRAM... IF LINE IS OVER 14 CHARACTERS AND ENDS WITH SYMBOL
# "*", "/", "@", OR "=", TRUNCATE AFTER 12 AND REPLACE WITH >SYMBOL...
# OTHERWISE, IF NAME IS OVER 14 CHARACTERS, TRUNCATE AFTER 13; ADD A >
sed='sed -f /u1/npac/jerryp/.lib/cls.sed'

case "$0" in
*clf2)	ls -F1 "$@" | $sed | $pr -l1
		exit 0
		;;
*cls2)	ls -1 "$@" | $sed | $pr -l1
		exit 0
		;;
*clf)	ls -F1 "$@" | $sed > $temp ;;
*cls)	ls -1 "$@" | $sed > $temp ;;
*)	echo "$0: Help!  Shouldn't get here!";
	exit 1
	;;
esac

# (THESE COMMANDS ONLY DONE BY cls AND clf.)
# LENGTH OF LISTING = ( number of files / 5 ) + 1
$pr -l`expr \( \`wc -l < $temp\` / 5 \) + 1` $temp
rm -f $temp
