Line graphics on Linux console

F

frank

Hi all

I don't think this is strictly a Python problem, but as it manifests
itself in one of my Python programs, I am hoping that somebody in this
group can help me.

The following is a message I sent to co.os.linux.setup -

"My question concerns line graphics on a text-based console. ­My
actual problem relates to a [Python] program I have written using
ncurses, b­ut you can easily test it by running a program like
minicom.

If you call up the minicom menu, it should be surrounded by ­a nice
box made up of horizontal and vertical lines, corners, etc. It used to
work up until Redhat 7. Since upgrading to Redhat 9, and now Fedo­ra,
it (and my program) has stopped working."

I received the following reply from Thomas Dickey -

"That's because Redhat uses UTF-8 locales, and the Linux cons­ole
ignores vt100 line-drawing when it is set for UTF-8. (screen also
d­oes this).
ncurses checks for $TERM containing "linux" or "screen" (sin­ce
there's no better clues for the breakage) when the encoding is UTF-8­,
and doesn't try to use those escapes (so you would get +'s and -'s).
co­mpiling/linking with libncursesw would get the lines back for a
properly-wri­tten program."

I don't really understand the last sentence. Does anyone know if it is
possible to do this (or anything else) or am I stuck.
TIA for any advice.

Frank Millman
 
F

Frank Millman

Frank said:
Hi all

The following is a message I sent to co.os.linux.setup -

"My question concerns line graphics on a text-based console. ­My
actual problem relates to a [Python] program I have written using
ncurses, b­ut you can easily test it by running a program like
minicom.

If you call up the minicom menu, it should be surrounded by ­a nice
box made up of horizontal and vertical lines, corners, etc. It used to
work up until Redhat 7. Since upgrading to Redhat 9, and now Fedo­ra,
it (and my program) has stopped working."

I received the following reply from Thomas Dickey -

"That's because Redhat uses UTF-8 locales, and the Linux cons­ole
ignores vt100 line-drawing when it is set for UTF-8. (screen also
d­oes this)."

For the record, I have found a solution, or at least a workaround.

I received the following suggestion from Steve (thanks Steve) -

"As a quick check to see if it's only the UTF-8 locales that are
affecting your program, try invoking your program, like so:

$ LANG=C <your-proggy>"

I tried this, but it did not work. However, it felt as if it ought to,
so I sent another message to Thomas Dickey (who, I have discovered, is
the maintainer of the ncurses library).

He replied that the console is probably still in unicode mode, but you
can turn it off with 'unicode_stop'.

I tried this and it worked :) - I did not even have to change the LANG
or TERM settings.

Obviously this will not work if you need unicode, but luckily for me I
do not, so it is a perfect workaround.

Frank Millman
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,740
Latest member
JudsonFrie

Latest Threads

Top