summaryrefslogtreecommitdiffstats
path: root/source/ap/screen
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/screen')
-rw-r--r--source/ap/screen/26source_encoding.patch353
-rw-r--r--source/ap/screen/45suppress_remap.patch13
-rw-r--r--source/ap/screen/52fix_screen_utf8_nfd.patch41
-rw-r--r--source/ap/screen/58-show-encoding-hardstatus.patch41
-rwxr-xr-xsource/ap/screen/screen.SlackBuild54
-rw-r--r--source/ap/screen/screen.crypt.diff126
-rw-r--r--source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff22
-rw-r--r--source/ap/screen/screen.no_libelf.diff19
8 files changed, 504 insertions, 165 deletions
diff --git a/source/ap/screen/26source_encoding.patch b/source/ap/screen/26source_encoding.patch
new file mode 100644
index 000000000..1094ac518
--- /dev/null
+++ b/source/ap/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/source/ap/screen/45suppress_remap.patch b/source/ap/screen/45suppress_remap.patch
new file mode 100644
index 000000000..85109a2ef
--- /dev/null
+++ b/source/ap/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/source/ap/screen/52fix_screen_utf8_nfd.patch b/source/ap/screen/52fix_screen_utf8_nfd.patch
new file mode 100644
index 000000000..0aa72d5ed
--- /dev/null
+++ b/source/ap/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/source/ap/screen/58-show-encoding-hardstatus.patch b/source/ap/screen/58-show-encoding-hardstatus.patch
new file mode 100644
index 000000000..45fecdbfc
--- /dev/null
+++ b/source/ap/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/source/ap/screen/screen.SlackBuild b/source/ap/screen/screen.SlackBuild
index b182233c3..dfaad1413 100755
--- a/source/ap/screen/screen.SlackBuild
+++ b/source/ap/screen/screen.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# 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
@@ -20,21 +20,22 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-4.0.3}
-BUILD=${BUILD:-4}
+PKGNAM=screen
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ 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" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
@@ -47,6 +48,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-screen
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
@@ -55,12 +58,6 @@ tar xvf $CWD/screen-$VERSION.tar.?z* || exit 1
cd screen-$VERSION || exit 1
-# Increase the size of the termname buffer from 20 to 63:
-zcat $CWD/screen.d_termname.envterm.buffersizeincrease.diff.gz | patch -p1 --verbose || exit 1
-
-# Patch for newer glibc that might return NULL from crypt():
-zcat $CWD/screen.crypt.diff.gz | patch -p2 --verbose || exit 1
-
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -68,17 +65,39 @@ find . \
\( -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
+
+# 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 \
+./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-locale \
+ --enable-use-locale \
--enable-colors256 \
--enable-rxvt_osc \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
# Substitutions:
perl -pi -e 's|.*#undef HAVE_BRAILLE.*|#define HAVE_BRAILLE 1|' config.h
@@ -86,7 +105,7 @@ 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 || exit 1
+make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
# Prepare package:
@@ -94,6 +113,7 @@ make install DESTDIR=$PKG || exit 1
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
@@ -104,7 +124,7 @@ 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 INSTALL NEWS README TODO \
+cp -a COPYING ChangeLog HACKING INSTALL NEWS README TODO \
doc/FAQ doc/README.DOTSCREEN \
$PKG/usr/doc/screen-$VERSION
mkdir -p $PKG/install
diff --git a/source/ap/screen/screen.crypt.diff b/source/ap/screen/screen.crypt.diff
deleted file mode 100644
index 2c80efbbc..000000000
--- a/source/ap/screen/screen.crypt.diff
+++ /dev/null
@@ -1,126 +0,0 @@
-From cbaa666d4f21988164068a38ac915f8b4f3c4da3 Mon Sep 17 00:00:00 2001
-From: Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
-Date: Sat, 15 Sep 2012 03:40:23 +0000
-Subject: Guard against NULL returns from crypt().
-
-crypt() can return NULL on an error. Make sure these nulls are
-handled properly instead of crashing. The fix is thanks to a patch
-from Luks Nykrn <lnykryn@redhat.com>.
----
-diff --git a/src/acls.c b/src/acls.c
-index e728bb8..2f8c809 100644
---- a/src/acls.c
-+++ b/src/acls.c
-@@ -455,6 +455,16 @@ int recursive;
- return gp; /* *gp is NULL */
- }
-
-+static int
-+PasswordMatches(pw, password)
-+const char *pw, *password;
-+{
-+ if (!*password)
-+ return 0;
-+ char *buf = crypt(pw, password);
-+ return (buf && !strcmp(buf, password));
-+}
-+
- /*
- * Returns nonzero if failed or already linked.
- * Both users are created on demand.
-@@ -544,8 +554,7 @@ char *name, *pw1, *pw2;
-
- if (pw2 && *pw2 && *pw2 != '\377') /* provided a system password */
- {
-- if (!*pass || /* but needed none */
-- strcmp(crypt(pw2, pass), pass))
-+ if (!PasswordMatches(pw2, pass))
- {
- debug("System password mismatch\n");
- sorry++;
-@@ -554,11 +563,10 @@ char *name, *pw1, *pw2;
- else /* no pasword provided */
- if (*pass) /* but need one */
- sorry++;
--#endif
-+#endif /* CHECKLOGIN */
- if (pw1 && *pw1 && *pw1 != '\377') /* provided a screen password */
- {
-- if (!*u->u_password || /* but needed none */
-- strcmp(crypt(pw1, u->u_password), u->u_password))
-+ if (!PasswordMatches(pw1, u->u_password))
- {
- debug("screen password mismatch\n");
- sorry++;
-diff --git a/src/attacher.c b/src/attacher.c
-index 370d594..4e496be 100644
---- a/src/attacher.c
-+++ b/src/attacher.c
-@@ -882,6 +882,12 @@ screen_builtin_lck()
- salt[1] = 'A' + (int)((time(0) >> 6) % 26);
- salt[2] = 0;
- pass = crypt(mypass, salt);
-+ if (!pass)
-+ {
-+ fprintf(stderr, "crypt() error.\007\n");
-+ sleep(2);
-+ return;
-+ }
- pass = ppp->pw_passwd = SaveStr(pass);
- }
- #endif
-@@ -924,7 +930,8 @@ screen_builtin_lck()
- if (pam_error == PAM_SUCCESS)
- break;
- #else
-- if (!strncmp(crypt(cp1, pass), pass, strlen(pass)))
-+ char *buf = crypt(cp1, pass);
-+ if (buf && !strncmp(buf, pass, strlen(pass)))
- break;
- #endif
- debug("screen_builtin_lck: NO!!!!!\n");
-diff --git a/src/process.c b/src/process.c
-index bdf9355..30497a3 100644
---- a/src/process.c
-+++ b/src/process.c
-@@ -6360,6 +6360,12 @@ char *data;
- buf = crypt(u->u_password, salt);
- bzero(u->u_password, strlen(u->u_password));
- free((char *)u->u_password);
-+ if (!buf)
-+ {
-+ Msg(0, "[ crypt() error - no secure ]");
-+ u->u_password = NullStr;
-+ return;
-+ }
- u->u_password = SaveStr(buf);
- bzero(buf, strlen(buf));
- #ifdef COPY_PASTE
-diff --git a/src/socket.c b/src/socket.c
-index 8f9a315..a7755a4 100644
---- a/src/socket.c
-+++ b/src/socket.c
-@@ -1565,13 +1565,18 @@ int ilen;
- c = *(unsigned char *)ibuf++;
- if (c == '\r' || c == '\n')
- {
-+ char *buf = NULL;
- up = D_user->u_password;
- pwdata->buf[l] = 0;
-- if (strncmp(crypt(pwdata->buf, up), up, strlen(up)))
-+ buf = crypt(pwdata->buf, up);
-+ if (!buf || strncmp(buf, up, strlen(up)))
- {
- /* uh oh, user failed */
- bzero(pwdata->buf, sizeof(pwdata->buf));
-- AddStr("\r\nPassword incorrect.\r\n");
-+ if (!buf)
-+ AddStr("\r\ncrypt() failed.\r\n");
-+ else
-+ AddStr("\r\nPassword incorrect.\r\n");
- D_processinputdata = 0; /* otherwise freed by FreeDis */
- FreeDisplay();
- Msg(0, "Illegal reattach attempt from terminal %s.", pwdata->m.m_tty);
---
-cgit v0.9.0.2
-
diff --git a/source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff b/source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff
deleted file mode 100644
index 26765d6ca..000000000
--- a/source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- ./display.h.orig 2003-07-01 09:01:42.000000000 -0500
-+++ ./display.h 2011-07-18 16:01:03.691998366 -0500
-@@ -85,7 +85,7 @@
- struct win *d_other; /* pointer to other window */
- int d_nonblock; /* -1 don't block if obufmax reached */
- /* >0: block after nonblock secs */
-- char d_termname[20 + 1]; /* $TERM */
-+ char d_termname[63 + 1]; /* $TERM */
- char *d_tentry; /* buffer for tgetstr */
- char d_tcinited; /* termcap inited flag */
- int d_width, d_height; /* width/height of the screen */
---- ./screen.h.orig 2003-08-22 07:28:43.000000000 -0500
-+++ ./screen.h 2011-07-18 16:01:09.388004936 -0500
-@@ -202,7 +202,7 @@
- char preselect[20];
- int esc; /* his new escape character unless -1 */
- int meta_esc; /* his new meta esc character unless -1 */
-- char envterm[20 + 1]; /* terminal type */
-+ char envterm[63 + 1]; /* terminal type */
- int encoding; /* encoding of display */
- }
- attach;
diff --git a/source/ap/screen/screen.no_libelf.diff b/source/ap/screen/screen.no_libelf.diff
new file mode 100644
index 000000000..992fb07ad
--- /dev/null
+++ b/source/ap/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)