source: git/src/readval.h @ d731218

main
Last change on this file since d731218 was 0b99107, checked in by Olly Betts <olly@…>, 3 weeks ago

Eliminate old FSF addresses

Update GPL/LGPL licence files and boilerplate to direct people who
didn't receive the licence text to the FSF website, as the current
versions of the FSF licence texts now do, rather than giving a postal
address.

  • Property mode set to 100644
File size: 2.2 KB
Line 
1/* readval.h
2 * Routines to read a prefix or number from the current input file
3 * Copyright (C) 1991-2025 Olly Betts
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, see
17 * <https://www.gnu.org/licenses/>.
18 */
19
20#include "datain.h"
21
22extern int root_depr_count;
23
24enum {
25    /* Can the prefix be omitted?  If it is, read_prefix() returns NULL. */
26    PFX_OPT = 1,
27    /* Read a survey? */
28    PFX_SURVEY = 2,
29    /* Make implicit checks */
30    PFX_SUSPECT_TYPO = 4,
31    /* Can the deprecated "root" be used? */
32    PFX_ALLOW_ROOT = 8,
33    /* Warn if the read prefix contains a separator? */
34    PFX_WARN_SEPARATOR = 16,
35    /* Anonymous stations OK? */
36    PFX_ANON = 32,
37    /* Read a station? */
38    PFX_STATION = 0
39};
40
41prefix *read_prefix(unsigned flags);
42
43// Read a sequence of NAMES characters.  Returns NULL if none.
44// Caller is responsible for calling free() on the returned value.
45char *read_walls_prefix(void);
46
47prefix *read_walls_station(char * const walls_prefix[3],
48                           bool anon_allowed,
49                           bool *p_new);
50
51// Like read_numeric() but doesn't skipblanks() first and can be told to not
52// allow a sign.
53real read_number(bool f_optional, bool f_unsigned);
54
55real read_quadrant(bool f_optional);
56
57real read_numeric(bool f_optional);
58real read_numeric_multi(bool f_optional, bool f_quadrants, int *p_n_readings);
59real read_bearing_multi_or_omit(bool f_quadrants, int *p_n_readings);
60
61/* Don't skip blanks; can specify diagnostic type and error code. */
62unsigned int read_uint_raw(int diag_type, int errmsg, const filepos *fp);
63
64unsigned int read_uint(void);
65
66int read_int(int min_val, int max_val);
67
68void read_string(string *pstr);
69
70bool read_string_warning(string *pstr);
71
72void read_walls_srv_date(int *py, int *pm, int *pd);
Note: See TracBrowser for help on using the repository browser.