First, before I get to my problem I should point out that I'm very new to FreeBSD and I'm coming from a Windows background so if anything I ask seems silly please be gentle. 
I'm working with ncurses trying to develop a terminal application (C++) and am having problems with output consistency between the system terminal and various terminal emulators. I've been pouring over the manual pages and Internet searches but I'm just not getting any really clear answers; though admittedly, I may just not know what it is that I'm looking for.
My problem is most evident with the line/box drawing characters like the old "Code Page 437". I can get these characters to show in the console emulators easily with just about any encoding (ISO8895-1, UTF-8, US-ASCII) but these characters are replaced with '|' and '+' characters in the system terminal.
Now, when I found the ASC_XXXX character defines I figured that this was the solution to my problem and to their credit it works great in the emulators. But once again, I get '+' and '|' instead of the actual drawing characters in the system terminal.
The thing is though, when I loop through the upper 128 values of a char variable in the system terminal the drawing characters show up just fine. In an emulator I only get accented characters. Albeit the results were displayed twice no matter which terminal was used.
I also noticed that there was an "asc_map" in the ncurses header but have not found any viable option of defining this on my own and figured it must be for internal work in curses or something.
NOTE: I've tried both the regular and "wide" versions of curses. I've tried setting "set_locale(LC_ALL, xxxx )" to everything that I thought would work and could find no appreciable difference so I just leave it blank.
My questions, I guess, are:
0) Am I doing something wrong?
1) Is there a consistent way of displaying these characters irregardless of terminal type?
2) If not, can I programmatically detect the difference between a system terminal and an emulator and take corrective action this way?
Particulars:
FreeBSD 9.1-RELEASE
curses 5.7 20081102
Thanks for your help everybody!
I'm working with ncurses trying to develop a terminal application (C++) and am having problems with output consistency between the system terminal and various terminal emulators. I've been pouring over the manual pages and Internet searches but I'm just not getting any really clear answers; though admittedly, I may just not know what it is that I'm looking for.
My problem is most evident with the line/box drawing characters like the old "Code Page 437". I can get these characters to show in the console emulators easily with just about any encoding (ISO8895-1, UTF-8, US-ASCII) but these characters are replaced with '|' and '+' characters in the system terminal.
Now, when I found the ASC_XXXX character defines I figured that this was the solution to my problem and to their credit it works great in the emulators. But once again, I get '+' and '|' instead of the actual drawing characters in the system terminal.
The thing is though, when I loop through the upper 128 values of a char variable in the system terminal the drawing characters show up just fine. In an emulator I only get accented characters. Albeit the results were displayed twice no matter which terminal was used.
I also noticed that there was an "asc_map" in the ncurses header but have not found any viable option of defining this on my own and figured it must be for internal work in curses or something.
NOTE: I've tried both the regular and "wide" versions of curses. I've tried setting "set_locale(LC_ALL, xxxx )" to everything that I thought would work and could find no appreciable difference so I just leave it blank.
My questions, I guess, are:
0) Am I doing something wrong?
1) Is there a consistent way of displaying these characters irregardless of terminal type?
2) If not, can I programmatically detect the difference between a system terminal and an emulator and take corrective action this way?
Particulars:
FreeBSD 9.1-RELEASE
curses 5.7 20081102
Thanks for your help everybody!