Pārlūkot izejas kodu

d.mon: removed unnecessary variables (trunk, https://trac.osgeo.org/grass/changeset/60205); prevent starting the same monitor multiple times (trunk, https://trac.osgeo.org/grass/changeset/60207)

git-svn-id: https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0@61442 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Neteler 11 gadi atpakaļ
vecāks
revīzija
9eca4f2dc8
2 mainītis faili ar 16 papildinājumiem un 23 dzēšanām
  1. 14 15
      display/d.mon/start.c
  2. 2 8
      display/d.mon/stop.c

+ 14 - 15
display/d.mon/start.c

@@ -13,16 +13,13 @@ static void start_wx(const char *, const char *, const char *,
 /* start file-based monitor */
 void start(const char *name, const char *output)
 {
-    char *u_name;
     char *env_name;
 
     if (!output)
 	return;
 
-    u_name = G_store_upper(name);
-
     env_name = NULL;
-    G_asprintf(&env_name, "MONITOR_%s_MAPFILE", u_name);
+    G_asprintf(&env_name, "MONITOR_%s_MAPFILE", G_store_upper(name));
     G_setenv(env_name, output);
 }
 
@@ -31,14 +28,11 @@ void start_wx(const char *name, const char *tempfile,
 	      const char *env_value, const char *cmd_value,
 	      int width, int height)
 {
-    char *u_name;
     char progname[GPATH_MAX];
     char *env_name, *map_value, str_width[1024], str_height[1024];
 
-    u_name = G_store_upper(name);
-
     env_name = NULL;
-    G_asprintf(&env_name, "MONITOR_%s_MAPFILE", u_name);
+    G_asprintf(&env_name, "MONITOR_%s_MAPFILE", G_store_upper(name));
     G_asprintf(&map_value, "%s.ppm", tempfile);
     G_setenv(env_name, map_value);
     /* close(creat(map_value, 0666)); */
@@ -64,16 +58,21 @@ int start_mon(const char *name, const char *output, int select,
 	      int width, int height, const char *bgcolor,
 	      int truecolor)
 {
-    const char *curr_mon;
     char *u_name;
     char *env_name, *env_value, *cmd_value;
     char *tempfile, buf[1024];
     int env_fd;
-    
-    curr_mon = G__getenv("MONITOR");
-    if (curr_mon && strcmp(curr_mon, name) == 0 && check_mon(curr_mon))
-	G_fatal_error(_("Monitor <%s> already running"), name);
-    
+
+    if (check_mon(name)) {
+        const char *curr_mon;
+
+        curr_mon = G__getenv("MONITOR");
+	if (select && (!curr_mon || strcmp(curr_mon, name) != 0))
+	    G_setenv("MONITOR", name);
+
+        G_fatal_error(_("Monitor <%s> already running"), name);
+    }
+
     tempfile = G_tempfile();
 
     u_name = G_store_upper(name);
@@ -115,7 +114,7 @@ int start_mon(const char *name, const char *output, int select,
     G_setenv(env_name, cmd_value);
     close(creat(cmd_value, 0666));
 
-    G_verbose_message(_("Staring monitor <%s> with env file '%s'"), name, env_value);
+    G_verbose_message(_("Starting monitor <%s> with env file '%s'"), name, env_value);
     if (G_verbose() > G_verbose_std()) {
         FILE *fd;
         

+ 2 - 8
display/d.mon/stop.c

@@ -26,14 +26,11 @@ int stop_mon(const char *name)
 
 int stop(const char *name)
 {
-    char *u_name;
     char *env_name;
     const char *env_file;
 
-    u_name = G_store_upper(name);
-
     env_name = NULL;
-    G_asprintf(&env_name, "MONITOR_%s_ENVFILE", u_name);
+    G_asprintf(&env_name, "MONITOR_%s_ENVFILE", G_store_upper(name));
     
     env_file = G__getenv(env_name);
     if (!env_file)
@@ -46,14 +43,11 @@ int stop(const char *name)
 
 int stop_wx(const char *name)
 {
-    char *u_name;
     char *env_name;
     const char *pid;
 
-    u_name = G_store_upper(name);
-
     env_name = NULL;
-    G_asprintf(&env_name, "MONITOR_%s_PID", u_name);
+    G_asprintf(&env_name, "MONITOR_%s_PID", G_store_upper(name));
     
     pid = G__getenv(env_name);
     if (!pid) {