xref: /OK3568_Linux_fs/buildroot/package/fbterm/0003-C++11-compliance.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunlib/vterm_states: fix C++11 compliance
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunIn C++11, narrowing a type is no longer allowed in structure
4*4882a593Smuzhiyuninitializers:
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun    struct foo { u16 u; };
7*4882a593Smuzhiyun    foo f[] = { {0}, {-1} };
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunresults in the gcc-6 to whine out loudly, and fail:
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun    error: narrowing conversion of ‘-1’ from ‘int’ to ‘u16 {aka short unsigned int}’ inside { } [-Wnarrowing]
12*4882a593Smuzhiyun     };
13*4882a593Smuzhiyun     ^
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunSigned-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
16*4882a593Smuzhiyun
17*4882a593Smuzhiyundiff -durN fbterm-1.7.0.orig/src/lib/vterm_states.cpp fbterm-1.7.0/src/lib/vterm_states.cpp
18*4882a593Smuzhiyun--- fbterm-1.7.0.orig/src/lib/vterm_states.cpp	2010-10-06 06:23:08.000000000 +0200
19*4882a593Smuzhiyun+++ fbterm-1.7.0/src/lib/vterm_states.cpp	2016-08-13 16:54:29.495451127 +0200
20*4882a593Smuzhiyun@@ -22,6 +22,7 @@
21*4882a593Smuzhiyun #include "vterm.h"
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun #define ADDSAME(len) ((len) << 8)
24*4882a593Smuzhiyun+#define ENDSEQ  { ((u16)-1) }
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun const VTerm::Sequence VTerm::control_sequences[] = {
27*4882a593Smuzhiyun 	{ 0,	0,	ESkeep },
28*4882a593Smuzhiyun@@ -39,14 +40,14 @@
29*4882a593Smuzhiyun 	{ 0x1B, 0,	ESesc },
30*4882a593Smuzhiyun 	{ 0x7F, 0,	ESkeep },
31*4882a593Smuzhiyun 	{ 0x9B, 0,	ESsquare },
32*4882a593Smuzhiyun-	{ -1}
33*4882a593Smuzhiyun+	ENDSEQ
34*4882a593Smuzhiyun };
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun const VTerm::Sequence VTerm::escape_sequences[] = {
37*4882a593Smuzhiyun 	{   0, 0, ESnormal },
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun 	// ESnormal
40*4882a593Smuzhiyun-	{ -1 },
41*4882a593Smuzhiyun+	ENDSEQ,
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun 	// ESesc
44*4882a593Smuzhiyun 	{ '[', &VTerm::clear_param,	ESsquare },
45*4882a593Smuzhiyun@@ -65,7 +66,7 @@
46*4882a593Smuzhiyun 	{ '8', &VTerm::restore_cursor,	ESnormal },
47*4882a593Smuzhiyun 	{ '>', &VTerm::keypad_numeric,	ESnormal },
48*4882a593Smuzhiyun 	{ '=', &VTerm::keypad_application,	ESnormal },
49*4882a593Smuzhiyun-	{ -1 },
50*4882a593Smuzhiyun+	ENDSEQ,
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun 	// ESsquare
53*4882a593Smuzhiyun 	{ '[', 0,	ESfunckey },
54*4882a593Smuzhiyun@@ -104,7 +105,7 @@
55*4882a593Smuzhiyun 	{ '`', &VTerm::cursor_position_col,	ESnormal },
56*4882a593Smuzhiyun 	{ ']', &VTerm::linux_specific, ESnormal },
57*4882a593Smuzhiyun 	{ '}', &VTerm::fbterm_specific, ESnormal },
58*4882a593Smuzhiyun-	{ -1 },
59*4882a593Smuzhiyun+	ENDSEQ,
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun 	// ESnonstd
62*4882a593Smuzhiyun 	{ '0' | ADDSAME(9), &VTerm::set_palette,    ESkeep },
63*4882a593Smuzhiyun@@ -112,25 +113,25 @@
64*4882a593Smuzhiyun 	{ 'a' | ADDSAME(5), &VTerm::set_palette,    ESkeep },
65*4882a593Smuzhiyun 	{ 'P', &VTerm::begin_set_palette, ESkeep },
66*4882a593Smuzhiyun 	{ 'R', &VTerm::reset_palette, ESnormal },
67*4882a593Smuzhiyun-	{ -1 },
68*4882a593Smuzhiyun+	ENDSEQ,
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun 	// ESpercent
71*4882a593Smuzhiyun 	{ '@', &VTerm::clear_utf8,	ESnormal },
72*4882a593Smuzhiyun 	{ 'G', &VTerm::set_utf8,	ESnormal },
73*4882a593Smuzhiyun 	{ '8', &VTerm::set_utf8,	ESnormal },
74*4882a593Smuzhiyun-	{ -1 },
75*4882a593Smuzhiyun+	ENDSEQ,
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun 	// EScharset
78*4882a593Smuzhiyun 	{ '0', &VTerm::set_charset, ESnormal },
79*4882a593Smuzhiyun 	{ 'B', &VTerm::set_charset, ESnormal },
80*4882a593Smuzhiyun 	{ 'U', &VTerm::set_charset, ESnormal },
81*4882a593Smuzhiyun 	{ 'K', &VTerm::set_charset, ESnormal },
82*4882a593Smuzhiyun-	{ -1 },
83*4882a593Smuzhiyun+	ENDSEQ,
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun 	// EShash
86*4882a593Smuzhiyun 	{ '8', &VTerm::screen_align,	ESnormal },
87*4882a593Smuzhiyun-	{ -1 },
88*4882a593Smuzhiyun+	ENDSEQ,
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun 	// ESfunckey
91*4882a593Smuzhiyun-	{ -1 },
92*4882a593Smuzhiyun+	ENDSEQ,
93*4882a593Smuzhiyun };
94