key_value2.c

Go to the documentation of this file.
00001 #include <grass/gis.h>
00002 
00003 /* returns 0, ok
00004  * -1 error writing
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 }

Generated on Wed Dec 19 14:59:06 2007 for GRASS by  doxygen 1.5.4