2 * Routines to read a prefix or number from the current input file
3 * Copyright (C) 1991-2024 Olly Betts
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.
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.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 extern int root_depr_count
;
23 /* Can the prefix be omitted? If it is, read_prefix() returns NULL. */
27 /* Make implicit checks */
29 /* Can the deprecated "root" be used? */
31 /* Warn if the read prefix contains a separator? */
32 PFX_WARN_SEPARATOR
= 16,
33 /* Anonymous stations OK? */
39 prefix
*read_prefix(unsigned flags
);
41 // Read a sequence of NAMES characters. Returns NULL if none.
42 // Caller is responsible for calling osfree() on the returned value.
43 char *read_walls_prefix(void);
45 prefix
*read_walls_station(char * const walls_prefix
[3], bool anon_allowed
);
47 // Like read_numeric() but doesn't skipblanks() first and can be told to not
49 real
read_number(bool f_optional
, bool f_unsigned
);
51 real
read_quadrant(bool f_optional
);
53 real
read_numeric(bool f_optional
);
54 real
read_numeric_multi(bool f_optional
, bool f_quadrants
, int *p_n_readings
);
55 real
read_bearing_multi_or_omit(bool f_quadrants
, int *p_n_readings
);
57 unsigned int read_uint(void);
59 int read_int(int min_val
, int max_val
);
61 void read_string(string
*pstr
);
63 void read_date(int *py
, int *pm
, int *pd
);
65 void read_walls_srv_date(int *py
, int *pm
, int *pd
);