NCurses:如何确定是否支持ABI 6?

时间:2017-07-28 12:07:09

标签: version ncurses

有没有办法找出ncurses是否支持ABI 6?

if ( ABI 6 is supported ) {
    ...
}
else {
    ...
}

1 个答案:

答案 0 :(得分:1)

您可以通过比较头文件来看到这一点。有两个功能可以在编译时检查:

  • 鼠标版本在头文件中有所不同:
     /*                                                                             
      * Identify the mouse encoding version.                                        
      */                                                                            
    -#define NCURSES_MOUSE_VERSION 1                                                
    +#define NCURSES_MOUSE_VERSION 2
  • 定义了扩展颜色符号:
    @@ -374,9 +419,9 @@                                                             
     {                                                                              
         attr_t     attr;                                                           
         wchar_t    chars[CCHARW_MAX];                                              
    -#if 0                                                                          
    +#if 1                                                                          
     #undef NCURSES_EXT_COLORS                                                      
    -#define NCURSES_EXT_COLORS 20110404                                            
    +#define NCURSES_EXT_COLORS 20170729                                            
         int                ext_color;      /* color pair, must be more than 16-bits */
     #endif                                                                         
     }

也就是说,后者是(在ABI 5中)在ifdef中,它阻止定义NCURSES_EXT_COLORS符号。始终定义NCURSES_MOUSE_VERSION符号,但其值已更改。