瀏覽代碼

support for fs alias words; needs possible malloc issue addressed before backporting

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@55635 15284696-431f-4ddb-bdfa-cd5b030d7da7
Hamish Bowman 12 年之前
父節點
當前提交
7216768f63
共有 1 個文件被更改,包括 16 次插入5 次删除
  1. 16 5
      vector/v.db.select/main.c

+ 16 - 5
vector/v.db.select/main.c

@@ -44,7 +44,7 @@ int main(int argc, char **argv)
     struct Map_info Map;
     struct Map_info Map;
     char query[1024];
     char query[1024];
     struct ilist *list_lines;
     struct ilist *list_lines;
-
+    char *fs;
     struct bound_box *min_box, *line_box;
     struct bound_box *min_box, *line_box;
     int i, line, area, init_box, cat;
     int i, line, area, init_box, cat;
 
 
@@ -127,6 +127,18 @@ int main(int argc, char **argv)
       list_lines = NULL;
       list_lines = NULL;
     }
     }
 
 
+    /* the field separator */
+    fs = fs_opt->answer;
+/* FIXME: malloc() or G_store() needed for *fs since the sep can be multiple chars? */
+    if (strcmp(fs, "\\t") == 0)
+        fs = "\t";
+    if (strcmp(fs, "tab") == 0)
+        fs = "\t";
+    if (strcmp(fs, "space") == 0)
+        fs = " ";
+    if (strcmp(fs, "comma") == 0)
+        fs = ",";
+
     db_init_string(&sql);
     db_init_string(&sql);
     db_init_string(&value_string);
     db_init_string(&value_string);
 
 
@@ -180,7 +192,7 @@ int main(int argc, char **argv)
 	for (col = 0; col < ncols; col++) {
 	for (col = 0; col < ncols; col++) {
 	    column = db_get_table_column(table, col);
 	    column = db_get_table_column(table, col);
 	    if (col)
 	    if (col)
-		fprintf(stdout, "%s", fs_opt->answer);
+		fprintf(stdout, "%s", fs);
 	    fprintf(stdout, "%s", db_get_column_name(column));
 	    fprintf(stdout, "%s", db_get_column_name(column));
 	}
 	}
 	fprintf(stdout, "\n");
 	fprintf(stdout, "\n");
@@ -214,11 +226,10 @@ int main(int argc, char **argv)
 	    db_convert_column_value_to_string(column, &value_string);
 	    db_convert_column_value_to_string(column, &value_string);
 
 
 	    if (!c_flag->answer && v_flag->answer)
 	    if (!c_flag->answer && v_flag->answer)
-		fprintf(stdout, "%s%s", db_get_column_name(column),
-			fs_opt->answer);
+		fprintf(stdout, "%s%s", db_get_column_name(column), fs);
 
 
 	    if (col && !v_flag->answer)
 	    if (col && !v_flag->answer)
-		fprintf(stdout, "%s", fs_opt->answer);
+		fprintf(stdout, "%s", fs);
 
 
 	    if (nv_opt->answer && db_test_value_isnull(value))
 	    if (nv_opt->answer && db_test_value_isnull(value))
 		fprintf(stdout, "%s", nv_opt->answer);
 		fprintf(stdout, "%s", nv_opt->answer);