00001 #include <grass/gis.h>
00002
00003
00004
00005
00006
00007 int G_fwrite_key_value (
00008 FILE *fd,
00009 struct Key_Value *kv)
00010 {
00011 int n;
00012 int err;
00013
00014 err = 0;
00015 for (n = 0; n < kv->nitems; n++)
00016 if (kv->value[n][0])
00017 {
00018 if (EOF == fprintf (fd, "%s: %s\n", kv->key[n], kv->value[n]))
00019 err = -1;
00020 }
00021 return err;
00022 }
00023
00024 struct Key_Value *
00025 G_fread_key_value (FILE *fd)
00026
00027 {
00028 struct Key_Value *kv;
00029 char *key, *value;
00030 char buf[1024];
00031
00032 kv = G_create_key_value();
00033 if (kv == NULL)
00034 return NULL;
00035 while (G_getl(buf, sizeof buf, fd) != 0)
00036 {
00037 key = value = buf;
00038 while (*value && *value != ':')
00039 value++;
00040 if (*value != ':')
00041 continue;
00042 *value++ = 0;
00043 G_strip(key);
00044 G_strip(value);
00045 if(!G_set_key_value (key, value, kv))
00046 {
00047 G_free_key_value(kv);
00048 return NULL;
00049 }
00050 }
00051 return kv;
00052 }