This patch originates from the Debian project, see https://www.debian.org/ 27support_C_locale.dpatch by Allow users to edit 8-bit files even under LC_CTYPE=C. --- nvi-1.81.6.orig/common/conv.c 2007-11-18 17:41:42.000000000 +0100 +++ nvi-1.81.6/common/conv.c 2009-03-09 16:45:37.812022582 +0100 @@ -322,11 +322,16 @@ else { setlocale(LC_ALL, ""); #ifdef USE_WIDECHAR - sp->conv.sys2int = cs_char2int; - sp->conv.int2sys = cs_int2char; - sp->conv.file2int = fe_char2int; - sp->conv.int2file = fe_int2char; - sp->conv.input2int = ie_char2int; + if (!strcmp(LANGCODESET, "ANSI_X3.4-1968")) { + sp->conv.file2int = sp->conv.input2int = sp->conv.sys2int = raw2int; + sp->conv.int2sys = sp->conv.int2file = int2raw; + } else { + sp->conv.sys2int = cs_char2int; + sp->conv.int2sys = cs_int2char; + sp->conv.file2int = fe_char2int; + sp->conv.int2file = fe_int2char; + sp->conv.input2int = ie_char2int; + } #endif #ifdef USE_ICONV o_set(sp, O_FILEENCODING, OS_STRDUP, nl_langinfo(CODESET), 0);