/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1992-2012 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* David Korn <dgk@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
/*
* David Korn
* AT&T Bell Laboratories
*
* output the beginning portion of one or more files
*/
static const char usage[] =
"[-n?\n@(#)$Id: head (AT&T Research) 2012-05-31 $\n]"
"[+NAME?head - output beginning portion of one or more files ]"
"[+DESCRIPTION?\bhead\b copies one or more input files to standard "
"output stopping at a designated point for each file or to the end of "
"the file whichever comes first. Copying ends at the point indicated by "
"the options. By default a header of the form \b==> \b\afilename\a\b "
"<==\b is output before all but the first file but this can be changed "
"with the \b-q\b and \b-v\b options.]"
"[+?If no \afile\a is given, or if the \afile\a is \b-\b, \bhead\b "
"copies from standard input starting at the current location.]"
"[+?The option argument for \b-c\b, and \b-s\b can optionally be "
"followed by one of the following characters to specify a different unit "
"other than a single byte:]"
"{"
"[+b?512 bytes.]"
"[+k?1-killobyte.]"
"[+m?1-megabyte.]"
"}"
"[+?For backwards compatibility, \b-\b\anumber\a is equivalent to \b-n\b "
"\anumber\a.]"
"[n:lines?Copy \alines\a lines from each file.]#[lines:=10]"
"[c:bytes?Copy \achars\a bytes from each file.]#[chars]"
"[q:quiet|silent?Never ouput filename headers.]"
"[s:skip?Skip \askip\a characters or lines from each file before "
"copying.]#[skip]"
"[v:verbose?Always ouput filename headers.]"
"\n\n"
"[ file ... ]"
"\n\n"
"[+EXIT STATUS?]"
"{"
"[+0?All files copied successfully.]"
"[+>0?One or more files did not copy.]"
"}"
"[+SEE ALSO?\bcat\b(1), \btail\b(1)]"
;
#include <cmd.h>
int
{
register char* cp;
for (;;)
{
{
case 'c':
delim = -1;
/*FALLTHROUGH*/
case 'n':
{
delim = -1;
}
continue;
case 'q':
continue;
case 'v':
header = 0;
continue;
case 's':
continue;
case '?':
continue;
case ':':
continue;
}
break;
}
if (error_info.errors)
argv++;
do
{
{
}
{
continue;
}
format = (char*)header_fmt;
if (skip > 0)
return error_info.errors != 0;
}