Kaynağa Gözat

v.what: escape backslash in database path on Windows to create valid JSON

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@64040 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 10 yıl önce
ebeveyn
işleme
d7fd1698e6
1 değiştirilmiş dosya ile 5 ekleme ve 1 silme
  1. 5 1
      vector/v.what/what.c

+ 5 - 1
vector/v.what/what.c

@@ -537,6 +537,7 @@ void what(struct Map_info *Map, int nvects, char **vect, double east, double nor
 	if (Cats->n_cats > 0) {
 	    int j;
 	    char *formbuf1;
+	    char *formbuf2;
 	    if (json) {
 		fprintf(stdout, ",\n\"Categories\": [");
 	    }
@@ -563,9 +564,12 @@ void what(struct Map_info *Map, int nvects, char **vect, double east, double nor
 				Fi->driver, Fi->database, Fi->table, Fi->key);
 		    }
 		    else if (json) {
+			/* escape backslash to create valid JSON */
+			formbuf2 = G_str_replace(Fi->database, "\\", "\\\\");
 			fprintf(stdout,
 				",\n\"Driver\": \"%s\",\n\"Database\": \"%s\",\n\"Table\": \"%s\",\n\"Key_column\": \"%s\"",
-				Fi->driver, Fi->database, Fi->table, Fi->key);
+				Fi->driver, formbuf2, Fi->table, Fi->key);
+			G_free(formbuf2);
 		    }
 		    else {
 			fprintf(stdout,