File: key.h

package info (click to toggle)
msort 8.53-2.2
  • links: PTS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 2,360 kB
  • sloc: sh: 10,138; ansic: 10,031; makefile: 51
file content (79 lines) | stat: -rw-r--r-- 2,309 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef UNORM_H
#ifndef USEUTF8PROC
#include <unicode/unorm.h>
#else
#include "unorm.h"
#endif
#endif

struct ymdinfo {
  short y; /* Indices of year, month, and day in date */
  short m;
  short d;
  wchar_t sep1;
  wchar_t sep2;
};


/* Entry in the map table, for mapping sequences to codes */

struct mapentry{
  wchar_t *str;
  wchar_t code;
  size_t len;			/* Length of str */
};

/* Entry in the substitution list */

struct subentry{
  regex_t cregexp;	/* Compiled regexp */
  wchar_t *se;		/* String to substitute */
  size_t len;		/* Length of se */
  struct subentry *next;
};

#define MONTHNAMES 24

/*
 * Each key is represented by one keyinfo structure.
 */

struct keyinfo{
  int SelectType;		/* How to select key field */
  regex_t cregexp;		/* Compiled tag regexp */ 
  short Number;		 	/* Which field to sort on if numbered */
  short Last;			/* The last field to sort on in a range */
  wchar_t *RankTable;
  int ExclusionSpec;		/* Have exclusions been specified on command line or in file? */
  struct mapentry **MapTable;
  int MapTableEntries;
  struct subentry *SubList;	/* The substitution list */
  int SubListEntries;
  wchar_t NextCode;		/* Next code available in rank table */
  wchar_t MaxMGCode;		/* The highest codepoint available for multigraphs */
  long TotalCodes;
  int RangeFirst;		/* First character in range */
  int RangeLast;		/* Last  character in range */
  int FirstOffset;
  int LastOffset;
  short OptionalP;		/* Is this key optional? */
  short MissingKeyComparison;	/* How missing keys compare to keys that are present */
  short ReverseP;		/* Reverse field? */
  short FoldCaseP;		/* Fold case? */
  short TurkicFoldCaseP;	/* Also do Turkic case-folding? */
  wchar_t *Tag;		        /* Tag of field to sort on if tagged */
  wchar_t *WhiteSpace;		/* The characters to treat as separators in the sort order file */
  struct ymdinfo ymd;		/* Date format */
  unsigned short CompType;	/* Type of comparison to use */
  int ExclusionEntries;
  unsigned char *ExclusionTable;
  short StripDiacriticsP;
  short ConvertEnclosedP;
  short ConvertStylisticP;
  short FirstCharOnlyP;
  short LocaleP;		/* Use glibc locale-based comparison? */
  char *Locale;			/* Locale for this key */
  wchar_t * MonthNames[MONTHNAMES];
  int NumberSystem;
  int NumberSystemAnyP;
};