buildroot/package/fbterm/0003-C++11-compliance.patch

94 lines
2.2 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

lib/vterm_states: fix C++11 compliance
In C++11, narrowing a type is no longer allowed in structure
initializers:
struct foo { u16 u; };
foo f[] = { {0}, {-1} };
results in the gcc-6 to whine out loudly, and fail:
error: narrowing conversion of -1 from int to u16 {aka short unsigned int} inside { } [-Wnarrowing]
};
^
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
diff -durN fbterm-1.7.0.orig/src/lib/vterm_states.cpp fbterm-1.7.0/src/lib/vterm_states.cpp
--- fbterm-1.7.0.orig/src/lib/vterm_states.cpp 2010-10-06 06:23:08.000000000 +0200
+++ fbterm-1.7.0/src/lib/vterm_states.cpp 2016-08-13 16:54:29.495451127 +0200
@@ -22,6 +22,7 @@
#include "vterm.h"
#define ADDSAME(len) ((len) << 8)
+#define ENDSEQ { ((u16)-1) }
const VTerm::Sequence VTerm::control_sequences[] = {
{ 0, 0, ESkeep },
@@ -39,14 +40,14 @@
{ 0x1B, 0, ESesc },
{ 0x7F, 0, ESkeep },
{ 0x9B, 0, ESsquare },
- { -1}
+ ENDSEQ
};
const VTerm::Sequence VTerm::escape_sequences[] = {
{ 0, 0, ESnormal },
// ESnormal
- { -1 },
+ ENDSEQ,
// ESesc
{ '[', &VTerm::clear_param, ESsquare },
@@ -65,7 +66,7 @@
{ '8', &VTerm::restore_cursor, ESnormal },
{ '>', &VTerm::keypad_numeric, ESnormal },
{ '=', &VTerm::keypad_application, ESnormal },
- { -1 },
+ ENDSEQ,
// ESsquare
{ '[', 0, ESfunckey },
@@ -104,7 +105,7 @@
{ '`', &VTerm::cursor_position_col, ESnormal },
{ ']', &VTerm::linux_specific, ESnormal },
{ '}', &VTerm::fbterm_specific, ESnormal },
- { -1 },
+ ENDSEQ,
// ESnonstd
{ '0' | ADDSAME(9), &VTerm::set_palette, ESkeep },
@@ -112,25 +113,25 @@
{ 'a' | ADDSAME(5), &VTerm::set_palette, ESkeep },
{ 'P', &VTerm::begin_set_palette, ESkeep },
{ 'R', &VTerm::reset_palette, ESnormal },
- { -1 },
+ ENDSEQ,
// ESpercent
{ '@', &VTerm::clear_utf8, ESnormal },
{ 'G', &VTerm::set_utf8, ESnormal },
{ '8', &VTerm::set_utf8, ESnormal },
- { -1 },
+ ENDSEQ,
// EScharset
{ '0', &VTerm::set_charset, ESnormal },
{ 'B', &VTerm::set_charset, ESnormal },
{ 'U', &VTerm::set_charset, ESnormal },
{ 'K', &VTerm::set_charset, ESnormal },
- { -1 },
+ ENDSEQ,
// EShash
{ '8', &VTerm::screen_align, ESnormal },
- { -1 },
+ ENDSEQ,
// ESfunckey
- { -1 },
+ ENDSEQ,
};