[GRASS5] Re: [GRASSLIST:634] Re: problems with importing LIDAR

Markus Neteler neteler at itc.it
Wed Jul 9 08:52:05 EDT 2003


On Mon, Jul 07, 2003 at 11:41:21PM +1200, H Bowman wrote:
> > > >  s.in.ascii sites=mylidar input=lidar.flt fs=
> > > Either set fs= to something or leave it out.
> > > 
> > > This is probably a bug, as 's.in.ascii fs=' should take you to the
> > > help page, and it doesn't.
> > 
> > Attached a bugfix - could you have a look if you agree with it
> > (strings are not my friends...)?
> 
> 
> I don't know enough C trivia to tell you why a zero-length string is
> !=NULL either, but your patch seems to look & work fine.

OK, I have submitted it to CVS now (should I update the rel branch
as well?).
 
> I think the problem is more general with "xxxxxx->type = TYPE_STRING;"
> where the parser doesn't fail when the string length is zero.
> e.g., try 's.in.ascii site='

Mhhh, maybe we need a fix in the parser.c file?
 
> 
> The attached patch (added to yours) cleans that for this specific case,
> but the problem remains maybe in other modules.
> 
> 
> Hamish
>
> --- main.c.OLD	Mon Jul  7 22:37:52 2003
> +++ main.c	Mon Jul  7 23:08:46 2003
> @@ -128,9 +128,11 @@
>      if (dims<2)
>        G_fatal_error ("number of dimensions must be greater than 1");
>  
> -    fs = parm.fs->answer;
> -    if (fs != NULL)
> -    {
> +    if ( strlen(parm.fs->answer) < 1 )
> +      G_fatal_error ("field separator cannot be empty");
> +    else
> +    {   
> +        fs = parm.fs->answer;
>  	if(strcmp (fs, "space") == 0)
>  	    fs = NULL;
>  	else if(strcmp (fs, "tab") == 0)
> @@ -139,11 +141,8 @@
>  
>      out_fd = G_fopen_sites_new (output);
>      if (out_fd == NULL)
> -    {
> -	fprintf (stderr, " %s - can't create sites file [%s]",
> -		me, output);
> -	exit(1);
> -    }
> +        G_fatal_error ("can't create sites file [%s].", output);
> +
>  
>      G_site_put_head (out_fd, &shead);
>  /*    G_free(shead.name);


Markus




More information about the grass-dev mailing list