[GRASS5] Re: 5.1: --html-description to parser added
Markus Neteler
neteler at itc.it
Fri Feb 7 03:26:27 EST 2003
On Fri, Feb 07, 2003 at 01:46:55AM +0000, Glynn Clements wrote:
>
> Markus Neteler wrote:
>
> > > > Is there a better way than faking a GRASS session (hope so!)?
> > >
> > > Ultimately most of G_gisinit() ought to be moved to G_parser(); but
> > > that would require that everything actually used G_parser(), which
> > > isn't the case at present.
> >
> > Correct. In general it may be interesting to have 'parser'
> > as program for script usage (so that we don't have to build a
> > parser any more with shell commands) which provides parameters
> > and flags as
> > PARAM1
> > PARAM2 ..
> > FLAG1 ...
> >
> > for further usage in a script.
>
> See src/general/g.parser; it really needs some documentation, though.
Oops. I can't believe that I was unaware of this :-)
> > > There are some other problems. E.g. some modules call G_get_window(),
> > > R_open_driver() etc and initialise the defaults based upon data from
> > > the current region or the monitor. This is (arguably) OK if the user
> > > is running "g.foo help" interactively, but it means that the defaults
> > > in the HTML file will reflect the session which was used to generate
> > > it.
> >
> > That's another point against a fake session. If the (updated) parser
> > got a flag to run without a GRASS session, it could be used in
> > Makefile and above problem should be minimized.
>
> Yes, but this requires finding and fixing all of the programs which
> call GRASS functions prior to G_parser(). FWIW, I've discussed this
> previously:
>
> From: Glynn Clements <glynn.clements at virgin.net>
> Message-ID: <15135.13549.677759.452840 at cerise.nosuchdomain.co.uk>
> Date: Thu, 7 Jun 2001 09:01:49 +0100
> Subject: Re: [GRASS5] Darwin Pre1 gtty stty errors
http://grass.itc.it/pipermail/grass5/2001-June/000186.html
I remember the problem. As 5.1 is growing slowly, the developers can
easily take care of this problem.
> This mentions the following programs as using raster/display functions
> to initialise defaults (so they fail if no monitor is selected):
>
> d.colors - D_get_cell_name
> d.pan - D_get_cell_list, D_get_dig_list, D_get_site_list
> d.save - R_screen_{top,bot,left,rite}, R_pad_list, R_pad_select
> d.what.rast - D_get_cell_list
> d.what.sites - D_get_site_list
> d.what.vect - D_get_dig_list
> d.zoom - D_get_cell_list, D_get_dig_list, D_get_site_list
>
> Also:
>
> From: Glynn Clements <glynn.clements at virgin.net>
> Message-ID: <15163.33358.71553.232455 at cerise.nosuchdomain.co.uk>
> Date: Thu, 28 Jun 2001 20:15:26 +0100
> Subject: Re: [GRASS5] Interfaces ... (long)
http://grass.itc.it/pipermail/grass5/2001-June/000394.html
> This mentions specific classes of problem, but not the individual
> programs:
>
> 1. D_get_cell_name (d.colors), D_get_{cell,dig,site}_list (several
> programs) and other functions (d.save) to obtain state from the
> monitor.
>
> 2. G_gisbase, G_mapset, G_projection, G_zone, G_get_window and
> G_get_set_window to obtain information about the current location.
>
> 3. spheroid_list and datum_list. In the case of spheroid_list, many
> programs implement this function independently.
>
> 4. G_{lat,lon}_format_string, D_color_list. These functions actually
> just return string literals.
>
> 5. read_list (used by g.{copy,list,remove,rename} to parse
> etc/element_list).
>
> 1 and 2 are the real problems here; they won't work without a session,
> 1 won't work without a monitor, and both will produce
> --interface-description (etc) messages which are specific to the
> session in which they are run.
>
> Some alternative mechanims were proposed in the messages referenced
> above.
So it is unfortunately less easy than expected. I still like the
idea to generate whatever possible automatically to reduce the workload
of the people documenting GRASS.
Markus
More information about the grass-dev
mailing list