[GRASS-SVN] r72590 - grass/trunk/general/g.region

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Apr 5 03:16:14 PDT 2018


Author: jachym
Date: 2018-04-05 03:16:14 -0700 (Thu, 05 Apr 2018)
New Revision: 72590

Modified:
   grass/trunk/general/g.region/local_proto.h
   grass/trunk/general/g.region/main.c
Log:
Adding -L flag to g.region for getting list of regions

Modified: grass/trunk/general/g.region/local_proto.h
===================================================================
--- grass/trunk/general/g.region/local_proto.h	2018-04-03 10:43:37 UTC (rev 72589)
+++ grass/trunk/general/g.region/local_proto.h	2018-04-05 10:16:14 UTC (rev 72590)
@@ -12,6 +12,7 @@
 #define PRINT_NANGLE 0x100
 #define PRINT_GMT    0x200
 #define PRINT_WMS    0x400
+#define PRINT_WF     0x800
 
 /* zoom.c */
 int zoom(struct Cell_head *, const char *, const char *);

Modified: grass/trunk/general/g.region/main.c
===================================================================
--- grass/trunk/general/g.region/main.c	2018-04-03 10:43:37 UTC (rev 72589)
+++ grass/trunk/general/g.region/main.c	2018-04-05 10:16:14 UTC (rev 72590)
@@ -13,6 +13,7 @@
  *   	    	Read the file COPYING that comes with GRASS for details.
  ****************************************************************************/
 
+#include <dirent.h> 
 #include <string.h>
 #include <stdlib.h>
 #include <math.h>
@@ -39,8 +40,11 @@
     const char *value;
     const char *name;
     const char *mapset;
+    char *windows_path = G_malloc(1024);
     char **rast_ptr, **vect_ptr;
     int pix;
+    DIR *d;
+    struct dirent *dir;
 
     struct GModule *module;
     struct
@@ -48,7 +52,7 @@
 	struct Flag
 	    *update, *print, *gprint, *flprint, *lprint, *eprint, *nangle,
 	    *center, *res_set, *dist_res, *dflt, *z, *savedefault,
-	    *bbox, *gmt_style, *wms_style;
+	    *bbox, *gmt_style, *wms_style, *list;
     } flag;
     struct
     {
@@ -165,6 +169,11 @@
     flag.update->description = _("Do not update the current region");
     flag.update->guisection = _("Effects");
 
+    flag.list = G_define_flag();
+    flag.list->key = 'L';
+    flag.list->description = _("List available regions");
+    flag.list->guisection = _("Print");
+
     /* parameters */
 
     parm.region = G_define_standard_option(G_OPT_M_REGION);
@@ -362,7 +371,7 @@
     G_option_required(flag.dflt, flag.savedefault, flag.print, flag.lprint,
                       flag.eprint, flag.center, flag.gmt_style, flag.wms_style,
                       flag.dist_res, flag.nangle, flag. z, flag.bbox, flag.gprint,
-                      flag.res_set, flag.update, parm.region, parm.raster,
+                      flag.res_set, flag.update, flag.list, parm.region, parm.raster,
                       parm.raster3d, parm.vect, parm.north, parm.south, parm.east,
                       parm.west, parm.top, parm.bottom, parm.rows, parm.cols,
                       parm.res, parm.res3, parm.nsres, parm.ewres, parm.tbres,
@@ -850,6 +859,21 @@
     if (print_flag)
 	print_window(&window, print_flag, flat_flag);
 
+    if (flag.list->answer) {
+          mapset = G_mapset_path();
+          sprintf(windows_path, "%s/%s", mapset, "windows");
+          d = opendir(windows_path);
+
+          if (d) {
+            while ((dir = readdir(d)) != NULL) {
+              if (dir->d_type == DT_REG) {
+                printf("%s\n", dir->d_name);
+              }
+            }
+            closedir(d);
+          }
+    }
+
     exit(EXIT_SUCCESS);
 }
 



More information about the grass-commit mailing list