[Gambas-user] ncurses help texts missing
Rolf-Werner Eilert
eilert-sprachen at ...221...
Mon Mar 31 17:00:59 CEST 2014
Am 31.03.2014 15:26, schrieb Tobias Boege:
> On Mon, 31 Mar 2014, Rolf-Werner Eilert wrote:
>> [I'll free that thread from some lines...]
>>
>>>> Moreover, umlauts aren't printed correctly (I guess it's UTF-8). Is
>>>> there a solution?
>>>>
>>>
>>> My turn. NCurses offers an ncursesw library for wide characters - I just
>>> don't use it.
>>>
>>> Not out of ignorance or laziness but because I want to use the CDK (curses
>>> development kit) to implement controls in the terminal (Button (yes, with
>>> mouse support!), TextBox, TextArea, ListBox, Menu, etc.). And the CDK does
>>> not support wide characters (which UTF-8 ones are). If I rewrite gb.ncurses
>>> to use ncursesw now, I'll certainly run into compatibility problems with the
>>> CDK later.
>>>
>>> MAYBE, I can dig into the CDK in summer and try to patch it to use ncursesw.
>>> However, Thomas Dickey says that this is not as trivial as one might think
>>> at first. If this does not work, I'm afraid gb.ncurses will not support wide
>>> characters.
>>>
>>
>> Rather ambitious :-)
>>
>> But couldn't I use Conv() to achieve that? I tried
>>
>> hDialog.Caption = (Conv$("Make a choice ???", "UTF-8", "ASCII"))
>>
>> but it gave a conversion error. So I tried
>>
>> hDialog.Caption = (Conv$("Make a choice", "UTF-8", "ISO-8859-15"))
>>
>> and it gave no error (but the result was wrong, of course).
>>
>> So, what character set does ncurses use then? Can I use conv() for it
>> anyway? If not, there should be a way to write a simple conversion table
>> for German umlauts, e. g. using Replace().
>>
>
> NCurses is ASCII-based. You cannot encode umlauts into ASCII, so the
> conversion attempt will fail.
>
> What do you mean by "conversion table"? Do you want to have a-umlaut to be
> "ae" or "a" or "?" or ...? My mail client, mutt, uses the question mark to
> replace any non-ASCII character (as can be seen above) and this seems to be
> a pretty good solution as there are also letters with diacritics in some
> languages and those have no representation like "ae" for a German a-umlaut.
>
> Like how would you distinguish between "e accent aigu" and "e accent grave"
> from French if you only have ASCII letters? If you want to print "e" in both
> cases, this is a decision of personal taste or some convention. [ Likewise,
> what about Eszett in German? I like to write "sz" but others like "ss". ]
>
> Therefore, I don't think that this conversion table will go into gb.ncurses
> directly because as soon as gb.ncurses messes with strings from users, I
> will get tons of mails flagged as "bug report" saying that their strings are
> "corrupted" by gb.ncurses.
>
> What you can do is the following: create and export your own Window class
> and hook the Print method. Do your conversion there and then call
> Super.Print(). This way, the conversion is specific to your application but
> you can use gb.ncurses like you always did. [ You may even want to write a
> gb.ncurses.umlauts component/library... ]
>
> Regards,
> Tobi
>
I've been trying around with Esc codes, but they are filtered somehow by
the ncurses library, i. e. although ncurses works with them heavily,
when I build in an Esc code into a string, it's just displayed as ^[[B0
for instance. But the terminal doesn't react to it, kinda mystique...
Rolf
More information about the User
mailing list