Block Chars in man pages after completing LFS

Ryan Isaacs ryanisaacs at gmail.com
Mon Feb 23 08:03:58 PST 2009


On Mon, Feb 23, 2009 at 4:23 AM, Agathoklis D. Hatzimanikas
<a.hatzim at gmail.com> wrote:
> On Mon, Feb 23, at 12:35 Ryan Isaacs wrote:
>> > On Sun, Feb 22, 2009 at 05:33:27PM -0600, Ryan Isaacs wrote:
>> >> After completing my lfs build, I'm seeing some block characters in
>> >> some man pages.
>> >>
>> >> For example, for 'man udev', towards the bottom of the first page, I
>> >> see a # sign between 2 block characters (squares). I presume these
>> >> should be quotes.
>
> This is an escaped single quote, which is translated into "acute accent"
> '´', hexadecimal '00B4', decimal 180.
> You can generate it e.g., while in vim by using something like,
>
> echo nr2char(str2nr('00B4', 16))
>

When I "execute" this in vi, I get the block character, whether I have
LANG unset, set to 'en_US.UTF-8' or 'en_US.ISO-8859-1'.

>> >> I set LANG to en_US.iso88591 in step 7.9. I've since tried setting
>> >> 'export LANG=' to both en_US and en_US.utf8 within a bash shell, but
>> >> still see the block chars.
>
> You have to fix first the environment, i.e., en_US.utf8 is not a
> valid locale, but en_US.UTF-8 is.
> The same LFS page you are referring below, I think it has all the
> information you need.
>

Setting LANG to 'en_US.UTF-8', I'm still seeing the block character in
'man udev'.

>>
>> I found that if I log in, and 'unset LANG', the man page for udev is
>> displayed correctly, with single quotes instead of the block chars.
>> That's probably not the correct solution, though, right?
>
> That is because (probably) falls back to "C" locale which displays them as
> single quotes.
>
>> I'm not sure what "installing these locales" would mean? What section
>> in the LFS book would that refer to? I did the complete book,
>> unmodified.
>
> Locales are installed either while you are building Glibc or anytime
> by using the 'localedef' command. Refer back to the glibc page.
>

If I see the locales listed in 'locale -a', does that mean they are
installed? I'm pretty sure I executed the block of localedef commands
in the Glibc section 6.9.

>> I did go back and read the groff section (6.40), and I don't
>> explicitly remember doing the sed command to tell Groff to use ASCII
>> equivalents for single quotes and dashes, although I doubt I would
>> have skipped it. Where would the change to font/devutf8/R.proto come
>> out to in my completed system to I can confirm the step?
>>
>> Lastly, I derived my LANG setting of 'en_US.ISO-8859-1' from the steps
>> in section 7.9.
>
> As a side note. There is absolutely no need to use IS0-8859-1.
> UTF-8 will use one byte for all the Ascii characters and up to 4 bytes
> for cyrillic or greek characters, so space is not a valid reason.
> As a plus by using UTF-8, you will have proper communication with the rest
> of the world that is using characters other than the Ascii set.
> Anyway, the ISO group no longer maintains those *absurd* ISO's encodings.
>

I got the ISO-8859-1 setting using the steps in section 7.9, not
because I explicitly wanted to use it. Executing command 'LC_ALL=en_US
locale charmap' yielded "ISO-8859-1", so according to the section 7.9
directions, I set LANG=en_US.ISO-8859-1. I think I follow you about
UTF-8 being a better choice, but nonetheless setting to that hasn't
removed the block characters from 'man udev'.

So, if my locales do seem to be correctly installed, I'm suspicious
that I executed the sed command in section 6.40 (groff). That sed
command modified font/devutf8/R.proto, but I don't seem to have that
file on my LFS system post-build. Is there anyway to confirm not that
the sed command was executed (redirecting unicode single quotes to
ASCII equivalents)? At this point (live lfs system), should I rebuild
and reinstall groff?

-- 
www.risaacs.com
ryanisaacs at gmail.com



More information about the lfs-support mailing list