Listing 5 (key.h)
/* Postman's Sort (R) Version 1.0 Copyright (c) Robert Ramey 1991. All Rights Reserved */ /********************************************************************* data structure for collating sequence values **********************************************************************/ typedef struct { unsigned int order, /* highest value in table */ value[256]; /* table of weights for 256 possible bytes */ } SEQ; /********************************************************************* data structure and storage for holding keys as specified in the command line **********************************************************************/ /* structure for a key */ typedef struct { unsigned int rfield; /* index of field within record */ unsigned int disp; /* starting point of key with in field */ unsigned int size; /* maximum size of key */ unsigned int key_type; /* flag to indicate type of field */ BOOLEAN inverted; /* reverse the sense of sort for this key */ SEQ *seq; /* pointer to structure of collating values */ } KEY; #define DEFAULT 0 /* default type of alphanumeric key */ #define SIGN 1 /* an optional 1 character sign */ #define NUMERIC 2 /* digits to be expanded to fixed width */ #define FRACTION 3 /* fractional part of a number */ extern KEY key[]; /* table of keys specified in command line */ extern unsigned int key_count, /* number of keys */ tab_count; extern size_t *tab, data_offset, record_offset; #define blk_offset (record_offset-1) /* End of File */