Bug 62167 - curses include
curses include
Status: CLOSED NOTABUG
Product: Red Hat Linux
Classification: Retired
Component: ncurses (Show other bugs)
7.2
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: wdovlrrw
Aaron Brown
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2002-03-27 21:28 EST by Andres J.
Modified: 2007-04-18 12:41 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2002-03-27 21:40:13 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Include in RedHat 7.0 (60.61 KB, text/plain)
2002-03-27 21:40 EST, Andres J.
no flags Details

  None (edit)
Description Andres J. 2002-03-27 21:28:26 EST
Description of Problem:
I develop a library using curses for my software. This with 
/usr/include/curses.h defined in RedHat 7.0.
In RedHat 7.2 this include change.
In RedHat 7.0 the "ldat" structure is defined for four fields.
In RedHat 7.2 the "ldat" structure is defined for zero field. This is my 
problem. When I compiling my library this error is display: "imcomplete type".

Version-Release number of selected component (if applicable):
NCURSES_VERSION "5.2"

How Reproducible:
Try to insert a character in "stdscr" using the "curses.h" definition.

Steps to Reproduce:
1. Develop a little program using "stdscr" structure
2. Insert a space in a line manipulating "stdscr"
3. gcc

Actual Results:
gcc fail and I don't know why.
If I use NCURSES_VERSION "5.1" I don't have problem.

Expected Results:
Tell me if is a bug or is my bug. And tell me how I can fixed(please).
I would like use NCURSES_VERSION "5.2" in my applications

Additional Information:
Thanks for your time.
Comment 1 Andres J. 2002-03-27 21:40:09 EST
Created attachment 51025 [details]
Include in RedHat 7.0
Comment 2 Bernhard Rosenkraenzer 2002-04-04 06:29:34 EST
This is because ldat is a private structure and you aren't supposed to manipulate it 
directly in your code. 
  
Older versions of ncurses just didn't enforce it. 
 
Really evil workaround to keep your old code working: 
Replace 
 
#include <curses.h> 
 
with 
 
#define ldat __ldat 
#include <curses.h> 
#undef ldat 
 
struct ldat { 
	chtype *text; 
	NCURSES_SIZE_T firstchar; 
	NCURSES_SIZE_T lastchar; 
	NCURSES_SIZE_T oldindex; 
}; 
 
 
 
The proper fix is not using ldat directly.

Note You need to log in before you can comment on or make changes to this bug.