source: git/src/commands.h @ 3b344a0

Last change on this file since 3b344a0 was 0b99107, checked in by Olly Betts <olly@…>, 12 days 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.8 KB
Line 
1/* commands.h
2 * Header file for code for directives
3 * Copyright (C) 1994-2024 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 "str.h"
21
22/* Fix station if not already fixed.
23 *
24 * stn_offset gives column info - it should be the file offset (offset member
25 * of a filepos) or -1 for no column info.
26 *
27 * Returns:
28 *  0 if not already fixed
29 *  1 if already fixed at the same coordinates
30 * -1 if already fixed but at different coordinates
31 */
32int fix_station(prefix *fix_name, const double* coords, long stn_offset);
33
34/* Fix station with variance.
35 *
36 * Multiple fixes for the same station are OK.
37 */
38void fix_station_with_variance(prefix *fix_name, const double* coords,
39                               real var_x, real var_y, real var_z,
40#ifndef NO_COVARIANCES
41                               real cxy, real cyz, real cza
42#endif
43                              );
44
45int get_length_units(int quantity);
46int get_angle_units(int quantity);
47
48extern const real factor_tab[];
49extern const int units_to_msgno[];
50
51#define get_units_factor(U) (factor_tab[(U)])
52#define get_units_string(U) (msg(units_to_msgno[(U)]))
53
54void handle_command(void);
55void default_all(settings *s);
56
57void default_units(settings *s);
58void default_calib(settings *s);
59
60void pop_settings(void);
61void invalidate_pj_cached(void);
62void report_declination(settings *p);
63
64void copy_on_write_meta(settings *s);
65
66extern string token;
67extern string uctoken;
68
69/* Read legacy token (letters only).  This only exists so we can keep reading
70 * old data files which (presumably accidentally) are missing blanks between
71 * a token and a number which follows.  Use get_token() in new code.
72 */
73void get_token_legacy(void);
74void get_token_legacy_no_blanks(void);
75
76// Issue warning if token not empty and ch not BLANK, COMM or EOL.
77void do_legacy_token_warning(void);
78
79// Read a token, comprised of a letter followed by contiguous alphanumerics.
80void get_token(void);
81void get_token_no_blanks(void);
82
83// Read up to the next BLANK, COMM or end of line.
84void get_word(void);
85
86typedef struct { const char *sz; int tok; } sztok;
87int match_tok(const sztok *tab, int tab_size);
88
89#define TABSIZE(T) ((sizeof(T) / sizeof(sztok)) - 1)
90
91void scan_compass_station_name(prefix *stn);
92void update_output_separator(void);
Note: See TracBrowser for help on using the repository browser.