https://bugzilla.novell.com/show_bug.cgi?id=418613 User dickey@his.com added comment https://bugzilla.novell.com/show_bug.cgi?id=418613#c16 --- Comment #16 from Thomas Dickey <dickey@his.com> 2008-09-15 14:11:27 MDT --- The wrapping refers to the extra-opaque binding used for the pthread configuration. The corresponding library would be source-compatible, but not binary-compatible (so I don't think you would be accidentally linking successfully). curses declares several global variables. In this special case, ncurses replaces the variables with the return value of functions (such as _nc_COLOR_PAIRS). The reason for doing this is to limit the ways an application could manipulate the data in a threaded application. Briefly - I moved most of the non-public data (the ones beginning with "_nc_") into the structs in lib_data.c, then added the optional feature NCURSES_OPAQUE to disallow access to WINDOW struct-members. That much is binary-compatible (unless I made an error). I added functions to allow set/get of the WINDOW struct-members (which so far few programs use). Then I added the pthread-specific wrapping of variables. In some cases, this let me make some of them reside only in the SCREEN struct (which is a potential place for behavior change). However, in the normal library configuration, these are still global variables. It's possible that some logic change crept in though. When pthread is configured, NCURSES_OPAQUE is always defined for applications - which let me change the NCURSES_SIZE_T to an int - potentially allowing huge PAD's. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.