On Tue, Dec 04, 2012 at 02:32:53PM -0600, Derek Martin wrote:
> On Tue, Dec 04, 2012 at 01:17:22PM -0600, fREW Schmidt wrote:
> > > If you're using startx to start your X session, it's recommended
> > > to add the locale setting to ~/.xinitrc so it's in the environment
> > > already before opening any terminals, etc. I guess it wouldn't hurt to
> > > put it in ~/.xsession either, if you're using a display manager to start
> > > your X session. As you're using Ubuntu, I guess you are.
> >
> > You are correct, I am using a display manager.  The env vars are
> > certainly not set for the entire X session
>
> They really need to be.  Otherwise any program that's started by, say,
> your window manager's menus will actually be started using your
> system's default locale, rather than the one you configured (though to
> be fair, this is somewhat system-dependent... it's possible your X
> window system may include the user's environment files, and IMO it
> always should, for exactly this reason).
>
> For instance, if you're using xterm from a window manager widget, and
> the locale it was started with does not match the locale you're using,
> you are fairly certain to encounter problems.  If your system's
> default locale is "C" and you're actually using something.utf8, xterm
> will be expecting characters uniformly of 8 bits, but will be fed
> variable-width characters, and will misinterpret them.  You mostly
> won't notice if you're an English speaker and only using letters and
> numbers and common punctuation, but once you get outside that you'll
> start noticing wierd things.

Right, I understand, but that tiny script I link to is the only
"widget" I use to start other programs.

> > >  with linux, you should be able to set LANG=whatever;
> >
> > Done.
>
> LANG is, IIRC, part of the posix standard for internationalization, so
> it should be available pretty much everywhere.  The LC_* variables
> inherit the value of LANG if you do not explicitly set them, so in
> general this is all you should ever need to set.  Though, some oddball
> systems may differ (but all Linux distros work this way).
>
> > >  check your shell's documentation with regards to locales
>
> It's not likely to actually be a function of the shell, except
> inasmuch as the shell propagates environment variables.  It's really
> more a function of the libc on the system.  There's usually a man page
> for this in section 7, i.e.:
>
>   $ man 7 locale
>
> > So I'm out of ideas and suggestions :/  The only thing I can think of
> > at this point is that I compiled mutt myself, but I just looked at the
> > configure opts and it doesn't look like I could have accidentally
> > disabled utf8 support.
>
> I missed the start of the thread, so I don't know if this was covered.
> UTF-8 requires wide character support.  On older distros, you only got
> this if you installed ncursesw (and ncursesw-dev(el)), though it seems
> like more recent distros are only providing the wide version (as
> ncurses, sans the 'w').  So that could be an issue.  If your distro
> has no ncursesw* packages, then it probably is NOT the problem.  If
> you haven't already included it, the output of mutt -v may be helpful.

Eureka!  And that solved it!  Sorry for not mentioning the building of
mutt already.  libncursesw5-dev installed from aptitude and a rebuild
of mutt fixed it.

Thanks everyone!

--
fREW Schmidt
http://blog.afoolishmanifesto.com

Attachment: pgpYzO6h8cITq.pgp
Description: PGP signature

Reply via email to