aboutsummaryrefslogtreecommitdiff
path: root/editors/nvi/patches/nvi-27-support_C_locale.patch
diff options
context:
space:
mode:
Diffstat (limited to 'editors/nvi/patches/nvi-27-support_C_locale.patch')
-rw-r--r--editors/nvi/patches/nvi-27-support_C_locale.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/editors/nvi/patches/nvi-27-support_C_locale.patch b/editors/nvi/patches/nvi-27-support_C_locale.patch
new file mode 100644
index 0000000..24663d1
--- /dev/null
+++ b/editors/nvi/patches/nvi-27-support_C_locale.patch
@@ -0,0 +1,30 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 27support_C_locale.dpatch by <hesso@pool.math.tu-berlin.de>
+##
+## DP: Allow users to edit 8-bit files even under LC_CTYPE=C.
+
+@DPATCH@
+--- 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);