2 * Program: pgn-extract: a Portable Game Notation (PGN) extractor.
3 * Copyright (C) 1994-2014 David Barnes
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 1, or (at your option)
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 * David Barnes may be contacted as D.J.Barnes@kent.ac.uk
19 * http://www.cs.kent.ac.uk/people/staff/djb/
23 /* Classifications for the arguments allowed in an argsfile. */
25 SEVEN_TAG_ROSTER_ARGUMENT = '7',
26 GAMES_PER_FILE_ARGUMENT = '#',
27 ALTERNATIVE_HELP_ARGUMENT = '?',
28 LONG_FORM_ARGUMENT = '-',
29 APPEND_TO_OUTPUT_FILE_ARGUMENT = 'a',
30 BOUNDS_ARGUMENT = 'b',
31 CHECK_FILE_ARGUMENT = 'c',
32 DUPLICATES_FILE_ARGUMENT = 'd',
33 USE_ECO_FILE_ARGUMENT = 'e',
34 FILE_OF_FILES_ARGUMENT = 'f',
36 WRITE_TO_LOG_FILE_ARGUMENT = 'l',
37 NON_MATCHING_GAMES_ARGUMENT = 'n',
38 WRITE_TO_OUTPUT_FILE_ARGUMENT = 'o',
39 CHECK_ONLY_ARGUMENT = 'r',
40 KEEP_SILENT_ARGUMENT = 's',
43 LINE_WIDTH_ARGUMENT = 'w',
44 POSITIONS_ARGUMENT = 'x',
45 ENDINGS_ARGUMENT = 'z',
46 FILE_OF_ARGUMENTS_ARGUMENT = 'A',
47 DONT_KEEP_COMMENTS_ARGUMENT = 'C',
48 DONT_KEEP_DUPLICATES_ARGUMENT = 'D',
49 ECO_OUTPUT_LEVEL_ARGUMENT = 'E',
50 OUTPUT_FEN_STRING_ARGUMENT = 'F',
51 APPEND_TO_LOG_FILE_ARGUMENT = 'L',
52 MATCH_CHECKMATE_ARGUMENT = 'M',
53 DONT_KEEP_NAGS_ARGUMENT = 'N',
54 DONT_MATCH_PERMUTATIONS_ARGUMENT = 'P',
55 TAG_ROSTER_ARGUMENT = 'R',
56 USE_SOUNDEX_ARGUMENT = 'S',
57 TAG_EXTRACTION_ARGUMENT = 'T',
58 SUPPRESS_ORIGINALS_ARGUMENT = 'U',
59 DONT_KEEP_VARIATIONS_ARGUMENT = 'V',
60 OUTPUT_FORMAT_ARGUMENT = 'W',
61 USE_VIRTUAL_HASH_TABLE_ARGUMENT = 'Z',
62 NO_ARGUMENT_MATCH = '\0' /* No argument match. */
65 void read_args_file(const char *infile);
66 void process_argument(char arg_letter,const char *associated_value);
67 int process_long_form_argument(const char *argument, const char *associated_value);