<<< Date Index >>>     <<< Thread Index >>>

Re: [Mutt] #3040: charset difference between index browser and



On Thursday, March 20 at 03:47 PM, quoth Vincent Lefevre:
Do not set $charset. There are very few good reasons for it.

A good reason is to use transliteration!

I didn't say there were *NO* good reasons. Transliteration is the only one I'm aware of, and even that has problems, as Alain pointed out.

There is *never* a good reason to use UTF-8 and //TRANSLIT at the same time.

Then, how would you write the following?

set charset=`codeset 2> /dev/null || locale charmap`//TRANSLIT

Part of the problem there is that it isn't particularly portable... I mean, neither `codeset` nor `locale charmap` do anything on my OSX 10.4.x box---it doesn't have a "codeset" binary, and "locale charmap" isn't something that conforms to the POSIX locale standard as far as I can determine. Detecting the local characterset is more complicated... for example, in an X11 environment, this often works:

 xprop -id $WINDOWID -f WM_LOCALE_NAME 8s ' $0' -notype WM_LOCALE_NAME

... but not always.

The way I personally go about doing it is putting a fairly complicated mechanism in my bashrc such that $LANG is a reliable variable (or at least, as reliable as I can make it), and then I do things in my muttrc based on that if needed.

But assuming that either `codeset` or `locale charmap` work for all the machines you care about, and assuming your $SHELL is bash (so that it recognizes the pattern matching), I would suggest something like this:

    `charmap=$(codeset 2>/dev/null || locale charmap); \
    [[ $charmap =~ *UTF* || $charmap =~ *utf* ]] && \
    echo set my_mutt_autodetects_utf8="" || \
    echo set charset=$charmap//TRANSLIT`

That's just me. Then again, mutt makes the mistake of assuming that $charset is a good fall-back that will always be a valid MIME charset encoding name. This is an assumption on mutt's part, and it works mostly by coincidence (aside from convention, there's no good reason that the charset my terminal uses should be expected map to a valid MIME charset name).

~Kyle
--
I would rather have a mind opened by wonder than one closed by belief.
                                                       -- Gerry Spence

Attachment: pgp7VLzTjbbNM.pgp
Description: PGP signature