Annotation of src/usr.bin/sort/sort.h, Revision 1.10
1.10 ! millert 1: /* $OpenBSD: sort.h,v 1.9 2015/03/17 17:45:13 millert Exp $ */
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 <wchar.h>
37:
38: #include <sys/types.h>
39: #include <md5.h>
40:
41: #define VERSION "2.3-OpenBSD"
42:
43: /*
44: * If true, we output some debug information.
45: */
46: extern bool debug_sort;
47:
48: /*
49: * MD5 context for random hash function
50: */
51: extern MD5_CTX md5_ctx;
1.1 millert 52:
1.9 millert 53: /*
54: * sort.c
55: */
1.1 millert 56:
1.9 millert 57: /*
58: * This structure holds main sort options which are NOT affecting the sort ordering.
59: */
60: struct sort_opts {
61: wint_t field_sep;
62: int sort_method;
63: bool cflag;
64: bool csilentflag;
65: bool kflag;
66: bool mflag;
67: bool sflag;
68: bool uflag;
69: bool zflag;
70: bool tflag;
71: bool complex_sort;
1.1 millert 72: };
73:
1.9 millert 74: /*
75: * Key value structure forward declaration
1.1 millert 76: */
1.9 millert 77: struct key_value;
78:
79: /*
80: * Cmp function
81: */
82: typedef int (*cmpcoll_t)(struct key_value *kv1, struct key_value *kv2, size_t offset);
83:
84: /*
85: * This structure holds "sort modifiers" - options which are affecting the sort ordering.
86: */
87: struct sort_mods {
88: cmpcoll_t func;
89: bool bflag;
90: bool dflag;
91: bool fflag;
92: bool gflag;
93: bool iflag;
94: bool Mflag;
95: bool nflag;
96: bool rflag;
97: bool Rflag;
98: bool Vflag;
99: bool hflag;
1.1 millert 100: };
101:
1.9 millert 102: extern bool need_hint;
103:
104: extern struct sort_opts sort_opts_vals;
105:
106: extern struct sort_mods * const default_sort_mods;
1.1 millert 107:
1.9 millert 108: #endif /* __BSD_SORT_H__ */