summaryrefslogtreecommitdiffstats
path: root/patches/source/screen
diff options
context:
space:
mode:
Diffstat (limited to 'patches/source/screen')
-rw-r--r--patches/source/screen/26source_encoding.patch353
-rw-r--r--patches/source/screen/45suppress_remap.patch13
-rw-r--r--patches/source/screen/52fix_screen_utf8_nfd.patch41
-rw-r--r--patches/source/screen/58-show-encoding-hardstatus.patch41
-rw-r--r--patches/source/screen/60-revert-screenrc-change.diff13
-rwxr-xr-xpatches/source/screen/screen.SlackBuild158
-rw-r--r--patches/source/screen/screen.no_libelf.diff19
-rw-r--r--patches/source/screen/slack-desc19
8 files changed, 657 insertions, 0 deletions
diff --git a/patches/source/screen/26source_encoding.patch b/patches/source/screen/26source_encoding.patch
new file mode 100644
index 000000000..1094ac518
--- /dev/null
+++ b/patches/source/screen/26source_encoding.patch
@@ -0,0 +1,353 @@
+Author: Ben Finney <ben@benfinney.id.au>
+Description: Replace the composed characters with their respective description.
+--- a/process.c
++++ b/process.c
+@@ -250,177 +250,177 @@
+
+ /* digraph table taken from old vim and rfc1345 */
+ static struct digraph digraphs[MAX_DIGRAPH + 1] = {
+- {{' ', ' '}, 160}, /* */
+- {{'N', 'S'}, 160}, /* */
+- {{'~', '!'}, 161}, /* */
+- {{'!', '!'}, 161}, /* */
+- {{'!', 'I'}, 161}, /* */
+- {{'c', '|'}, 162}, /* */
+- {{'c', 't'}, 162}, /* */
+- {{'$', '$'}, 163}, /* */
+- {{'P', 'd'}, 163}, /* */
+- {{'o', 'x'}, 164}, /* */
+- {{'C', 'u'}, 164}, /* */
+- {{'C', 'u'}, 164}, /* */
+- {{'E', 'u'}, 164}, /* */
+- {{'Y', '-'}, 165}, /* */
+- {{'Y', 'e'}, 165}, /* */
+- {{'|', '|'}, 166}, /* */
+- {{'B', 'B'}, 166}, /* */
+- {{'p', 'a'}, 167}, /* */
+- {{'S', 'E'}, 167}, /* */
+- {{'"', '"'}, 168}, /* */
+- {{'\'', ':'}, 168}, /* */
+- {{'c', 'O'}, 169}, /* */
+- {{'C', 'o'}, 169}, /* */
+- {{'a', '-'}, 170}, /* */
+- {{'<', '<'}, 171}, /* */
+- {{'-', ','}, 172}, /* */
+- {{'N', 'O'}, 172}, /* */
+- {{'-', '-'}, 173}, /* */
+- {{'r', 'O'}, 174}, /* */
+- {{'R', 'g'}, 174}, /* */
+- {{'-', '='}, 175}, /* */
+- {{'\'', 'm'}, 175}, /* */
+- {{'~', 'o'}, 176}, /* */
+- {{'D', 'G'}, 176}, /* */
+- {{'+', '-'}, 177}, /* */
+- {{'2', '2'}, 178}, /* */
+- {{'2', 'S'}, 178}, /* */
+- {{'3', '3'}, 179}, /* */
+- {{'3', 'S'}, 179}, /* */
+- {{'\'', '\''}, 180}, /* */
+- {{'j', 'u'}, 181}, /* */
+- {{'M', 'y'}, 181}, /* */
+- {{'p', 'p'}, 182}, /* */
+- {{'P', 'I'}, 182}, /* */
+- {{'~', '.'}, 183}, /* */
+- {{'.', 'M'}, 183}, /* */
+- {{',', ','}, 184}, /* */
+- {{'\'', ','}, 184}, /* */
+- {{'1', '1'}, 185}, /* */
+- {{'1', 'S'}, 185}, /* */
+- {{'o', '-'}, 186}, /* */
+- {{'>', '>'}, 187}, /* */
+- {{'1', '4'}, 188}, /* */
+- {{'1', '2'}, 189}, /* */
+- {{'3', '4'}, 190}, /* */
+- {{'~', '?'}, 191}, /* */
+- {{'?', '?'}, 191}, /* */
+- {{'?', 'I'}, 191}, /* */
+- {{'A', '`'}, 192}, /* */
+- {{'A', '!'}, 192}, /* */
+- {{'A', '\''}, 193}, /* */
+- {{'A', '^'}, 194}, /* */
+- {{'A', '>'}, 194}, /* */
+- {{'A', '~'}, 195}, /* */
+- {{'A', '?'}, 195}, /* */
+- {{'A', '"'}, 196}, /* */
+- {{'A', ':'}, 196}, /* */
+- {{'A', '@'}, 197}, /* */
+- {{'A', 'A'}, 197}, /* */
+- {{'A', 'E'}, 198}, /* */
+- {{'C', ','}, 199}, /* */
+- {{'E', '`'}, 200}, /* */
+- {{'E', '!'}, 200}, /* */
+- {{'E', '\''}, 201}, /* */
+- {{'E', '^'}, 202}, /* */
+- {{'E', '>'}, 202}, /* */
+- {{'E', '"'}, 203}, /* */
+- {{'E', ':'}, 203}, /* */
+- {{'I', '`'}, 204}, /* */
+- {{'I', '!'}, 204}, /* */
+- {{'I', '\''}, 205}, /* */
+- {{'I', '^'}, 206}, /* */
+- {{'I', '>'}, 206}, /* */
+- {{'I', '"'}, 207}, /* */
+- {{'I', ':'}, 207}, /* */
+- {{'D', '-'}, 208}, /* */
+- {{'N', '~'}, 209}, /* */
+- {{'N', '?'}, 209}, /* */
+- {{'O', '`'}, 210}, /* */
+- {{'O', '!'}, 210}, /* */
+- {{'O', '\''}, 211}, /* */
+- {{'O', '^'}, 212}, /* */
+- {{'O', '>'}, 212}, /* */
+- {{'O', '~'}, 213}, /* */
+- {{'O', '?'}, 213}, /* */
+- {{'O', '"'}, 214}, /* */
+- {{'O', ':'}, 214}, /* */
+- {{'/', '\\'}, 215}, /* */
+- {{'*', 'x'}, 215}, /* */
+- {{'O', '/'}, 216}, /* */
+- {{'U', '`'}, 217}, /* */
+- {{'U', '!'}, 217}, /* */
+- {{'U', '\''}, 218}, /* */
+- {{'U', '^'}, 219}, /* */
+- {{'U', '>'}, 219}, /* */
+- {{'U', '"'}, 220}, /* */
+- {{'U', ':'}, 220}, /* */
+- {{'Y', '\''}, 221}, /* */
+- {{'I', 'p'}, 222}, /* */
+- {{'T', 'H'}, 222}, /* */
+- {{'s', 's'}, 223}, /* */
+- {{'s', '"'}, 223}, /* */
+- {{'a', '`'}, 224}, /* */
+- {{'a', '!'}, 224}, /* */
+- {{'a', '\''}, 225}, /* */
+- {{'a', '^'}, 226}, /* */
+- {{'a', '>'}, 226}, /* */
+- {{'a', '~'}, 227}, /* */
+- {{'a', '?'}, 227}, /* */
+- {{'a', '"'}, 228}, /* */
+- {{'a', ':'}, 228}, /* */
+- {{'a', 'a'}, 229}, /* */
+- {{'a', 'e'}, 230}, /* */
+- {{'c', ','}, 231}, /* */
+- {{'e', '`'}, 232}, /* */
+- {{'e', '!'}, 232}, /* */
+- {{'e', '\''}, 233}, /* */
+- {{'e', '^'}, 234}, /* */
+- {{'e', '>'}, 234}, /* */
+- {{'e', '"'}, 235}, /* */
+- {{'e', ':'}, 235}, /* */
+- {{'i', '`'}, 236}, /* */
+- {{'i', '!'}, 236}, /* */
+- {{'i', '\''}, 237}, /* */
+- {{'i', '^'}, 238}, /* */
+- {{'i', '>'}, 238}, /* */
+- {{'i', '"'}, 239}, /* */
+- {{'i', ':'}, 239}, /* */
+- {{'d', '-'}, 240}, /* */
+- {{'n', '~'}, 241}, /* */
+- {{'n', '?'}, 241}, /* */
+- {{'o', '`'}, 242}, /* */
+- {{'o', '!'}, 242}, /* */
+- {{'o', '\''}, 243}, /* */
+- {{'o', '^'}, 244}, /* */
+- {{'o', '>'}, 244}, /* */
+- {{'o', '~'}, 245}, /* */
+- {{'o', '?'}, 245}, /* */
+- {{'o', '"'}, 246}, /* */
+- {{'o', ':'}, 246}, /* */
+- {{':', '-'}, 247}, /* */
+- {{'o', '/'}, 248}, /* */
+- {{'u', '`'}, 249}, /* */
+- {{'u', '!'}, 249}, /* */
+- {{'u', '\''}, 250}, /* */
+- {{'u', '^'}, 251}, /* */
+- {{'u', '>'}, 251}, /* */
+- {{'u', '"'}, 252}, /* */
+- {{'u', ':'}, 252}, /* */
+- {{'y', '\''}, 253}, /* */
+- {{'i', 'p'}, 254}, /* */
+- {{'t', 'h'}, 254}, /* */
+- {{'y', '"'}, 255}, /* */
+- {{'y', ':'}, 255}, /* */
+- {{'"', '['}, 196}, /* */
+- {{'"', '\\'}, 214}, /* */
+- {{'"', ']'}, 220}, /* */
+- {{'"', '{'}, 228}, /* */
+- {{'"', '|'}, 246}, /* */
+- {{'"', '}'}, 252}, /* */
+- {{'"', '~'}, 223} /* */
++ {{' ', ' '}, 0x00a0}, /* NO-BREAK SPACE */
++ {{'N', 'S'}, 0x00a0}, /* NO-BREAK SPACE */
++ {{'~', '!'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */
++ {{'!', '!'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */
++ {{'!', 'I'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */
++ {{'c', '|'}, 0x00a2}, /* CENT SIGN */
++ {{'c', 't'}, 0x00a2}, /* CENT SIGN */
++ {{'$', '$'}, 0x00a3}, /* POUND SIGN */
++ {{'P', 'd'}, 0x00a3}, /* POUND SIGN */
++ {{'o', 'x'}, 0x00a4}, /* CURRENCY SIGN */
++ {{'C', 'u'}, 0x00a4}, /* CURRENCY SIGN */
++ {{'C', 'u'}, 0x00a4}, /* CURRENCY SIGN */
++ {{'E', 'u'}, 0x00a4}, /* CURRENCY SIGN */
++ {{'Y', '-'}, 0x00a5}, /* YEN SIGN */
++ {{'Y', 'e'}, 0x00a5}, /* YEN SIGN */
++ {{'|', '|'}, 0x00a6}, /* BROKEN BAR */
++ {{'B', 'B'}, 0x00a6}, /* BROKEN BAR */
++ {{'p', 'a'}, 0x00a7}, /* SECTION SIGN */
++ {{'S', 'E'}, 0x00a7}, /* SECTION SIGN */
++ {{'"', '"'}, 0x00a8}, /* DIAERESIS */
++ {{'\'', ':'}, 0x00a8}, /* DIAERESIS */
++ {{'c', 'O'}, 0x00a9}, /* COPYRIGHT SIGN */
++ {{'C', 'o'}, 0x00a9}, /* COPYRIGHT SIGN */
++ {{'-', 'a'}, 0x00aa}, /* FEMININE ORDINAL INDICATOR */
++ {{'<', '<'}, 0x00ab}, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
++ {{'-', ','}, 0x00ac}, /* NOT SIGN */
++ {{'N', 'O'}, 0x00ac}, /* NOT SIGN */
++ {{'-', '-'}, 0x00ad}, /* SOFT HYPHEN */
++ {{'r', 'O'}, 0x00ae}, /* REGISTERED SIGN */
++ {{'R', 'g'}, 0x00ae}, /* REGISTERED SIGN */
++ {{'-', '='}, 0x00af}, /* MACRON */
++ {{'\'', 'm'}, 0x00af}, /* MACRON */
++ {{'~', 'o'}, 0x00b0}, /* DEGREE SIGN */
++ {{'D', 'G'}, 0x00b0}, /* DEGREE SIGN */
++ {{'+', '-'}, 0x00b1}, /* PLUS-MINUS SIGN */
++ {{'2', '2'}, 0x00b2}, /* SUPERSCRIPT TWO */
++ {{'2', 'S'}, 0x00b2}, /* SUPERSCRIPT TWO */
++ {{'3', '3'}, 0x00b3}, /* SUPERSCRIPT THREE */
++ {{'3', 'S'}, 0x00b3}, /* SUPERSCRIPT THREE */
++ {{'\'', '\''}, 0x00b4}, /* ACUTE ACCENT */
++ {{'j', 'u'}, 0x00b5}, /* MICRO SIGN */
++ {{'M', 'y'}, 0x00b5}, /* MICRO SIGN */
++ {{'p', 'p'}, 0x00b6}, /* PILCROW SIGN */
++ {{'P', 'I'}, 0x00b6}, /* PILCROW SIGN */
++ {{'~', '.'}, 0x00b7}, /* MIDDLE DOT */
++ {{'.', 'M'}, 0x00b7}, /* MIDDLE DOT */
++ {{',', ','}, 0x00b8}, /* CEDILLA */
++ {{'\'', ','}, 0x00b8}, /* CEDILLA */
++ {{'1', '1'}, 0x00b9}, /* SUPERSCRIPT ONE */
++ {{'1', 'S'}, 0x00b9}, /* SUPERSCRIPT ONE */
++ {{'-', 'o'}, 0x00ba}, /* MASCULINE ORDINAL INDICATOR */
++ {{'>', '>'}, 0x00bb}, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
++ {{'1', '4'}, 0x00bc}, /* VULGAR FRACTION ONE QUARTER */
++ {{'1', '2'}, 0x00bd}, /* VULGAR FRACTION ONE HALF */
++ {{'3', '4'}, 0x00be}, /* VULGAR FRACTION THREE QUARTERS */
++ {{'~', '?'}, 0x00bf}, /* INVERTED QUESTION MARK */
++ {{'?', '?'}, 0x00bf}, /* INVERTED QUESTION MARK */
++ {{'?', 'I'}, 0x00bf}, /* INVERTED QUESTION MARK */
++ {{'A', '`'}, 0x00c0}, /* LATIN CAPITAL LETTER A WITH GRAVE */
++ {{'A', '!'}, 0x00c0}, /* LATIN CAPITAL LETTER A WITH GRAVE */
++ {{'A', '\''}, 0x00c1}, /* LATIN CAPITAL LETTER A WITH ACUTE */
++ {{'A', '^'}, 0x00c2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
++ {{'A', '>'}, 0x00c2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
++ {{'A', '~'}, 0x00c3}, /* LATIN CAPITAL LETTER A WITH TILDE */
++ {{'A', '?'}, 0x00c3}, /* LATIN CAPITAL LETTER A WITH TILDE */
++ {{'A', '"'}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
++ {{'A', ':'}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
++ {{'A', '@'}, 0x00c5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */
++ {{'A', 'A'}, 0x00c5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */
++ {{'A', 'E'}, 0x00c6}, /* LATIN CAPITAL LETTER AE */
++ {{'C', ','}, 0x00c7}, /* LATIN CAPITAL LETTER C WITH CEDILLA */
++ {{'E', '`'}, 0x00c8}, /* LATIN CAPITAL LETTER E WITH GRAVE */
++ {{'E', '!'}, 0x00c8}, /* LATIN CAPITAL LETTER E WITH GRAVE */
++ {{'E', '\''}, 0x00c9}, /* LATIN CAPITAL LETTER E WITH ACUTE */
++ {{'E', '^'}, 0x00ca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
++ {{'E', '>'}, 0x00ca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
++ {{'E', '"'}, 0x00cb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
++ {{'E', ':'}, 0x00cb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
++ {{'I', '`'}, 0x00cc}, /* LATIN CAPITAL LETTER I WITH GRAVE */
++ {{'I', '!'}, 0x00cc}, /* LATIN CAPITAL LETTER I WITH GRAVE */
++ {{'I', '\''}, 0x00cd}, /* LATIN CAPITAL LETTER I WITH ACUTE */
++ {{'I', '^'}, 0x00ce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
++ {{'I', '>'}, 0x00ce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
++ {{'I', '"'}, 0x00cf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */
++ {{'I', ':'}, 0x00cf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */
++ {{'D', '-'}, 0x00d0}, /* LATIN CAPITAL LETTER ETH */
++ {{'N', '~'}, 0x00d1}, /* LATIN CAPITAL LETTER N WITH TILDE */
++ {{'N', '?'}, 0x00d1}, /* LATIN CAPITAL LETTER N WITH TILDE */
++ {{'O', '`'}, 0x00d2}, /* LATIN CAPITAL LETTER O WITH GRAVE */
++ {{'O', '!'}, 0x00d2}, /* LATIN CAPITAL LETTER O WITH GRAVE */
++ {{'O', '\''}, 0x00d3}, /* LATIN CAPITAL LETTER O WITH ACUTE */
++ {{'O', '^'}, 0x00d4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
++ {{'O', '>'}, 0x00d4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
++ {{'O', '~'}, 0x00d5}, /* LATIN CAPITAL LETTER O WITH TILDE */
++ {{'O', '?'}, 0x00d5}, /* LATIN CAPITAL LETTER O WITH TILDE */
++ {{'O', '"'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
++ {{'O', ':'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
++ {{'/', '\\'}, 0x00d7}, /* MULTIPLICATION SIGN */
++ {{'*', 'x'}, 0x00d7}, /* MULTIPLICATION SIGN */
++ {{'O', '/'}, 0x00d8}, /* LATIN CAPITAL LETTER O WITH STROKE */
++ {{'U', '`'}, 0x00d9}, /* LATIN CAPITAL LETTER U WITH GRAVE */
++ {{'U', '!'}, 0x00d9}, /* LATIN CAPITAL LETTER U WITH GRAVE */
++ {{'U', '\''}, 0x00da}, /* LATIN CAPITAL LETTER U WITH ACUTE */
++ {{'U', '^'}, 0x00db}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
++ {{'U', '>'}, 0x00db}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
++ {{'U', '"'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
++ {{'U', ':'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
++ {{'Y', '\''}, 0x00dd}, /* LATIN CAPITAL LETTER Y WITH ACUTE */
++ {{'I', 'p'}, 0x00de}, /* LATIN CAPITAL LETTER THORN */
++ {{'T', 'H'}, 0x00de}, /* LATIN CAPITAL LETTER THORN */
++ {{'s', 's'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */
++ {{'s', '"'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */
++ {{'a', '`'}, 0x00e0}, /* LATIN SMALL LETTER A WITH GRAVE */
++ {{'a', '!'}, 0x00e0}, /* LATIN SMALL LETTER A WITH GRAVE */
++ {{'a', '\''}, 0x00e1}, /* LATIN SMALL LETTER A WITH ACUTE */
++ {{'a', '^'}, 0x00e2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
++ {{'a', '>'}, 0x00e2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
++ {{'a', '~'}, 0x00e3}, /* LATIN SMALL LETTER A WITH TILDE */
++ {{'a', '?'}, 0x00e3}, /* LATIN SMALL LETTER A WITH TILDE */
++ {{'a', '"'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */
++ {{'a', ':'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */
++ {{'a', 'a'}, 0x00e5}, /* LATIN SMALL LETTER A WITH RING ABOVE */
++ {{'a', 'e'}, 0x00e6}, /* LATIN SMALL LETTER AE */
++ {{'c', ','}, 0x00e7}, /* LATIN SMALL LETTER C WITH CEDILLA */
++ {{'e', '`'}, 0x00e8}, /* LATIN SMALL LETTER E WITH GRAVE */
++ {{'e', '!'}, 0x00e8}, /* LATIN SMALL LETTER E WITH GRAVE */
++ {{'e', '\''}, 0x00e9}, /* LATIN SMALL LETTER E WITH ACUTE */
++ {{'e', '^'}, 0x00ea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
++ {{'e', '>'}, 0x00ea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
++ {{'e', '"'}, 0x00eb}, /* LATIN SMALL LETTER E WITH DIAERESIS */
++ {{'e', ':'}, 0x00eb}, /* LATIN SMALL LETTER E WITH DIAERESIS */
++ {{'i', '`'}, 0x00ec}, /* LATIN SMALL LETTER I WITH GRAVE */
++ {{'i', '!'}, 0x00ec}, /* LATIN SMALL LETTER I WITH GRAVE */
++ {{'i', '\''}, 0x00ed}, /* LATIN SMALL LETTER I WITH ACUTE */
++ {{'i', '^'}, 0x00ee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
++ {{'i', '>'}, 0x00ee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
++ {{'i', '"'}, 0x00ef}, /* LATIN SMALL LETTER I WITH DIAERESIS */
++ {{'i', ':'}, 0x00ef}, /* LATIN SMALL LETTER I WITH DIAERESIS */
++ {{'d', '-'}, 0x00f0}, /* LATIN SMALL LETTER ETH */
++ {{'n', '~'}, 0x00f1}, /* LATIN SMALL LETTER N WITH TILDE */
++ {{'n', '?'}, 0x00f1}, /* LATIN SMALL LETTER N WITH TILDE */
++ {{'o', '`'}, 0x00f2}, /* LATIN SMALL LETTER O WITH GRAVE */
++ {{'o', '!'}, 0x00f2}, /* LATIN SMALL LETTER O WITH GRAVE */
++ {{'o', '\''}, 0x00f3}, /* LATIN SMALL LETTER O WITH ACUTE */
++ {{'o', '^'}, 0x00f4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
++ {{'o', '>'}, 0x00f4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
++ {{'o', '~'}, 0x00f5}, /* LATIN SMALL LETTER O WITH TILDE */
++ {{'o', '?'}, 0x00f5}, /* LATIN SMALL LETTER O WITH TILDE */
++ {{'o', '"'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */
++ {{'o', ':'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */
++ {{'-', ':'}, 0x00f7}, /* DIVISION SIGN */
++ {{'o', '/'}, 0x00f8}, /* LATIN SMALL LETTER O WITH STROKE */
++ {{'u', '`'}, 0x00f9}, /* LATIN SMALL LETTER U WITH GRAVE */
++ {{'u', '!'}, 0x00f9}, /* LATIN SMALL LETTER U WITH GRAVE */
++ {{'u', '\''}, 0x00fa}, /* LATIN SMALL LETTER U WITH ACUTE */
++ {{'u', '^'}, 0x00fb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
++ {{'u', '>'}, 0x00fb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
++ {{'u', '"'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */
++ {{'u', ':'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */
++ {{'y', '\''}, 0x00fd}, /* LATIN SMALL LETTER Y WITH ACUTE */
++ {{'i', 'p'}, 0x00fe}, /* LATIN SMALL LETTER THORN */
++ {{'t', 'h'}, 0x00fe}, /* LATIN SMALL LETTER THORN */
++ {{'y', '"'}, 0x00ff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */
++ {{'y', ':'}, 0x00ff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */
++ {{'"', '['}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
++ {{'"', '\\'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
++ {{'"', ']'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
++ {{'"', '{'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */
++ {{'"', '|'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */
++ {{'"', '}'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */
++ {{'"', '~'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */
+ };
+
+ #define RESIZE_FLAG_H 1
diff --git a/patches/source/screen/45suppress_remap.patch b/patches/source/screen/45suppress_remap.patch
new file mode 100644
index 000000000..85109a2ef
--- /dev/null
+++ b/patches/source/screen/45suppress_remap.patch
@@ -0,0 +1,13 @@
+Author: Loic Minier <lool@dooz.org>
+Description: Unbreak several useful keybindings.
+--- a/termcap.c
++++ b/termcap.c
+@@ -552,8 +552,6 @@
+ else
+ break;
+ }
+- if (n < KMAP_KEYS)
+- domap = 1;
+ if (map == 0 && domap)
+ return 0;
+ if (map && !domap)
diff --git a/patches/source/screen/52fix_screen_utf8_nfd.patch b/patches/source/screen/52fix_screen_utf8_nfd.patch
new file mode 100644
index 000000000..0aa72d5ed
--- /dev/null
+++ b/patches/source/screen/52fix_screen_utf8_nfd.patch
@@ -0,0 +1,41 @@
+## 52fix_screen_utf8_nfd.dpatch by Nobuhiro Iwamatsu <iwamatsu@debian.org>
+##
+## DP: screen outputs screen "ÿ" after a connected character.
+## DP: This is a character without the need.
+## DP: This happens in UTF-8 environment.
+## DP: Before : screen$ ruby1.9.1 -e 'puts "\u304b\u3099.."'
+## DP: がÿ...
+## DP: patch applied : screen $ ruby1.9.1 -e 'puts "\u304b\u3099.."'
+## DP: が..
+## DP: Report from http://d.hatena.ne.jp/mrkn/20101014/fix_screen_utf8_nfd_bug
+## DP: Copyright Kenta Murata (mrkn) <mrkn@ruby-lang.org>
+## DP: Modified by Nobuhiro Iwamatsu <iwamatsu@debian.org>
+
+Index: screen/ansi.c
+===================================================================
+--- screen.orig/ansi.c 2012-03-20 22:15:02.000000000 +0100
++++ screen/ansi.c 2012-03-20 22:41:45.000000000 +0100
+@@ -725,6 +725,10 @@
+ LPutChar(&curr->w_layer, &omc, ox, oy);
+ LGotoPos(&curr->w_layer, curr->w_x, curr->w_y);
+ }
++ if (curr->w_mbcs)
++ {
++ curr->w_rend.mbcs = curr->w_mbcs = 0;
++ }
+ break;
+ }
+ font = curr->w_rend.font;
+Index: screen/display.c
+===================================================================
+--- screen.orig/display.c 2012-03-20 22:41:28.000000000 +0100
++++ screen/display.c 2012-03-20 22:41:45.000000000 +0100
+@@ -603,7 +603,7 @@
+ D_x += D_AM ? 1 : -1;
+ D_mbcs = 0;
+ }
+- else if (utf8_isdouble(c))
++ else if (utf8_isdouble(c) || (c >= 0xd800 && c < 0xe000))
+ {
+ D_mbcs = c;
+ D_x++;
diff --git a/patches/source/screen/58-show-encoding-hardstatus.patch b/patches/source/screen/58-show-encoding-hardstatus.patch
new file mode 100644
index 000000000..45fecdbfc
--- /dev/null
+++ b/patches/source/screen/58-show-encoding-hardstatus.patch
@@ -0,0 +1,41 @@
+Author: rascov@rascov.tw
+Date: Wed Feb 11 05:51:31 CST 2009
+Subject: show encoding in hardstatus, orginal from FreeBSD by yzlin@cs.nctu.edu.tw
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/screen/+bug/286810
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=533498
+
+Index: screen/screen.c
+===================================================================
+--- screen.orig/screen.c 2014-04-28 03:14:19.195018278 +0200
++++ screen/screen.c 2014-04-28 03:14:19.179018199 +0200
+@@ -2801,6 +2801,18 @@
+ }
+ p += strlen(p) - 1;
+ break;
++ #ifdef ENCODINGS
++ case 'e':
++ *p = 0;
++ D_encoding = nwin_options.encoding > 0 ? nwin_options.encoding : 0;
++ if (win && win->w_encoding)
++ {
++ *p++ = ' ';
++ strcpy(p, EncodingName(win->w_encoding));
++ }
++ p += strlen(p) - 1;
++ break;
++ #endif
+ case '{':
+ {
+ char rbuf[128];
+Index: screen/process.c
+===================================================================
+--- screen.orig/process.c 2014-04-28 03:14:19.195018278 +0200
++++ screen/process.c 2014-04-28 03:14:19.183018228 +0200
+@@ -3693,6 +3693,7 @@
+ {
+ WinSwitchEncoding(fore, n);
+ ResetCharsets(fore);
++ RedisplayDisplays(0);
+ }
+ else if (i && display)
+ D_encoding = n;
diff --git a/patches/source/screen/60-revert-screenrc-change.diff b/patches/source/screen/60-revert-screenrc-change.diff
new file mode 100644
index 000000000..1f208e1df
--- /dev/null
+++ b/patches/source/screen/60-revert-screenrc-change.diff
@@ -0,0 +1,13 @@
+--- screen-4.4.0/etc/etcscreenrc 2015-09-05 14:28:22.000000000 -0500
++++ screen-4.2.1/etc/etcscreenrc 2014-04-25 14:08:40.000000000 -0500
+@@ -68,8 +68,8 @@
+ #
+ # Do not use xterms alternate window buffer.
+ # This one would not add lines to the scrollback buffer.
+-termcap xterm|xterms|xs ti=\E7\E[?47l
+-terminfo xterm|xterms|xs ti=\E7\E[?47l
++#termcap xterm|xterms|xs ti=\E7\E[?47l
++#terminfo xterm|xterms|xs ti=\E7\E[?47l
+
+ #make hp700 termcap/info better
+ termcap hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
diff --git a/patches/source/screen/screen.SlackBuild b/patches/source/screen/screen.SlackBuild
new file mode 100755
index 000000000..2472c7c49
--- /dev/null
+++ b/patches/source/screen/screen.SlackBuild
@@ -0,0 +1,158 @@
+#!/bin/sh
+
+# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=screen
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2_slack14.2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-screen
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf screen-$VERSION
+tar xvf $CWD/screen-$VERSION.tar.?z* || exit 1
+
+cd screen-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply patches taken from Debian:
+for pf in \
+ 26source_encoding.patch.gz \
+ 45suppress_remap.patch.gz \
+ 52fix_screen_utf8_nfd.patch.gz \
+ 58-show-encoding-hardstatus.patch.gz \
+ ; do zcat $CWD/$pf | patch --verbose -p1 || exit 1
+done
+
+# Revert a change to /etc/screenrc introduced in screen-4.3.x that prevents
+# the console from being properly cleared when detaching from a screen session:
+zcat $CWD/60-revert-screenrc-change.diff.gz | patch -p1 --verbose || exit 1
+
+# Do not link against libelf:
+zcat $CWD/screen.no_libelf.diff.gz | patch -p1 --verbose || exit 1
+
+# Reconf after patching configure.ac:
+autoreconf -vif
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --with-sys-screenrc=/etc/screenrc \
+ --with-pty-mode=0620 \
+ --with-pty-group=5 \
+ --disable-pam \
+ --enable-telnet \
+ --disable-socket-dir \
+ --enable-use-locale \
+ --enable-colors256 \
+ --enable-rxvt_osc \
+ --build=$ARCH-slackware-linux || exit 1
+
+# Substitutions:
+perl -pi -e 's|.*#undef HAVE_BRAILLE.*|#define HAVE_BRAILLE 1|' config.h
+perl -pi -e 's|/usr/local/etc/screenrc|/etc/screenrc|' etc/etcscreenrc doc/*
+perl -pi -e 's|/local/etc/screenrc|/etc/screenrc|' doc/*
+
+# Build screen:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Prepare package:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Sorry, pal. Not around here.
+chmod 755 $PKG/usr/bin/screen-$VERSION
+mkdir -p $PKG/etc/skel
+cat etc/etcscreenrc > $PKG/etc/screenrc.new
+cat etc/screenrc > $PKG/etc/skel/.screenrc.new
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+gzip -9 $PKG/usr/man/man1/*
+mkdir -p $PKG/usr/doc/screen-$VERSION
+chmod 644 doc/FAQ
+cp -a COPYING ChangeLog HACKING INSTALL NEWS README TODO \
+ doc/FAQ doc/README.DOTSCREEN \
+ $PKG/usr/doc/screen-$VERSION
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat << EOF > $PKG/install/doinst.sh
+#!/bin/sh
+config() {
+ NEW="\$1"
+ OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r \$OLD ]; then
+ mv \$NEW \$OLD
+ elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy
+ rm \$NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/screenrc.new
+config etc/skel/.screenrc.new
+# This is probably safer than leaving the hidden .new file... maybe?
+rm -f etc/skel/.screenrc.new
+EOF
+
+# Build package:
+cd $PKG
+makepkg -l y -c n $TMP/screen-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/patches/source/screen/screen.no_libelf.diff b/patches/source/screen/screen.no_libelf.diff
new file mode 100644
index 000000000..992fb07ad
--- /dev/null
+++ b/patches/source/screen/screen.no_libelf.diff
@@ -0,0 +1,19 @@
+--- ./configure.ac.orig 2015-06-28 16:22:55.000000000 -0500
++++ ./configure.ac 2015-08-02 13:46:59.649097842 -0500
+@@ -202,16 +202,6 @@
+ #endif
+ ], LIBS="$LIBS -lsocket -linet";seqptx=1)
+
+-oldlibs="$LIBS"
+-LIBS="$LIBS -lelf"
+-AC_CHECKING(SVR4)
+-AC_TRY_LINK([#include <utmpx.h>
+-],,
+-[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
+-[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
+-,LIBS="$oldlibs")
+-AC_CHECK_HEADERS([stropts.h string.h strings.h])
+-
+ AC_CHECKING(for Solaris 2.x)
+ AC_EGREP_CPP(yes,
+ [#if defined(SVR4) && defined(sun)
diff --git a/patches/source/screen/slack-desc b/patches/source/screen/slack-desc
new file mode 100644
index 000000000..cfe3136b6
--- /dev/null
+++ b/patches/source/screen/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+screen: screen (screen manager with VT100/ANSI terminal emulation)
+screen:
+screen: Screen is a full-screen window manager that multiplexes a physical
+screen: terminal between several processes (typically interactive shells).
+screen: Each virtual terminal provides the functions of a DEC VT100 terminal
+screen: and several control functions from the ISO 6492 (ECMA 48, ANSI X3.64)
+screen: and ISO 2022 standards (e.g. insert/delete line and support for
+screen: multiple character sets). There is a scrollback history buffer for
+screen: each virtual terminal and a copy-and-paste mechanism that allows
+screen: moving text regions between windows.
+screen: