* The Regents of the University of California. All rights reserved.
* This code is derived from software contributed to Berkeley by
* %sccs.include.redist.c%
* @(#)sort.h 8.1 (Berkeley) %G%
/* values for masks, weights, and other flags. */
#define I 1 /* mask out non-printable characters */
#define D 2 /* sort alphanumeric characters only */
#define N 4 /* Field is a number */
#define F 8 /* weight lower and upper case the same */
#define R 16 /* Field is reversed with respect to the global weight */
#define BI 32 /* ignore blanks in icol */
#define BT 64 /* ignore blanks in tcol */
/* masks for delimiters: blanks, fields, and termination. */
#define BLANK 1 /* ' ', '\t'; '\n' if -T is invoked */
#define FLD_D 2 /* ' ', '\t' default; from -t otherwise */
#define REC_D_F 4 /* '\n' default; from -T otherwise */
#define ND 10 /* limit on number of -k options. */
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
if (EOF == fclose(file)) \
#define EWRITE(ptr, size, n, f) { \
if (!fwrite(ptr, size, n, f)) \
/* length of record is currently limited to 2^16 - 1 */
typedef u_short length_t
;
#define SALIGN(n) ((n+1) & ~1)
/* a record is a key/line pair starting at rec.data. It has a total length
* and an offset to the start of the line half of the pair.
typedef struct recheader
{
typedef struct trecheader
{
/* This is the column as seen by struct field. It is used by enterfield.
* They are matched with corresponding coldescs during initialization.
/* a coldesc has a number and pointers to the beginning and end of the
* corresponding column in the current line. This is determined in enterkey.
/* A field has an initial and final column; an omitted final column
* implies the end of the line. Flags regulate omission of blanks and
* numerical sorts; mask determines which characters are ignored (from -i, -d);
* weights determines the sort weights of a character (from -f, -r).
extern int PANIC
; /* maximum depth of fsort before fmerge is called */
extern u_char ascii
[NBINS
], Rascii
[NBINS
], Ftable
[NBINS
], RFtable
[NBINS
];
extern u_char alltable
[NBINS
], dtable
[NBINS
], itable
[NBINS
];
extern u_char d_mask
[NBINS
];
extern int SINGL_FLD
, SEP_FLAG
, UNIQUE
;