diff options
Diffstat (limited to 'source/ap/screen')
-rw-r--r-- | source/ap/screen/26source_encoding.patch | 353 | ||||
-rw-r--r-- | source/ap/screen/45suppress_remap.patch | 13 | ||||
-rw-r--r-- | source/ap/screen/52fix_screen_utf8_nfd.patch | 41 | ||||
-rw-r--r-- | source/ap/screen/58-show-encoding-hardstatus.patch | 41 | ||||
-rwxr-xr-x | source/ap/screen/screen.SlackBuild | 54 | ||||
-rw-r--r-- | source/ap/screen/screen.crypt.diff | 126 | ||||
-rw-r--r-- | source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff | 22 | ||||
-rw-r--r-- | source/ap/screen/screen.no_libelf.diff | 19 |
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) |