GRASS Programmer's Manual 6.4.1(2011)
|
00001 00016 #include <grass/gis.h> 00017 #include <string.h> 00018 00031 int G_update_key_value_file(const char *file, const char *key, 00032 const char *value) 00033 { 00034 struct Key_Value *kv; 00035 int stat; 00036 00037 kv = G_read_key_value_file(file, &stat); 00038 if (stat != 0) 00039 return stat; 00040 00041 if (!G_set_key_value(key, value, kv)) { 00042 G_free_key_value(kv); 00043 return -2; 00044 } 00045 00046 G_write_key_value_file(file, kv, &stat); 00047 G_free_key_value(kv); 00048 00049 return stat; 00050 } 00051 00064 int G_lookup_key_value_from_file(const char *file, 00065 const char *key, char value[], int n) 00066 { 00067 struct Key_Value *kv; 00068 int stat; 00069 char *v; 00070 00071 *value = 0; 00072 kv = G_read_key_value_file(file, &stat); 00073 if (stat != 0) 00074 return stat; 00075 00076 v = G_find_key_value(key, kv); 00077 if (v) { 00078 strncpy(value, v, n); 00079 value[n - 1] = 0; 00080 stat = 1; 00081 } 00082 else 00083 stat = 0; 00084 G_free_key_value(kv); 00085 return stat; 00086 }