[GRASS-SVN] r62086 - grass/trunk/general/g.list
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Sep 25 08:31:40 PDT 2014
Author: hcho
Date: 2014-09-25 08:31:40 -0700 (Thu, 25 Sep 2014)
New Revision: 62086
Modified:
grass/trunk/general/g.list/main.c
Log:
g.list: Add output= support for pretty/full printing; Redirect non-pretty/full output to pager
Modified: grass/trunk/general/g.list/main.c
===================================================================
--- grass/trunk/general/g.list/main.c 2014-09-25 14:49:41 UTC (rev 62085)
+++ grass/trunk/general/g.list/main.c 2014-09-25 15:31:40 UTC (rev 62086)
@@ -68,7 +68,7 @@
struct Popen pager;
FILE *fp;
char *separator;
- int use_region;
+ int use_region, use_pager;
struct Cell_head window;
G_gisinit(argv[0]);
@@ -158,10 +158,6 @@
if (G_parser(argc, argv))
exit(EXIT_FAILURE);
- if ((flag.pretty->answer || flag.full->answer) && opt.output->answer)
- G_fatal_error(_("-%c/-%c and %s= are mutually exclusive"),
- flag.pretty->key, flag.full->key, opt.output->key);
-
if ((flag.pretty->answer || flag.full->answer) && opt.region->answer)
G_fatal_error(_("-%c/-%c and %s= are mutually exclusive"),
flag.pretty->key, flag.full->key, opt.region->key);
@@ -284,13 +280,17 @@
}
}
- if (flag.pretty->answer || flag.full->answer) {
+ use_pager = !opt.output->answer || !opt.output->answer[0] ||
+ strcmp(opt.output->answer, "-") == 0;
+
+ if (use_pager)
fp = G_open_pager(&pager);
- dup2(fileno(fp), STDOUT_FILENO);
- }
else
fp = G_open_option_file(opt.output);
+ if (flag.pretty->answer || flag.full->answer)
+ dup2(fileno(fp), STDOUT_FILENO);
+
for (i = 0; i < num_types; i++) {
const struct list *elem;
@@ -331,15 +331,15 @@
}
}
- if (flag.pretty->answer || flag.full->answer) {
+ if (flag.pretty->answer || flag.full->answer)
fclose(stdout);
+ else if (any)
+ fprintf(fp, "\n");
+
+ if (use_pager)
G_close_pager(&pager);
- }
- else {
- if (any)
- fprintf(fp, "\n");
+ else
G_close_option_file(fp);
- }
if (filter)
G_free_ls_filter(filter);
More information about the grass-commit
mailing list