Ted Unangst wrote:
> Having to define LESSCHARSET to print the special characters doesn't seem that
> useful. It doesn't do translation. So setting it to ebcdic isn't going to
> magically make such files appear correctly in my xterm.
>
> There seem to be two possibilities:
> 1. You have LESSCHARSET and LC_CTYPE set to the same thing. Things work.
> 2. They are different. Things will not work.
>
> Removing the possibility that they are different would seem to be an
> improvement.
Oops, that was the big bomb diff. We want to keep the nl_langinfo and some
charset support. Just remove the environment variable and pare down some of
the stranger charsets.
Index: charset.c
===================================================================
RCS file: /cvs/src/usr.bin/less/charset.c,v
retrieving revision 1.14
diff -u -p -r1.14 charset.c
--- charset.c 6 Nov 2015 16:20:37 -0000 1.14
+++ charset.c 6 Nov 2015 16:37:42 -0000
@@ -35,24 +35,6 @@ struct charset {
/* BEGIN CSTYLED */
{ "ascii", NULL, "8bcccbcc18b95.b" },
{ "utf-8", &utf_mode, "8bcccbcc18b95.b126.bb" },
- { "iso8859", NULL, "8bcccbcc18b95.33b." },
- { "latin3", NULL,
"8bcccbcc18b95.33b5.b8.b15.b4.b12.b18.b12.b." },
- { "arabic", NULL,
"8bcccbcc18b95.33b.3b.7b2.13b.3b.b26.5b19.b" },
- { "greek", NULL, "8bcccbcc18b95.33b4.2b4.b3.b35.b44.b" },
- { "greek2005", NULL, "8bcccbcc18b95.33b14.b35.b44.b" },
- { "hebrew", NULL, "8bcccbcc18b95.33b.b29.32b28.2b2.b" },
- { "koi8-r", NULL, "8bcccbcc18b95.b." },
- { "KOI8-T", NULL,
"8bcccbcc18b95.b8.b6.b8.b.b.5b7.3b4.b4.b3.b.b.3b." },
- { "georgianps", NULL, "8bcccbcc18b95.3b11.4b12.2b." },
- { "tcvn", NULL, "b..b...bcccbccbbb7.8b95.b48.5b." },
- { "TIS-620", NULL, "8bcccbcc18b95.b.4b.11b7.8b." },
- { "next", NULL, "8bcccbcc18b95.bb125.bb" },
- { "dos", NULL, "8bcccbcc12bc5b95.b." },
- { "windows-1251", NULL, "8bcccbcc12bc5b95.b24.b." },
- { "windows-1252", NULL, "8bcccbcc12bc5b95.b.b11.b.2b12.b." },
- { "windows-1255", NULL, "8bcccbcc12bc5b95.b.b8.b.5b9.b.4b." },
- { "ebcdic", NULL,
"5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b." },
- { "IBM-1047", NULL,
"4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc191.b" },
{ NULL, NULL, NULL }
/* END CSTYLED */
};
@@ -69,43 +51,6 @@ struct cs_alias {
{ "US-ASCII", "ascii" },
{ "646", "ascii" },
{ "C", "ascii" },
- { "latin1", "iso8859" },
- { "ISO-8859-1", "iso8859" },
- { "latin9", "iso8859" },
- { "ISO-8859-15", "iso8859" },
- { "latin2", "iso8859" },
- { "ISO-8859-2", "iso8859" },
- { "ISO-8859-3", "latin3" },
- { "latin4", "iso8859" },
- { "ISO-8859-4", "iso8859" },
- { "cyrillic", "iso8859" },
- { "ISO-8859-5", "iso8859" },
- { "ISO-8859-6", "arabic" },
- { "ISO-8859-7", "greek" },
- { "IBM9005", "greek2005" },
- { "ISO-8859-8", "hebrew" },
- { "latin5", "iso8859" },
- { "ISO-8859-9", "iso8859" },
- { "latin6", "iso8859" },
- { "ISO-8859-10", "iso8859" },
- { "latin7", "iso8859" },
- { "ISO-8859-13", "iso8859" },
- { "latin8", "iso8859" },
- { "ISO-8859-14", "iso8859" },
- { "latin10", "iso8859" },
- { "ISO-8859-16", "iso8859" },
- { "IBM437", "dos" },
- { "EBCDIC-US", "ebcdic" },
- { "IBM1047", "IBM-1047" },
- { "KOI8-R", "koi8-r" },
- { "KOI8-U", "koi8-r" },
- { "GEORGIAN-PS", "georgianps" },
- { "TCVN5712-1", "tcvn" },
- { "NEXTSTEP", "next" },
- { "windows", "windows-1252" }, /* backward compatibility */
- { "CP1251", "windows-1251" },
- { "CP1252", "windows-1252" },
- { "CP1255", "windows-1255" },
{ NULL, NULL }
};
@@ -341,13 +286,6 @@ static void
set_charset(void)
{
char *s;
-
- /*
- * See if environment variable LESSCHARSET is defined.
- */
- s = lgetenv("LESSCHARSET");
- if (icharset(s, 0))
- return;
/*
* Try using the codeset name as the charset name.