0003-C++11-compliance.patch 2.2 KB

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