Annotation of src/usr.bin/sort/sort.h, Revision 1.9
1.9 ! millert 1: /* $OpenBSD$ */
1.1 millert 2:
3: /*-
1.9 ! millert 4: * Copyright (C) 2009 Gabor Kovesdan <gabor@FreeBSD.org>
! 5: * Copyright (C) 2012 Oleg Moskalenko <mom040267@gmail.com>
! 6: * All rights reserved.
1.1 millert 7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: *
1.9 ! millert 17: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1.1 millert 18: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1.9 ! millert 20: * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1.1 millert 21: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27: * SUCH DAMAGE.
28: */
29:
1.9 ! millert 30: #if !defined(__BSD_SORT_H__)
! 31: #define __BSD_SORT_H__
! 32:
1.1 millert 33: #include <errno.h>
1.9 ! millert 34: #include <stdbool.h>
1.1 millert 35: #include <stdio.h>
1.9 ! millert 36: #include <sysexits.h>
! 37: #include <wchar.h>
! 38:
! 39: #include <sys/types.h>
! 40: #include <md5.h>
! 41:
! 42: #define VERSION "2.3-OpenBSD"
! 43:
! 44: /*
! 45: * If true, we output some debug information.
! 46: */
! 47: extern bool debug_sort;
! 48:
! 49: /*
! 50: * MD5 context for random hash function
! 51: */
! 52: extern MD5_CTX md5_ctx;
1.1 millert 53:
1.9 ! millert 54: /*
! 55: * sort.c
! 56: */
1.1 millert 57:
1.9 ! millert 58: /*
! 59: * This structure holds main sort options which are NOT affecting the sort ordering.
! 60: */
! 61: struct sort_opts {
! 62: wint_t field_sep;
! 63: int sort_method;
! 64: bool cflag;
! 65: bool csilentflag;
! 66: bool kflag;
! 67: bool mflag;
! 68: bool sflag;
! 69: bool uflag;
! 70: bool zflag;
! 71: bool tflag;
! 72: bool complex_sort;
1.1 millert 73: };
74:
1.9 ! millert 75: /*
! 76: * Key value structure forward declaration
1.1 millert 77: */
1.9 ! millert 78: struct key_value;
! 79:
! 80: /*
! 81: * Cmp function
! 82: */
! 83: typedef int (*cmpcoll_t)(struct key_value *kv1, struct key_value *kv2, size_t offset);
! 84:
! 85: /*
! 86: * This structure holds "sort modifiers" - options which are affecting the sort ordering.
! 87: */
! 88: struct sort_mods {
! 89: cmpcoll_t func;
! 90: bool bflag;
! 91: bool dflag;
! 92: bool fflag;
! 93: bool gflag;
! 94: bool iflag;
! 95: bool Mflag;
! 96: bool nflag;
! 97: bool rflag;
! 98: bool Rflag;
! 99: bool Vflag;
! 100: bool hflag;
1.1 millert 101: };
102:
1.9 ! millert 103: extern bool need_hint;
! 104:
! 105: extern struct sort_opts sort_opts_vals;
! 106:
! 107: extern struct sort_mods * const default_sort_mods;
1.1 millert 108:
1.9 ! millert 109: #endif /* __BSD_SORT_H__ */