This file is indexed.

/usr/lib/grass64/include/grass/gisdefs.h is in grass-dev 6.4.3-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
/*
 *****************************************************************************
 *
 * MODULE:      Grass Include Files
 * AUTHOR(S):   Original author unknown - probably CERL
 *              Justin Hickey - Thailand - jhickey@hpcc.nectec.or.th
 * PURPOSE:     This file contains the prototypes for all the functions in the
 *              gis library (src/libes/gis).
 * COPYRIGHT:    (C) 2000 by the GRASS Development Team
 *
 *               This program is free software under the GNU General Public
 *              License (>=v2). Read the file COPYING that comes with GRASS
 *              for details.
 *
 *****************************************************************************/

#ifndef GRASS_GISDEFS_H
#define GRASS_GISDEFS_H

/*============================= Include Files ==============================*/

#include <sys/types.h>	/* for off_t */

/*=========================== Constants/Defines ============================*/

/* none (look in gis.h) */

/*=========================== Typedefs/Structures ==========================*/

/* none (look in gis.h) */

/*============================== Prototypes ================================*/

/* adj_cellhd.c */
char *G_adjust_Cell_head(struct Cell_head *, int, int);
char *G_adjust_Cell_head3(struct Cell_head *, int, int, int);

/* align_window.c */
char *G_align_window(struct Cell_head *, const struct Cell_head *);

/* alloc.c */
void *G__malloc(const char *, int, size_t);
void *G__calloc(const char *, int, size_t, size_t);
void *G__realloc(const char *, int, void *, size_t);
void G_free(void *);

#define G_malloc(n)     G__malloc(__FILE__, __LINE__, (n))
#define G_calloc(m, n)  G__calloc(__FILE__, __LINE__, (m), (n))
#define G_realloc(p, n) G__realloc(__FILE__, __LINE__, (p), (n))

/* alloc_cell.c */
size_t G_raster_size(RASTER_MAP_TYPE);
CELL *G_allocate_cell_buf(void);
void *G_allocate_raster_buf(RASTER_MAP_TYPE);
CELL *G_allocate_c_raster_buf(void);
FCELL *G_allocate_f_raster_buf(void);
DCELL *G_allocate_d_raster_buf(void);
char *G_allocate_null_buf(void);
unsigned char *G__allocate_null_bits(int);
int G__null_bitstream_size(int);

/* area.c */
int G_begin_cell_area_calculations(void);
double G_area_of_cell_at_row(int);
int G_begin_polygon_area_calculations(void);
double G_area_of_polygon(const double *, const double *, int);

/* area_ellipse.c */
int G_begin_zone_area_on_ellipsoid(double, double, double);
double G_darea0_on_ellipsoid(double);
double G_area_for_zone_on_ellipsoid(double, double);

/* area_poly1.c */
int G_begin_ellipsoid_polygon_area(double, double);
double G_ellipsoid_polygon_area(const double *, const double *, int);

/* area_poly2.c */
double G_planimetric_polygon_area(const double *, const double *, int);

/* area_sphere.c */
int G_begin_zone_area_on_sphere(double, double);
double G_darea0_on_sphere(double);
double G_area_for_zone_on_sphere(double, double);

/* ascii_chk.c */
int G_ascii_check(char *);

/* ask.c */
char *G_ask_new(const char *, char *, char *, char *);
char *G_ask_new_ext(const char *, char *, char *, char *, char *, int (*)());
char *G_ask_old(const char *, char *, char *, char *);
char *G_ask_old_ext(const char *, char *, char *, char *, char *, int (*)());
char *G_ask_any(const char *, char *, char *, char *, int);
char *G_ask_any_ext(const char *, char *, char *, char *, int, char *,
		    int (*)());
char *G_ask_in_mapset(const char *, char *, char *, char *);
char *G_ask_in_mapset_ext(const char *, char *, char *, char *, char *,
			  int (*)());
char *G_ask_new_file(const char *, char *, char *, char *);
char *G_ask_old_file(const char *, char *, char *, char *);
int G_set_ask_return_msg(const char *);
char *G_get_ask_return_msg(void);

/* ask_cell.c */
char *G_ask_cell_new(const char *, char *);
char *G_ask_cell_old(const char *, char *);
char *G_ask_cell_in_mapset(const char *, char *);
char *G_ask_cell_any(const char *, char *);

/* ask_vctrs.c */
char *G_ask_vector_new(const char *, char *);
char *G_ask_vector_old(const char *, char *);
char *G_ask_vector_any(const char *, char *);
char *G_ask_vector_in_mapset(const char *, char *);

/* asprintf.c */
/* Do it better if you know how */
/* asprintf is not found on MINGW but exists */

/* 
 *  Because configure script in GDAL test is G_asprintf exists in gis lib
 *  the G_asprintf macro is disabled until a stable version of GDAL
 *  with a different function becomes widely used 
 */
#ifndef SWIG
int G_vasprintf(char **, const char *, va_list);
#endif
int G_asprintf(char **, const char *, ...)
    __attribute__ ((format(printf, 2, 3)));

/* auto_mask.c */
int G__check_for_auto_masking(void);
int G_suppress_masking(void);
int G_unsuppress_masking(void);

/* basename.c */
char *G_basename(char *, const char *);

/* bres_line.c */
int G_bresenham_line(int, int, int, int, int (*)(int, int));

/* cats.c */
int G_read_cats(const char *, const char *, struct Categories *);
int G_read_raster_cats(const char *, const char *, struct Categories *);
int G_read_vector_cats(const char *, const char *, struct Categories *);
CELL G_number_of_cats(const char *, const char *);
CELL G__read_cats(const char *, const char *, const char *,
		  struct Categories *, int);
char *G_get_cats_title(const struct Categories *);
char *G_get_raster_cats_title(const struct Categories *);
char *G_get_cat(CELL, struct Categories *);
char *G_get_c_raster_cat(CELL *, struct Categories *);
char *G_get_f_raster_cat(FCELL *, struct Categories *);
char *G_get_d_raster_cat(DCELL *, struct Categories *);
char *G_get_raster_cat(void *, struct Categories *, RASTER_MAP_TYPE);
int G_unmark_raster_cats(struct Categories *);
int G_mark_c_raster_cats(CELL *, int, struct Categories *);
int G_mark_f_raster_cats(FCELL *, int, struct Categories *);
int G_mark_d_raster_cats(DCELL *, int, struct Categories *);
int G_mark_raster_cats(void *, int, struct Categories *, RASTER_MAP_TYPE);
int G_rewind_raster_cats(struct Categories *);
char *G_get_next_marked_d_raster_cat(struct Categories *, DCELL *, DCELL *,
				     long *);
char *G_get_next_marked_c_raster_cat(struct Categories *, CELL *, CELL *,
				     long *);
char *G_get_next_marked_f_raster_cat(struct Categories *, FCELL *, FCELL *,
				     long *);
char *G_get_next_marked_raster_cat(struct Categories *, void *, void *,
				   long *, RASTER_MAP_TYPE);
int G_set_cat(CELL, char *, struct Categories *);
int G_set_c_raster_cat(CELL *, CELL *, char *, struct Categories *);
int G_set_f_raster_cat(FCELL *, FCELL *, char *, struct Categories *);
int G_set_d_raster_cat(DCELL *, DCELL *, char *, struct Categories *);
int G_set_raster_cat(void *, void *, char *, struct Categories *,
		     RASTER_MAP_TYPE);
int G_write_cats(char *, struct Categories *);
int G_write_raster_cats(char *, struct Categories *);
int G_write_vector_cats(char *, struct Categories *);
int G__write_cats(char *, char *, struct Categories *);
char *G_get_ith_d_raster_cat(const struct Categories *, int, DCELL *,
			     DCELL *);
char *G_get_ith_f_raster_cat(const struct Categories *, int, void *, void *);
char *G_get_ith_c_raster_cat(const struct Categories *, int, void *, void *);
char *G_get_ith_raster_cat(const struct Categories *, int, void *, void *,
			   RASTER_MAP_TYPE);
int G_init_cats(CELL, const char *, struct Categories *);
int G_init_raster_cats(const char *, struct Categories *);
int G_set_cats_title(const char *, struct Categories *);
int G_set_raster_cats_title(const char *, struct Categories *);
int G_set_cats_fmt(const char *, double, double, double, double,
		   struct Categories *);
int G_set_raster_cats_fmt(const char *, double, double, double, double,
			  struct Categories *);
int G_free_cats(struct Categories *);
int G_free_raster_cats(struct Categories *);
int G_copy_raster_cats(struct Categories *, const struct Categories *);
int G_number_of_raster_cats(struct Categories *);
int G_sort_cats(struct Categories *);

/* cell_stats.c */
int G_init_cell_stats(struct Cell_stats *);
int G_update_cell_stats(const CELL *, int, struct Cell_stats *);
int G_find_cell_stat(CELL, long *, const struct Cell_stats *);
int G_rewind_cell_stats(struct Cell_stats *);
int G_next_cell_stat(CELL *, long *, struct Cell_stats *);
int G_get_stats_for_null_value(long *, const struct Cell_stats *);
int G_free_cell_stats(struct Cell_stats *);

/* cell_title.c */
char *G_get_cell_title(const char *, const char *);

/* cellstats_eq.c */
int G_cell_stats_histo_eq(struct Cell_stats *, CELL, CELL, CELL, CELL, int,
			  void (*)(CELL, CELL, CELL));

/* chop.c */
char *G_chop(char *);

/* clear_scrn.c */
int G_clear_screen(void);

/* clicker.c */
int G_clicker(void);

/* closecell.c */
int G_close_cell(int);
int G_unopen_cell(int);
int G__write_fp_format(int);

/* color_compat.c */
int G_make_ryg_colors(struct Colors *, CELL, CELL);
int G_make_ryg_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_aspect_colors(struct Colors *, CELL, CELL);
int G_make_aspect_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_byr_colors(struct Colors *, CELL, CELL);
int G_make_byr_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_bgyr_colors(struct Colors *, CELL, CELL);
int G_make_bgyr_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_byg_colors(struct Colors *, CELL, CELL);
int G_make_byg_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_grey_scale_colors(struct Colors *, CELL, CELL);
int G_make_grey_scale_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_gyr_colors(struct Colors *, CELL, CELL);
int G_make_gyr_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_rainbow_colors(struct Colors *, CELL, CELL);
int G_make_rainbow_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_ramp_colors(struct Colors *, CELL, CELL);
int G_make_ramp_fp_colors(struct Colors *, DCELL, DCELL);
int G_make_wave_colors(struct Colors *, CELL, CELL);
int G_make_wave_fp_colors(struct Colors *, DCELL, DCELL);

/* color_free.c */
int G_free_colors(struct Colors *);
int G__color_free_rules(struct _Color_Info_ *);
int G__color_free_lookup(struct _Color_Info_ *);
int G__color_free_fp_lookup(struct _Color_Info_ *);
int G__color_reset(struct Colors *);

/* color_get.c */
int G_get_color(CELL, int *, int *, int *, struct Colors *);
int G_get_raster_color(const void *, int *, int *, int *, struct Colors *,
		       RASTER_MAP_TYPE);
int G_get_c_raster_color(const CELL *, int *, int *, int *, struct Colors *);
int G_get_f_raster_color(const FCELL *, int *, int *, int *, struct Colors *);
int G_get_d_raster_color(const DCELL *, int *, int *, int *, struct Colors *);
int G_get_null_value_color(int *, int *, int *, const struct Colors *);
int G_get_default_color(int *, int *, int *, const struct Colors *);

/* color_hist.c */
int G_make_histogram_eq_colors(struct Colors *, struct Cell_stats *);
int G_make_histogram_log_colors(struct Colors *, struct Cell_stats *, int,
				int);

/* color_init.c */
int G_init_colors(struct Colors *);

/* color_insrt.c */
int G__insert_color_into_lookup(CELL, int, int, int, struct _Color_Info_ *);

/* color_invrt.c */
int G_invert_colors(struct Colors *);

/* color_look.c */
int G_lookup_colors(const CELL *, unsigned char *, unsigned char *,
		    unsigned char *, unsigned char *, int, struct Colors *);
int G_lookup_c_raster_colors(const CELL *, unsigned char *, unsigned char *,
			     unsigned char *, unsigned char *, int,
			     struct Colors *);
int G_lookup_raster_colors(const void *, unsigned char *, unsigned char *,
			   unsigned char *, unsigned char *, int,
			   struct Colors *, RASTER_MAP_TYPE);
int G_lookup_f_raster_colors(const FCELL *, unsigned char *, unsigned char *,
			     unsigned char *, unsigned char *, int,
			     struct Colors *);
int G_lookup_d_raster_colors(const DCELL *, unsigned char *, unsigned char *,
			     unsigned char *, unsigned char *, int,
			     struct Colors *);
int G__lookup_colors(const void *, unsigned char *, unsigned char *,
		     unsigned char *, unsigned char *, int, struct Colors *,
		     int, int, RASTER_MAP_TYPE);
int G__interpolate_color_rule(DCELL, unsigned char *, unsigned char *,
			      unsigned char *, const struct _Color_Rule_ *);

/* color_org.c */
int G__organize_colors(struct Colors *);

/* color_rand.c */
int G_make_random_colors(struct Colors *, CELL, CELL);

/* color_range.c */
int G_set_color_range(CELL, CELL, struct Colors *);
int G_set_d_color_range(DCELL, DCELL, struct Colors *);
int G_get_color_range(CELL *, CELL *, const struct Colors *);
int G_get_d_color_range(DCELL *, DCELL *, const struct Colors *);

/* color_read.c */
int G_read_colors(const char *, const char *, struct Colors *);
int G_mark_colors_as_fp(struct Colors *);

/* color_remove.c */
int G_remove_colors(const char *, const char *);

/* color_rule.c */
int G_add_d_raster_color_rule(const DCELL *, int, int, int, const DCELL *,
			      int, int, int, struct Colors *);
int G_add_f_raster_color_rule(const FCELL *, int, int, int, const FCELL *,
			      int, int, int, struct Colors *);
int G_add_c_raster_color_rule(const CELL *, int, int, int, const CELL *, int,
			      int, int, struct Colors *);
int G_add_raster_color_rule(const void *, int, int, int, const void *, int,
			    int, int, struct Colors *, RASTER_MAP_TYPE);
int G_add_color_rule(const CELL, int, int, int, const CELL, int, int, int,
		     struct Colors *);
int G_add_modular_d_raster_color_rule(const DCELL *, int, int, int,
				      const DCELL *, int, int, int,
				      struct Colors *);
int G_add_modular_f_raster_color_rule(const FCELL *, int, int, int,
				      const FCELL *, int, int, int,
				      struct Colors *);
int G_add_modular_c_raster_color_rule(const CELL *, int, int, int,
				      const CELL *, int, int, int,
				      struct Colors *);
int G_add_modular_raster_color_rule(const void *, int, int, int, const void *,
				    int, int, int, struct Colors *,
				    RASTER_MAP_TYPE);
int G_add_modular_color_rule(CELL, int, int, int, CELL, int, int, int,
			     struct Colors *);

/* color_rule_get.c */
int G_colors_count(const struct Colors *);
int G_get_f_color_rule(DCELL *, unsigned char *, unsigned char *,
		       unsigned char *, DCELL *, unsigned char *,
		       unsigned char *, unsigned char *,
		       const struct Colors *, int);

/* color_rules.c */
typedef int read_rule_fn(void *, DCELL, DCELL,
			 DCELL *, int *, int *, int *, int *, int *, int *);
int G_parse_color_rule(DCELL, DCELL, const char *, DCELL *, int *, int *,
		       int *, int *, int *, int *);
const char *G_parse_color_rule_error(int);
int G_read_color_rule(void *, DCELL, DCELL, DCELL *, int *, int *, int *,
		      int *, int *, int *);
int G_read_color_rules(struct Colors *, DCELL, DCELL, read_rule_fn *, void *);
int G_load_colors(struct Colors *, const char *, CELL, CELL);
int G_load_fp_colors(struct Colors *, const char *, DCELL, DCELL);
int G_make_colors(struct Colors *, const char *, CELL, CELL);
int G_make_fp_colors(struct Colors *, const char *, DCELL, DCELL);

/* color_set.c */
int G_set_color(CELL, int, int, int, struct Colors *);
int G_set_d_color(DCELL, int, int, int, struct Colors *);
int G_set_null_value_color(int, int, int, struct Colors *);
int G_set_default_color(int, int, int, struct Colors *);

/* color_shift.c */
int G_shift_colors(int, struct Colors *);
int G_shift_d_colors(DCELL, struct Colors *);

/* color_str.c */
int G_str_to_color(const char *, int *, int *, int *);

/* color_write.c */
int G_write_colors(const char *, const char *, struct Colors *);
int G__write_colors(FILE *, struct Colors *);

/* color_xform.c */
int G_histogram_eq_colors(struct Colors *, struct Colors *,
			  struct Cell_stats *);
void G_histogram_eq_colors_fp(struct Colors *,
			      struct Colors *, struct FP_stats *);
int G_log_colors(struct Colors *, struct Colors *, int);
int G_abs_log_colors(struct Colors *, struct Colors *, int);

/* commas.c */
int G_insert_commas(char *);
int G_remove_commas(char *);

/* copy.c */
int G_copy(void *, const void *, int);

/* copy_file.c */
int G_copy_file(const char *, const char *);
int G_recursive_copy(const char *, const char *);

/* date.c */
char *G_date(void);

/* datum.c */
int G_get_datum_by_name(const char *);
char *G_datum_name(int);
char *G_datum_description(int);
char *G_datum_ellipsoid(int);
int G_get_datumparams_from_projinfo(const struct Key_Value *projinfo,
				    char *datumname, char *params);

/* debug.c */
int G_debug(int, const char *, ...) __attribute__ ((format(printf, 2, 3)));

/* distance.c */
int G_begin_distance_calculations(void);
double G_distance(double, double, double, double);
double G_distance_between_line_segments(double, double, double, double,
					double, double, double, double);
double G_distance_point_to_line_segment(double, double, double, double,
					double, double);

/* done_msg.c */
int G_done_msg(const char *, ...) __attribute__ ((format(printf, 1, 2)));

/* endian.c */
int G_is_little_endian(void);

/* env.c */
char *G_getenv(const char *);
char *G_getenv2(const char *, int);
char *G__getenv(const char *);
char *G__getenv2(const char *, int);
int G_setenv(const char *, const char *);
int G_setenv2(const char *, const char *, int);
int G__setenv(const char *, const char *);
int G__setenv2(const char *, const char *, int);
int G_unsetenv(const char *);
int G_unsetenv2(const char *, int);
int G__write_env(void);
char *G__env_name(int);
int G__read_env(void);
void G_set_gisrc_mode(int);
int G_get_gisrc_mode(void);
int G__set_gisrc_file(const char *);
char *G__get_gisrc_file(void);
int G__create_alt_env(void);
int G__switch_env(void);

/* error.c */
int G_info_format(void);
void G_message(const char *, ...) __attribute__ ((format(printf, 1, 2)));
void G_verbose_message(const char *, ...)
    __attribute__ ((format(printf, 1, 2)));
void G_important_message(const char *, ...)
    __attribute__ ((format(printf, 1, 2)));
int G_fatal_error(const char *, ...) __attribute__ ((format(printf, 1, 2)))
    __attribute__ ((noreturn));
int G_warning(const char *, ...) __attribute__ ((format(printf, 1, 2)));
int G_suppress_warnings(int);
int G_sleep_on_error(int);
int G_set_error_routine(int (*)(const char *, int));
int G_unset_error_routine(void);

/* file_name.c */
char *G__file_name(char *, const char *, const char *, const char *);
char *G__file_name_misc(char *, const char *, const char *, const char *,
			const char *);

/* find_cell.c */
char *G_find_cell(char *, const char *);
char *G_find_cell2(const char *, const char *);

/* find_file.c */
char *G_find_file(const char *, char *, const char *);
char *G_find_file2(const char *, const char *, const char *);
char *G_find_file_misc(const char *, const char *, char *, const char *);
char *G_find_file2_misc(const char *, const char *, const char *,
			const char *);

/* find_etc.c */
char *G_find_etc(const char *);

/* find_vect.c */
char *G_find_vector(char *, const char *);
char *G_find_vector2(const char *, const char *);

/* flate.c */
int G_zlib_compress(const unsigned char *, int, unsigned char *, int);
int G_zlib_expand(const unsigned char *, int, unsigned char *, int);
int G_zlib_write(int, const unsigned char *, int);
int G_zlib_read(int, int, unsigned char *, int);
int G_zlib_write_noCompress(int, const unsigned char *, int);

/* fork.c */
int G_fork(void);

/* format.c */
int G__check_format(int);
int G__read_row_ptrs(int);
int G__write_row_ptrs(int);

/* fpreclass.c */
void G_fpreclass_clear(struct FPReclass *);
void G_fpreclass_reset(struct FPReclass *);
int G_fpreclass_init(struct FPReclass *);
void G_fpreclass_set_domain(struct FPReclass *, DCELL, DCELL);
void G_fpreclass_set_range(struct FPReclass *, DCELL, DCELL);
int G_fpreclass_get_limits(const struct FPReclass *, DCELL *, DCELL *,
			   DCELL *, DCELL *);
int G_fpreclass_nof_rules(const struct FPReclass *);
void G_fpreclass_get_ith_rule(const struct FPReclass *, int, DCELL *, DCELL *,
			      DCELL *, DCELL *);
void G_fpreclass_set_neg_infinite_rule(struct FPReclass *, DCELL, DCELL);
int G_fpreclass_get_neg_infinite_rule(const struct FPReclass *, DCELL *,
				      DCELL *);
void G_fpreclass_set_pos_infinite_rule(struct FPReclass *, DCELL, DCELL);
int G_fpreclass_get_pos_infinite_rule(const struct FPReclass *, DCELL *,
				      DCELL *);
void G_fpreclass_add_rule(struct FPReclass *, DCELL, DCELL, DCELL, DCELL);
void G_fpreclass_reverse_rule_order(struct FPReclass *);
DCELL G_fpreclass_get_cell_value(const struct FPReclass *, DCELL);
void G_fpreclass_perform_di(const struct FPReclass *, const DCELL *, CELL *,
			    int);
void G_fpreclass_perform_df(const struct FPReclass *, const DCELL *, FCELL *,
			    int);
void G_fpreclass_perform_dd(const struct FPReclass *, const DCELL *, DCELL *,
			    int);
void G_fpreclass_perform_fi(const struct FPReclass *, const FCELL *, CELL *,
			    int);
void G_fpreclass_perform_ff(const struct FPReclass *, const FCELL *, FCELL *,
			    int);
void G_fpreclass_perform_fd(const struct FPReclass *, const FCELL *, DCELL *,
			    int);
void G_fpreclass_perform_ii(const struct FPReclass *, const CELL *, CELL *,
			    int);
void G_fpreclass_perform_if(const struct FPReclass *, const CELL *, FCELL *,
			    int);
void G_fpreclass_perform_id(const struct FPReclass *, const CELL *, DCELL *,
			    int);
/* gdal.c */
struct GDAL_link *G_get_gdal_link(const char *, const char *);
void G_close_gdal_link(struct GDAL_link *);

/* geodesic.c */
int G_begin_geodesic_equation(double, double, double, double);
double G_geodesic_lat_from_lon(double);

/* geodist.c */
int G_begin_geodesic_distance(double, double);
int G_set_geodesic_distance_lat1(double);
int G_set_geodesic_distance_lat2(double);
double G_geodesic_distance_lon_to_lon(double, double);
double G_geodesic_distance(double, double, double, double);

/* get_cellhd.c */
int G_get_cellhd(const char *, const char *, struct Cell_head *);

/* get_datum_name.c */
int G_ask_datum_name(char *, char *);

/* get_ell_name.c */
int G_ask_ellipse_name(char *);

/* get_ellipse.c */
int G_get_ellipsoid_parameters(double *, double *);
int G_get_spheroid_by_name(const char *, double *, double *, double *);
int G_get_ellipsoid_by_name(const char *, double *, double *);
char *G_ellipsoid_name(int);
char *G_ellipsoid_description(int);

/* get_projinfo.c */
struct Key_Value *G_get_projunits(void);
struct Key_Value *G_get_projinfo(void);

/* get_projname.c */
int G_ask_proj_name(char *, char *);

/* get_row.c */
int G_get_map_row_nomask(int, CELL *, int);
int G_get_raster_row_nomask(int, void *, int, RASTER_MAP_TYPE);
int G_get_c_raster_row_nomask(int, CELL *, int);
int G_get_f_raster_row_nomask(int, FCELL *, int);
int G_get_d_raster_row_nomask(int, DCELL *, int);
int G_get_map_row(int, CELL *, int);
int G_get_raster_row(int, void *, int, RASTER_MAP_TYPE);
int G_get_c_raster_row(int, CELL *, int);
int G_get_f_raster_row(int, FCELL *, int);
int G_get_d_raster_row(int, DCELL *, int);
int G_get_null_value_row(int, char *, int);

/* get_row_colr.c */
int G_get_raster_row_colors(int, int, struct Colors *,
			    unsigned char *, unsigned char *, unsigned char *,
			    unsigned char *);

/* get_window.c */
int G_get_window(struct Cell_head *);
int G_get_default_window(struct Cell_head *);
char *G__get_window(struct Cell_head *, const char *, const char *,
		    const char *);

/* getl.c */
int G_getl(char *, int, FILE *);
int G_getl2(char *, int, FILE *);

/* gets.c */
int G_gets(char *);

/* gisbase.c */
char *G_gisbase(void);

/* gisdbase.c */
char *G_gisdbase(void);

/* gishelp.c */
int G_gishelp(const char *, const char *);

/* gisinit.c */
int G__gisinit(const char *, const char *);
int G__no_gisinit(const char *);
int G__check_gisinit(void);

/* histo_eq.c */
int G_histogram_eq(const struct Histogram *, unsigned char **, CELL *,
		   CELL *);

/* histogram.c */
int G_init_histogram(struct Histogram *);
int G_read_histogram(const char *, const char *, struct Histogram *);
int G_write_histogram(const char *, const struct Histogram *);
int G_write_histogram_cs(const char *, struct Cell_stats *);
int G_make_histogram_cs(struct Cell_stats *, struct Histogram *);
int G_get_histogram_num(const struct Histogram *);
CELL G_get_histogram_cat(int, const struct Histogram *);
long G_get_histogram_count(int, const struct Histogram *);
int G_free_histogram(struct Histogram *);
int G_sort_histogram(struct Histogram *);
int G_sort_histogram_by_count(struct Histogram *);
int G_remove_histogram(const char *);
int G_add_histogram(CELL, long, struct Histogram *);
int G_set_histogram(CELL, long, struct Histogram *);
int G_extend_histogram(CELL, long, struct Histogram *);
int G_zero_histogram(struct Histogram *);

/* history.c */
int G_read_history(const char *, const char *, struct History *);
int G_write_history(const char *, struct History *);
int G_short_history(const char *, const char *, struct History *);
int G_command_history(struct History *);

/* home.c */
char *G_home(void);
char *G__home(void);

/* index.c */
char *G_index(const char *, int);
char *G_rindex(const char *, int);

/* init_map.c */
int G__random_d_initialize_0(int, int, int);
int G__random_f_initialize_0(int, int, int);

/* interp.c */
DCELL G_interp_linear(double, DCELL, DCELL);
DCELL G_interp_bilinear(double, double, DCELL, DCELL, DCELL, DCELL);
DCELL G_interp_cubic(double, DCELL, DCELL, DCELL, DCELL);
DCELL G_interp_bicubic(double, double,
		       DCELL, DCELL, DCELL, DCELL, DCELL, DCELL, DCELL, DCELL,
		       DCELL, DCELL, DCELL, DCELL, DCELL, DCELL, DCELL,
		       DCELL);

/* intersect.c */
int G_intersect_line_segments(double, double, double, double, double, double,
			      double, double, double *, double *, double *,
			      double *);

/* intr_char.c */
char G_intr_char(void);

/* is.c */
int G_is_gisbase(const char *);
int G_is_location(const char *);
int G_is_mapset(const char *);

/* key_value1.c */
struct Key_Value *G_create_key_value(void);
int G_set_key_value(const char *, const char *, struct Key_Value *);
char *G_find_key_value(const char *, const struct Key_Value *);
int G_free_key_value(struct Key_Value *);

/* key_value2.c */
int G_fwrite_key_value(FILE *, const struct Key_Value *);
struct Key_Value *G_fread_key_value(FILE *);

/* key_value3.c */
int G_write_key_value_file(const char *, const struct Key_Value *, int *);
struct Key_Value *G_read_key_value_file(const char *, int *);

/* key_value4.c */
int G_update_key_value_file(const char *, const char *, const char *);
int G_lookup_key_value_from_file(const char *, const char *, char[], int);

/* legal_name.c */
int G_legal_filename(const char *);
int G_check_input_output_name(const char *, const char *, int);

/* line_dist.c */
int G_set_distance_to_line_tolerance(double);
double G_distance2_point_to_line(double, double, double, double, double,
				 double);

/* list.c */
int G_set_list_hit_return(int);
int G_list_element(const char *, const char *, const char *,
		   int (*)(const char *, const char *, const char *));
char **G_list(int, const char *, const char *, const char *);
void G_free_list(char **);

/* ll_format.c */
int G_lat_format(double, char *);
char *G_lat_format_string(void);
int G_lon_format(double, char *);
char *G_lon_format_string(void);
int G_llres_format(double, char *);
char *G_llres_format_string(void);
int G_lat_parts(double, int *, int *, double *, char *);
int G_lon_parts(double, int *, int *, double *, char *);

/* ll_scan.c */
int G_lat_scan(const char *, double *);
int G_lon_scan(const char *, double *);
int G_llres_scan(const char *, double *);

/* location.c */
char *G_location_path(void);
char *G_location(void);
char *G__location_path(void);

/* ls.c */
void G_set_ls_filter(int (*)(const char *, void *), void *);
void G_set_ls_exclude_filter(int (*)(const char *, void *), void *);
char **G__ls(const char *, int *);
void G_ls(const char *, FILE *);
void G_ls_format(char **, int, int, FILE *);

/* mach_name.c */
char *G__machine_name(void);

/* make_colr.c */
int G_ask_colors(const char *, const char *, struct Colors *);

/* make_loc.c */
int G__make_location(const char *, struct Cell_head *, struct Key_Value *,
		     struct Key_Value *, FILE *);
int G_make_location(const char *, struct Cell_head *, struct Key_Value *,
		    struct Key_Value *, FILE *);
int G_compare_projections(const struct Key_Value *, const struct Key_Value *,
			  const struct Key_Value *, const struct Key_Value *);

/* make_mapset.c */
int G__make_mapset(const char *gisdbase_name, const char *location_name,
		   const char *mapset_name);
int G_make_mapset(const char *gisdbase_name, const char *location_name,
		  const char *mapset_name);

/* mapcase.c */
char *G_tolcase(char *);
char *G_toucase(char *);

/* mapset.c */
char *G_mapset(void);
char *G__mapset(void);

/* mapset_msc.c */
int G__make_mapset_element(const char *);
int G__make_mapset_element_misc(const char *, const char *);
int G__mapset_permissions(const char *);
int G__mapset_permissions2(const char *, const char *, const char *);

/* mapset_nme.c */
char *G__mapset_name(int);
int G__create_alt_search_path(void);
int G__switch_search_path(void);
int G_reset_mapsets(void);
char **G_available_mapsets(void);
void G_add_mapset_to_search_path(const char *mapset);
int G_is_mapset_in_search_path(const char *);

/* mask_info.c */
char *G_mask_info(void);
int G__mask_info(char *, char *);

/* maskfd.c */
int G_maskfd(void);

/* myname.c */
char *G_myname(void);

/* named_colr.c */
int G_color_values(const char *, float *, float *, float *);
const char *G_color_name(int);

/* nl_to_spaces.c */
void G_newlines_to_spaces(char *);

/* nme_in_mps.c */
int G__name_in_mapset(const char *, char *, char *);
int G__name_is_fully_qualified(const char *, char *, char *);
char *G_fully_qualified_name(const char *, const char *);

/* null_val.c */
void G__init_null_patterns(void);
void G__set_null_value(void *, int, int, RASTER_MAP_TYPE);
void G_set_null_value(void *, int, RASTER_MAP_TYPE);
void G_set_c_null_value(CELL *, int);
void G_set_f_null_value(FCELL *, int);
void G_set_d_null_value(DCELL *, int);
int G_is_null_value(const void *, RASTER_MAP_TYPE);
int G_is_c_null_value(const CELL *);
int G_is_f_null_value(const FCELL *);
int G_is_d_null_value(const DCELL *);
int G_insert_null_values(void *, char *, int, RASTER_MAP_TYPE);
int G_insert_c_null_values(CELL *, char *, int);
int G_insert_f_null_values(FCELL *, char *, int);
int G_insert_d_null_values(DCELL *, char *, int);
int G__check_null_bit(const unsigned char *, int, int);
int G__set_flags_from_01_random(const char *, unsigned char *, int, int, int);
int G__convert_01_flags(const char *, unsigned char *, int);
int G__convert_flags_01(char *, const unsigned char *, int);
int G__init_null_bits(unsigned char *, int);

/* open.c */
int G_open_new(const char *, const char *);
int G_open_old(const char *, const char *, const char *);
int G_open_update(const char *, const char *);
FILE *G_fopen_new(const char *, const char *);
FILE *G_fopen_old(const char *, const char *, const char *);
FILE *G_fopen_append(const char *, const char *);
FILE *G_fopen_modify(const char *, const char *);

/* open_misc.c */
int G_open_new_misc(const char *, const char *, const char *);
int G_open_old_misc(const char *, const char *, const char *, const char *);
int G_open_update_misc(const char *, const char *, const char *);
FILE *G_fopen_new_misc(const char *, const char *, const char *);
FILE *G_fopen_old_misc(const char *, const char *, const char *,
		       const char *);
FILE *G_fopen_append_misc(const char *, const char *, const char *);
FILE *G_fopen_modify_misc(const char *, const char *, const char *);

/* opencell.c */
int G_open_cell_old(const char *, const char *);
int G__open_cell_old(const char *, const char *);
int G_open_cell_new(const char *);
int G_open_cell_new_random(const char *);
int G_open_cell_new_uncompressed(const char *);
int G_want_histogram(int);
int G_set_cell_format(int);
int G_cellvalue_format(CELL);
int G_open_fp_cell_new(const char *);
int G_open_fp_cell_new_uncompressed(const char *);
int G__reallocate_work_buf(int);
int G__reallocate_null_buf(void);
int G__reallocate_mask_buf(void);
int G__reallocate_temp_buf(void);
int G_set_fp_type(RASTER_MAP_TYPE);
int G_raster_map_is_fp(const char *, const char *);
RASTER_MAP_TYPE G_raster_map_type(const char *, const char *);
RASTER_MAP_TYPE G__check_fp_type(const char *, const char *);
RASTER_MAP_TYPE G_get_raster_map_type(int);
int G_open_raster_new(const char *, RASTER_MAP_TYPE);
int G_open_raster_new_uncompressed(const char *, RASTER_MAP_TYPE);
int G_set_quant_rules(int, struct Quant *);

/* overwrite.c */
int G_check_overwrite(int argc, char **argv);

/* parser.c */
int G_disable_interactive(void);
struct GModule *G_define_module(void);
struct Flag *G_define_flag(void);
struct Option *G_define_option(void);
struct Option *G_define_standard_option(int);
int G_parser(int, char **);
int G_usage(void);
char *G_recreate_command(void);

/* paths.c */
int G_mkdir(const char *);
int G_is_dirsep(char);
int G_is_absolute_path(const char *);
char *G_convert_dirseps_to_host(char *);
char *G_convert_dirseps_from_host(char *);
struct stat;
int G_lstat(const char *, struct stat *);
int G_stat(const char *, struct stat *);

/* percent.c */
int G_percent(long, long, int);
int G_percent2(long, long, int, FILE *);
int G_percent_reset(void);
void G_set_percent_routine(int (*) (int));
void G_unset_percent_routine(void);

/* plot.c */
int G_setup_plot(double, double, double, double, int (*)(int, int),
		 int (*)(int, int));
int G_setup_fill(int);
int G_plot_where_xy(double, double, int *, int *);
int G_plot_where_en(int, int, double *, double *);
int G_plot_point(double, double);
int G_plot_line(double, double, double, double);
int G_plot_line2(double, double, double, double);
int G_plot_polygon(const double *, const double *, int);
int G_plot_area(double *const *, double *const *, int *, int);
int G_plot_fx(double (*)(double), double, double);
int G_plot_icon(double, double, int, double, double);

/* pole_in_poly.c */
int G_pole_in_polygon(const double *, const double *, int);

/* popen.c */
FILE *G_popen(const char *, const char *);
int G_pclose(FILE *);

/* progrm_nme.c */
const char *G_program_name(void);
int G_set_program_name(const char *);

/* proj1.c */
int G_projection(void);

/* proj2.c */
int G__projection_units(int);
char *G__unit_name(int, int);
char *G__projection_name(int);

/* proj3.c */
char *G_database_unit_name(int);
char *G_database_projection_name(void);
double G_database_units_to_meters_factor(void);
char *G_database_datum_name(void);
char *G_database_ellipse_name(void);

/* put_cellhd.c */
int G_put_cellhd(const char *, struct Cell_head *);

/* put_row.c */
int G_zeros_r_nulls(int);
int G_put_map_row(int, const CELL *);
int G_put_map_row_random(int, const CELL *, int, int, int);
int G__put_null_value_row(int, const char *);
int G_put_raster_row(int, const void *, RASTER_MAP_TYPE);
int G_put_c_raster_row(int, const CELL *);
int G_put_f_raster_row(int, const FCELL *);
int G_put_d_raster_row(int, const DCELL *);
int G__write_data(int, int, int);
int G__write_data_compressed(int, int, int);
int G__open_null_write(int);
int G__write_null_bits(int, const unsigned char *, int, int, int);

/* put_title.c */
int G_put_cell_title(const char *, const char *);

/* put_window.c */
int G_put_window(const struct Cell_head *);
int G__put_window(const struct Cell_head *, char *, char *);

/* putenv.c */
void G_putenv(const char *, const char *);

/* quant.c */
void G_quant_clear(struct Quant *);
void G_quant_free(struct Quant *);
int G__quant_organize_fp_lookup(struct Quant *);
int G_quant_init(struct Quant *);
int G_quant_is_truncate(const struct Quant *);
int G_quant_is_round(const struct Quant *);
int G_quant_truncate(struct Quant *);
int G_quant_round(struct Quant *);
int G_quant_get_limits(const struct Quant *, DCELL *, DCELL *, CELL *,
		       CELL *);
int G_quant_nof_rules(const struct Quant *);
void G_quant_get_ith_rule(const struct Quant *, int, DCELL *, DCELL *, CELL *,
			  CELL *);
void G_quant_set_neg_infinite_rule(struct Quant *, DCELL, CELL);
int G_quant_get_neg_infinite_rule(const struct Quant *, DCELL *, CELL *);
void G_quant_set_pos_infinite_rule(struct Quant *, DCELL, CELL);
int G_quant_get_pos_infinite_rule(const struct Quant *, DCELL *, CELL *);
void G_quant_add_rule(struct Quant *, DCELL, DCELL, CELL, CELL);
void G_quant_reverse_rule_order(struct Quant *);
CELL G_quant_get_cell_value(struct Quant *, DCELL);
void G_quant_perform_d(struct Quant *, const DCELL *, CELL *, int);
void G_quant_perform_f(struct Quant *, const FCELL *, CELL *, int);
struct Quant_table *G__quant_get_rule_for_d_raster_val(const struct Quant *,
						       DCELL);

/* quant_io.c */
int G__quant_import(const char *, const char *, struct Quant *);
int G__quant_export(const char *, const char *, const struct Quant *);

/* quant_rw.c */
int G_truncate_fp_map(const char *, const char *);
int G_round_fp_map(const char *, const char *);
int G_quantize_fp_map(const char *, const char *, CELL, CELL);
int G_quantize_fp_map_range(const char *, const char *, DCELL, DCELL, CELL,
			    CELL);
int G_write_quant(const char *, const char *, const struct Quant *);
int G_read_quant(const char *, const char *, struct Quant *);

/* radii.c */
double G_meridional_radius_of_curvature(double, double, double);
double G_transverse_radius_of_curvature(double, double, double);
double G_radius_of_conformal_tangent_sphere(double, double, double);

/* range.c */
int G__remove_fp_range(const char *);
int G_construct_default_range(struct Range *);
int G_read_fp_range(const char *, const char *, struct FPRange *);
int G_read_range(const char *, const char *, struct Range *);
int G_write_range(const char *, const struct Range *);
int G_write_fp_range(const char *, const struct FPRange *);
int G_update_range(CELL, struct Range *);
int G_update_fp_range(DCELL, struct FPRange *);
int G_row_update_range(const CELL *, int, struct Range *);
int G__row_update_range(const CELL *, int, struct Range *, int);
int G_row_update_fp_range(const void *, int, struct FPRange *,
			  RASTER_MAP_TYPE);
int G_init_range(struct Range *);
int G_get_range_min_max(const struct Range *, CELL *, CELL *);
int G_init_fp_range(struct FPRange *);
int G_get_fp_range_min_max(const struct FPRange *, DCELL *, DCELL *);

/* raster.c */
void *G_incr_void_ptr(const void *, const size_t);
int G_raster_cmp(const void *, const void *, RASTER_MAP_TYPE);
int G_raster_cpy(void *, const void *, int, RASTER_MAP_TYPE);
int G_set_raster_value_c(void *, CELL, RASTER_MAP_TYPE);
int G_set_raster_value_f(void *, FCELL, RASTER_MAP_TYPE);
int G_set_raster_value_d(void *, DCELL, RASTER_MAP_TYPE);
CELL G_get_raster_value_c(const void *, RASTER_MAP_TYPE);
FCELL G_get_raster_value_f(const void *, RASTER_MAP_TYPE);
DCELL G_get_raster_value_d(const void *, RASTER_MAP_TYPE);

/* raster_metadata.c */
int G_read_raster_units(const char *, const char *, char *);
int G_read_raster_vdatum(const char *, const char *, char *);
int G_write_raster_units(const char *, const char *);
int G_write_raster_vdatum(const char *, const char *);
int G__raster_misc_read_line(const char *, const char *, const char *,
			     char *);
int G__raster_misc_write_line(const char *, const char *, const char *);

/* rd_cellhd.c */
char *G__read_Cell_head(FILE *, struct Cell_head *, int);
char *G__read_Cell_head_array(char **, struct Cell_head *, int);

/* reclass.c */
int G_is_reclass(const char *, const char *, char *, char *);
int G_is_reclassed_to(const char *, const char *, int *, char ***);
int G_get_reclass(const char *, const char *, struct Reclass *);
int G_free_reclass(struct Reclass *);
int G_put_reclass(const char *, const struct Reclass *);

/* remove.c */
int G_remove(const char *, const char *);
int G_remove_misc(const char *, const char *, const char *);

/* rename.c */
int G_rename_file(const char *, const char *);
int G_rename(const char *, const char *, const char *);

/* rhumbline.c */
int G_begin_rhumbline_equation(double, double, double, double);
double G_rhumbline_lat_from_lon(double);

/* rotate.c */
void G_rotate_around_point(double, double, double *, double *, double);
void G_rotate_around_point_int(int, int, int *, int *, double);

/* seek.c */
off_t G_ftell(FILE *);
void G_fseek(FILE *, off_t, int);

/* sample.c */
DCELL G_get_raster_sample_nearest(
    int, const struct Cell_head *, struct Categories *, double, double, int);
DCELL G_get_raster_sample_bilinear(
    int, const struct Cell_head *, struct Categories *, double, double, int);
DCELL G_get_raster_sample_cubic(
    int, const struct Cell_head *, struct Categories *, double, double, int);
DCELL G_get_raster_sample(
    int, const struct Cell_head *, struct Categories *, double, double, int,
    INTERP_TYPE);

/* set_window.c */
int G_get_set_window(struct Cell_head *);
int G_set_window(struct Cell_head *);

/* short_way.c */
int G_shortest_way(double *, double *);

/* sleep.c */
void G_sleep(unsigned int);

/* snprintf.c */
int G_snprintf(char *, size_t, const char *, ...)
    __attribute__ ((format(printf, 3, 4)));

/* squeeze.c */
char *G_squeeze(char *);

/* store.c */
char *G_store(const char *);

/* strings.c */
char *G_strcpy(char *, const char *);
char *G_chrcpy(char *, const char *, int);
char *G_strncpy(char *, const char *, int);
char *G_strcat(char *, const char *);
char *G_chrcat(char *, const char *, int);
char *G_strmov(char *, const char *);
char *G_chrmov(char *, const char *, int);
int G_strcasecmp(const char *, const char *);
char *G_strstr(const char *, const char *);
char *G_strdup(const char *);
char *G_strchg(char *, char, char);
char *G_str_replace(char *, const char *, const char *);
void G_str_to_upper(char *);
void G_str_to_lower(char *);
int G_str_to_sql(char *);
int G_strip(char *);

/* system.c */
int G_system(const char *);

/* tempfile.c */
char *G_tempfile(void);
char *G__tempfile(int);
int G__temp_element(char *);

/* timestamp.c */
void G_init_timestamp(struct TimeStamp *);
void G_set_timestamp(struct TimeStamp *, const DateTime *);
void G_set_timestamp_range(struct TimeStamp *, const DateTime *,
			   const DateTime *);
int G__read_timestamp(FILE *, struct TimeStamp *);
int G__write_timestamp(FILE *, const struct TimeStamp *);
int G_get_timestamps(const struct TimeStamp *, DateTime *, DateTime *, int *);
int G_read_raster_timestamp(const char *, const char *, struct TimeStamp *);
int G_read_vector_timestamp(const char *, const char *, struct TimeStamp *);
int G_write_raster_timestamp(const char *, const struct TimeStamp *);
int G_write_vector_timestamp(const char *, const struct TimeStamp *);
int G_format_timestamp(const struct TimeStamp *, char *);
int G_scan_timestamp(struct TimeStamp *, const char *);
int G_remove_raster_timestamp(const char *);
int G_remove_vector_timestamp(const char *);
int G_read_grid3_timestamp(const char *, const char *, struct TimeStamp *);
int G_remove_grid3_timestamp(const char *);
int G_write_grid3_timestamp(const char *, const struct TimeStamp *);

/* token.c */
char **G_tokenize(const char *, const char *);
int G_number_of_tokens(char **);
int G_free_tokens(char **);

/* trim_dec.c */
int G_trim_decimal(char *);

/* unctrl.c */
char *G_unctrl(int);

/* unix_socks.c */
char *G_sock_get_fname(const char *);
int G_sock_exists(const char *);
int G_sock_bind(const char *);
int G_sock_listen(int, unsigned int);
int G_sock_accept(int);
int G_sock_connect(const char *);

/* verbose.c */
int G_verbose(void);
int G_verbose_min(void);
int G_verbose_std(void);
int G_verbose_max(void);
int G_set_verbose(int);

/* view.c */
int G_3dview_warning(int);
int G_get_3dview_defaults(struct G_3dview *, struct Cell_head *);
int G_put_3dview(const char *, const char *, const struct G_3dview *,
		 const struct Cell_head *);
int G_get_3dview(const char *, const char *, struct G_3dview *);

/* whoami.c */
char *G_whoami(void);

/* wind_2_box.c */
int G_adjust_window_to_box(const struct Cell_head *, struct Cell_head *, int,
			   int);

/* wind_format.c */
int G_format_northing(double, char *, int);
int G_format_easting(double, char *, int);
int G_format_resolution(double, char *, int);

/* wind_in.c */
int G_point_in_region(double, double);
int G_point_in_window(double, double, const struct Cell_head *);

/* wind_limits.c */
int G_limit_east(double *, int);
int G_limit_west(double *, int);
int G_limit_north(double *, int);
int G_limit_south(double *, int);

/* wind_overlap.c */
int G_window_overlap(const struct Cell_head *, double, double, double,
		     double);
double G_window_percentage_overlap(const struct Cell_head *, double, double,
				   double, double);

/* wind_scan.c */
int G_scan_northing(const char *, double *, int);
int G_scan_easting(const char *, double *, int);
int G_scan_resolution(const char *, double *, int);

/* window_map.c */
int G__create_window_mapping(int);
double G_northing_to_row(double, const struct Cell_head *);
double G_adjust_east_longitude(double, double);
double G_adjust_easting(double, const struct Cell_head *);
double G_easting_to_col(double, const struct Cell_head *);
double G_row_to_northing(double, const struct Cell_head *);
double G_col_to_easting(double, const struct Cell_head *);
int G_window_rows(void);
int G_window_cols(void);
int G__init_window(void);
int G_row_repeat_nomask(int, int);

/* wr_cellhd.c */
int G__write_Cell_head(FILE *, const struct Cell_head *, int);
int G__write_Cell_head3(FILE *, const struct Cell_head *, int);

/* writ_zeros.c */
int G_write_zeros(int, size_t);

/* yes.c */
int G_yes(const char *, int);

/* zero.c */
int G_zero(void *, int);

/* zero_cell.c */
int G_zero_cell_buf(CELL *);
int G_zero_raster_buf(void *, RASTER_MAP_TYPE);

/* zone.c */
int G_zone(void);

#endif /* GRASS_GISDEFS_H */