Hi Aaron, Aaron Davies wrote on Mon, Nov 30, 2015 at 03:04:20PM -0500: > On Nov 30, 2015, at 12:52 PM, Ingo Schwarze <schwa...@usta.de> wrote: >> Aaron Davies wrote on Mon, Nov 30, 2015 at 12:38:13PM -0500:
>>> \(bu bullets in man pages are rendering as question marks under >>> default settings for me >> * Which version of groff are you running? > on RHEL 6.7, 1.18.1.4; on RHEL 5.11, 1.18.1.1 Oh wow. Those are extremely old versions of groff. I haven't seen versions that old in production since 2009. Groff 1.19 came out in 2004, so what you are running is more than a decade out of date. > $ locale > LANG=en_US.UTF-8 > LC_ALL=C > LC_CTYPE="C" Hmm, i missed that GNU nroff(1) doesn't call setlocale(3), but calls locale(1) in a different way, and, failing that, inspects the environment directly. Can you send the output of the following, too, to figure out which output device is actually running? $ locale charmap $ env | grep -e LC_ALL -e LC_CTYPE I suspect that you are running in -Tascii mode, but i'm not 100% sure yet, it could still be -Tutf8. > $ echo '\(bu' | nroff | hexdump -C > 00000000 3f 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a |?...............| So, your problem is probably not related to man(1) or to the terminal, but groff is actually producing wrong output. For -Tascii output, in modern groff, the \(bu character is defined by this statement in tmac/tty.tmac: .fchar \[bu] \z+o In the source code repository, that line is present since 2002-03-24. The file is usually loaded by these lines in troffrc: .do ds troffrc!ascii tty.tmac .do if d troffrc!\*[.T] \ . do mso \*[troffrc!\*[.T]] So, can you please look at your file tmac/troffrc (usually located in /usr/local/share/groff/<version>/ or a similar place) whether it indeed includes tty.tmac, and can you look into your tty.tmac (in the same directory) whether and how it defines \[bu]? You can also try specifying the device explicitly: $ echo '\(bu' | groff -Tascii | hexdump -C $ echo '\(bu' | groff -mtty -Tascii | hexdump -C $ echo '\(bu' | groff -Tutf8 | hexdump -C $ echo '\(bu' | groff -mtty -Tutf8 | hexdump -C Which output do those commands produce? For UTF-8 tty output, in modern groff, \(bu is defined by the following line in src/libs/libgroff/glyphuni.cpp: { "bu", "2022" }, That line is unchanged in the source code repo since 2002-11-03. So the UTF-8 modes should work in any case, even without -mtty, even with your ancient version of groff. > on RHEL 6.7: > > $ grep ^NROFF /etc/man.config > NROFF /usr/bin/nroff -c -mandoc 2>/dev/null That looks reasonable. > on RHEL 5.11: > > $ grep ^NROFF /etc/man.config > NROFF /usr/bin/nroff -c --legacy NROFF_OLD_CHARSET -mandoc 2>/dev/null I don't know what "--legacy NROFF_OLD_CHARSET" is supposed to mean, but since you see the problem on RHEL 6.7 as well, it's doesn't seem likely to be the cause of the problem. Yours, Ingo