소스 검색

r.viewshed: use GRASS .tmp dir for temp data

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@49786 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 13 년 전
부모
커밋
cde765ef02
1개의 변경된 파일12개의 추가작업 그리고 7개의 파일을 삭제
  1. 12 7
      raster/r.viewshed/main.cpp

+ 12 - 7
raster/r.viewshed/main.cpp

@@ -574,11 +574,7 @@ parse_args(int argc, char *argv[], int *vpRow, int *vpCol,
     streamdirOpt->key        = "stream_dir";
     streamdirOpt->type       = TYPE_STRING;
     streamdirOpt->required   = NO;
-#ifdef __MINGW32__
-    streamdirOpt->answer     = G_convert_dirseps_from_host(G_store(getenv("TEMP")));
-#else
-    streamdirOpt->answer     = "/var/tmp/";
-#endif
+    //streamdirOpt->answer     = "";
     streamdirOpt->description=
        _("Directory to hold temporary files (they can be large)");
 
@@ -590,8 +586,17 @@ parse_args(int argc, char *argv[], int *vpRow, int *vpCol,
     /* store the parameters into a structure to be used along the way */
     strcpy(viewOptions->inputfname, inputOpt->answer);
     strcpy(viewOptions->outputfname, outputOpt->answer);
-    strcpy(viewOptions->streamdir,streamdirOpt->answer);
-
+    
+    if (!streamdirOpt->answer) {
+	const char *tmpdir = G_tempfile();
+	
+	if (G_mkdir(tmpdir) == -1)
+	    G_fatal_error(_("Unable to create temp dir"));
+	strcpy(viewOptions->streamdir, tmpdir);
+    }
+    else
+	strcpy(viewOptions->streamdir,streamdirOpt->answer);
+	
     viewOptions->obsElev = atof(obsElevOpt->answer);
     if(tgtElevOpt->answer)
 	viewOptions->tgtElev = atof(tgtElevOpt->answer);