OK seems like it is always using ACS which is correct. I just remembered jmc asked me about this before and it turned out that ACS doesn't work with the DRM console - I don't think the font have the right symbol for either ACS or UTF-8 line drawing, but there may be other problems in there as well.
If you are using DRM you can set TERM to pccon0 which is a variant with ASCII line drawing and ncurses will use ASCII for line drawing. On Wed, Sep 25, 2019 at 05:02:17PM -0500, Scott Cheloha wrote: > On Wed, Sep 25, 2019 at 08:29:47PM +0100, Nicholas Marriott wrote: > > It will use either UTF-8 characters or the ACS characters from TERM. > > > > The way it decides which is somewhat confusing and it looks like it is > > choosing to use UTF-8 even when I wouldn't expect it to so I'm not sure > > it is actually working correctly in our ncurses version. > > > > I don't think UTF-8 line drawing works properly, at least with the DRM > > wscons. > > > > What do you have in TERM now? Can you see if the borders are OK with > > "TERM=xterm snake"? This seems to use ACS rather than UTF-8. If it does > > I'll see if I can figure out why it choosing UTF-8 borders for the > > others. > > In wscons I have vt220. The borders are even more screwy with > `TERM=xterm snake` in the wscons. Now you have pairs of question > marks instead of just a single '?'. > > The (maybe not so) odd thing is that in a real xterm if I do > `TERM=vt220 snake` the borders are fine. So yeah, I don't know how > our ncurses is deciding what to do. > > > You can run it in script(1) to see what it is using for the border (lots > > of 'q' or 'x' means ACS). > > I see a string of 'q' in the typescript when in the xterm and TERM=xterm: > > ESC[?1049hESC[1;24rESC(BESC[mESC[4lESC[?7hESC[?1hESC=ESC[HESC[2J Worm > ESC(0ESC[0mlqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkESC(B > ESC(0ESC[0mxESC(BESC[79GESC(0ESC[0mxESC(B > ESC(0ESC[0mxESC(BESC[79GESC(0ESC[0mxESC(B > > in xterm when TERM=vt220: > > ESC)0ESC[1;24rESC[mESC(BESC[4lESC[?7hESC[HESC[J Worm > ESC[0mESC(0lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkESC(B > ESC[0mESC(0xESC(BESC[77CESC[0mESC(0xESC(B > ESC[0mESC(0xESC(BESC[77CESC[0mESC(0xESC(B > > in wscons when TERM=vt220: > > ESC)0ESC[1;45rESC[mESC(BESC[4lESC[?7hESC[HESC[J Worm > ESC[0mESC(0lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkESC(B > ESC[0mESC(0xESC(BESC[157CESC[0mESC(0xESC(B > ESC[0mESC(0xESC(BESC[157CESC[0mESC(0xESC(B > > in wscons when TERM=xterm: > > ESC[?1049hESC[1;45rESC(BESC[mESC[4lESC[?7hESC[?1hESC=ESC[HESC[2J Worm > ESC(0ESC[0mlqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkESC(B > ESC(0ESC[0mxESC(BESC[159GESC(0ESC[0mxESC(B > ESC(0ESC[0mxESC(BESC[159GESC(0ESC[0mxESC(B > > ... so it's doing something based on TERM.