[GRASS-dev] v.digit: Could not set Tcl system encoding fixed

Glynn Clements glynn at gclements.plus.com
Thu Feb 8 17:38:39 EST 2007


Markus Neteler wrote:

> >>>> Roberto Flor and me have fixed the bug
> >>>> "v.digit: Could not set Tcl system encoding"
> >>>> http://intevation.de/rt/webrt?serial_num=4110
> >>>>
> >>>> Please test. I'll backport it to 6.2.x then.
> >>>>
> >>>> Note: For mysterious Tcl (?) reasons I cannot set iso8859-1 and iso8859-2
> >>>> but utf-8, iso8859-15, iso2210-jp, koi8-r, euc-jp etc work.
> >>>> Maybe my installation...
> >>>>     
> >>>>         
> >>> I confirm. Same happens on my instalation. tcl/tk 8.4.12, Ubuntu Dapper
> >>> 32bit.
> >>>       
> >> So we are happy since most of the encodings now work.
> >>     
> >
> > Not having ISO-8859-1 working is a pretty major issue.
> >   
> I am still not sure if it is a local problem or a general one or depends 
> on the tcltk version.
> > Can you provide more details, preferably including a recipe to
> > reproduce the issue using either spearfish or a new location?
> >   
> Sure (eg Spearfish):
> d.mon x0
> v.digit -n newmap
> # now go to "Settings" icon, "Table" tab, "Add column", add a column of 
> your choice, "Create table"
> # close the "Settings" window
> # digitize a line
> # enter a value into the attribute popup form
> # "submit button" (default is utf-8 which seems to work)
> # change the encoding, click "submit button" again and voila' the error 
> appear in the terminal

Okay.

I'm pretty sure that the problem is that lib/form/form.c doesn't call
Tcl_Main(), so the library path doesn't get set, so Tcl can't find its
.enc files.

Realistically, if you are trying to use Tcl/Tk and your program
*doesn't* look very much like tkAppInit.c, all bets are off.

Rather than trying to process the data from the form library in C,
form.c should just register the commands then do the rest in Tcl.

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list