-This implementation also provides
-\fBgetbegx\fR,
-\fBgetbegy\fR,
-\fBgetcurx\fR,
-\fBgetcury\fR,
-\fBgetmaxx\fR,
-\fBgetmaxy\fR,
-\fBgetparx\fR and
-\fBgetpary\fR
-for compatibility with older versions of curses.
-X/Open does not define a corresponding \fBgetcuryx\fP function,
-though that would be needed to make references to the WINDOW structure opaque.
+This implementation also provides functions
+\fB\%getbegx\fP,
+\fB\%getbegy\fP,
+\fB\%getcurx\fP,
+\fB\%getcury\fP,
+\fB\%getmaxx\fP,
+\fB\%getmaxy\fP,
+\fB\%getparx\fP and
+\fB\%getpary\fP
+for compatibility with older versions of \fIcurses\fP;
+see \fB\%curs_legacy\fP(3X).
+.PP
+Although X/Open Curses does not address this,
+many implementations provide members of the \fB\%WINDOW\fP structure
+containing values corresponding to these macros.
+For best portability, do not rely on using the data in \fB\%WINDOW\fP,
+since some implementations make \fB\%WINDOW\fP opaque (do not allow
+direct use of its members).
+.PP
+Besides the problem of opaque structures,
+the data stored in like-named members may not have like-values in
+different implementations.
+For example, the \fB\%WINDOW._maxx\fP and \fB\%WINDOW._maxy\fP values
+in \fI\%ncurses\fP have
+(at least since release 1.8.1)
+differed by one from some other implementations.
+The difference is hidden by means of the macro \fB\%getmaxyx\fP.