Go to the documentation of this file.00001
00016 #include <grass/gis.h>
00017
00027 int G_fwrite_key_value(FILE * fd, const struct Key_Value *kv)
00028 {
00029 int n;
00030 int err;
00031
00032 err = 0;
00033 for (n = 0; n < kv->nitems; n++)
00034 if (kv->value[n][0]) {
00035 if (EOF == fprintf(fd, "%s: %s\n", kv->key[n], kv->value[n]))
00036 err = -1;
00037 }
00038 return err;
00039 }
00040
00051 struct Key_Value *G_fread_key_value(FILE * fd)
00052 {
00053 struct Key_Value *kv;
00054 char *key, *value;
00055 char buf[1024];
00056
00057 kv = G_create_key_value();
00058 if (kv == NULL)
00059 return NULL;
00060 while (G_getl2(buf, sizeof(buf) - 1, fd) != 0) {
00061 key = value = buf;
00062 while (*value && *value != ':')
00063 value++;
00064 if (*value != ':')
00065 continue;
00066 *value++ = 0;
00067 G_strip(key);
00068 G_strip(value);
00069 if (!G_set_key_value(key, value, kv)) {
00070 G_free_key_value(kv);
00071 return NULL;
00072 }
00073 }
00074 return kv;
00075 }