source: git/src/commands.h @ 147847c

stereo-2025warn-only-for-hanging-survey
Last change on this file since 147847c 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.7 KB
RevLine 
[421b7d2]1/* commands.h
[d1b1380]2 * Header file for code for directives
[d624d86]3 * Copyright (C) 1994-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
[0532954]20#include "str.h"
21
[85c0078]22int get_length_units(int quantity);
23int get_angle_units(int quantity);
24
25extern const real factor_tab[];
26extern const int units_to_msgno[];
27
28#define get_units_factor(U) (factor_tab[(U)])
29#define get_units_string(U) (msg(units_to_msgno[(U)]))
30
[a9f5117]31void handle_command(void);
32void default_all(settings *s);
[d1b1380]33
[be97baf]34void default_units(settings *s);
35void default_calib(settings *s);
36
[da9163b]37void pop_settings(void);
[d624d86]38void invalidate_pj_cached(void);
[37d6b84]39void report_declination(settings *p);
[69a9e01]40void set_declination_location(real x, real y, real z, const char *proj_str);
[647407d]41
[b5a3219]42void copy_on_write_meta(settings *s);
43
[0532954]44extern string token;
[a9f5117]45void get_token(void);
[f6bdb01]46void get_token_no_blanks(void);
[d1b1380]47
[63c6b49]48typedef struct { const char *sz; int tok; } sztok;
[a9f5117]49int match_tok(const sztok *tab, int tab_size);
[d1b1380]50
[63c6b49]51#define TABSIZE(T) ((sizeof(T) / sizeof(sztok)) - 1)
[5d59477]52
53void scan_compass_station_name(prefix *stn);
54void update_output_separator(void);
Note: See TracBrowser for help on using the repository browser.