summaryrefslogtreecommitdiffstats
path: root/x11-terms/xterm/files
diff options
context:
space:
mode:
Diffstat (limited to 'x11-terms/xterm/files')
-rw-r--r--x11-terms/xterm/files/xterm-197-alt-keysym-index.patch.bz2bin0 -> 354 bytes
-rw-r--r--x11-terms/xterm/files/xterm-199-alt-meta-mod.patch.bz2bin0 -> 692 bytes
-rw-r--r--x11-terms/xterm/files/xterm-199-biarch-utmp.patch.bz2bin0 -> 326 bytes
-rw-r--r--x11-terms/xterm/files/xterm-LANG.patch41
-rw-r--r--x11-terms/xterm/files/xterm-ds-config-278.patch86
-rw-r--r--x11-terms/xterm/files/xterm-ds-config.patch73
-rw-r--r--x11-terms/xterm/files/xterm-ds-copy-225.patch36
-rw-r--r--x11-terms/xterm/files/xterm-ds-copy-243.patch36
-rw-r--r--x11-terms/xterm/files/xterm-ds-copy.patch33
-rw-r--r--x11-terms/xterm/files/xterm-ds-input-225.patch12
-rw-r--r--x11-terms/xterm/files/xterm-ds-input.patch11
-rw-r--r--x11-terms/xterm/files/xterm-ds-metaesc.patch9
-rw-r--r--x11-terms/xterm/files/xterm-ds-paste-225.patch12
-rw-r--r--x11-terms/xterm/files/xterm-ds-paste-278.patch12
-rw-r--r--x11-terms/xterm/files/xterm-ds-paste.patch12
-rw-r--r--x11-terms/xterm/files/xterm-ds-sm-243.patch144
-rw-r--r--x11-terms/xterm/files/xterm-ds-sm.patch129
-rw-r--r--x11-terms/xterm/files/xterm-ds-utf8mode.patch12
-rw-r--r--x11-terms/xterm/files/xterm215-ds-copy.patch36
19 files changed, 694 insertions, 0 deletions
diff --git a/x11-terms/xterm/files/xterm-197-alt-keysym-index.patch.bz2 b/x11-terms/xterm/files/xterm-197-alt-keysym-index.patch.bz2
new file mode 100644
index 0000000..a011d9f
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-197-alt-keysym-index.patch.bz2
Binary files differ
diff --git a/x11-terms/xterm/files/xterm-199-alt-meta-mod.patch.bz2 b/x11-terms/xterm/files/xterm-199-alt-meta-mod.patch.bz2
new file mode 100644
index 0000000..0be45fd
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-199-alt-meta-mod.patch.bz2
Binary files differ
diff --git a/x11-terms/xterm/files/xterm-199-biarch-utmp.patch.bz2 b/x11-terms/xterm/files/xterm-199-biarch-utmp.patch.bz2
new file mode 100644
index 0000000..d3dfce2
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-199-biarch-utmp.patch.bz2
Binary files differ
diff --git a/x11-terms/xterm/files/xterm-LANG.patch b/x11-terms/xterm/files/xterm-LANG.patch
new file mode 100644
index 0000000..d344d5b
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-LANG.patch
@@ -0,0 +1,41 @@
+The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
+option parsing, it may break.
+
+http://bugs.gentoo.org/105369
+
+--- xterm/configure
++++ xterm/configure
+@@ -46,6 +46,16 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
++# NLS nuisances.
++# Only set these to C if already set. These must not be set unconditionally
++# because not all systems understand e.g. LANG=C (notably SCO).
++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
++# Non-C LC_CTYPE values break the ctype check.
++if test "${LANG+set}" = set; then LANG=C; export LANG; fi
++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
++
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+@@ -502,16 +512,6 @@
+ esac
+ done
+
+-# NLS nuisances.
+-# Only set these to C if already set. These must not be set unconditionally
+-# because not all systems understand e.g. LANG=C (notably SCO).
+-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+-# Non-C LC_CTYPE values break the ctype check.
+-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+-
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
diff --git a/x11-terms/xterm/files/xterm-ds-config-278.patch b/x11-terms/xterm/files/xterm-ds-config-278.patch
new file mode 100644
index 0000000..98d8e13
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-config-278.patch
@@ -0,0 +1,86 @@
+diff -dPNur xterm-278/XTerm.ad xterm-278-ds/XTerm.ad
+--- xterm-278/XTerm.ad 2011-07-11 12:52:16.000000000 +0200
++++ xterm-278-ds/XTerm.ad 2012-01-22 16:21:47.000000000 +0100
+@@ -101,21 +101,23 @@
+ *vtMenu*vthide*Label: Hide VT Window
+ *vtMenu*altscreen*Label: Show Alternate Screen
+
+-*fontMenu.Label: VT Fonts
+-*fontMenu*fontdefault*Label: Default
+-*fontMenu*font1*Label: Unreadable
+-*VT100.font1: nil2
+-*IconFont: nil2
+-*fontMenu*font2*Label: Tiny
+-*VT100.font2: 5x7
+-*fontMenu*font3*Label: Small
+-*VT100.font3: 6x10
+-*fontMenu*font4*Label: Medium
+-*VT100.font4: 7x13
+-*fontMenu*font5*Label: Large
+-*VT100.font5: 9x15
+-*fontMenu*font6*Label: Huge
+-*VT100.font6: 10x20
++*fontMenu.Label: VT Fonts
++*fontMenu*fontdefault*Label: Default
++*fontMenu*font1*Label: Large
++*VT100*font1: -xos4-terminus-medium-r-normal--32-320-72-72-c-160-koi8-r
++#*fontMenu*font2*Label: KOI8
++#*VT100*font2: -sony-fixed-medium-r-normal--24-170-100-100-c-120-koi8-1
++*fontMenu*font2*Label: KOI8
++*VT100*font2: koi9x15
++*fontMenu*font3*Label: WIN
++*VT100*font3: win9x15
++*fontMenu*font4*Label: ALT
++*VT100*font4: alt9x15
++*fontMenu*font5*Label: ISO
++*VT100*font5: iso9x15
++*fontMenu*font6*Label: Unreadable
++*VT100*font6: koinil2
++
+ *fontMenu*fontescape*Label: Escape Sequence
+ *fontMenu*fontsel*Label: Selection
+ !fontescape and fontsel overridden by application
+@@ -135,12 +137,13 @@
+ *fontMenu*allow-title-ops*Label: Allow Title Ops
+ *fontMenu*allow-window-ops*Label: Allow Window Ops
+
+-*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
+-*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
+-*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
+-*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
+-*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
+-*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
++*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal*-90-iso10646-1
++#*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
++#*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
++#*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
++#*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
++#*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
++#*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
+
+ *tekMenu.Label: Tek Options
+ *tekMenu*tektextlarge*Label: Large Characters
+@@ -159,6 +162,13 @@
+ *tek4014*font3: 6x13
+ *tek4014*fontSmall: 6x10
+
++*.vt100.wideChars: on
++*.vt100.font: -xos4-terminus-medium-r-normal--24-240-72-72-c-120-koi8-r
++#*.vt100.font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
++*.vt100.encodingMode: locale
++*.PtyInitialErase: on
++*.backarrowKeyIsErase: on
++
+ ! If xterm is built with a toolbar, the widget hierarchy looks like this,
+ ! showing widget name / class names. The complete menu hierarchy is built
+ ! at startup because it is needed to make the layout work for the menubar:
+@@ -254,3 +264,9 @@
+ !*allowTcapOps: false
+ !*allowTitleOps: false
+ !*allowWindowOps: false
++
++*metaSendsEscape: true
++
++XTerm*VT100.Translations: #override\n\
++ Ctrl Shift <KeyPress> Insert:insert-selection(SELECT, CUT_BUFFER0)\n\
++ Shift <KeyPress> Insert:insert()\n
diff --git a/x11-terms/xterm/files/xterm-ds-config.patch b/x11-terms/xterm/files/xterm-ds-config.patch
new file mode 100644
index 0000000..f47b7ea
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-config.patch
@@ -0,0 +1,73 @@
+diff -dPNur xterm-207/XTerm.ad xterm-207-new/XTerm.ad
+--- xterm-207/XTerm.ad 2005-11-03 13:17:27.000000000 +0000
++++ xterm-207-new/XTerm.ad 2005-12-26 13:56:48.000000000 +0000
+@@ -70,21 +70,20 @@
+ *vtMenu*vthide*Label: Hide VT Window
+ *vtMenu*altscreen*Label: Show Alternate Screen
+
+-*fontMenu.Label: VT Fonts
+-*fontMenu*fontdefault*Label: Default
+-*fontMenu*font1*Label: Unreadable
+-*VT100.font1: nil2
+-*IconFont: nil2
+-*fontMenu*font2*Label: Tiny
+-*VT100.font2: 5x7
+-*fontMenu*font3*Label: Small
+-*VT100.font3: 6x10
+-*fontMenu*font4*Label: Medium
+-*VT100.font4: 7x13
+-*fontMenu*font5*Label: Large
+-*VT100.font5: 9x15
+-*fontMenu*font6*Label: Huge
+-*VT100.font6: 10x20
++*fontMenu.Label: VT Fonts
++*fontMenu*fontdefault*Label: Default
++*fontMenu*font1*Label: Unreadable
++*VT100*font1: koinil2
++*fontMenu*font2*Label: UTF8
++*VT100*font2: -misc-fixed-medium-r-normal*-90-iso10646-1
++*fontMenu*font3*Label: WIN
++*VT100*font3: win9x15
++*fontMenu*font4*Label: ALT
++*VT100*font4: alt9x15
++*fontMenu*font5*Label: KOI8
++*VT100*font5: koi9x15
++*fontMenu*font6*Label: ISO
++*VT100*font6: iso9x15
+ *fontMenu*fontescape*Label: Escape Sequence
+ *fontMenu*fontsel*Label: Selection
+ !fontescape and fontsel overridden by application
+@@ -94,12 +93,13 @@
+ *fontMenu*render-font*Label: TrueType Fonts
+ *fontMenu*utf8-mode*Label: UTF-8
+
+-*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
+-*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
+-*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
+-*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
+-*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
+-*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
++*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal*-90-iso10646-1
++#*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
++#*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
++#*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
++#*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
++#*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
++#*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
+
+ *tekMenu.Label: Tek Options
+ *tekMenu*tektextlarge*Label: Large Characters
+@@ -118,6 +118,13 @@
+ *tek4014*font3: 6x13
+ *tek4014*fontSmall: 6x10
+
++*.vt100.wideChars: on
++*.vt100.font: koi9x15
++#*.vt100.font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
++*.vt100.encodingMode: locale
++*.PtyInitialErase: on
++*.backarrowKeyIsErase: on
++
+ ! If xterm is built with a toolbar, the widget hierarchy looks like this,
+ ! showing widget name / class names. The complete menu hierarchy is built
+ ! at startup because it is needed to make the layout work for the menubar:
diff --git a/x11-terms/xterm/files/xterm-ds-copy-225.patch b/x11-terms/xterm/files/xterm-ds-copy-225.patch
new file mode 100644
index 0000000..bcd8ad5
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-copy-225.patch
@@ -0,0 +1,36 @@
+diff -dPNur xterm-225/button.c xterm-225-new/button.c
+--- xterm-225/button.c 2007-03-20 00:42:48.000000000 +0100
++++ xterm-225-new/button.c 2007-04-03 00:54:58.000000000 +0200
+@@ -3179,28 +3179,28 @@
+ }
+ }
+ #if OPT_WIDE_CHARS
+- else if (screen->wide_chars && *target == XA_STRING) {
++ else if (screen->utf8_mode && *target == XA_STRING) {
+ TRACE(("ConvertSelection XA_STRING - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStringStyle);
+- } else if (screen->wide_chars && *target == XA_UTF8_STRING(dpy)) {
++ } else if (screen->utf8_mode && *target == XA_UTF8_STRING(dpy)) {
+ TRACE(("ConvertSelection XA_UTF8_STRING(dpy) - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XUTF8StringStyle);
+- } else if (screen->wide_chars && *target == XA_TEXT(dpy)) {
++ } else if (screen->utf8_mode && *target == XA_TEXT(dpy)) {
+ TRACE(("ConvertSelection XA_TEXT(dpy) - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStdICCTextStyle);
+- } else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(dpy)) {
++ } else if (screen->utf8_mode && *target == XA_COMPOUND_TEXT(dpy)) {
+ TRACE(("ConvertSelection XA_COMPOUND_TEXT(dpy) - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
diff --git a/x11-terms/xterm/files/xterm-ds-copy-243.patch b/x11-terms/xterm/files/xterm-ds-copy-243.patch
new file mode 100644
index 0000000..ca489b6
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-copy-243.patch
@@ -0,0 +1,36 @@
+diff -dPNur xterm-243/button.c xterm-243-copy/button.c
+--- xterm-243/button.c 2009-03-27 01:00:56.000000000 +0100
++++ xterm-243-copy/button.c 2009-06-14 05:41:44.000000000 +0200
+@@ -3475,28 +3475,28 @@
+ }
+ }
+ #if OPT_WIDE_CHARS
+- else if (screen->wide_chars && *target == XA_STRING) {
++ else if (screen->utf8_mode && *target == XA_STRING) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStringStyle);
+ TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
+- } else if (screen->wide_chars && *target == XA_UTF8_STRING(dpy)) {
++ } else if (screen->utf8_mode && *target == XA_UTF8_STRING(dpy)) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XUTF8StringStyle);
+ TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
+- } else if (screen->wide_chars && *target == XA_TEXT(dpy)) {
++ } else if (screen->utf8_mode && *target == XA_TEXT(dpy)) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStdICCTextStyle);
+ TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
+- } else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(dpy)) {
++ } else if (screen->utf8_mode && *target == XA_COMPOUND_TEXT(dpy)) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
diff --git a/x11-terms/xterm/files/xterm-ds-copy.patch b/x11-terms/xterm/files/xterm-ds-copy.patch
new file mode 100644
index 0000000..c866984
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-copy.patch
@@ -0,0 +1,33 @@
+diff -dPNur xterm-179/button.c xterm-179-new/button.c
+--- xterm-179/button.c 2003-12-06 00:32:53.000000000 +0100
++++ xterm-179-new/button.c 2003-12-06 00:31:36.000000000 +0100
+@@ -2481,25 +2481,25 @@
+ result = True;
+ }
+ #if OPT_WIDE_CHARS
+- else if (screen->wide_chars && *target == XA_STRING) {
++ else if (screen->utf8_mode && *target == XA_STRING) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStringStyle);
+- } else if (screen->wide_chars && *target == XA_UTF8_STRING(d)) {
++ } else if (screen->utf8_mode && *target == XA_UTF8_STRING(d)) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XUTF8StringStyle);
+- } else if (screen->wide_chars && *target == XA_TEXT(d)) {
++ } else if (screen->utf8_mode && *target == XA_TEXT(d)) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStdICCTextStyle);
+- } else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(d)) {
++ } else if (screen->utf8_mode && *target == XA_COMPOUND_TEXT(d)) {
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
diff --git a/x11-terms/xterm/files/xterm-ds-input-225.patch b/x11-terms/xterm/files/xterm-ds-input-225.patch
new file mode 100644
index 0000000..dcd25aa
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-input-225.patch
@@ -0,0 +1,12 @@
+diff -dPNur xterm-225/input.c xterm-225-new/input.c
+--- xterm-225/input.c 2007-03-20 00:58:54.000000000 +0100
++++ xterm-225-new/input.c 2007-04-03 01:01:44.000000000 +0200
+@@ -498,7 +498,7 @@
+ /*
+ * Exclude the keys already covered by a modifier.
+ */
+- if (kd->is_fkey
++ if (0 && kd->is_fkey
+ || IsEditFunctionKey(kd->keysym)
+ || IsKeypadKey(kd->keysym)
+ || IsCursorKey(kd->keysym)
diff --git a/x11-terms/xterm/files/xterm-ds-input.patch b/x11-terms/xterm/files/xterm-ds-input.patch
new file mode 100644
index 0000000..8ca0b5d
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-input.patch
@@ -0,0 +1,11 @@
+diff -dPNur xterm-179/input.c xterm-179-new/input.c
+--- xterm-179/input.c 2003-05-18 20:47:32.000000000 -0400
++++ xterm-179-new/input.c 2003-07-19 04:20:31.000000000 -0400
+@@ -500,6 +500,7 @@
+ #if OPT_VT52_MODE
+ && screen->ansi_level != 0
+ #endif
++ && 0
+ ) {
+ /*
+ * Modifier codes:
diff --git a/x11-terms/xterm/files/xterm-ds-metaesc.patch b/x11-terms/xterm/files/xterm-ds-metaesc.patch
new file mode 100644
index 0000000..34996cf
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-metaesc.patch
@@ -0,0 +1,9 @@
+diff -dPNur xterm-243/XTerm.ad xterm-243-new/XTerm.ad
+--- xterm-243/XTerm.ad 2009-02-13 01:14:13.000000000 +0100
++++ xterm-243-new/XTerm.ad 2009-06-14 07:05:49.000000000 +0200
+@@ -210,3 +210,5 @@
+ !*allowTcapOps: false
+ !*allowTitleOps: false
+ !*allowWindowOps: false
++
++*metaSendsEscape: true
diff --git a/x11-terms/xterm/files/xterm-ds-paste-225.patch b/x11-terms/xterm/files/xterm-ds-paste-225.patch
new file mode 100644
index 0000000..9d004fd
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-paste-225.patch
@@ -0,0 +1,12 @@
+diff -dPNur xterm-225/button.c xterm-225-new/button.c
+--- xterm-225/button.c 2007-03-20 00:42:48.000000000 +0100
++++ xterm-225-new/button.c 2007-04-03 00:50:40.000000000 +0200
+@@ -1586,7 +1586,7 @@
+ text_prop.nitems = *length;
+
+ #if OPT_WIDE_CHARS
+- if (screen->wide_chars) {
++ if (screen->utf8_mode) {
+ if (*type == XA_UTF8_STRING(dpy) ||
+ *type == XA_STRING ||
+ *type == XA_COMPOUND_TEXT(dpy)) {
diff --git a/x11-terms/xterm/files/xterm-ds-paste-278.patch b/x11-terms/xterm/files/xterm-ds-paste-278.patch
new file mode 100644
index 0000000..75b2d3a
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-paste-278.patch
@@ -0,0 +1,12 @@
+diff -dPNur xterm-278/button.c xterm-278-ds/button.c
+--- xterm-278/button.c 2012-01-07 03:00:35.000000000 +0100
++++ xterm-278-ds/button.c 2012-01-22 07:39:01.000000000 +0100
+@@ -1989,7 +1989,7 @@
+ text_prop.nitems));
+
+ #if OPT_WIDE_CHARS
+- if (XSupportsLocale() && screen->wide_chars) {
++ if (XSupportsLocale() && screen->utf8_mode) {
+ if (*type == XA_UTF8_STRING(dpy) ||
+ *type == XA_STRING ||
+ *type == XA_COMPOUND_TEXT(dpy)) {
diff --git a/x11-terms/xterm/files/xterm-ds-paste.patch b/x11-terms/xterm/files/xterm-ds-paste.patch
new file mode 100644
index 0000000..9d31268
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-paste.patch
@@ -0,0 +1,12 @@
+diff -dPNur xterm-172/button.c xterm-172-new/button.c
+--- xterm-172/button.c 2002-10-05 13:57:11.000000000 -0400
++++ xterm-172-new/button.c 2003-07-12 11:25:39.000000000 -0400
+@@ -1364,7 +1364,7 @@
+ text_prop.nitems = *length;
+
+ #if OPT_WIDE_CHARS
+- if (screen->wide_chars) {
++ if (screen->utf8_mode) {
+ if (*type == XA_UTF8_STRING(XtDisplay(w)) ||
+ *type == XA_STRING ||
+ *type == XA_COMPOUND_TEXT(XtDisplay(w))) {
diff --git a/x11-terms/xterm/files/xterm-ds-sm-243.patch b/x11-terms/xterm/files/xterm-ds-sm-243.patch
new file mode 100644
index 0000000..bb35ee2
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-sm-243.patch
@@ -0,0 +1,144 @@
+diff -dPNur xterm-243/menu.c xterm-243-sm/menu.c
+--- xterm-243/menu.c 2009-03-28 18:27:57.000000000 +0100
++++ xterm-243-sm/menu.c 2009-06-14 05:54:26.000000000 +0200
+@@ -186,6 +186,10 @@
+ static void do_font_loadable PROTO_XT_CALLBACK_ARGS;
+ #endif
+
++#if OPT_WIDE_CHARS
++static void do_font_multibyte PROTO_XT_CALLBACK_ARGS;
++#endif
++
+ #if OPT_HP_FUNC_KEYS
+ static void do_hp_fkeys PROTO_XT_CALLBACK_ARGS;
+ #endif
+@@ -245,6 +249,15 @@
+ static void do_font_utf8_title PROTO_XT_CALLBACK_ARGS;
+ #endif
+
++static void
++UpdateMenuItem(
++#if OPT_TRACE
++ const char *func,
++#endif
++ MenuEntry * menu,
++ int which,
++ Bool val);
++
+ /*
+ * The order of entries MUST match the values given in menu.h
+ */
+@@ -365,6 +378,7 @@
+ { "render-font", do_font_renderfont,NULL },
+ #endif
+ #if OPT_WIDE_CHARS
++ { "font-multibyte", do_font_multibyte, NULL },
+ { "utf8-mode", do_font_utf8_mode,NULL },
+ { "utf8-title", do_font_utf8_title,NULL },
+ #endif
+@@ -697,6 +711,14 @@
+ }
+ }
+ #endif
++#if OPT_WIDE_CHARS
++ if ((term->screen.utf8_mode>255)||(!term->screen.wide_chars)) {
++ SetItemSensitivity(fontMenuEntries[fontMenu_font_multibyte].widget,
++ False);
++ } else {
++ update_font_multibyte();
++ }
++#endif
+ }
+ break;
+
+@@ -1560,6 +1582,23 @@
+ }
+ #endif
+
++#if OPT_WIDE_CHARS
++static void
++do_font_multibyte(Widget gw GCC_UNUSED,
++ XtPointer closure GCC_UNUSED,
++ XtPointer data GCC_UNUSED)
++{
++ term->screen.font_multibyte = !term->screen.font_multibyte;
++ if (term->screen.font_multibyte) {
++ term->screen.utf8_mode=1;
++ } else {
++ term->screen.utf8_mode=0;
++ }
++ update_font_multibyte();
++ Redraw();
++}
++#endif
++
+ /*
+ * tek menu
+ */
+@@ -2221,6 +2260,18 @@
+ }
+ #endif
+
++#if OPT_WIDE_CHARS
++void
++HandleFontMultibyte(Widget w,
++ XEvent * event GCC_UNUSED,
++ String * params,
++ Cardinal * param_count)
++{
++ handle_toggle(do_font_multibyte, (int) term->screen.font_multibyte,
++ params, *param_count, w, (XtPointer) 0, (XtPointer) 0);
++}
++#endif
++
+ #if OPT_BOX_CHARS
+ void
+ HandleFontBoxChars(Widget w,
+diff -dPNur xterm-243/menu.h xterm-243-sm/menu.h
+--- xterm-243/menu.h 2009-02-13 20:55:26.000000000 +0100
++++ xterm-243-sm/menu.h 2009-06-14 05:57:56.000000000 +0200
+@@ -90,6 +90,7 @@
+ extern void HandleFontBoxChars PROTO_XT_ACTIONS_ARGS;
+ extern void HandleFontDoublesize PROTO_XT_ACTIONS_ARGS;
+ extern void HandleFontLoading PROTO_XT_ACTIONS_ARGS;
++extern void HandleFontMultibyte PROTO_XT_ACTIONS_ARGS;
+ extern void HandleHardReset PROTO_XT_ACTIONS_ARGS;
+ extern void HandleHpFunctionKeys PROTO_XT_ACTIONS_ARGS;
+ extern void HandleJumpscroll PROTO_XT_ACTIONS_ARGS;
+@@ -264,6 +265,9 @@
+ fontMenu_font_loadable,
+ #endif
+ #endif
++#if OPT_WIDE_CHARS
++ fontMenu_font_multibyte,
++#endif
+
+ #if OPT_RENDERFONT || OPT_WIDE_CHARS
+ fontMenu_line2,
+@@ -470,6 +474,15 @@
+ #define FS2MI(n) (n) /* font_size_to_menu_item */
+ #define MI2FS(n) (n) /* menu_item_to_font_size */
+
++#if OPT_WIDE_CHARS
++#define update_font_multibyte() \
++ UpdateMenuItem (fontMenuEntries, \
++ fontMenu_font_multibyte, \
++ term->screen.font_multibyte)
++#else
++#define update_font_multibyte() /* nothing */
++#endif
++
+ #if OPT_TEK4014
+ extern void set_tekfont_menu_item(int n,int val);
+ #else
+diff -dPNur xterm-243/ptyx.h xterm-243-sm/ptyx.h
+--- xterm-243/ptyx.h 2009-03-24 23:20:06.000000000 +0100
++++ xterm-243-sm/ptyx.h 2009-06-14 05:59:38.000000000 +0200
+@@ -1358,6 +1358,7 @@
+ int unicode_font; /* font uses unicode encoding */
+ int utf_count; /* state of utf_char */
+ IChar utf_char; /* in-progress character */
++ int font_multibyte; /* is UTF mode switched on */
+ int last_written_col;
+ int last_written_row;
+ XChar2b *draw_buf; /* drawXtermText() data */
diff --git a/x11-terms/xterm/files/xterm-ds-sm.patch b/x11-terms/xterm/files/xterm-ds-sm.patch
new file mode 100644
index 0000000..12c1258
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-sm.patch
@@ -0,0 +1,129 @@
+diff -dPNur xterm-207-new/menu.c xterm-207/menu.c
+--- xterm-207-new/menu.c 2005-11-13 23:10:36.000000000 +0000
++++ xterm-207/menu.c 2005-12-26 13:58:51.000000000 +0000
+@@ -175,6 +175,10 @@
+ static void do_font_loadable PROTO_XT_CALLBACK_ARGS;
+ #endif
+
++#if OPT_WIDE_CHARS
++static void do_font_multibyte PROTO_XT_CALLBACK_ARGS;
++#endif
++
+ #if OPT_HP_FUNC_KEYS
+ static void do_hp_fkeys PROTO_XT_CALLBACK_ARGS;
+ #endif
+@@ -339,6 +343,7 @@
+ { "render-font", do_font_renderfont,NULL },
+ #endif
+ #if OPT_WIDE_CHARS
++ { "font-multibyte", do_font_multibyte, NULL },
+ { "utf8-mode", do_font_utf8_mode,NULL },
+ #endif
+ #endif /* toggles for other font extensions */
+@@ -683,6 +688,15 @@
+ #if OPT_WIDE_CHARS
+ update_font_utf8_mode();
+ #endif
++#if OPT_WIDE_CHARS
++ if ((term->screen.utf8_mode==2)||(!term->screen.wide_chars)) {
++ set_sensitivity(mw,
++ fontMenuEntries[fontMenu_font_multibyte].widget,
++ False);
++ } else {
++ update_font_multibyte();
++ }
++#endif
+ }
+ FindFontSelection(NULL, True);
+ set_sensitivity(mw,
+@@ -1423,6 +1437,23 @@
+ }
+ #endif
+
++#if OPT_WIDE_CHARS
++static void
++do_font_multibyte(Widget gw GCC_UNUSED,
++ XtPointer closure GCC_UNUSED,
++ XtPointer data GCC_UNUSED)
++{
++ term->screen.font_multibyte = !term->screen.font_multibyte;
++ if (term->screen.font_multibyte) {
++ term->screen.utf8_mode=1;
++ } else {
++ term->screen.utf8_mode=0;
++ }
++ update_font_multibyte();
++ Redraw();
++}
++#endif
++
+ /*
+ * tek menu
+ */
+@@ -2054,6 +2085,18 @@
+ }
+ #endif
+
++#if OPT_WIDE_CHARS
++void
++HandleFontMultibyte(Widget w,
++ XEvent * event GCC_UNUSED,
++ String * params,
++ Cardinal * param_count)
++{
++ handle_toggle(do_font_multibyte, (int) term->screen.font_multibyte,
++ params, *param_count, w, (XtPointer) 0, (XtPointer) 0);
++}
++#endif
++
+ #if OPT_BOX_CHARS
+ void
+ HandleFontBoxChars(Widget w,
+diff -dPNur xterm-207-new/menu.h xterm-207/menu.h
+--- xterm-207-new/menu.h 2005-11-03 13:17:28.000000000 +0000
++++ xterm-207/menu.h 2005-12-26 13:58:51.000000000 +0000
+@@ -87,6 +87,7 @@
+ extern void HandleFontBoxChars PROTO_XT_ACTIONS_ARGS;
+ extern void HandleFontDoublesize PROTO_XT_ACTIONS_ARGS;
+ extern void HandleFontLoading PROTO_XT_ACTIONS_ARGS;
++extern void HandleFontMultibyte PROTO_XT_ACTIONS_ARGS;
+ extern void HandleHardReset PROTO_XT_ACTIONS_ARGS;
+ extern void HandleHpFunctionKeys PROTO_XT_ACTIONS_ARGS;
+ extern void HandleJumpscroll PROTO_XT_ACTIONS_ARGS;
+@@ -252,6 +253,9 @@
+ fontMenu_font_loadable,
+ #endif
+ #endif
++#if OPT_WIDE_CHARS
++ fontMenu_font_multibyte,
++#endif
+
+ #if OPT_RENDERFONT || OPT_WIDE_CHARS
+ fontMenu_line2,
+@@ -430,6 +434,15 @@
+ #define FS2MI(n) (n) /* font_size_to_menu_item */
+ #define MI2FS(n) (n) /* menu_item_to_font_size */
+
++#if OPT_WIDE_CHARS
++#define update_font_multibyte() \
++ update_menu_item (term->screen.fontMenu, \
++ fontMenuEntries[fontMenu_font_multibyte].widget, \
++ term->screen.font_multibyte)
++#else
++#define update_font_multibyte() /* nothing */
++#endif
++
+ #if OPT_TEK4014
+ extern void set_tekfont_menu_item(int n,int val);
+ #else
+diff -dPNur xterm-207-new/ptyx.h xterm-207/ptyx.h
+--- xterm-207-new/ptyx.h 2005-11-03 13:17:28.000000000 +0000
++++ xterm-207/ptyx.h 2005-12-26 13:59:17.000000000 +0000
+@@ -1237,6 +1237,7 @@
+ int unicode_font; /* font uses unicode encoding */
+ int utf_count; /* state of utf_char */
+ IChar utf_char; /* in-progress character */
++ int font_multibyte; /* is UTF mode switched on */
+ int last_written_col;
+ int last_written_row;
+ #endif
diff --git a/x11-terms/xterm/files/xterm-ds-utf8mode.patch b/x11-terms/xterm/files/xterm-ds-utf8mode.patch
new file mode 100644
index 0000000..2dacec7
--- /dev/null
+++ b/x11-terms/xterm/files/xterm-ds-utf8mode.patch
@@ -0,0 +1,12 @@
+diff -dPNur xterm-207/menu.c xterm-207-new/menu.c
+--- xterm-207/menu.c 2005-12-26 14:00:13.000000000 +0000
++++ xterm-207-new/menu.c 2005-12-26 14:02:30.000000000 +0000
+@@ -689,7 +689,7 @@
+ update_font_utf8_mode();
+ #endif
+ #if OPT_WIDE_CHARS
+- if ((term->screen.utf8_mode==2)||(!term->screen.wide_chars)) {
++ if ((term->screen.utf8_mode>255)||(!term->screen.wide_chars)) {
+ set_sensitivity(mw,
+ fontMenuEntries[fontMenu_font_multibyte].widget,
+ False);
diff --git a/x11-terms/xterm/files/xterm215-ds-copy.patch b/x11-terms/xterm/files/xterm215-ds-copy.patch
new file mode 100644
index 0000000..2029430
--- /dev/null
+++ b/x11-terms/xterm/files/xterm215-ds-copy.patch
@@ -0,0 +1,36 @@
+diff -dPNur xterm-215/button.c xterm-215-new/button.c
+--- xterm-215/button.c 2006-07-25 01:12:23.000000000 +0500
++++ xterm-215-new/button.c 2006-07-25 01:13:31.000000000 +0500
+@@ -3121,28 +3121,28 @@
+ }
+ }
+ #if OPT_WIDE_CHARS
+- else if (screen->wide_chars && *target == XA_STRING) {
++ else if (screen->utf8_mode && *target == XA_STRING) {
+ TRACE(("ConvertSelection XA_STRING - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStringStyle);
+- } else if (screen->wide_chars && *target == XA_UTF8_STRING(d)) {
++ } else if (screen->utf8_mode && *target == XA_UTF8_STRING(d)) {
+ TRACE(("ConvertSelection XA_UTF8_STRING(d) - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XUTF8StringStyle);
+- } else if (screen->wide_chars && *target == XA_TEXT(d)) {
++ } else if (screen->utf8_mode && *target == XA_TEXT(d)) {
+ TRACE(("ConvertSelection XA_TEXT(d) - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,
+ type, value, length, format,
+ Xutf8TextListToTextProperty,
+ XStdICCTextStyle);
+- } else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(d)) {
++ } else if (screen->utf8_mode && *target == XA_COMPOUND_TEXT(d)) {
+ TRACE(("ConvertSelection XA_COMPOUND_TEXT(d) - wide\n"));
+ result =
+ _ConvertSelectionHelper(w,