head	1.1;
branch	1.1.1;
access;
symbols
	RELENG_8_4:1.1.1.2.0.30
	RELENG_9_1_0_RELEASE:1.1.1.2
	RELENG_9_1:1.1.1.2.0.28
	RELENG_9_1_BP:1.1.1.2
	RELENG_8_3_0_RELEASE:1.1.1.2
	RELENG_8_3:1.1.1.2.0.26
	RELENG_8_3_BP:1.1.1.2
	RELENG_9_0_0_RELEASE:1.1.1.2
	RELENG_9_0:1.1.1.2.0.24
	RELENG_9_0_BP:1.1.1.2
	RELENG_9:1.1.1.2.0.22
	RELENG_9_BP:1.1.1.2
	RELENG_7_4_0_RELEASE:1.1.1.2
	RELENG_8_2_0_RELEASE:1.1.1.2
	RELENG_7_4:1.1.1.2.0.20
	RELENG_7_4_BP:1.1.1.2
	RELENG_8_2:1.1.1.2.0.18
	RELENG_8_2_BP:1.1.1.2
	RELENG_8_1_0_RELEASE:1.1.1.2
	RELENG_8_1:1.1.1.2.0.16
	RELENG_8_1_BP:1.1.1.2
	RELENG_7_3_0_RELEASE:1.1.1.2
	RELENG_7_3:1.1.1.2.0.14
	RELENG_7_3_BP:1.1.1.2
	RELENG_8_0_0_RELEASE:1.1.1.2
	RELENG_8_0:1.1.1.2.0.12
	RELENG_8_0_BP:1.1.1.2
	RELENG_8:1.1.1.2.0.10
	RELENG_8_BP:1.1.1.2
	RELENG_7_2_0_RELEASE:1.1.1.2
	RELENG_7_2:1.1.1.2.0.8
	RELENG_7_2_BP:1.1.1.2
	RELENG_7_1_0_RELEASE:1.1.1.2
	RELENG_6_4_0_RELEASE:1.1.1.1.16.1
	RELENG_7_1:1.1.1.2.0.6
	RELENG_7_1_BP:1.1.1.2
	RELENG_6_4:1.1.1.1.16.1.0.2
	RELENG_6_4_BP:1.1.1.1.16.1
	tcsh_6_15b:1.1.1.2
	RELENG_7_0_0_RELEASE:1.1.1.2
	RELENG_6_3_0_RELEASE:1.1.1.1
	RELENG_7_0:1.1.1.2.0.4
	RELENG_7_0_BP:1.1.1.2
	RELENG_6_3:1.1.1.1.0.26
	RELENG_6_3_BP:1.1.1.1
	tcsh_6_15a:1.1.1.2
	RELENG_7:1.1.1.2.0.2
	RELENG_7_BP:1.1.1.2
	tcsh_6_15:1.1.1.2
	RELENG_6_2_0_RELEASE:1.1.1.1
	RELENG_6_2:1.1.1.1.0.24
	RELENG_6_2_BP:1.1.1.1
	RELENG_5_5_0_RELEASE:1.1.1.1
	RELENG_5_5:1.1.1.1.0.22
	RELENG_5_5_BP:1.1.1.1
	RELENG_6_1_0_RELEASE:1.1.1.1
	RELENG_6_1:1.1.1.1.0.20
	RELENG_6_1_BP:1.1.1.1
	RELENG_6_0_0_RELEASE:1.1.1.1
	RELENG_6_0:1.1.1.1.0.18
	RELENG_6_0_BP:1.1.1.1
	RELENG_6:1.1.1.1.0.16
	RELENG_6_BP:1.1.1.1
	RELENG_5_4_0_RELEASE:1.1.1.1
	tcsh_6_14:1.1.1.1
	RELENG_5_4:1.1.1.1.0.14
	RELENG_5_4_BP:1.1.1.1
	RELENG_4_11_0_RELEASE:1.1.1.1.2.1
	RELENG_4_11:1.1.1.1.2.1.0.18
	RELENG_4_11_BP:1.1.1.1.2.1
	RELENG_5_3_0_RELEASE:1.1.1.1
	RELENG_5_3:1.1.1.1.0.12
	RELENG_5_3_BP:1.1.1.1
	RELENG_5:1.1.1.1.0.10
	RELENG_5_BP:1.1.1.1
	tcsh_6_13:1.1.1.1
	RELENG_4_10_0_RELEASE:1.1.1.1.2.1
	RELENG_4_10:1.1.1.1.2.1.0.16
	RELENG_4_10_BP:1.1.1.1.2.1
	RELENG_5_2_1_RELEASE:1.1.1.1
	RELENG_5_2_0_RELEASE:1.1.1.1
	RELENG_5_2:1.1.1.1.0.8
	RELENG_5_2_BP:1.1.1.1
	RELENG_4_9_0_RELEASE:1.1.1.1.2.1
	RELENG_4_9:1.1.1.1.2.1.0.14
	RELENG_4_9_BP:1.1.1.1.2.1
	RELENG_5_1_0_RELEASE:1.1.1.1
	RELENG_5_1:1.1.1.1.0.6
	RELENG_5_1_BP:1.1.1.1
	RELENG_4_8_0_RELEASE:1.1.1.1.2.1
	RELENG_4_8:1.1.1.1.2.1.0.12
	RELENG_4_8_BP:1.1.1.1.2.1
	RELENG_5_0_0_RELEASE:1.1.1.1
	RELENG_5_0:1.1.1.1.0.4
	RELENG_5_0_BP:1.1.1.1
	RELENG_4_7_0_RELEASE:1.1.1.1.2.1
	RELENG_4_7:1.1.1.1.2.1.0.10
	RELENG_4_7_BP:1.1.1.1.2.1
	RELENG_4_6_2_RELEASE:1.1.1.1.2.1
	tcsh_6_12:1.1.1.1
	RELENG_4_6_1_RELEASE:1.1.1.1.2.1
	RELENG_4_6_0_RELEASE:1.1.1.1.2.1
	RELENG_4_6:1.1.1.1.2.1.0.8
	RELENG_4_6_BP:1.1.1.1.2.1
	RELENG_4_5_0_RELEASE:1.1.1.1.2.1
	RELENG_4_5:1.1.1.1.2.1.0.6
	RELENG_4_5_BP:1.1.1.1.2.1
	RELENG_4_4_0_RELEASE:1.1.1.1.2.1
	RELENG_4_4:1.1.1.1.2.1.0.4
	RELENG_4_4_BP:1.1.1.1.2.1
	tcsh_6_11:1.1.1.1
	RELENG_4_3_0_RELEASE:1.1.1.1.2.1
	RELENG_4_3:1.1.1.1.2.1.0.2
	RELENG_4_3_BP:1.1.1.1.2.1
	tcsh_6_10:1.1.1.1
	RELENG_4_2_0_RELEASE:1.1.1.1.2.1
	RELENG_4_1_1_RELEASE:1.1.1.1.2.1
	PRE_SMPNG:1.1.1.1
	RELENG_4_1_0_RELEASE:1.1.1.1.2.1
	RELENG_4:1.1.1.1.0.2
	tcsh_6_09_01_cvs_20000610:1.1.1.1
	tcsh_6_09_01:1.1.1.1
	tcsh_6_09:1.1.1.1
	ZOULAS:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2000.04.15.04.41.10;	author obrien;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2000.04.15.04.41.10;	author obrien;	state Exp;
branches
	1.1.1.1.2.1
	1.1.1.1.16.1;
next	1.1.1.2;

1.1.1.2
date	2007.03.11.22.33.39;	author mp;	state Exp;
branches
	1.1.1.2.30.1;
next	;

1.1.1.1.2.1
date	2000.06.10.22.25.55;	author obrien;	state Exp;
branches;
next	;

1.1.1.1.16.1
date	2008.03.11.22.12.42;	author delphij;	state Exp;
branches;
next	;

1.1.1.2.30.1
date	2007.03.11.22.33.39;	author svnexp;	state dead;
branches;
next	1.1.1.2.30.2;

1.1.1.2.30.2
date	2013.03.28.13.02.04;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@#!/bin/sh
#
# MAKESHAR.sh: Make a shar file for the sources
#
# $Id: MAKESHAR,v 3.1 1992/05/09 04:03:53 christos Exp $

AWK=/usr/bin/nawk	# Must be nawk or gawk cause of 2D arrays
WC=/usr/ucb/wc		
GREP=/usr/bin/egrep
SORT=/usr/bin/sort
SH=/bin/sh

dirs=
name=kit
files=
verbose=0
size=45000

for i 
do
    case $i in
    -n)	
	name=;;
    -v)
	verbose=1;;
    -d)
	SH=/bin/cat;;
    -s)
	size=$1;;
    *)
	if [ -z "$name" ]
	then
	    name=$i
	elif [ -d $i ]
	then
	    dirs="$dirs $i"
	elif [ -f $i ]
	then
	    files="$files $i"
	else
	    echo "$0: File `$i' not found." 1>&2
	    exit 1
	fi;;
    esac
done
	
if [ \( -z "$files" \) -a \( -z "$dirs" \) ]
then
    echo "Usage: $0 [-n name] [-s size] [-vd] <files>."	1>&2
    exit 1
fi

$WC $files | $GREP -v total | $SORT +2 | $AWK '
    BEGIN {
	i = 0;
	seq = 1;
	size = 0;
	name = 1;
	used = 2;
	verbose='"$verbose"';
	tty = "/dev/tty";
	maxsize = '"$size"';
	dirs = "'"$dirs"'";
    };
    {
	a[i, size] = $3;
	a[i, name] = $4;
	a[i, used] = 0;
	i++;
    };
    END {
	for (maxi = i--; i >= 0; i--) {
	    idx = 0;
	    if (a[i, used] == 0) {
		if (verbose && a[i, size] > maxsize) 
		    printf("Warning: File %s is %d > %d\n",
			   a[i, name], a[i, size], maxsize) > tty;
		s = a[i, size];
		a[i, used] = 1;
		kit[seq, idx++] = i; 
		j = 0;
		while (j < maxi) {
		    # Find the greatest file we can add
		    j = maxi;
		    for (k = 0; k < maxi; k++)
			if (a[k, used] == 0 && a[k, size] + s < maxsize)
			    j = k;
		    if (j < maxi) {
			s += a[j, size];
			a[j, used] = 1;
			kit[seq, idx++] = j; 
		    }
		}
		sizes[seq] = s;
		kit[seq++, idx] = -1; 
	    }
	}
	for (i = 1; i < seq; i++) {
	    printf("shar -n%d -e%d %s ", i, seq - 1, dirs);
	    if (verbose) {
		printf("%3d of %3d: ", i, seq - 1) > tty;
		len = 12;
	    }
	    for (j = 0; kit[i, j] != -1; j++) {
		s = a[kit[i, j], name];
		if (verbose) {
		    clen = length(s) + 1;
		    len += clen;
		    if (len > 70) {
			printf("\n            ") > tty;
			len = 12 + clen;
		    }
		    printf("%s ", s) > tty;
		}
		printf("%s ", s);
	    }
	    printf("> '"$name"'-%d.shar;", i);
	    if (verbose)
		printf("= %5d\n", sizes[i]) > tty;
	}
    }' | $SH
@


1.1.1.1
log
@Import the latest version of the 44BSD C-shell -- tcsh-6.09.
@
text
@@


1.1.1.1.16.1
log
@MFC: tcsh 6.15.00.
@
text
@d5 1
a5 1
# $tcsh: MAKESHAR,v 3.2 2006/03/02 18:46:44 christos Exp $
@


1.1.1.2
log
@Import of tcsh-6.15.00
@
text
@d5 1
a5 1
# $tcsh: MAKESHAR,v 3.2 2006/03/02 18:46:44 christos Exp $
@


1.1.1.2.30.1
log
@file MAKESHAR was added on branch RELENG_8_4 on 2013-03-28 13:02:04 +0000
@
text
@d1 121
@


1.1.1.2.30.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 121
#!/bin/sh
#
# MAKESHAR.sh: Make a shar file for the sources
#
# $tcsh: MAKESHAR,v 3.2 2006/03/02 18:46:44 christos Exp $

AWK=/usr/bin/nawk	# Must be nawk or gawk cause of 2D arrays
WC=/usr/ucb/wc		
GREP=/usr/bin/egrep
SORT=/usr/bin/sort
SH=/bin/sh

dirs=
name=kit
files=
verbose=0
size=45000

for i 
do
    case $i in
    -n)	
	name=;;
    -v)
	verbose=1;;
    -d)
	SH=/bin/cat;;
    -s)
	size=$1;;
    *)
	if [ -z "$name" ]
	then
	    name=$i
	elif [ -d $i ]
	then
	    dirs="$dirs $i"
	elif [ -f $i ]
	then
	    files="$files $i"
	else
	    echo "$0: File `$i' not found." 1>&2
	    exit 1
	fi;;
    esac
done
	
if [ \( -z "$files" \) -a \( -z "$dirs" \) ]
then
    echo "Usage: $0 [-n name] [-s size] [-vd] <files>."	1>&2
    exit 1
fi

$WC $files | $GREP -v total | $SORT +2 | $AWK '
    BEGIN {
	i = 0;
	seq = 1;
	size = 0;
	name = 1;
	used = 2;
	verbose='"$verbose"';
	tty = "/dev/tty";
	maxsize = '"$size"';
	dirs = "'"$dirs"'";
    };
    {
	a[i, size] = $3;
	a[i, name] = $4;
	a[i, used] = 0;
	i++;
    };
    END {
	for (maxi = i--; i >= 0; i--) {
	    idx = 0;
	    if (a[i, used] == 0) {
		if (verbose && a[i, size] > maxsize) 
		    printf("Warning: File %s is %d > %d\n",
			   a[i, name], a[i, size], maxsize) > tty;
		s = a[i, size];
		a[i, used] = 1;
		kit[seq, idx++] = i; 
		j = 0;
		while (j < maxi) {
		    # Find the greatest file we can add
		    j = maxi;
		    for (k = 0; k < maxi; k++)
			if (a[k, used] == 0 && a[k, size] + s < maxsize)
			    j = k;
		    if (j < maxi) {
			s += a[j, size];
			a[j, used] = 1;
			kit[seq, idx++] = j; 
		    }
		}
		sizes[seq] = s;
		kit[seq++, idx] = -1; 
	    }
	}
	for (i = 1; i < seq; i++) {
	    printf("shar -n%d -e%d %s ", i, seq - 1, dirs);
	    if (verbose) {
		printf("%3d of %3d: ", i, seq - 1) > tty;
		len = 12;
	    }
	    for (j = 0; kit[i, j] != -1; j++) {
		s = a[kit[i, j], name];
		if (verbose) {
		    clen = length(s) + 1;
		    len += clen;
		    if (len > 70) {
			printf("\n            ") > tty;
			len = 12 + clen;
		    }
		    printf("%s ", s) > tty;
		}
		printf("%s ", s);
	    }
	    printf("> '"$name"'-%d.shar;", i);
	    if (verbose)
		printf("= %5d\n", sizes[i]) > tty;
	}
    }' | $SH
@


1.1.1.1.2.1
log
@MFC: begin the upgrade of /bin/csh for 4.1-R.
@
text
@@

