GRASS 8 Programmer's Manual 8.6.0dev(2026)-56a9afeb9f
Loading...
Searching...
No Matches
defs/gis.h
Go to the documentation of this file.
1/*
2 *****************************************************************************
3 *
4 * MODULE: Grass Include Files
5 * AUTHOR(S): Original author unknown - probably CERL
6 * Justin Hickey - Thailand - jhickey@hpcc.nectec.or.th
7 * PURPOSE: This file contains the prototypes for all the functions in the
8 * gis library (src/libes/gis).
9 * COPYRIGHT: (C) 2000 by the GRASS Development Team
10 *
11 * This program is free software under the GNU General Public
12 * License (>=v2). Read the file COPYING that comes with GRASS
13 * for details.
14 *
15 *****************************************************************************/
16
17#ifndef GRASS_GISDEFS_H
18#define GRASS_GISDEFS_H
19
20/*============================= Include Files ==============================*/
21
22/* none */
23
24/*=========================== Constants/Defines ============================*/
25
26/* none (look in gis.h) */
27
28/*=========================== Typedefs/Structures ==========================*/
29
30/* none (look in gis.h) */
31
32/*============================== Prototypes ================================*/
33
34#include <grass/config.h>
35
36#ifdef __GNUC__
37#ifdef __MINGW32__
38#include <malloc.h>
39#else
40#if (defined(__unix__) || defined(unix)) && !defined(USG)
41#include <sys/param.h>
42#endif
43#if (defined(BSD))
44/* no malloc.h, no alloca.h ?
45 * TODO: better
46 * check if alloca.h exists,
47 * if not, check if malloc.h exists,
48 * if not use stdlib.h */
49#include <stdlib.h>
50#else
51#include <alloca.h>
52#endif
53#endif
54#define G_alloca(n) alloca(n)
55#define G_freea(p)
56#else
57#define G_alloca(n) G_malloc(n)
58#define G_freea(p) G_free(p)
59#endif
60
61#include <stdarg.h>
62#include <stdio.h>
63
64#ifndef CTYPESGEN
65#include <setjmp.h>
66#endif
67
68#include <sys/types.h>
69#include <sys/stat.h>
70
71#ifndef RELDIR
72#define RELDIR "?"
73#endif
74
75/* adj_cellhd.c */
76void G_adjust_Cell_head(struct Cell_head *, int, int);
77void G_adjust_Cell_head3(struct Cell_head *, int, int, int);
78int G_adjust_window_ll(struct Cell_head *cellhd);
79
80/* alloc.c */
81#define G_incr_void_ptr(ptr, size) \
82 ((void *)((const unsigned char *)(ptr) + (size)))
83
84// Improve diagnostic capabilities for compilers and/or static analyzers
85
86#ifndef __has_attribute
87#define __has_attribute(x) 0
88#endif
89
90#if __has_attribute(malloc) && defined(__GNUC__) && (__GNUC__ >= 11)
91#define G_ATTR_MALLOC __attribute__((malloc, malloc(G_free, 1)))
92#elif __has_attribute(malloc)
93#define G_ATTR_MALLOC __attribute__((malloc))
94#else
95#define G_ATTR_MALLOC
96#endif
97
98#if __has_attribute(returns_nonnull)
99#define G_ATTR_RET_NONNULL __attribute__((returns_nonnull))
100#else
101#define G_ATTR_RET_NONNULL
102#endif
103
104#if __has_attribute(alloc_size)
105#define G_ATTR_ALLOC_SIZE1(N) __attribute__((alloc_size(N)))
106#define G_ATTR_ALLOC_SIZE2(N, M) __attribute__((alloc_size(N, M)))
107#else
108#define G_ATTR_ALLOC_SIZE1(N)
109#define G_ATTR_ALLOC_SIZE2(N, M)
110#endif
111
112// Clang Static Analyzer ownership annotations
113#if defined(__clang__) && __has_attribute(ownership_returns) && \
114 __has_attribute(ownership_takes)
115#define G_ATTR_OWNSHIP_RET __attribute__((ownership_returns(malloc)))
116#define G_ATTR_OWNSHIP_TAKE __attribute__((ownership_takes(malloc, 1)))
117#else
118#define G_ATTR_OWNSHIP_RET
119#define G_ATTR_OWNSHIP_TAKE
120#endif
121
122#define G_MALLOC_ATTR \
123 G_ATTR_MALLOC G_ATTR_ALLOC_SIZE1(3) G_ATTR_OWNSHIP_RET G_ATTR_RET_NONNULL
124#define G_CALLOC_ATTR \
125 G_ATTR_MALLOC G_ATTR_ALLOC_SIZE2(3, 4) G_ATTR_OWNSHIP_RET G_ATTR_RET_NONNULL
126#define G_REALLOC_ATTR G_ATTR_ALLOC_SIZE1(4) G_ATTR_RET_NONNULL
127#define G_FREE_ATTR G_ATTR_OWNSHIP_TAKE
128
129void G_free(void *) G_FREE_ATTR;
130void *G__malloc(const char *, int, size_t) G_MALLOC_ATTR;
131void *G__calloc(const char *, int, size_t, size_t) G_CALLOC_ATTR;
132void *G__realloc(const char *, int, void *, size_t) G_REALLOC_ATTR;
133
134#ifndef G_incr_void_ptr
135void *G_incr_void_ptr(const void *, size_t);
136#endif
137
138#ifndef CTYPESGEN
139#define G_malloc(n) G__malloc(RELDIR "/" __FILE__, __LINE__, (n))
140#define G_calloc(m, n) G__calloc(RELDIR "/" __FILE__, __LINE__, (m), (n))
141#define G_realloc(p, n) G__realloc(RELDIR "/" __FILE__, __LINE__, (p), (n))
142#else
143#define G_malloc(n) G__malloc("<ctypesgen>", 0, (n))
144#define G_calloc(m, n) G__calloc("<ctypesgen>", 0, (m), (n))
145#define G_realloc(p, n) G__realloc("<ctypesgen>", 0, (p), (n))
146#endif
147
148/* area.c */
150double G_area_of_cell_at_row(int);
152double G_area_of_polygon(const double *, const double *, int);
153
154/* area_ellipse.c */
155void G_begin_zone_area_on_ellipsoid(double, double, double);
156double G_darea0_on_ellipsoid(double);
157double G_area_for_zone_on_ellipsoid(double, double);
158
159/* area_poly1.c */
160void G_begin_ellipsoid_polygon_area(double, double);
161double G_ellipsoid_polygon_area(const double *, const double *, int);
162
163/* area_poly2.c */
164double G_planimetric_polygon_area(const double *, const double *, int);
165
166/* area_sphere.c */
167void G_begin_zone_area_on_sphere(double, double);
168double G_darea0_on_sphere(double);
169double G_area_for_zone_on_sphere(double, double);
170
171/* ascii_chk.c */
172void G_ascii_check(char *);
173
174/* asprintf.c */
175/* Do it better if you know how */
176/* asprintf is not found on MINGW but exists */
177
178/*
179 * Because configure script in GDAL test is G_asprintf exists in gis lib
180 * the G_asprintf macro is disabled until a stable version of GDAL
181 * with a different function becomes widely used
182 */
183int G_vasprintf(char **, const char *, va_list);
184int G_asprintf(char **, const char *, ...)
185 __attribute__((format(printf, 2, 3)));
186
187int G_rasprintf(char **, size_t *, const char *, ...)
188 __attribute__((format(printf, 3, 4)));
189
190/* aprintf.c */
191int G_aprintf(const char *, ...);
192int G_faprintf(FILE *, const char *, ...);
193int G_saprintf(char *, const char *, ...);
194int G_snaprintf(char *, size_t, const char *, ...);
195int G_vaprintf(const char *, va_list);
196int G_vfaprintf(FILE *, const char *, va_list);
197int G_vsaprintf(char *, const char *, va_list);
198int G_vsnaprintf(char *, size_t, const char *, va_list);
199
200/* strlcat.c */
201size_t G_strlcat(char *, const char *, size_t);
202
203/* strlcpy.c */
204size_t G_strlcpy(char *, const char *, size_t);
205
206/* basename.c */
207char *G_basename(char *, const char *);
208size_t G_get_num_decimals(const char *);
209char *G_double_to_basename_format(double, size_t, size_t);
210char *G_get_basename_separator(void);
211char *G_join_basename_strings(const char **, size_t);
212char *G_generate_basename(const char *, double, size_t, size_t);
213
214/* bres_line.c */
215void G_bresenham_line(int, int, int, int, int (*)(int, int));
216
217/* clicker.c */
218void G_clicker(void);
219
220/* color_rules.c */
221char *G_color_rules_options(void);
224void G_list_color_rules(FILE *);
225void G_list_color_rules_description_type(FILE *, char *);
226int G_find_color_rule(const char *);
227
228/* color_str.c */
229int G_num_standard_colors(void);
230
231/* commas.c */
232int G_insert_commas(char *);
233void G_remove_commas(char *);
234
235/* compress.c */
236int G_compressor_number(char *);
237char *G_compressor_name(int);
238int G_default_compressor(void);
239int G_check_compressor(int);
240int G_write_compressed(int, unsigned char *, int, int);
241int G_write_unompressed(int, unsigned char *, int);
242int G_read_compressed(int, int, unsigned char *, int, int);
243int G_compress_bound(int, int);
244int G_compress(unsigned char *, int, unsigned char *, int, int);
245int G_expand(unsigned char *, int, unsigned char *, int, int);
246
247/* compress.c : no compression */
248int G_no_compress(unsigned char *src, int src_sz, unsigned char *dst,
249 int dst_sz);
250int G_no_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz);
251
252/* cmprrle.c : Run Length Encoding (RLE) */
253int G_rle_compress(unsigned char *src, int src_sz, unsigned char *dst,
254 int dst_sz);
255int G_rle_expand(unsigned char *src, int src_sz, unsigned char *dst,
256 int dst_sz);
257
258/* cmprzlib.c : ZLIB's DEFLATE */
259int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst,
260 int dst_sz);
261int G_zlib_expand(unsigned char *src, int src_sz, unsigned char *dst,
262 int dst_sz);
263
264/* cmprlz4.c : LZ4, extremely fast */
265int G_lz4_compress(unsigned char *src, int src_sz, unsigned char *dst,
266 int dst_sz);
267int G_lz4_expand(unsigned char *src, int src_sz, unsigned char *dst,
268 int dst_sz);
269
270/* cmprbzip.c : BZIP2, high compression, faster than ZLIB's DEFLATE with level 9
271 */
272int G_bz2_compress(unsigned char *src, int src_sz, unsigned char *dst,
273 int dst_sz);
274int G_bz2_expand(unsigned char *src, int src_sz, unsigned char *dst,
275 int dst_sz);
276
277/* cmprzstd.c : ZSTD, compression similar to ZLIB's DEFLATE but faster */
278int G_zstd_compress(unsigned char *src, int src_sz, unsigned char *dst,
279 int dst_sz);
280int G_zstd_expand(unsigned char *src, int src_sz, unsigned char *dst,
281 int dst_sz);
282
283/* add more compression methods here */
284
285/* copy_dir.c */
286int G_recursive_copy(const char *, const char *);
287
288/* copy_file.c */
289int G_copy_file(const char *, const char *);
290
291/* counter.c */
292int G_is_initialized(int *);
293void G_initialize_done(int *);
294void G_init_counter(struct Counter *, int);
295int G_counter_next(struct Counter *);
296
297/* date.c */
298const char *G_date(void);
299
300/* datum.c */
301int G_get_datum_by_name(const char *);
302const char *G_datum_name(int);
303const char *G_datum_description(int);
304const char *G_datum_ellipsoid(int);
305int G_get_datumparams_from_projinfo(const struct Key_Value *, char *, char *);
306void G_read_datum_table(void);
307
308/* debug.c */
309void G_init_debug(void);
310int G_debug(int, const char *, ...) __attribute__((format(printf, 2, 3)));
311
312/* distance.c */
314double G_distance(double, double, double, double);
315double G_distance_between_line_segments(double, double, double, double, double,
316 double, double, double);
317double G_distance_point_to_line_segment(double, double, double, double, double,
318 double);
319
320/* done_msg.c */
321void G_done_msg(const char *, ...) __attribute__((format(printf, 1, 2)));
322
323/* endian.c */
324int G_is_little_endian(void);
325
326/* env.c */
327void G_init_env(void);
328const char *G_getenv(const char *);
329const char *G_getenv2(const char *, int);
330const char *G_getenv_nofatal(const char *);
331const char *G_getenv_nofatal2(const char *, int);
332void G_setenv(const char *, const char *);
333void G_setenv2(const char *, const char *, int);
334void G_setenv_nogisrc(const char *, const char *);
335void G_setenv_nogisrc2(const char *, const char *, int);
336void G_unsetenv(const char *);
337void G_unsetenv2(const char *, int);
338const char *G_get_env_name(int);
339void G_set_gisrc_mode(int);
340int G_get_gisrc_mode(void);
341void G_create_alt_env(void);
342void G_switch_env(void);
343void G__read_mapset_env(void);
344void G__read_gisrc_env(void);
345void G__read_gisrc_path(void);
346
347/* error.c */
348#ifndef CTYPESGEN
349jmp_buf *G_fatal_longjmp(int);
350#endif
351
352int G_info_format(void);
353void G_message(const char *, ...) __attribute__((format(printf, 1, 2)));
354void G_verbose_message(const char *, ...) __attribute__((format(printf, 1, 2)));
355void G_important_message(const char *, ...)
356 __attribute__((format(printf, 1, 2)));
357void G_fatal_error(const char *, ...) __attribute__((format(printf, 1, 2)))
358__attribute__((noreturn));
359void G_warning(const char *, ...) __attribute__((format(printf, 1, 2)));
360int G_suppress_warnings(int);
361int G_sleep_on_error(int);
362void G_set_error_routine(int (*)(const char *, int));
363void G_unset_error_routine(void);
364void G_init_logging(void);
365
366/* file_name.c */
367char *G_file_name(char *, const char *, const char *, const char *);
368char *G_file_name_misc(char *, const char *, const char *, const char *,
369 const char *);
370char *G_file_name_tmp(char *, const char *, const char *, const char *);
371char *G_file_name_basedir(char *, const char *, const char *, const char *,
372 const char *);
373
374/* find_file.c */
375const char *G_find_file(const char *, char *, const char *);
376const char *G_find_file2(const char *, const char *, const char *);
377const char *G_find_file_misc(const char *, const char *, char *, const char *);
378const char *G_find_file2_misc(const char *, const char *, const char *,
379 const char *);
380
381/* find_etc.c */
382char *G_find_etc(const char *);
383
384/* find_rast.c */
385const char *G_find_raster(char *, const char *);
386const char *G_find_raster2(const char *, const char *);
387
388/* find_rast3d.c */
389const char *G_find_raster3d(const char *, const char *);
390
391/* find_vect.c */
392const char *G_find_vector(char *, const char *);
393const char *G_find_vector2(const char *, const char *);
394
395/* geodesic.c */
396int G_begin_geodesic_equation(double, double, double, double);
397double G_geodesic_lat_from_lon(double);
398
399/* geodist.c */
400void G_begin_geodesic_distance(double, double);
403double G_geodesic_distance_lon_to_lon(double, double);
404double G_geodesic_distance(double, double, double, double);
405
406/* get_ellipse.c */
407int G_get_ellipsoid_parameters(double *, double *);
408int G_get_spheroid_by_name(const char *, double *, double *, double *);
409int G_get_ellipsoid_by_name(const char *, double *, double *);
410const char *G_ellipsoid_name(int);
411const char *G_ellipsoid_description(int);
413
414/* get_projinfo.c */
415struct Key_Value *G_get_projunits(void);
416struct Key_Value *G_get_projinfo(void);
417struct Key_Value *G_get_projepsg(void);
418char *G_get_projwkt(void);
419char *G_get_projsrid(void);
420
421/* get_window.c */
422void G_get_window(struct Cell_head *);
423void G_get_default_window(struct Cell_head *);
424void G_get_element_window(struct Cell_head *, const char *, const char *,
425 const char *);
426
427/* getl.c */
428int G_getl(char *, int, FILE *);
429int G_getl2(char *, int, FILE *);
430
431/* gisbase.c */
432const char *G_gisbase(void);
433
434/* gisdbase.c */
435const char *G_gisdbase(void);
436
437/* gisinit.c */
438void G__gisinit(const char *, const char *);
439void G__no_gisinit(const char *);
440void G_init_all(void);
441
442/* handler.c */
443void G_add_error_handler(void (*)(void *), void *);
444void G_remove_error_handler(void (*)(void *), void *);
445
446/* home.c */
447const char *G_home(void);
448const char *G_config_path(void);
449
450/* ilist.c */
451void G_init_ilist(struct ilist *);
452void G_free_ilist(struct ilist *);
453struct ilist *G_new_ilist(void);
454void G_ilist_add(struct ilist *, int);
455
456/* intersect.c */
457int G_intersect_line_segments(double, double, double, double, double, double,
458 double, double, double *, double *, double *,
459 double *);
460
461/* is.c */
462int G_is_gisbase(const char *);
463int G_is_location(const char *);
464int G_is_mapset(const char *);
465
466/* key_value1.c */
467struct Key_Value *G_create_key_value(void);
468void G_set_key_value(const char *, const char *, struct Key_Value *);
469const char *G_find_key_value(const char *, const struct Key_Value *);
470void G_free_key_value(struct Key_Value *);
471
472/* key_value2.c */
473int G_fwrite_key_value(FILE *, const struct Key_Value *);
474struct Key_Value *G_fread_key_value(FILE *);
475
476/* key_value3.c */
477void G_write_key_value_file(const char *, const struct Key_Value *);
478struct Key_Value *G_read_key_value_file(const char *);
479
480/* key_value4.c */
481void G_update_key_value_file(const char *, const char *, const char *);
482int G_lookup_key_value_from_file(const char *, const char *, char[], int);
483
484/* legal_name.c */
485int G_legal_filename(const char *);
486int G_check_input_output_name(const char *, const char *, int);
487
488/* line_dist.c */
490double G_distance2_point_to_line(double, double, double, double, double,
491 double);
492
493/* list.c */
494void G_list_element(const char *, const char *, const char *,
495 int (*)(const char *, const char *, char *));
496char **G_list(int, const char *, const char *, const char *);
497void G_free_list(char **);
498
499/* ll_format.c */
500void G_lat_format(double, char *);
501const char *G_lat_format_string(void);
502void G_lon_format(double, char *);
503const char *G_lon_format_string(void);
504void G_llres_format(double, char *);
505const char *G_llres_format_string(void);
506void G_lat_parts(double, int *, int *, double *, char *);
507void G_lon_parts(double, int *, int *, double *, char *);
508
509/* ll_scan.c */
510int G_lat_scan(const char *, double *);
511int G_lon_scan(const char *, double *);
512int G_llres_scan(const char *, double *);
513
514/* location.c */
515const char *G_location(void);
516char *G_location_path(void);
517
518/* lrand48.c */
519void G_srand48(long);
520long G_srand48_auto(void);
521long G_lrand48(void);
522long G_mrand48(void);
523double G_drand48(void);
524
525/* ls.c */
526void G_set_ls_filter(int (*)(const char *, void *), void *);
527void G_set_ls_exclude_filter(int (*)(const char *, void *), void *);
528char **G_ls2(const char *, int *);
529void G_ls(const char *, FILE *);
530void G_ls_format(char **, int, int, FILE *);
531
532/* ls_filter.c */
533#if defined(HAVE_REGEX_H) || defined(HAVE_PCRE_H)
534void *G_ls_regex_filter(const char *, int, int, int);
535void *G_ls_glob_filter(const char *, int, int);
536void G_free_ls_filter(void *);
537#endif
538
539/* make_loc.c */
540int G_make_location(const char *, struct Cell_head *, const struct Key_Value *,
541 const struct Key_Value *);
542int G_make_location_epsg(const char *, struct Cell_head *,
543 const struct Key_Value *, const struct Key_Value *,
544 const struct Key_Value *);
545int G_make_location_crs(const char *, struct Cell_head *,
546 const struct Key_Value *, const struct Key_Value *,
547 const char *, const char *);
548int G_write_projsrid(const char *, const char *);
549int G_write_projwkt(const char *, const char *);
550int G_compare_projections(const struct Key_Value *, const struct Key_Value *,
551 const struct Key_Value *, const struct Key_Value *);
552
553/* make_mapset.c */
554int G_make_mapset(const char *, const char *, const char *);
555
556/* mapcase.c */
557char *G_tolcase(char *);
558char *G_toucase(char *);
559
560/* mapset.c */
561const char *G_mapset(void);
562char *G_mapset_path(void);
563
564/* mapset_msc.c */
565int G_make_mapset_element(const char *);
566int G_make_mapset_element_tmp(const char *);
567int G_make_mapset_object_group(const char *);
568int G_make_mapset_dir_object(const char *, const char *);
569int G_make_mapset_object_group_tmp(const char *);
570int G_make_mapset_object_group_basedir(const char *, const char *);
571int G__make_mapset_element_misc(const char *, const char *);
572int G_mapset_permissions(const char *);
573int G_mapset_permissions2(const char *, const char *, const char *);
574
575/* mapset_nme.c */
576const char *G_get_mapset_name(int);
577void G_create_alt_search_path(void);
578void G_switch_search_path(void);
579void G_reset_mapsets(void);
580char **G_get_available_mapsets(void);
581void G_add_mapset_to_search_path(const char *);
582int G_is_mapset_in_search_path(const char *);
583
584/* myname.c */
585char *G_myname(void);
586
587/* named_colr.c */
588int G_color_values(const char *, float *, float *, float *);
589const char *G_color_name(int);
590
591/* nl_to_spaces.c */
592void G_newlines_to_spaces(char *);
593
594/* nme_in_mps.c */
595int G_name_is_fully_qualified(const char *, char *, char *);
596char *G_fully_qualified_name(const char *, const char *);
597int G_unqualified_name(const char *, const char *, char *, char *);
598
599/* omp_threads.c */
600int G_set_omp_num_threads(struct Option *);
601
602/* open.c */
603int G_open_new(const char *, const char *);
604int G_open_old(const char *, const char *, const char *);
605int G_open_update(const char *, const char *);
606FILE *G_fopen_new(const char *, const char *);
607FILE *G_fopen_old(const char *, const char *, const char *);
608FILE *G_fopen_append(const char *, const char *);
609FILE *G_fopen_modify(const char *, const char *);
610
611/* open_misc.c */
612int G_open_new_misc(const char *, const char *, const char *);
613int G_open_old_misc(const char *, const char *, const char *, const char *);
614int G_open_update_misc(const char *, const char *, const char *);
615FILE *G_fopen_new_misc(const char *, const char *, const char *);
616FILE *G_fopen_old_misc(const char *, const char *, const char *, const char *);
617FILE *G_fopen_append_misc(const char *, const char *, const char *);
618FILE *G_fopen_modify_misc(const char *, const char *, const char *);
619
620/* overwrite.c */
621int G_check_overwrite(int argc, char **argv);
622
623/* pager.c */
624FILE *G_open_pager(struct Popen *);
625void G_close_pager(struct Popen *);
626FILE *G_open_mail(struct Popen *);
627void G_close_mail(struct Popen *);
628
629/* parser.c */
630void G_disable_interactive(void);
631struct GModule *G_define_module(void);
632struct Flag *G_define_flag(void);
633struct Option *G_define_option(void);
635struct Flag *G_define_standard_flag(int);
636int G_parser(int, char **);
637void G_usage(void);
638char *G_recreate_command(void);
639void G_add_keyword(const char *);
640void G_set_keywords(const char *);
641int G_get_overwrite(void);
642char *G_option_to_separator(const struct Option *);
643FILE *G_open_option_file(const struct Option *);
644void G_close_option_file(FILE *);
645
646/* parser_dependencies.c */
647void G_option_rule(int, int, void **);
648void G_option_exclusive(void *, ...);
649void G_option_required(void *, ...);
650void G_option_requires(void *, ...);
651void G_option_requires_all(void *, ...);
652void G_option_excludes(void *, ...);
653void G_option_collective(void *, ...);
654
655/* paths.c */
656int G_mkdir(const char *);
657int G_is_dirsep(char);
658int G_is_absolute_path(const char *);
659char *G_convert_dirseps_to_host(char *);
660char *G_convert_dirseps_from_host(char *);
661int G_lstat(const char *, struct stat *);
662int G_stat(const char *, struct stat *);
663int G_owner(const char *);
664
665/* percent.c */
666void G_percent(long, long, int);
667void G_percent_reset(void);
668void G_progress(long, int);
669void G_set_percent_routine(int (*)(int));
670void G_unset_percent_routine(void);
671
672/* popen.c */
673void G_popen_clear(struct Popen *);
674FILE *G_popen_write(struct Popen *, const char *, const char **);
675FILE *G_popen_read(struct Popen *, const char *, const char **);
676void G_popen_close(struct Popen *);
677
678/* plot.c */
679void G_setup_plot(double, double, double, double, int (*)(int, int),
680 int (*)(int, int));
681void G_setup_fill(int);
682void G_plot_where_xy(double, double, int *, int *);
683void G_plot_where_en(int, int, double *, double *);
684void G_plot_point(double, double);
685void G_plot_line(double, double, double, double);
686void G_plot_line2(double, double, double, double);
687int G_plot_polygon(const double *, const double *, int);
688int G_plot_area(double *const *, double *const *, int *, int);
689void G_plot_fx(double (*)(double), double, double);
690
691/* pole_in_poly.c */
692int G_pole_in_polygon(const double *, const double *, int);
693
694/* progrm_nme.c */
695const char *G_program_name(void);
696const char *G_original_program_name(void);
697void G_set_program_name(const char *);
698
699/* proj1.c */
700int G_projection(void);
701
702/* proj2.c */
703int G_projection_units(int);
704const char *G_projection_name(int);
705
706/* proj3.c */
707const char *G_database_unit_name(int);
708int G_database_unit(void);
709const char *G_database_projection_name(void);
710const char *G_database_datum_name(void);
711const char *G_database_ellipse_name(void);
713const char *G_database_epsg_code(void);
714
715/* put_window.c */
716int G_put_window(const struct Cell_head *);
717int G_put_element_window(const struct Cell_head *, const char *, const char *);
718
719/* putenv.c */
720void G_putenv(const char *, const char *);
721
722/* radii.c */
723double G_meridional_radius_of_curvature(double, double, double);
724double G_transverse_radius_of_curvature(double, double, double);
725double G_radius_of_conformal_tangent_sphere(double, double, double);
726
727/* rd_cellhd.c */
728void G__read_Cell_head(FILE *, struct Cell_head *);
729void G__read_Cell_head_array(char **, struct Cell_head *);
730
731/* remove.c */
732int G_remove(const char *, const char *);
733int G_remove_misc(const char *, const char *, const char *);
734int G_recursive_remove(const char *);
735
736/* rename.c */
737int G_rename_file(const char *, const char *);
738int G_rename(const char *, const char *, const char *);
739
740/* rhumbline.c */
741int G_begin_rhumbline_equation(double, double, double, double);
742double G_rhumbline_lat_from_lon(double);
743
744/* rotate.c */
745void G_rotate_around_point(double, double, double *, double *, double);
746void G_rotate_around_point_int(int, int, int *, int *, double);
747
748/* seek.c */
749off_t G_ftell(FILE *);
750void G_fseek(FILE *, off_t, int);
751
752/* set_window.c */
753void G_get_set_window(struct Cell_head *);
754void G_set_window(struct Cell_head *);
755void G_unset_window(void);
756
757/* short_way.c */
758void G_shortest_way(double *, double *);
759
760/* sleep.c */
761void G_sleep(unsigned int);
762
763/* snprintf.c */
764int G_snprintf(char *, size_t, const char *, ...)
765 __attribute__((format(printf, 3, 4)));
766
767/* strings.c */
768int G_strcasecmp(const char *, const char *);
769int G_strncasecmp(const char *, const char *, int);
770char *G_store(const char *);
771char *G_store_upper(const char *);
772char *G_store_lower(const char *);
773char *G_strchg(char *, char, char);
774char *G_str_replace(const char *, const char *, const char *);
775char *G_str_concat(const char **, int, const char *, int);
776void G_strip(char *);
777char *G_chop(char *);
778void G_str_to_upper(char *);
779void G_str_to_lower(char *);
780int G_str_to_sql(char *);
781void G_squeeze(char *);
782char *G_strcasestr(const char *, const char *);
783
784/* tempfile.c */
785void G_init_tempfile(void);
786char *G_tempfile(void);
787char *G_tempfile_basedir(const char *);
788char *G_tempfile_pid(int);
789char *G_tempfile_pid_basedir(int, const char *);
790void G_temp_element(char *);
791void G__temp_element(char *, int);
792void G__temp_element_basedir(char *, const char *);
793
794/* mkstemp.c */
795char *G_mktemp(char *);
796int G_mkstemp(char *, int, int);
797FILE *G_mkstemp_fp(char *, int, int);
798
799/* timestamp.c */
800void G_init_timestamp(struct TimeStamp *);
801void G_set_timestamp(struct TimeStamp *, const struct DateTime *);
802void G_set_timestamp_range(struct TimeStamp *, const struct DateTime *,
803 const struct DateTime *);
804int G_write_timestamp(FILE *, const struct TimeStamp *);
805void G_get_timestamps(const struct TimeStamp *, struct DateTime *,
806 struct DateTime *, int *);
807int G_format_timestamp(const struct TimeStamp *, char *);
808int G_scan_timestamp(struct TimeStamp *, const char *);
809int G_has_raster_timestamp(const char *, const char *);
810int G_read_raster_timestamp(const char *, const char *, struct TimeStamp *);
811int G_write_raster_timestamp(const char *, const struct TimeStamp *);
812int G_remove_raster_timestamp(const char *);
813int G_has_vector_timestamp(const char *, const char *, const char *);
814int G_read_vector_timestamp(const char *, const char *, const char *,
815 struct TimeStamp *);
816int G_write_vector_timestamp(const char *, const char *,
817 const struct TimeStamp *);
818int G_remove_vector_timestamp(const char *, const char *);
819int G_has_raster3d_timestamp(const char *, const char *);
820int G_read_raster3d_timestamp(const char *, const char *, struct TimeStamp *);
821int G_remove_raster3d_timestamp(const char *);
822int G_write_raster3d_timestamp(const char *, const struct TimeStamp *);
823
824/* token.c */
825char **G_tokenize(const char *, const char *);
826char **G_tokenize2(const char *, const char *, const char *);
827int G_number_of_tokens(char **);
828void G_free_tokens(char **);
829
830/* trim_dec.c */
831void G_trim_decimal(char *);
832
833/* units.c */
834double G_meters_to_units_factor(int);
836const char *G_get_units_name(int, int, int);
837int G_units(const char *);
840
841/* user_config.c */
842#ifndef __MINGW32__
843char *G_rc_path(const char *, const char *);
844#endif
845
846/* verbose.c */
847int G_verbose(void);
848int G_verbose_min(void);
849int G_verbose_std(void);
850int G_verbose_max(void);
851int G_set_verbose(int);
852
853/* view.c */
854void G_3dview_warning(int);
855int G_get_3dview_defaults(struct G_3dview *, struct Cell_head *);
856int G_put_3dview(const char *, const struct G_3dview *,
857 const struct Cell_head *);
858int G_get_3dview(const char *, const char *, struct G_3dview *);
859
860/* whoami.c */
861const char *G_whoami(void);
862
863/* wind_2_box.c */
864void G_adjust_window_to_box(const struct Cell_head *, struct Cell_head *, int,
865 int);
866
867/* wind_format.c */
868void G_format_northing(double, char *, int);
869void G_format_easting(double, char *, int);
870void G_format_resolution(double, char *, int);
871
872/* wind_in.c */
873int G_point_in_region(double, double);
874int G_point_in_window(double, double, const struct Cell_head *);
875
876/* wind_limits.c */
877int G_limit_east(double *, int);
878int G_limit_west(double *, int);
879int G_limit_north(double *, int);
880int G_limit_south(double *, int);
881
882/* wind_overlap.c */
883int G_window_overlap(const struct Cell_head *, double, double, double, double);
884double G_window_percentage_overlap(const struct Cell_head *, double, double,
885 double, double);
886
887/* wind_scan.c */
888int G_scan_northing(const char *, double *, int);
889int G_scan_easting(const char *, double *, int);
890int G_scan_resolution(const char *, double *, int);
891
892/* window_map.c */
893double G_adjust_east_longitude(double, double);
894double G_adjust_easting(double, const struct Cell_head *);
895void G__init_window(void);
896
897/* worker.c */
898void G_begin_execute(void (*func)(void *), void *, void **, int);
899void G_end_execute(void **);
900void G_init_workers(void);
901void G_finish_workers(void);
902
903/* wr_cellhd.c */
904void G__write_Cell_head(FILE *, const struct Cell_head *, int);
905void G__write_Cell_head3(FILE *, const struct Cell_head *, int);
906
907/* writ_zeros.c */
908void G_write_zeros(int, size_t);
909
910/* xdr.c */
911void G_xdr_get_int(int *, const void *);
912void G_xdr_put_int(void *, const int *);
913void G_xdr_get_float(float *, const void *);
914void G_xdr_put_float(void *, const float *);
915void G_xdr_get_double(double *, const void *);
916void G_xdr_put_double(void *, const double *);
917
918/* zero.c */
919void G_zero(void *, int);
920
921/* zone.c */
922int G_zone(void);
923
924#endif /* GRASS_GISDEFS_H */
int G_has_vector_timestamp(const char *, const char *, const char *)
Check if timestamp for vector map exists.
Definition timestamp.c:422
char * G_tempfile_basedir(const char *)
Returns a temporary file name.
Definition tempfile.c:77
const char * G_find_raster(char *, const char *)
Find a raster map.
Definition find_rast.c:55
int G_open_update(const char *, const char *)
Open a database file for update.
Definition gis/open.c:189
void G_unsetenv(const char *)
Remove name from environment.
Definition env.c:499
void G_percent(long, long, int)
Print percent complete messages.
Definition percent.c:61
int G_zlib_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprzlib.c:165
FILE * G_fopen_modify(const char *, const char *)
Open a database file for update (r+ mode)
Definition gis/open.c:313
void G_3dview_warning(int)
Turns 3D View warnings on and off.
Definition view.c:44
void G_ascii_check(char *)
Removes non-ascii characters from buffer.
Definition ascii_chk.c:30
double G_geodesic_distance_lon_to_lon(double, double)
Calculates geodesic distance.
Definition geodist.c:119
void * G_ls_glob_filter(const char *, int, int)
Definition ls_filter.c:233
int G_read_raster3d_timestamp(const char *, const char *, struct TimeStamp *)
Read timestamp from 3D raster map.
Definition timestamp.c:594
const char * G_program_name(void)
Return module name.
Definition progrm_nme.c:28
struct ilist * G_new_ilist(void)
Return a new integer list.
Definition ilist.c:43
FILE * G_fopen_append_misc(const char *, const char *, const char *)
Definition open_misc.c:222
int G_put_window(const struct Cell_head *)
Writes the region (window)
Definition put_window.c:46
void G_set_percent_routine(int(*)(int))
Establishes percent_routine as the routine that will handle the printing of percentage progress messa...
Definition percent.c:192
void G__read_Cell_head_array(char **, struct Cell_head *)
Read window from NULL terminated array of strings (for internal use only)
Definition rd_cellhd.c:96
int G_name_is_fully_qualified(const char *, char *, char *)
Check if map name is fully qualified (map @ mapset)
Definition nme_in_mps.c:36
void G_plot_fx(double(*)(double), double, double)
Plot f(east1) to f(east2)
Definition plot.c:780
void G_free_list(char **)
Free list.
Definition gis/list.c:249
void G_begin_geodesic_distance(double, double)
Begin geodesic distance.
Definition geodist.c:49
struct GModule * G_define_module(void)
Initializes a new module.
Definition parser.c:255
const char * G_datum_ellipsoid(int)
Definition gis/datum.c:76
int G_make_location_epsg(const char *, struct Cell_head *, const struct Key_Value *, const struct Key_Value *, const struct Key_Value *)
Create a new location.
Definition make_loc.c:127
void G_percent_reset(void)
Reset G_percent() to 0%; do not add newline.
Definition percent.c:117
int G_mapset_permissions(const char *)
Check for user mapset permission.
Definition mapset_msc.c:292
int G_num_standard_colors(void)
Get number of named colors (RGB triplets)
Definition color_str.c:56
void G_begin_ellipsoid_polygon_area(double, double)
Begin area calculations.
Definition area_poly1.c:65
void G_unset_percent_routine(void)
After this call subsequent percentage progress messages will be handled in the default method.
Definition percent.c:203
double G_rhumbline_lat_from_lon(double)
Calculates rhumbline latitude.
Definition rhumbline.c:95
int int G_rasprintf(char **, size_t *, const char *,...) __attribute__((format(printf
const char * G_getenv_nofatal(const char *)
Get environment variable.
Definition env.c:405
int G_recursive_copy(const char *, const char *)
Copy recursively source directory to destination directory.
Definition copy_dir.c:69
int G_getl2(char *, int, FILE *)
Gets a line of text from a file of any pedigree.
Definition getl.c:60
void G_init_all(void)
Initialize environment.
Definition gisinit.c:191
void G_init_workers(void)
Definition worker.c:181
int G_make_location_crs(const char *, struct Cell_head *, const struct Key_Value *, const struct Key_Value *, const char *, const char *)
Create a new location.
Definition make_loc.c:183
void G_xdr_put_float(void *, const float *)
Definition gis/xdr.c:84
int G_sleep_on_error(int)
Turn on/off no_sleep flag.
Definition gis/error.c:242
void G_zero(void *, int)
Zero out a buffer, buf, of length i.
Definition gis/zero.c:23
int G_vfaprintf(FILE *, const char *, va_list)
vfprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:392
void G_free(void *)
Free allocated memory.
Definition gis/alloc.c:147
int G_is_gisbase(const char *)
Test if specified directory is GISBASE.
Definition is.c:49
void G_squeeze(char *)
Remove superfluous white space.
Definition strings.c:446
void G_close_option_file(FILE *)
Close an input/output file returned by G_open_option_file(). If the file pointer is stdin,...
Definition parser.c:1961
const char * G_original_program_name(void)
Return original path of the executed program.
Definition progrm_nme.c:46
double G_area_of_polygon(const double *, const double *, int)
Area in square meters of polygon.
Definition gis/area.c:158
void G_plot_line2(double, double, double, double)
Plot line between latlon coordinates (slowline)
Definition plot.c:223
void G_shortest_way(double *, double *)
Shortest way between two eastings.
Definition short_way.c:27
void G_reset_mapsets(void)
Reset number of mapsets.
Definition mapset_nme.c:135
void G_set_timestamp(struct TimeStamp *, const struct DateTime *)
void G_switch_env(void)
Switch environments.
Definition env.c:591
int G_bz2_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprbzip.c:85
long G_mrand48(void)
Generate an integer in the range [-2^31, 2^31)
Definition lrand48.c:147
void G__read_Cell_head(FILE *, struct Cell_head *)
Read cell header (for internal use only)
Definition rd_cellhd.c:56
void G__write_Cell_head(FILE *, const struct Cell_head *, int)
Write cell header or window.
Definition wr_cellhd.c:27
int G_unqualified_name(const char *, const char *, char *, char *)
Returns unqualified map name (without @ mapset)
Definition nme_in_mps.c:134
struct Key_Value * G_get_projinfo(void)
Gets projection information for location.
int G__make_mapset_element_misc(const char *, const char *)
Create misc element in the current mapset.
Definition mapset_msc.c:261
struct Option * G_define_standard_option(int)
Create standardised Option structure.
const char * G_database_epsg_code(void)
Get EPGS code for the current location.
Definition proj3.c:236
void void void void G_fatal_error(const char *,...) __attribute__((format(printf
long G_lrand48(void)
Generate an integer in the range [0, 2^31)
Definition lrand48.c:133
double G_darea0_on_sphere(double)
Calculates integral for area between two latitudes.
Definition area_sphere.c:47
int G_faprintf(FILE *, const char *,...)
fprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:485
int G_mkstemp(char *, int, int)
Returns a file descriptor.
Definition mkstemp.c:127
int G_is_location(const char *)
Test if specified directory is location.
Definition is.c:61
const char * G_find_raster3d(const char *, const char *)
Search for a 3D raster map in current search path or in a specified mapset.
Definition find_rast3d.c:28
char * G_tempfile_pid_basedir(int, const char *)
Create tempfile from process id in given base directory.
Definition tempfile.c:121
void G_warning(const char *,...) __attribute__((format(printf
int G_write_vector_timestamp(const char *, const char *, const struct TimeStamp *)
Write timestamp of vector map.
Definition timestamp.c:507
char * G_compressor_name(int)
Definition compress.c:118
int G_parser(int, char **)
Parse command line.
Definition parser.c:320
int G_pole_in_polygon(const double *, const double *, int)
Check if pole is in polygon.
void G_option_rule(int, int, void **)
Set generic option rule.
void G_temp_element(char *)
Populates element with a path string.
Definition tempfile.c:148
int G_expand(unsigned char *, int, unsigned char *, int, int)
Definition compress.c:233
int G_verbose_max(void)
Get max verbosity level.
Definition verbose.c:81
void G_finish_workers(void)
Definition worker.c:185
struct Flag * G_define_flag(void)
Initializes a Flag struct.
Definition parser.c:156
int G_make_mapset_dir_object(const char *, const char *)
Create directory for an object of a given type.
Definition mapset_msc.c:109
const char * G_projection_name(int)
Get projection name.
Definition proj2.c:55
int G_write_timestamp(FILE *, const struct TimeStamp *)
Output TimeStamp structure to a file as a formatted string.
Definition timestamp.c:160
void G_lat_format(double, char *)
Definition ll_format.c:40
void G_xdr_get_int(int *, const void *)
Definition gis/xdr.c:69
double G_area_of_cell_at_row(int)
Cell area in specified row.
Definition gis/area.c:86
FILE * G_fopen_new(const char *, const char *)
Open a new database file.
Definition gis/open.c:221
void G_putenv(const char *, const char *)
Sets the UNIX environment variable name to value.
Definition putenv.c:31
int G_get_spheroid_by_name(const char *, double *, double *, double *)
Get spheroid parameters by name.
char * G_color_rules_description_type(void)
Get color rules description for Option->descriptions.
void G_plot_point(double, double)
Plot point.
Definition plot.c:189
int G_scan_easting(const char *, double *, int)
ASCII easting to double.
Definition wind_scan.c:69
const char * G_getenv(const char *)
Get environment variable.
Definition env.c:360
void G_set_error_routine(int(*)(const char *, int))
Establishes error_routine as the routine that will handle the printing of subsequent error messages.
Definition gis/error.c:260
char ** G_list(int, const char *, const char *, const char *)
List specified type of elements. Application must release the allocated memory.
Definition gis/list.c:173
void G_setenv(const char *, const char *)
Set environment variable (updates .gisrc)
Definition env.c:442
int G_color_values(const char *, float *, float *, float *)
Definition named_colr.c:20
int G_begin_cell_area_calculations(void)
Begin cell area calculations.
Definition gis/area.c:45
void G_plot_where_en(int, int, double *, double *)
Converts x,y to east,north.
Definition plot.c:177
void G_free_ilist(struct ilist *)
Free allocated memory of an integer list.
Definition ilist.c:27
void G_setenv2(const char *, const char *, int)
Set environment variable from specific place (updates .gisrc)
Definition env.c:459
int G_snprintf(char *, size_t, const char *,...) __attribute__((format(printf
int G_get_3dview(const char *, const char *, struct G_3dview *)
Gets a 3D View.
Definition view.c:239
int G_find_color_rule(const char *)
Check if color rule is defined.
void G_done_msg(const char *,...) __attribute__((format(printf
int G_get_ellipsoid_parameters(double *, double *)
get ellipsoid parameters
Definition get_ellipse.c:66
double G_database_units_to_meters_factor(void)
Conversion to meters.
Definition proj3.c:146
int G_window_overlap(const struct Cell_head *, double, double, double, double)
Determines if a box overlays a map window.
int G_compare_projections(const struct Key_Value *, const struct Key_Value *, const struct Key_Value *, const struct Key_Value *)
Compare projections including units.
Definition make_loc.c:229
void G_get_set_window(struct Cell_head *)
Get the current working window (region)
void G_newlines_to_spaces(char *)
Definition nl_to_spaces.c:3
int G_open_new(const char *, const char *)
Open a new database file.
Definition gis/open.c:148
int G_write_raster_timestamp(const char *, const struct TimeStamp *)
Write timestamp of raster map.
Definition timestamp.c:391
const char * G_gisbase(void)
Get full path name of the top level module directory.
Definition gisbase.c:39
void G_progress(long, int)
Print progress info messages.
Definition percent.c:158
void G__gisinit(const char *, const char *)
Initialize GIS Library and ensures a valid mapset is available.
Definition gisinit.c:62
char * G_color_rules_descriptions(void)
Get color rules description for Option->descriptions.
void G_close_pager(struct Popen *)
Definition pager.c:35
void G_init_ilist(struct ilist *)
Init an integer list and free allocated memory.
Definition ilist.c:58
const char * G_home(void)
Get user's home directory.
Definition home.c:32
void G_popen_clear(struct Popen *)
Definition popen.c:56
const char * G_get_env_name(int)
Get variable name for index n.
Definition env.c:546
void G_rotate_around_point_int(int, int, int *, int *, double)
Rotate point (int version)
Definition rotate.c:60
double G_transverse_radius_of_curvature(double, double, double)
Transverse radius of curvature.
Definition radii.c:106
void G__write_Cell_head3(FILE *, const struct Cell_head *, int)
Write 3D cell header or window.
Definition wr_cellhd.c:72
const char * G_find_file(const char *, char *, const char *)
Searches for a file from the mapset search list or in a specified mapset.
Definition find_file.c:186
int G_rename_file(const char *, const char *)
Rename a file or a directory in the filesystem.
Definition rename.c:31
#define G_MALLOC_ATTR
Definition defs/gis.h:122
void G_option_exclusive(void *,...)
Sets the options to be mutually exclusive.
int G_begin_geodesic_equation(double, double, double, double)
Definition geodesic.c:38
char * G_tolcase(char *)
convert string to lower case
Definition mapcase.c:17
double G_area_for_zone_on_sphere(double, double)
Calculates area between latitudes.
Definition area_sphere.c:68
long G_srand48_auto(void)
Seed the pseudo-random number generator from the time and PID.
Definition lrand48.c:70
void G_lon_format(double, char *)
Definition ll_format.c:55
const char * G_ellipsoid_name(int)
Get ellipsoid name.
const char * G_color_name(int)
Definition named_colr.c:35
struct Key_Value * G_get_projepsg(void)
Gets EPSG information for the current location.
int G_lz4_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprlz4.c:78
double G_meters_to_units_factor_sq(int)
Units conversion from square meters to square units.
Definition units.c:88
void * G__calloc(const char *, int, size_t, size_t)
Memory allocation.
Definition gis/alloc.c:71
struct Flag * G_define_standard_flag(int)
Create standardised Flag structure.
int G_limit_east(double *, int)
Function not yet implemented...
Definition wind_limits.c:32
int G_default_compressor(void)
Definition compress.c:126
int G_legal_filename(const char *)
Check for legal database file name.
Definition legal_name.c:34
int G_bz2_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprbzip.c:168
int G_write_raster3d_timestamp(const char *, const struct TimeStamp *)
Write timestamp of 3D raster map.
Definition timestamp.c:611
char * G_find_etc(const char *)
searches for a file from the etc search list in GRASS_ADDON_ETC returns the full path to where the fi...
Definition find_etc.c:62
void int G_is_little_endian(void)
Tests for little ENDIAN.
Definition endian.c:24
void G_xdr_get_float(float *, const void *)
Definition gis/xdr.c:79
void G_set_gisrc_mode(int)
Set where to find/store variables.
Definition env.c:63
void G_setup_plot(double, double, double, double, int(*)(int, int), int(*)(int, int))
Initialize plotting routines.
Definition plot.c:97
char * G_join_basename_strings(const char **, size_t)
join an array of strings using the basename separator
Definition basename.c:127
int G_format_timestamp(const struct TimeStamp *, char *)
Create text string from TimeStamp structure.
Definition timestamp.c:183
void G_end_execute(void **)
Definition worker.c:177
void G_str_to_upper(char *)
Convert string to upper case.
Definition strings.c:365
char * G_file_name_misc(char *, const char *, const char *, const char *, const char *)
Builds full path names to GIS misc data files.
Definition file_name.c:101
void G_set_geodesic_distance_lat1(double)
Sets geodesic distance lat1.
Definition geodist.c:67
int G_lon_scan(const char *, double *)
Definition ll_scan.c:50
int G_get_ellipsoid_by_name(const char *, double *, double *)
Get ellipsoid parameters by name.
int G_open_old_misc(const char *, const char *, const char *, const char *)
open a database misc file for reading
Definition open_misc.c:132
int G_fwrite_key_value(FILE *, const struct Key_Value *)
Write key/value pairs to file.
Definition key_value2.c:25
int G_str_to_sql(char *)
Make string SQL compliant.
Definition strings.c:403
int G_snaprintf(char *, size_t, const char *,...)
snprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:527
void G__temp_element(char *, int)
Populates element with a path string (internal use only!)
Definition tempfile.c:160
int G_read_raster_timestamp(const char *, const char *, struct TimeStamp *)
Read timestamp from raster map.
Definition timestamp.c:374
const char * G_find_file_misc(const char *, const char *, char *, const char *)
Searches for a misc file from the mapset search list or in a specified mapset.
Definition find_file.c:208
void G_option_required(void *,...)
Sets the options to be required.
char * G_str_concat(const char **, int, const char *, int)
String concatenation.
Definition strings.c:267
int G_make_mapset_object_group(const char *)
Create directory for group of elements of a given type.
Definition mapset_msc.c:75
const char * G_datum_description(int)
Definition gis/datum.c:66
const char * G_get_units_name(int, int, int)
Get localized units name.
Definition units.c:202
void G_unsetenv2(const char *, int)
Remove name from environment from specific place.
Definition env.c:514
int int int G_aprintf(const char *,...)
Adjust the width of string specifiers to the display space instead of the number of bytes for wide ch...
Definition aprintf.c:465
void G_fseek(FILE *, off_t, int)
Change the file position of the stream.
Definition gis/seek.c:50
void G_ls(const char *, FILE *)
Prints a directory listing to a stream, in prettified column format.
Definition ls.c:137
void G_set_ls_exclude_filter(int(*)(const char *, void *), void *)
void G_free_ls_filter(void *)
Definition ls_filter.c:267
void G_option_collective(void *,...)
Sets the options to be collective.
void void G_verbose_message(const char *,...) __attribute__((format(printf
double G_distance_point_to_line_segment(double, double, double, double, double, double)
Returns distance between a point and line segment in meters.
void G_remove_error_handler(void(*)(void *), void *)
Remove existing error handler.
Definition gis/handler.c:85
char * G_file_name(char *, const char *, const char *, const char *)
Builds full path names to GIS data files.
Definition file_name.c:61
void G_close_mail(struct Popen *)
Definition pager.c:65
int G_lz4_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprlz4.c:146
FILE * G_fopen_old(const char *, const char *, const char *)
Open a database file for reading.
Definition gis/open.c:253
const char * G_gisdbase(void)
Get name of top level database directory.
Definition gisdbase.c:26
const char * G_find_file2(const char *, const char *, const char *)
Searches for a file from the mapset search list or in a specified mapset. (look but don't touch)
Definition find_file.c:234
void G_popen_close(struct Popen *)
Definition popen.c:72
char * G_store_lower(const char *)
Copy string to allocated memory and convert copied string to lower case.
Definition strings.c:141
int G_open_update_misc(const char *, const char *, const char *)
open a database misc file for update
Definition open_misc.c:152
const char * G_find_vector(char *, const char *)
Finds a vector map.
Definition find_vect.c:41
char * G_store_upper(const char *)
Copy string to allocated memory and convert copied string to upper case.
Definition strings.c:117
void G_option_excludes(void *,...)
Exclude selected options.
int G_make_mapset_element(const char *)
Create element in the current mapset.
Definition mapset_msc.c:45
double G_distance2_point_to_line(double, double, double, double, double, double)
int G_is_absolute_path(const char *)
Checks if a specified path looks like an absolute path on the host system.
Definition paths.c:62
int G_open_old(const char *, const char *, const char *)
Open a database file for reading.
Definition gis/open.c:169
FILE * G_fopen_modify_misc(const char *, const char *, const char *)
Definition open_misc.c:240
int G_get_overwrite(void)
Get overwrite value.
Definition parser.c:959
void G_free_key_value(struct Key_Value *)
Free allocated Key_Value structure.
Definition key_value1.c:104
int G_projection_units(int)
Get projection units code (for internal use only)
Definition proj2.c:32
int G_lstat(const char *, struct stat *)
Get file status.
Definition paths.c:145
void G__read_gisrc_env(void)
Force to read the GISRC environment file.
Definition env.c:112
void G_rotate_around_point(double, double, double *, double *, double)
Rotate point (double version)
Definition rotate.c:33
void G_setenv_nogisrc2(const char *, const char *, int)
Set environment name to value from specific place (doesn't update .gisrc)
Definition env.c:486
void G_unset_window(void)
Unset current region.
Definition get_window.c:139
const char * G_getenv_nofatal2(const char *, int)
Get environment variable from specific place.
Definition env.c:424
char * G_file_name_basedir(char *, const char *, const char *, const char *, const char *)
Builds full path names to GIS data files in temporary directory (for internal use only)
Definition file_name.c:155
void G__temp_element_basedir(char *, const char *)
Populates element with a path string (internal use only!)
Definition tempfile.c:185
size_t G_get_num_decimals(const char *)
Get number of decimals from a string.
Definition basename.c:54
void G_set_key_value(const char *, const char *, struct Key_Value *)
Set value for given key.
Definition key_value1.c:39
int G_limit_north(double *, int)
Limit north (y) coordinate.
Definition wind_limits.c:68
double G_geodesic_distance(double, double, double, double)
Calculates geodesic distance.
Definition geodist.c:193
void G_get_default_window(struct Cell_head *)
Get the default region.
Definition get_window.c:99
const char * G_database_unit_name(int)
Get units (localized) name for the current location.
Definition proj3.c:53
void * G__realloc(const char *, int, void *, size_t)
Memory reallocation.
Definition gis/alloc.c:117
void G_bresenham_line(int, int, int, int, int(*)(int, int))
Bresenham line algorithm.
Definition bres_line.c:30
char * G_mktemp(char *)
Opens a temporary file.
Definition mkstemp.c:105
char ** G_tokenize(const char *, const char *)
Tokenize string.
Definition gis/token.c:47
int G_remove_raster_timestamp(const char *)
Remove timestamp from raster map.
Definition timestamp.c:407
FILE * G_open_option_file(const struct Option *)
Get an input/output file pointer from the option. If the file name is omitted or '-',...
Definition parser.c:1922
char * G_tempfile_pid(int)
Create tempfile from process id.
Definition tempfile.c:90
void G_get_timestamps(const struct TimeStamp *, struct DateTime *, struct DateTime *, int *)
Copy TimeStamp into [two] Datetimes structs.
Definition timestamp.c:260
int G_make_mapset_object_group_tmp(const char *)
Create directory for type of objects in the temporary directory.
Definition mapset_msc.c:154
void G_option_requires(void *,...)
Define a list of options from which at least one option is required if first option is present.
void G_set_timestamp_range(struct TimeStamp *, const struct DateTime *, const struct DateTime *)
char * G_tempfile(void)
Returns a temporary file name.
Definition tempfile.c:62
int G_no_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition compress.c:155
double G_planimetric_polygon_area(const double *, const double *, int)
Calculates planimetric polygon area.
Definition area_poly2.c:25
int G_read_compressed(int, int, unsigned char *, int, int)
Definition compress.c:244
int G_has_raster_timestamp(const char *, const char *)
Check if timestamp for raster map exists.
Definition timestamp.c:356
int G_copy_file(const char *, const char *)
Copies one file to another.
Definition copy_file.c:33
void G_adjust_window_to_box(const struct Cell_head *, struct Cell_head *, int, int)
Adjusts window to a rectangular box.
Definition wind_2_box.c:30
#define G_REALLOC_ATTR
Definition defs/gis.h:126
char * G_rc_path(const char *, const char *)
Returns path to element and item.
void G_set_window(struct Cell_head *)
Establishes window as the current working window (region).
const char * G_database_datum_name(void)
Get datum name for the current location.
Definition proj3.c:186
off_t G_ftell(FILE *)
Get the current file position of the stream.
Definition gis/seek.c:29
jmp_buf * G_fatal_longjmp(int)
Definition gis/error.c:66
int G_vsaprintf(char *, const char *, va_list)
vsprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:411
void G_llres_format(double, char *)
Definition ll_format.c:70
int G_lookup_key_value_from_file(const char *, const char *, char[], int)
Look up for key in file.
Definition key_value4.c:48
int G_set_omp_num_threads(struct Option *)
Set the number of threads for OpenMP The intended usage is at the beginning of a C tool when paramete...
Definition omp_threads.c:24
void G_trim_decimal(char *)
Removes trailing zeros from decimal number.
Definition trim_dec.c:24
void G_set_keywords(const char *)
Set keywords from the string.
Definition parser.c:884
double G_geodesic_lat_from_lon(double)
Definition geodesic.c:78
void G_list_element(const char *, const char *, const char *, int(*)(const char *, const char *, char *))
General purpose list function.
Definition gis/list.c:51
void G_update_key_value_file(const char *, const char *, const char *)
Update file, set up value for given key.
Definition key_value4.c:26
void G_ls_format(char **, int, int, FILE *)
Prints a listing of items to a stream, in prettified column format.
Definition ls.c:165
int G_rle_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprrle.c:73
int G_get_datumparams_from_projinfo(const struct Key_Value *, char *, char *)
Definition gis/datum.c:107
char * G_recreate_command(void)
Creates command to run non-interactive.
Definition parser.c:840
int G_units(const char *)
Get units code by name.
Definition units.c:406
char * G_fully_qualified_name(const char *, const char *)
Get fully qualified element name.
Definition nme_in_mps.c:101
void G_read_datum_table(void)
Definition gis/datum.c:141
void G_add_keyword(const char *)
Add keyword to the list.
Definition parser.c:868
void G_add_mapset_to_search_path(const char *)
Add mapset to the list of mapsets in search path.
Definition mapset_nme.c:203
const char * G_whoami(void)
Gets user's name.
Definition gis/whoami.c:34
void G_format_resolution(double, char *, int)
Resolution to ASCII.
Definition wind_format.c:69
void G_init_timestamp(struct TimeStamp *)
Initialize timestamp structure.
Definition timestamp.c:95
struct Key_Value * G_read_key_value_file(const char *)
Read key/values pairs from file.
Definition key_value3.c:55
int G_verbose(void)
Get current verbosity level.
Definition verbose.c:60
size_t G_strlcat(char *, const char *, size_t)
Size-bounded string concatenation.
Definition strlcat.c:57
void G__read_mapset_env(void)
Force to read the mapset environment file VAR.
Definition env.c:98
double G_distance_between_line_segments(double, double, double, double, double, double, double, double)
Returns distance between two line segments in meters.
int G_mapset_permissions2(const char *, const char *, const char *)
Check for user mapset permission.
Definition mapset_msc.c:321
int G_remove(const char *, const char *)
Remove a database file.
Definition remove.c:43
struct Option * G_define_option(void)
Initializes an Option struct.
Definition parser.c:210
int G_put_3dview(const char *, const struct G_3dview *, const struct Cell_head *)
Saves info to a 3d.view file in the current mapset.
Definition view.c:160
int G_verbose_min(void)
Get min verbosity level.
Definition verbose.c:101
void G_free_tokens(char **)
Free memory allocated to tokens.
Definition gis/token.c:197
int G_remove_raster3d_timestamp(const char *)
Remove timestamp from 3D raster map.
Definition timestamp.c:627
int G_remove_misc(const char *, const char *, const char *)
Remove a database misc file.
Definition remove.c:64
double G_window_percentage_overlap(const struct Cell_head *, double, double, double, double)
Determines percentage of box is contained in the window.
int G_compress(unsigned char *, int, unsigned char *, int, int)
Definition compress.c:218
int G_begin_rhumbline_equation(double, double, double, double)
Start rhumbline calculations.
Definition rhumbline.c:57
void G_create_alt_search_path(void)
Define alternative mapset search path.
Definition mapset_nme.c:106
void void void G_important_message(const char *,...) __attribute__((format(printf
void G_strip(char *)
Removes all leading and trailing white space from string.
Definition strings.c:300
const char * G_location(void)
Get current location name.
Definition location.c:32
int G_is_units_type_spatial(int)
Check if the unit is of spatial type.
Definition units.c:133
int G_get_datum_by_name(const char *)
Definition gis/datum.c:43
int G_compressor_number(char *)
Definition compress.c:100
int G_check_compressor(int)
Definition compress.c:140
int G_rle_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprrle.c:139
char * G_myname(void)
Returns location title.
Definition myname.c:30
char * G_strcasestr(const char *, const char *)
Finds the first occurrence of the sub-string in the null-terminated string ignoring case (upper or lo...
Definition strings.c:477
int G_is_mapset(const char *)
Test if specified directory is mapset.
Definition is.c:73
void G_begin_zone_area_on_sphere(double, double)
Initialize calculations for sphere.
Definition area_sphere.c:35
const char * G_find_file2_misc(const char *, const char *, const char *, const char *)
Searches for a misc file from the mapset search list or in a specified mapset. (look but don't touch)
Definition find_file.c:257
int G_asprintf(char **, const char *,...) __attribute__((format(printf
char * G_color_rules_options(void)
Get list of color rules for Option->options.
char * G_get_projwkt(void)
Get WKT information for the current location.
int G_scan_timestamp(struct TimeStamp *, const char *)
Fill a TimeStamp structure from a datetime string.
Definition timestamp.c:217
void G_str_to_lower(char *)
Convert string to lower case.
Definition strings.c:383
struct Key_Value * G_create_key_value(void)
Allocate and initialize Key_Value structure.
Definition key_value1.c:23
int G_plot_polygon(const double *, const double *, int)
Plot filled polygon with n vertices.
Definition plot.c:372
double G_meters_to_units_factor(int)
Units conversion from meters to units.
Definition units.c:38
void * G_ls_regex_filter(const char *, int, int, int)
Definition ls_filter.c:173
double G_darea0_on_ellipsoid(double)
Calculate integral for area between two latitudes.
double G_adjust_easting(double, const struct Cell_head *)
Returns east not smaller than west.
int G_get_gisrc_mode(void)
Get info where variables are stored.
Definition env.c:73
void G_sleep(unsigned int)
Definition sleep.c:11
const char * G_lat_format_string(void)
Definition ll_format.c:50
void G_xdr_put_double(void *, const double *)
Definition gis/xdr.c:94
int G_make_mapset_object_group_basedir(const char *, const char *)
Create directory for type of objects in the temporary directory.
Definition mapset_msc.c:176
void G_switch_search_path(void)
Switch mapset search path.
Definition mapset_nme.c:117
void G_begin_zone_area_on_ellipsoid(double, double, double)
Begin area calculations for ellipsoid.
void G_set_program_name(const char *)
Set program name.
Definition progrm_nme.c:61
const char * G_get_mapset_name(int)
Get name of the n'th mapset from the current mapset search path.
Definition mapset_nme.c:44
int G_number_of_tokens(char **)
Return number of tokens.
Definition gis/token.c:178
const char * G_find_key_value(const char *, const struct Key_Value *)
Find given key (case sensitive)
Definition key_value1.c:85
int G_stat(const char *, struct stat *)
Get file status.
Definition paths.c:128
void G_create_alt_env(void)
Set up alternative environment variables.
Definition env.c:569
char ** G_ls2(const char *, int *)
Stores a sorted directory listing in an array.
Definition ls.c:94
char * G_strchg(char *, char, char)
Replace all occurrences of character in string bug with new.
Definition strings.c:160
int G_write_compressed(int, unsigned char *, int, int)
Definition compress.c:323
FILE * G_mkstemp_fp(char *, int, int)
Returns a file descriptor.
Definition mkstemp.c:161
int G_zlib_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprzlib.c:87
const char * G_date(void)
Current date and time.
Definition date.c:26
void G__init_window(void)
Initialize window (region).
char * G_get_basename_separator(void)
Return the environmental basename variable or the default value.
Definition basename.c:110
void G_unset_error_routine(void)
After this call subsequent error messages will be handled in the default method.
Definition gis/error.c:274
int G_read_ellipsoid_table(int)
Read ellipsoid table.
int G_intersect_line_segments(double, double, double, double, double, double, double, double, double *, double *, double *, double *)
char ** G_tokenize2(const char *, const char *, const char *)
Tokenize string.
Definition gis/token.c:83
void G_add_error_handler(void(*)(void *), void *)
Add new error handler.
Definition gis/handler.c:71
struct Key_Value * G_fread_key_value(FILE *)
Read key/values pairs from file.
Definition key_value2.c:49
void G_xdr_get_double(double *, const void *)
Definition gis/xdr.c:89
double G_distance(double, double, double, double)
Returns distance in meters.
char * G_convert_dirseps_from_host(char *)
Converts directory separator characters in a string from the native host character to the GRASS separ...
Definition paths.c:105
void G__read_gisrc_path(void)
Read or read again the GISRC (session) environment variable.
Definition env.c:125
FILE * G_fopen_old_misc(const char *, const char *, const char *, const char *)
open a database misc file for reading
Definition open_misc.c:210
void G_clicker(void)
Definition clicker.c:17
int G_lat_scan(const char *, double *)
Definition ll_scan.c:45
void G_set_ls_filter(int(*)(const char *, void *), void *)
char * G_toucase(char *)
convert string to upper case
Definition mapcase.c:44
int G_make_mapset_element_tmp(const char *)
Create element in the temporary directory.
Definition mapset_msc.c:132
int G_zone(void)
Query cartographic zone.
Definition zone.c:23
int G_scan_resolution(const char *, double *, int)
ASCII resolution to double.
Definition wind_scan.c:100
int G_point_in_window(double, double, const struct Cell_head *)
Returns TRUE if coordinate is within the given map region.
Definition wind_in.c:46
void * G__malloc(const char *, int, size_t)
Memory allocation.
Definition gis/alloc.c:31
void G_disable_interactive(void)
Disables the ability of the parser to operate interactively.
Definition parser.c:139
double G_adjust_east_longitude(double, double)
Adjust east longitude.
int G_is_initialized(int *)
Definition counter.c:60
int G_zstd_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprzstd.c:86
int G_plot_area(double *const *, double *const *, int *, int)
Plot multiple polygons.
Definition plot.c:502
#define G_CALLOC_ATTR
Definition defs/gis.h:124
const char * G_ellipsoid_description(int)
Get description for nth ellipsoid.
char * G_convert_dirseps_to_host(char *)
Converts directory separator characters in a string to the native host separator character (/ on Unix...
Definition paths.c:83
int G_point_in_region(double, double)
Returns TRUE if coordinate is within the current region settings.
Definition wind_in.c:24
double G_drand48(void)
Generate a floating-point value in the range [0,1)
Definition lrand48.c:161
void G_write_key_value_file(const char *, const struct Key_Value *)
Write key/value pairs to file.
Definition key_value3.c:28
char * G_double_to_basename_format(double, size_t, size_t)
Convert a double to a string substituting the dot with underscore 12.3456 => '12_3456'.
Definition basename.c:76
int G_limit_south(double *, int)
Limit south (y) coordinate.
Definition wind_limits.c:96
void G_initialize_done(int *)
Definition counter.c:77
void G_xdr_put_int(void *, const int *)
Definition gis/xdr.c:74
int G_is_dirsep(char)
Checks if a specified character is a valid directory separator character on the host system.
Definition paths.c:45
#define G_incr_void_ptr(ptr, size)
Definition defs/gis.h:81
int G_owner(const char *)
Get owner id of path.
Definition paths.c:164
void G_setup_fill(int)
Set row_fill routine to row_solid_fill or row_dotted_fill.
Definition plot.c:133
int int G_strcasecmp(const char *, const char *)
String compare ignoring case (upper or lower)
Definition strings.c:47
char * G_option_to_separator(const struct Option *)
Get separator string from the option.
Definition parser.c:1860
int G_recursive_remove(const char *)
Recursively remove all files in given directory.
Definition remove.c:112
char * G_chop(char *)
Chop leading and trailing white spaces.
Definition strings.c:332
void G_get_element_window(struct Cell_head *, const char *, const char *, const char *)
Get region for selected element (raster, vector, window, etc.)
Definition get_window.c:114
FILE * G_fopen_append(const char *, const char *)
Open a database file for update (append mode)
Definition gis/open.c:280
char * G_store(const char *)
Copy string to allocated memory.
Definition strings.c:87
int G_remove_vector_timestamp(const char *, const char *)
Remove timestamp from vector map.
Definition timestamp.c:553
void G_ilist_add(struct ilist *, int)
Add item to ilist.
Definition ilist.c:78
const char * G_database_ellipse_name(void)
Get ellipsoid name for the current location.
Definition proj3.c:212
int G_strncasecmp(const char *, const char *, int)
String compare ignoring case (upper or lower) - limited number of characters.
Definition strings.c:69
void G_set_distance_to_line_tolerance(double)
int G_vsnaprintf(char *, size_t, const char *, va_list)
vsnprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:432
const char * G_llres_format_string(void)
Definition ll_format.c:81
void G__no_gisinit(const char *)
Initialize GIS Library.
Definition gisinit.c:116
int G_counter_next(struct Counter *)
Definition counter.c:46
double G_ellipsoid_polygon_area(const double *, const double *, int)
Area of lat-long polygon.
Definition area_poly1.c:133
int G_open_new_misc(const char *, const char *, const char *)
open a new database misc file
Definition open_misc.c:111
int G_limit_west(double *, int)
Function not yet implemented...
Definition wind_limits.c:51
int G_read_vector_timestamp(const char *, const char *, const char *, struct TimeStamp *)
Read timestamp from vector map.
Definition timestamp.c:458
void G_lat_parts(double, int *, int *, double *, char *)
Definition ll_format.c:116
int G_set_verbose(int)
Set verbosity level.
Definition verbose.c:125
char * G_file_name_tmp(char *, const char *, const char *, const char *)
Builds full path names to GIS data files in temporary directory (for internal use only)
Definition file_name.c:125
int G_zstd_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition cmprzstd.c:162
void G_usage(void)
Command line help/usage message.
Definition parser_help.c:48
int G_database_unit(void)
Get units id for the current location.
Definition proj3.c:66
int G_is_units_type_temporal(int)
Check if the unit is of temporal type.
Definition units.c:164
FILE * G_popen_write(struct Popen *, const char *, const char **)
Definition popen.c:62
int G_info_format(void)
Get current message format.
Definition gis/error.c:540
FILE * G_open_mail(struct Popen *)
Definition pager.c:45
int G_llres_scan(const char *, double *)
Definition ll_scan.c:55
char * G_basename(char *, const char *)
Truncates filename to the base part (before the last '.') if it matches the extension,...
Definition basename.c:36
int G_adjust_window_ll(struct Cell_head *cellhd)
Adjust window for lat/lon.
Definition adj_cellhd.c:552
char * G_generate_basename(const char *, double, size_t, size_t)
Generate the format string.
Definition basename.c:163
void G_begin_execute(void(*func)(void *), void *, void **, int)
Definition worker.c:171
int G_check_overwrite(int argc, char **argv)
Check for overwrite mode.
Definition overwrite.c:33
int G_write_unompressed(int, unsigned char *, int)
char * G_get_projsrid(void)
Get srid (spatial reference id) for the current location.
void G_message(const char *,...) __attribute__((format(printf
void G_set_geodesic_distance_lat2(double)
Sets geodesic distance lat2.
Definition geodist.c:81
int G_check_input_output_name(const char *, const char *, int)
Check input and output file names.
Definition legal_name.c:71
int G_getl(char *, int, FILE *)
Gets a line of text from a file.
Definition getl.c:33
void G_adjust_Cell_head(struct Cell_head *, int, int)
Adjust cell header.
Definition adj_cellhd.c:51
void G_write_zeros(int, size_t)
Writes n bytes of zero to file descriptor fd
Definition writ_zeros.c:29
int G_compress_bound(int, int)
Definition compress.c:202
int G_no_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
Definition compress.c:176
int G_put_element_window(const struct Cell_head *, const char *, const char *)
Write the region.
Definition put_window.c:74
char * G_mapset_path(void)
Get current mapset UNIX-like path.
Definition gis/mapset.c:73
const char * G_datum_name(int)
Definition gis/datum.c:56
void G_plot_where_xy(double, double, int *, int *)
Converts east,north to x,y.
Definition plot.c:160
int G_is_mapset_in_search_path(const char *)
Check if given mapset is in search path.
Definition mapset_nme.c:217
FILE * G_fopen_new_misc(const char *, const char *, const char *)
open a new database misc file
Definition open_misc.c:183
void G_init_counter(struct Counter *, int)
Definition counter.c:38
void G_list_color_rules(FILE *)
Print color rules.
int G_mkdir(const char *)
Creates a new directory.
Definition paths.c:27
struct Key_Value * G_get_projunits(void)
Gets units information for location.
void G_list_color_rules_description_type(FILE *, char *)
Print color rules with description and type.
char * G_str_replace(const char *, const char *, const char *)
Replace all occurrences of old_str in buffer with new_str.
Definition strings.c:189
void G_init_env(void)
Initialize variables.
Definition env.c:83
#define G_FREE_ATTR
Definition defs/gis.h:127
const char * G_getenv2(const char *, int)
Get variable from specific place.
Definition env.c:386
int G_debug(int, const char *,...) __attribute__((format(printf
int G_scan_northing(const char *, double *, int)
ASCII northing to double.
Definition wind_scan.c:38
int G_write_projwkt(const char *, const char *)
Write WKT definition to file.
Definition make_loc.c:508
void G_setenv_nogisrc(const char *, const char *)
Set environment name to value (doesn't update .gisrc)
Definition env.c:472
int G_has_raster3d_timestamp(const char *, const char *)
Check if timestamp for 3D raster map exists.
Definition timestamp.c:576
int G_begin_polygon_area_calculations(void)
Begin polygon area calculations.
Definition gis/area.c:119
int G_make_location(const char *, struct Cell_head *, const struct Key_Value *, const struct Key_Value *)
Create a new location.
Definition make_loc.c:53
int G_insert_commas(char *)
Inserts commas into a number string.
Definition commas.c:35
FILE * G_open_pager(struct Popen *)
Definition pager.c:13
double G_meridional_radius_of_curvature(double, double, double)
Meridional radius of curvature.
Definition radii.c:80
int G_verbose_std(void)
Get standard verbosity level.
Definition verbose.c:91
void G_lon_parts(double, int *, int *, double *, char *)
Definition ll_format.c:132
const char * G_database_projection_name(void)
Query cartographic projection for the current location.
Definition proj3.c:118
char * G_location_path(void)
Get current location UNIX-like path.
Definition location.c:54
void G_format_easting(double, char *, int)
Easting to ASCII.
Definition wind_format.c:49
const char * G_find_raster2(const char *, const char *)
Find a raster map (look but don't touch)
Definition find_rast.c:76
void G_init_tempfile(void)
Initialize environment for creating tempfiles.
Definition tempfile.c:29
int G_vasprintf(char **, const char *, va_list)
Safe replacement for asprintf().
Definition asprintf.c:40
const char * G_config_path(void)
Get user's config path directory.
Definition home.c:99
void G_init_logging(void)
Definition gis/error.c:355
const char * G_lon_format_string(void)
Definition ll_format.c:65
char ** G_get_available_mapsets(void)
Get list of available mapsets for current location.
Definition mapset_nme.c:147
void G_get_window(struct Cell_head *)
Get the current region.
Definition get_window.c:47
const char * G_find_vector2(const char *, const char *)
Find a vector map (look but don't touch)
Definition find_vect.c:62
void G_plot_line(double, double, double, double)
Plot line between latlon coordinates (fastline)
Definition plot.c:208
int G_write_projsrid(const char *, const char *)
Write srid (spatial reference id) to file.
Definition make_loc.c:559
void G_init_debug(void)
Initiate debugging.
Definition debug.c:27
int G_vaprintf(const char *, va_list)
vprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:379
double G_radius_of_conformal_tangent_sphere(double, double, double)
Radius of conformal tangent sphere.
Definition radii.c:133
void G_srand48(long)
Seed the pseudo-random number generator.
Definition lrand48.c:52
double G_area_for_zone_on_ellipsoid(double, double)
Calculates area between latitudes.
void G_remove_commas(char *)
Removes commas from number string.
Definition commas.c:83
void G_option_requires_all(void *,...)
Define additionally required options for an option.
int G_make_mapset(const char *, const char *, const char *)
Create a new mapset.
Definition make_mapset.c:43
void int G_suppress_warnings(int)
Suppress printing a warning message to stderr.
Definition gis/error.c:222
int G_projection(void)
Query cartographic projection.
Definition proj1.c:32
FILE * G_popen_read(struct Popen *, const char *, const char **)
Definition popen.c:67
int G_get_3dview_defaults(struct G_3dview *, struct Cell_head *)
Sets default for v based on w.
Definition view.c:56
void G_format_northing(double, char *, int)
Northing to ASCII.
Definition wind_format.c:29
void G_adjust_Cell_head3(struct Cell_head *, int, int, int)
Adjust cell header for 3D values.
Definition adj_cellhd.c:163
const char * G_mapset(void)
Get current mapset name.
Definition gis/mapset.c:33
int int G_begin_distance_calculations(void)
Begin distance calculations.
size_t G_strlcpy(char *, const char *, size_t)
Safe string copy function.
Definition strlcpy.c:52
int G_rename(const char *, const char *, const char *)
Rename a database file.
Definition rename.c:69
int G_saprintf(char *, const char *,...)
sprintf() version of G_aprintf(). See G_aprintf() for more details.
Definition aprintf.c:505
#define __attribute__(x)
Definition defs/glocale.h:6
2D/3D raster map header (used also for region)
Definition gis.h:446
Definition gis.h:625
Structure that stores flag info.
Definition gis.h:594
Structure that stores module info.
Definition gis.h:611
Structure that stores option information.
Definition gis.h:563
Definition gis.h:629
List of integers.
Definition gis.h:715