source: git/src/readval.h @ 19d93dd

debug-ci-sanitisersfaster-cavernloglog-selectstereo-2025walls-datawalls-data-hanging-as-warningwarn-only-for-hanging-survey
Last change on this file since 19d93dd was 0532954, checked in by Olly Betts <olly@…>, 16 months ago

Rework str.h

The previous implementation was O(n²) for a loop appending n characters
to the string. In practice the strings are typically very short for
.svx format, but for other formats they may be longer so it seems silly
to have this known inefficiency.

  • Property mode set to 100644
File size: 1.6 KB
RevLine 
[421b7d2]1/* readval.h
[0395657]2 * Routines to read a prefix or number from the current input file
[5b9b9d4]3 * Copyright (C) 1991-2024 Olly Betts
[846746e]4 *
[89231c4]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.
[846746e]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
[89231c4]12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
[846746e]14 *
[89231c4]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
[ecbc6c18]17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
[d1b1380]18 */
19
[c86cc71]20extern int root_depr_count;
21
[c458cf7]22enum {
23    /* Can the prefix be omitted? */
24    PFX_OPT = 1,
25    /* Read a survey? */
26    PFX_SURVEY = 2,
27    /* Make implicit checks */
28    PFX_SUSPECT_TYPO = 4,
29    /* Can the deprecated "root" be used? */
30    PFX_ALLOW_ROOT = 8,
[0fa7aac]31    /* Warn if the read prefix contains a separator? */
32    PFX_WARN_SEPARATOR = 16,
[710ecc1]33    /* Anonymous stations OK? */
34    PFX_ANON = 32,
[ce15637]35    /* */
36    PFX_NEW = 64,
[c458cf7]37    /* Read a station? */
38    PFX_STATION = 0
39};
40
41prefix *read_prefix(unsigned flags);
[2aa2f3f]42
[d3241e6]43real read_numeric(bool f_optional);
[61513b57]44real read_numeric_multi(bool f_optional, bool f_quadrants, int *p_n_readings);
[00b10c1]45real read_bearing_multi_or_omit(bool f_quadrants, int *p_n_readings);
[2aa2f3f]46
[0395657]47unsigned int read_uint(void);
[2aa2f3f]48
[5b9b9d4]49int read_int(int min_val, int max_val);
50
[0532954]51void read_string(string *pstr);
[950a829]52
[b5a3219]53void read_date(int *py, int *pm, int *pd);
Note: See TracBrowser for help on using the repository browser.