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 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.