standard_option.c 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #include "proto.h"
  2. static char* STD_OPT_STRINGS[] = {"G_OPT_UNDEFINED",
  3. "G_OPT_DB_SQL",
  4. "G_OPT_DB_WHERE",
  5. "G_OPT_DB_TABLE",
  6. "G_OPT_DB_DRIVER",
  7. "G_OPT_DB_DATABASE",
  8. "G_OPT_DB_SCHEMA",
  9. "G_OPT_DB_COLUMN",
  10. "G_OPT_DB_COLUMNS",
  11. "G_OPT_DB_KEYCOLUMN",
  12. "G_OPT_I_GROUP",
  13. "G_OPT_I_SUBGROUP",
  14. "G_OPT_MEMORYMB",
  15. "G_OPT_R_INPUT",
  16. "G_OPT_R_INPUTS",
  17. "G_OPT_R_OUTPUT",
  18. "G_OPT_R_OUTPUTS",
  19. "G_OPT_R_MAP",
  20. "G_OPT_R_MAPS",
  21. "G_OPT_R_BASE",
  22. "G_OPT_R_COVER",
  23. "G_OPT_R_ELEV",
  24. "G_OPT_R_ELEVS",
  25. "G_OPT_R_TYPE",
  26. "G_OPT_R_INTERP_TYPE",
  27. "G_OPT_R_BASENAME_INPUT",
  28. "G_OPT_R_BASENAME_OUTPUT",
  29. "G_OPT_R3_INPUT",
  30. "G_OPT_R3_INPUTS",
  31. "G_OPT_R3_OUTPUT",
  32. "G_OPT_R3_MAP",
  33. "G_OPT_R3_MAPS",
  34. "G_OPT_R3_TYPE",
  35. "G_OPT_R3_PRECISION",
  36. "G_OPT_R3_TILE_DIMENSION",
  37. "G_OPT_R3_COMPRESSION",
  38. "G_OPT_V_INPUT",
  39. "G_OPT_V_INPUTS",
  40. "G_OPT_V_OUTPUT",
  41. "G_OPT_V_MAP",
  42. "G_OPT_V_MAPS",
  43. "G_OPT_V_TYPE",
  44. "G_OPT_V3_TYPE",
  45. "G_OPT_V_FIELD",
  46. "G_OPT_V_FIELD_ALL",
  47. "G_OPT_V_CAT",
  48. "G_OPT_V_CATS",
  49. "G_OPT_V_ID",
  50. "G_OPT_V_IDS",
  51. "G_OPT_F_INPUT",
  52. "G_OPT_F_BIN_INPUT",
  53. "G_OPT_F_OUTPUT",
  54. "G_OPT_F_SEP",
  55. "G_OPT_C",
  56. "G_OPT_CN",
  57. "G_OPT_M_UNITS",
  58. "G_OPT_M_DATATYPE",
  59. "G_OPT_M_MAPSET",
  60. "G_OPT_M_LOCATION",
  61. "G_OPT_M_DBASE",
  62. "G_OPT_M_COORDS",
  63. "G_OPT_M_COLR",
  64. "G_OPT_M_DIR",
  65. "G_OPT_M_REGION",
  66. "G_OPT_M_NULL_VALUE",
  67. "G_OPT_M_NPROCS",
  68. "G_OPT_STDS_INPUT",
  69. "G_OPT_STDS_INPUTS",
  70. "G_OPT_STDS_OUTPUT",
  71. "G_OPT_STRDS_INPUT",
  72. "G_OPT_STRDS_INPUTS",
  73. "G_OPT_STRDS_OUTPUT",
  74. "G_OPT_STRDS_OUTPUTS",
  75. "G_OPT_STR3DS_INPUT",
  76. "G_OPT_STR3DS_INPUTS",
  77. "G_OPT_STR3DS_OUTPUT",
  78. "G_OPT_STVDS_INPUT",
  79. "G_OPT_STVDS_INPUTS",
  80. "G_OPT_STVDS_OUTPUT",
  81. "G_OPT_MAP_INPUT",
  82. "G_OPT_MAP_INPUTS",
  83. "G_OPT_STDS_TYPE",
  84. "G_OPT_MAP_TYPE",
  85. "G_OPT_T_TYPE",
  86. "G_OPT_T_WHERE",
  87. "G_OPT_T_SAMPLE"};
  88. struct Option *define_standard_option(const char *name)
  89. {
  90. int key;
  91. size_t i;
  92. struct Option *opt;
  93. key = G_OPT_UNDEFINED;
  94. for (i = 1; key == G_OPT_UNDEFINED && i < (sizeof(STD_OPT_STRINGS) / sizeof(char *)); i++) {
  95. if (G_strcasecmp(name, STD_OPT_STRINGS[i]) == 0)
  96. key = i;
  97. }
  98. if (key == G_OPT_UNDEFINED)
  99. opt = G_define_option();
  100. else
  101. opt = G_define_standard_option(key);
  102. return opt;
  103. }