#2156: Parser does not honor the dash (-) means stdout convention
------------------------------------------+---------------------------------
Reporter: wenzeslaus | Owner: grass-dev@…
Type: defect | Status: new
Priority: trivial | Milestone: 7.0.0
Component: Parser | Version: svn-trunk
Keywords: stdout, r.colors.out, m.proj | Platform: Unspecified
Cpu: Unspecified |
------------------------------------------+---------------------------------
I cannot run `r.colors.out` with `rules=-` when I have file named `-` in
the current directory:
{{{
#!sh
# create a file named -
# touch - does not work for me
$ touch testfile && mv testfile -
# try to output rules
$ r.colors.out map=elevation rules=-
ERROR: option <rules>: <-> exists.
# now remove the file named - and try again
$ rm -
$ r.colors.out map=elevation@PERMANENT rules=-
55.5788 0:191:191
75.729 0:255:0
95.8792 255:255:0
116.029 255:127:0
136.18 191:127:63
156.33 20:20:20
nv 255:255:255
default 255:255:255
}}}
Well, I'm not sure what should be the right behavior of the parser, this
current one is bit confusing, so I think that it should be at least
reported. What puzzles me, is how the `-` file actually appeared in the
directory. It already happened to me at least two times (in past moths)
that `r.colors.out` (or something I used together with it), created the
`-` file. I used some other way and haven't reported the issue at that
time, now I'm not able to reproduce it (from command line and GUI).
According to the short note I made at that time it seems that it was
pretty clear that `r.colors.out` is the cause.
Nevertheless, the behavior of parser is confusing when the module supports
"`-` (dash, minus) means standard output" convention and current directory
contains file named `-`. Affected modules are at least G7:r.colors.out and
G7:m.proj. Probably the number of modules supporting `-` as a placeholder
for stdout, the preferred interpretation of `-` and safety are the factors
influencing how parser behave.
To be complete, for standard input, no support is needed in parser, test
for G7:r.color:
{{{
#!sh
$ touch testfile && mv testfile -
$ r.colors map=elevation rules=-
Enter rules, "end" when done, "help" if you need it.
fp: Data range is 55.5787925720215 to 156.329864501953
> (and prompts for input)
# for both existing (empty) and not existing files
$ r.colors map=elevation rules=testfile
ERROR: Unable to load rules file <testfile>
}}}
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2156>
GRASS GIS <http://grass.osgeo.org>