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