[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203

Stephane Popinet popinet at users.sf.net
Fri May 15 02:56:06 UTC 2009


The following commit has been merged in the upstream branch:
commit 63bee5192081a43016350b92a5825a9eb7de580e
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Wed Jan 21 07:34:30 2009 +1100

    Fix for hardcoding of path in Terrain module
    
    darcs-hash:20090120203430-d4795-b62a4e0111bff38cea23357d75851a7a9419bce0.gz

diff --git a/modules/terrain.mod b/modules/terrain.mod
index 73ab3ca..f950ea6 100644
--- a/modules/terrain.mod
+++ b/modules/terrain.mod
@@ -33,11 +33,12 @@ static gchar * default_path = ".";
 typedef struct {
   RSurface ** rs;
   guint nrs; 
-  gchar * basename;  
+  gchar * path, * basename;  
 } RSurfaces;
 
 static void rsurfaces_destroy (RSurfaces * rs)
 {
+  g_free (rs->path);
   g_free (rs->basename);
   if (rs->rs) {
     guint i;
@@ -56,14 +57,12 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
       {GTS_STRING, "path",      TRUE},
       {GTS_NONE}
     };
-    gchar * basename = NULL;
-    var[0].data = &basename;
-    var[1].data = &path;
+    var[0].data = &rs->basename;
+    var[1].data = &rs->path;
     gts_file_assign_variables (fp, var);
     if (fp->type == GTS_ERROR)
       return;
-    if (var[0].set) { g_free (rs->basename); rs->basename = basename; }
-    if (!var[1].set) path = g_strdup (default_path);
+    path = g_strconcat (default_path, ":", rs->path, NULL);
   }
   else
     path = g_strdup (default_path);
@@ -78,8 +77,6 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
       return;
     }
     g_free (pattern);
-    g_free (rs->basename);
-    rs->basename = NULL;
     guint i;
     for (i = 0; i < pglob.gl_pathc; i++) {
       pglob.gl_pathv[i][strlen (pglob.gl_pathv[i]) - 5] = '\0';
@@ -91,23 +88,12 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
 	g_free (path);
 	return;
       }
-      if (rs->basename) {
-	gchar * pathbasename = g_strconcat (rs->basename, ",", pglob.gl_pathv[i], NULL);
-	g_free (rs->basename);
-	rs->basename = pathbasename;
-      }
-      else
-	rs->basename = g_strdup (pglob.gl_pathv[i]);
       rs->nrs++;
     }
     globfree (&pglob);
   }
   else { /* basename is of the form: set1,set2,set3... */
     gchar ** names = g_strsplit (rs->basename, ",", 0);
-    if (path) {
-      g_free (rs->basename);
-      rs->basename = NULL;
-    }
     gchar ** s = names;
     while (*s) {
       rs->rs = g_realloc (rs->rs, (rs->nrs + 1)*sizeof (RSurface *));
@@ -121,15 +107,6 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
 	  rs->rs[rs->nrs] = r_surface_open (fname, "r", -1);
 	} while (rs->rs[rs->nrs] == NULL && *(++spath));
 	g_strfreev (pathes);
-
-	if (rs->basename) {
-	  gchar * pathbasename = g_strconcat (rs->basename, ",", fname, NULL);
-	  g_free (rs->basename);
-	  rs->basename = pathbasename;
-	  g_free (fname);
-	}
-	else
-	  rs->basename = fname;
       }
       else
 	rs->rs[rs->nrs] = r_surface_open (*s, "r", -1);
@@ -152,7 +129,14 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
 
 static void rsurfaces_write (RSurfaces * rs, FILE * fp)
 {
-  fprintf (fp, " { basename = %s }", rs->basename);
+  if (rs->path || rs->basename) {
+    fputs (" {\n", fp);
+    if (rs->path)
+      fprintf (fp, "  path = %s\n", rs->path);
+    if (rs->basename)
+      fprintf (fp, "  basename = %s\n", rs->basename);
+    fputc ('}', fp);
+  }
 }
 
 /* GfsRefineTerrain: Header */

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list