libpayload: PDCurses: Remove trailing whitespace

find . -type f |xargs perl -pi -e 's, *$,,'
find . -type f |xargs perl -pi -e 's,	*$,,'

Change-Id: I62c2bc15b7c395a68b68422e701edf98b08e27c6
Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-on: http://review.coreboot.org/12399
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Stefan Reinauer 2015-11-10 09:13:43 -08:00 committed by Martin Roth
parent 9b7bb4911d
commit 5bbc5e5e0d
23 changed files with 775 additions and 775 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,71 +2,71 @@ PDCurses Implementor's Guide
============================ ============================
Version 1.3 - 200?/??/?? - notes about official ports Version 1.3 - 200?/??/?? - notes about official ports
Version 1.2 - 2007/07/11 - added PDC_init_pair(), PDC_pair_content(), Version 1.2 - 2007/07/11 - added PDC_init_pair(), PDC_pair_content(),
version history; removed pdc_atrtab version history; removed pdc_atrtab
Version 1.1 - 2007/06/06 - minor cosmetic change Version 1.1 - 2007/06/06 - minor cosmetic change
Version 1.0 - 2007/04/01 - initial revision Version 1.0 - 2007/04/01 - initial revision
This document is for those wishing to port PDCurses to a new platform, This document is for those wishing to port PDCurses to a new platform,
or just wanting to better understand how it works. Nothing here should or just wanting to better understand how it works. Nothing here should
be needed for application programming; for that, refer to PDCurses.txt, be needed for application programming; for that, refer to PDCurses.txt,
as built in doc/, or distributed as a file separate from this source as built in doc/, or distributed as a file separate from this source
package. This document assumes that you've read the user-level package. This document assumes that you've read the user-level
documentation and are very familiar with application-level curses documentation and are very familiar with application-level curses
programming. programming.
If you want to submit your port for possible inclusion into the main If you want to submit your port for possible inclusion into the main
PDCurses distribution, please follow these guidelines: PDCurses distribution, please follow these guidelines:
- Don't modify anything in the pdcurses directory or in other port - Don't modify anything in the pdcurses directory or in other port
directories. Don't modify curses.h or curspriv.h unless absolutely directories. Don't modify curses.h or curspriv.h unless absolutely
necessary. (And prefer modifying curspriv.h over curses.h.) necessary. (And prefer modifying curspriv.h over curses.h.)
- Use the same indentation style, naming and scope conventions as the - Use the same indentation style, naming and scope conventions as the
existing code. existing code.
- Release all your code to the public domain -- no copyright. Code - Release all your code to the public domain -- no copyright. Code
under GPL, BSD, etc. will not be accepted. under GPL, BSD, etc. will not be accepted.
DATA STRUCTURES DATA STRUCTURES
--------------- ---------------
A port of PDCurses must provide acs_map[], a 128-element array of A port of PDCurses must provide acs_map[], a 128-element array of
chtypes, with values laid out based on the Alternate Character Set of chtypes, with values laid out based on the Alternate Character Set of
the VT100 (see curses.h). PDC_transform_line() must use this table; when the VT100 (see curses.h). PDC_transform_line() must use this table; when
it encounters a chtype with the A_ALTCHARSET flag set, and an A_CHARTEXT it encounters a chtype with the A_ALTCHARSET flag set, and an A_CHARTEXT
value in the range 0-127, it must render it using the A_CHARTEXT portion value in the range 0-127, it must render it using the A_CHARTEXT portion
of the corresponding value from this table, instead of the original of the corresponding value from this table, instead of the original
value. Also, values may be read from this table by apps, and passed value. Also, values may be read from this table by apps, and passed
through functions such as waddch(), which does no special processing on through functions such as waddch(), which does no special processing on
control characters (0-31 and 127) when the A_ALTCHARSET flag is set. control characters (0-31 and 127) when the A_ALTCHARSET flag is set.
Thus, any control characters used in acs_map[] should also have the Thus, any control characters used in acs_map[] should also have the
A_ALTCHARSET flag set. Implementations should provide suitable values A_ALTCHARSET flag set. Implementations should provide suitable values
for all the ACS_ macros defined in curses.h; other values in the table for all the ACS_ macros defined in curses.h; other values in the table
should be filled with their own indices (e.g., acs_map['E'] == 'E'). The should be filled with their own indices (e.g., acs_map['E'] == 'E'). The
table can be either hardwired, or filled by PDC_scr_open(). Existing table can be either hardwired, or filled by PDC_scr_open(). Existing
ports define it in pdcdisp.c, but this is not required. ports define it in pdcdisp.c, but this is not required.
FUNCTIONS FUNCTIONS
--------- ---------
A port of PDCurses must implement the following functions, with extern A port of PDCurses must implement the following functions, with extern
scope. These functions are traditionally divided into several modules, scope. These functions are traditionally divided into several modules,
as indicated below; this division is not required (only the functions as indicated below; this division is not required (only the functions
are), but may make it easier to follow for someone familiar with the are), but may make it easier to follow for someone familiar with the
existing ports. existing ports.
Any other functions you create as part of your implementation should Any other functions you create as part of your implementation should
have static scope, if possible. If they can't be static, they should be have static scope, if possible. If they can't be static, they should be
named with the "PDC_" prefix. This minimizes the risk of collision with named with the "PDC_" prefix. This minimizes the risk of collision with
an application's choices. an application's choices.
Current PDCurses style also uses a single leading underscore with the Current PDCurses style also uses a single leading underscore with the
name of any static function; and modified BSD/Allman-style indentation, name of any static function; and modified BSD/Allman-style indentation,
approximately equivalent to "indent -kr -i8 -bl -bli0", with adjustments approximately equivalent to "indent -kr -i8 -bl -bli0", with adjustments
to keep every line under 80 columns. This isn't essential, but a to keep every line under 80 columns. This isn't essential, but a
consistent style helps readability. consistent style helps readability.
@ -75,17 +75,17 @@ pdcdisp.c:
void PDC_gotoyx(int y, int x); void PDC_gotoyx(int y, int x);
Move the physical cursor (as opposed to the logical cursor affected by Move the physical cursor (as opposed to the logical cursor affected by
wmove()) to the given location. This is called mainly from doupdate(). wmove()) to the given location. This is called mainly from doupdate().
In general, this function need not compare the old location with the new In general, this function need not compare the old location with the new
one, and should just move the cursor unconditionally. one, and should just move the cursor unconditionally.
void PDC_transform_line(int lineno, int x, int len, const chtype *srcp); void PDC_transform_line(int lineno, int x, int len, const chtype *srcp);
The core output routine. It takes len chtype entities from srcp (a The core output routine. It takes len chtype entities from srcp (a
pointer into curscr) and renders them to the physical screen at line pointer into curscr) and renders them to the physical screen at line
lineno, column x. It must also translate characters 0-127 via acs_map[], lineno, column x. It must also translate characters 0-127 via acs_map[],
if they're flagged with A_ALTCHARSET in the attribute portion of the if they're flagged with A_ALTCHARSET in the attribute portion of the
chtype. chtype.
@ -94,22 +94,22 @@ pdcgetsc.c:
int PDC_get_columns(void); int PDC_get_columns(void);
Returns the size of the screen in columns. It's used in resize_term() to Returns the size of the screen in columns. It's used in resize_term() to
set the new value of COLS. (Some existing implementations also call it set the new value of COLS. (Some existing implementations also call it
internally from PDC_scr_open(), but this is not required.) internally from PDC_scr_open(), but this is not required.)
int PDC_get_cursor_mode(void); int PDC_get_cursor_mode(void);
Returns the size/shape of the cursor. The format of the result is Returns the size/shape of the cursor. The format of the result is
unspecified, except that it must be returned as an int. This function is unspecified, except that it must be returned as an int. This function is
called from initscr(), and the result is stored in SP->orig_cursor, called from initscr(), and the result is stored in SP->orig_cursor,
which is used by PDC_curs_set() to determine the size/shape of the which is used by PDC_curs_set() to determine the size/shape of the
cursor in normal visibility mode (curs_set(1)). cursor in normal visibility mode (curs_set(1)).
int PDC_get_rows(void); int PDC_get_rows(void);
Returns the size of the screen in rows. It's used in resize_term() to Returns the size of the screen in rows. It's used in resize_term() to
set the new value of LINES. (Some existing implementations also call it set the new value of LINES. (Some existing implementations also call it
internally from PDC_scr_open(), but this is not required.) internally from PDC_scr_open(), but this is not required.)
@ -148,23 +148,23 @@ TRUE).
int PDC_modifiers_set(void); int PDC_modifiers_set(void);
Called from PDC_return_key_modifiers(). If your platform needs to do Called from PDC_return_key_modifiers(). If your platform needs to do
anything in response to a change in SP->return_key_modifiers, do it anything in response to a change in SP->return_key_modifiers, do it
here. Returns OK or ERR, which is passed on by the caller. here. Returns OK or ERR, which is passed on by the caller.
int PDC_mouse_set(void); int PDC_mouse_set(void);
Called by mouse_set(), mouse_on(), and mouse_off() -- all the functions Called by mouse_set(), mouse_on(), and mouse_off() -- all the functions
that modify SP->_trap_mbe. If your platform needs to do anything in that modify SP->_trap_mbe. If your platform needs to do anything in
response to a change in SP->_trap_mbe (for example, turning the mouse response to a change in SP->_trap_mbe (for example, turning the mouse
cursor on or off), do it here. Returns OK or ERR, which is passed on by cursor on or off), do it here. Returns OK or ERR, which is passed on by
the caller. the caller.
void PDC_set_keyboard_binary(bool on); void PDC_set_keyboard_binary(bool on);
Set keyboard input to "binary" mode. If you need to do something to keep Set keyboard input to "binary" mode. If you need to do something to keep
the OS from processing ^C, etc. on your platform, do it here. TRUE turns the OS from processing ^C, etc. on your platform, do it here. TRUE turns
the mode on; FALSE reverts it. This function is called from raw() and the mode on; FALSE reverts it. This function is called from raw() and
noraw(). noraw().
@ -173,90 +173,90 @@ pdcscrn.c:
bool PDC_can_change_color(void); bool PDC_can_change_color(void);
Returns TRUE if init_color() and color_content() give meaningful Returns TRUE if init_color() and color_content() give meaningful
results, FALSE otherwise. Called from can_change_color(). results, FALSE otherwise. Called from can_change_color().
int PDC_color_content(short color, short *red, short *green, short *blue); int PDC_color_content(short color, short *red, short *green, short *blue);
The core of color_content(). This does all the work of that function, The core of color_content(). This does all the work of that function,
except checking for values out of range and null pointers. except checking for values out of range and null pointers.
int PDC_init_color(short color, short red, short green, short blue); int PDC_init_color(short color, short red, short green, short blue);
The core of init_color(). This does all the work of that function, The core of init_color(). This does all the work of that function,
except checking for values out of range. except checking for values out of range.
void PDC_init_pair(short pair, short fg, short bg); void PDC_init_pair(short pair, short fg, short bg);
The core of init_pair(). This does all the work of that function, except The core of init_pair(). This does all the work of that function, except
checking for values out of range. The values passed to this function checking for values out of range. The values passed to this function
should be returned by a call to PDC_pair_content() with the same pair should be returned by a call to PDC_pair_content() with the same pair
number. PDC_transform_line() should use the specified colors when number. PDC_transform_line() should use the specified colors when
rendering a chtype with the given pair number. rendering a chtype with the given pair number.
int PDC_pair_content(short pair, short *fg, short *bg); int PDC_pair_content(short pair, short *fg, short *bg);
The core of pair_content(). This does all the work of that function, The core of pair_content(). This does all the work of that function,
except checking for values out of range and null pointers. except checking for values out of range and null pointers.
void PDC_reset_prog_mode(void); void PDC_reset_prog_mode(void);
The non-portable functionality of reset_prog_mode() is handled here -- The non-portable functionality of reset_prog_mode() is handled here --
whatever's not done in _restore_mode(). In current ports: In OS/2, this whatever's not done in _restore_mode(). In current ports: In OS/2, this
sets the keyboard to binary mode; in Win32, it enables or disables the sets the keyboard to binary mode; in Win32, it enables or disables the
mouse pointer to match the saved mode; in others it does nothing. mouse pointer to match the saved mode; in others it does nothing.
void PDC_reset_shell_mode(void); void PDC_reset_shell_mode(void);
The same thing, for reset_shell_mode(). In OS/2 and Win32, it restores The same thing, for reset_shell_mode(). In OS/2 and Win32, it restores
the default console mode; in others it does nothing. the default console mode; in others it does nothing.
int PDC_resize_screen(int nlines, int ncols); int PDC_resize_screen(int nlines, int ncols);
This does the main work of resize_term(). It may respond to non-zero This does the main work of resize_term(). It may respond to non-zero
parameters, by setting the screen to the specified size; to zero parameters, by setting the screen to the specified size; to zero
parameters, by setting the screen to a size chosen by the user at parameters, by setting the screen to a size chosen by the user at
runtime, in an unspecified way (e.g., by dragging the edges of the runtime, in an unspecified way (e.g., by dragging the edges of the
window); or both. It may also do nothing, if there's no appropriate window); or both. It may also do nothing, if there's no appropriate
action for the platform. action for the platform.
void PDC_restore_screen_mode(int i); void PDC_restore_screen_mode(int i);
Called from _restore_mode() in kernel.c, this function does the actual Called from _restore_mode() in kernel.c, this function does the actual
mode changing, if applicable. Currently used only in DOS and OS/2. mode changing, if applicable. Currently used only in DOS and OS/2.
void PDC_save_screen_mode(int i); void PDC_save_screen_mode(int i);
Called from _save_mode() in kernel.c, this function saves the actual Called from _save_mode() in kernel.c, this function saves the actual
screen mode, if applicable. Currently used only in DOS and OS/2. screen mode, if applicable. Currently used only in DOS and OS/2.
void PDC_scr_close(void); void PDC_scr_close(void);
The platform-specific part of endwin(). It may restore the image of the The platform-specific part of endwin(). It may restore the image of the
original screen saved by PDC_scr_open(), if the PDC_RESTORE_SCREEN original screen saved by PDC_scr_open(), if the PDC_RESTORE_SCREEN
environment variable is set; either way, if using an existing terminal, environment variable is set; either way, if using an existing terminal,
this function should restore it to the mode it had at startup, and move this function should restore it to the mode it had at startup, and move
the cursor to the lower left corner. (The X11 port does nothing.) the cursor to the lower left corner. (The X11 port does nothing.)
void PDC_scr_free(void); void PDC_scr_free(void);
Frees the memory for SP allocated by PDC_scr_open(). Called by Frees the memory for SP allocated by PDC_scr_open(). Called by
delscreen(). delscreen().
int PDC_scr_open(int argc, char **argv); int PDC_scr_open(int argc, char **argv);
The platform-specific part of initscr(). It's actually called from The platform-specific part of initscr(). It's actually called from
Xinitscr(); the arguments, if present, correspond to those used with Xinitscr(); the arguments, if present, correspond to those used with
main(), and may be used to set the title of the terminal window, or for main(), and may be used to set the title of the terminal window, or for
other, platform-specific purposes. (The arguments are currently used other, platform-specific purposes. (The arguments are currently used
only in X11.) PDC_scr_open() must allocate memory for SP, and must only in X11.) PDC_scr_open() must allocate memory for SP, and must
initialize acs_map[] (unless it's preset) and several members of SP, initialize acs_map[] (unless it's preset) and several members of SP,
including lines, cols, mouse_wait, orig_attr (and if orig_attr is TRUE, including lines, cols, mouse_wait, orig_attr (and if orig_attr is TRUE,
orig_fore and orig_back), mono, _restore and _preserve. (Although SP is orig_fore and orig_back), mono, _restore and _preserve. (Although SP is
used the same way in all ports, it's allocated here in order to allow used the same way in all ports, it's allocated here in order to allow
the X11 port to map it to a block of shared memory.) If using an the X11 port to map it to a block of shared memory.) If using an
existing terminal, and the environment variable PDC_RESTORE_SCREEN is existing terminal, and the environment variable PDC_RESTORE_SCREEN is
set, this function may also store the existing screen image for later set, this function may also store the existing screen image for later
restoration by PDC_scr_close(). restoration by PDC_scr_close().
@ -265,9 +265,9 @@ pdcsetsc.c:
int PDC_curs_set(int visibility); int PDC_curs_set(int visibility);
Called from curs_set(). Changes the appearance of the cursor -- 0 turns Called from curs_set(). Changes the appearance of the cursor -- 0 turns
it off, 1 is normal (the terminal's default, if applicable, as it off, 1 is normal (the terminal's default, if applicable, as
determined by SP->orig_cursor), and 2 is high visibility. The exact determined by SP->orig_cursor), and 2 is high visibility. The exact
appearance of these modes is not specified. appearance of these modes is not specified.
@ -276,30 +276,30 @@ pdcutil.c:
void PDC_beep(void); void PDC_beep(void);
Emits a short audible beep. If this is not possible on your platform, Emits a short audible beep. If this is not possible on your platform,
you must set SP->audible to FALSE during initialization (i.e., from you must set SP->audible to FALSE during initialization (i.e., from
PDC_scr_open() -- not here); otherwise, set it to TRUE. This function is PDC_scr_open() -- not here); otherwise, set it to TRUE. This function is
called from beep(). called from beep().
void PDC_napms(int ms); void PDC_napms(int ms);
This is the core delay routine, called by napms(). It pauses for about This is the core delay routine, called by napms(). It pauses for about
(the X/Open spec says "at least") ms milliseconds, then returns. High (the X/Open spec says "at least") ms milliseconds, then returns. High
degrees of accuracy and precision are not expected (though desirable, if degrees of accuracy and precision are not expected (though desirable, if
you can achieve them). More important is that this function gives back you can achieve them). More important is that this function gives back
the process' time slice to the OS, so that PDCurses idles at low CPU the process' time slice to the OS, so that PDCurses idles at low CPU
usage. usage.
const char *PDC_sysname(void); const char *PDC_sysname(void);
Returns a short string describing the platform, such as "DOS" or "X11". Returns a short string describing the platform, such as "DOS" or "X11".
This is used by longname(). It must be no more than 100 characters; it This is used by longname(). It must be no more than 100 characters; it
should be much, much shorter (existing platforms use no more than 5). should be much, much shorter (existing platforms use no more than 5).
-------------------------------------------------------------------------- --------------------------------------------------------------------------
The following functions are implemented in the platform directories, but The following functions are implemented in the platform directories, but
are accessed directly by apps. Refer to the user documentation for their are accessed directly by apps. Refer to the user documentation for their
descriptions: descriptions:

View File

@ -16,8 +16,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
Prefix: %base Prefix: %base
%description %description
PDCurses for X11 is an implementation of the curses library that lets PDCurses for X11 is an implementation of the curses library that lets
you build text-mode curses programs as native X11 applications. For more you build text-mode curses programs as native X11 applications. For more
information, visit http://pdcurses.sourceforge.net/ information, visit http://pdcurses.sourceforge.net/
%prep %prep
@ -25,7 +25,7 @@ information, visit http://pdcurses.sourceforge.net/
%build %build
./configure --prefix=%{base} ./configure --prefix=%{base}
make make
%install %install
make DESTDIR=$RPM_BUILD_ROOT install make DESTDIR=$RPM_BUILD_ROOT install

View File

@ -1,7 +1,7 @@
Welcome to PDCurses! Welcome to PDCurses!
==================== ====================
Public Domain Curses, aka PDCurses, is an implementation of X/Open Public Domain Curses, aka PDCurses, is an implementation of X/Open
curses for multiple platforms. The latest version can be found at: curses for multiple platforms. The latest version can be found at:
http://pdcurses.sourceforge.net/ http://pdcurses.sourceforge.net/
@ -12,14 +12,14 @@ For changes, see the HISTORY file.
Legal Stuff Legal Stuff
----------- -----------
The core package is in the public domain, but small portions of PDCurses The core package is in the public domain, but small portions of PDCurses
are subject to copyright under various licenses. Each directory are subject to copyright under various licenses. Each directory
contains a README file, with a section titled "Distribution Status" contains a README file, with a section titled "Distribution Status"
which describes the status of the files in that directory. which describes the status of the files in that directory.
If you use PDCurses in an application, an acknowledgement would be If you use PDCurses in an application, an acknowledgement would be
appreciated, but is not mandatory. If you make corrections or appreciated, but is not mandatory. If you make corrections or
enhancements to PDCurses, please forward them to the current maintainer enhancements to PDCurses, please forward them to the current maintainer
for the benefit of other users. for the benefit of other users.
This software is provided AS IS with NO WARRANTY whatsoever. This software is provided AS IS with NO WARRANTY whatsoever.
@ -28,17 +28,17 @@ This software is provided AS IS with NO WARRANTY whatsoever.
Ports Ports
----- -----
PDCurses has been ported to DOS, OS/2, Win32, X11 and SDL. A directory PDCurses has been ported to DOS, OS/2, Win32, X11 and SDL. A directory
containing the port-specific source files exists for each of these containing the port-specific source files exists for each of these
platforms. Build instructions are in the README file for each platform. platforms. Build instructions are in the README file for each platform.
Distribution Status Distribution Status
------------------- -------------------
All files in this directory except configure, config.guess and All files in this directory except configure, config.guess and
config.sub are released to the Public Domain. config.guess and config.sub are released to the Public Domain. config.guess and
config.sub are under the GPL; configure is under a free license config.sub are under the GPL; configure is under a free license
described within it. described within it.

View File

@ -15,7 +15,7 @@ AC_CANONICAL_SYSTEM([])
mymakefile="Makefile" mymakefile="Makefile"
on_qnx=no on_qnx=no
case "$target" in case "$target" in
*hp-hpux*) *hp-hpux*)
SYS_DEFS="-D_HPUX_SOURCE" SYS_DEFS="-D_HPUX_SOURCE"
;; ;;
*ibm-aix*) *ibm-aix*)

View File

@ -1,25 +1,25 @@
PDCurses Demos PDCurses Demos
============== ==============
This directory contains demonstration programs to show and test the This directory contains demonstration programs to show and test the
capabilities of curses libraries. Some of them predate PDCurses, capabilities of curses libraries. Some of them predate PDCurses,
PCcurses or even pcurses/ncurses. Although some PDCurses-specific code PCcurses or even pcurses/ncurses. Although some PDCurses-specific code
has been added, all programs remain portable to other implementations has been added, all programs remain portable to other implementations
(at a minimum, to ncurses). (at a minimum, to ncurses).
Building Building
-------- --------
The demos are built by the platform-specific makefiles, in the platform The demos are built by the platform-specific makefiles, in the platform
directories. Alternatively, you can build them manually, individually, directories. Alternatively, you can build them manually, individually,
and link with any curses library; e.g., "cc -lcurses -orain rain.c". and link with any curses library; e.g., "cc -lcurses -orain rain.c".
There are no dependencies besides curses and the standard C library, and There are no dependencies besides curses and the standard C library, and
no configuration is needed. no configuration is needed.
Distribution Status Distribution Status
------------------- -------------------
Public Domain, except for rain.c and worm.c, which are under the ncurses Public Domain, except for rain.c and worm.c, which are under the ncurses
license (MIT-like). license (MIT-like).

View File

@ -23,16 +23,16 @@ convenient order. Once all data have been added, the routine
refresh() is called. The package then determines what changes have refresh() is called. The package then determines what changes have
been made which affect the screen. The screen contents are then been made which affect the screen. The screen contents are then
changed to reflect those characters now in the window, using a changed to reflect those characters now in the window, using a
sequence of operations optimized for the type of terminal in use. sequence of operations optimized for the type of terminal in use.
At a higher level routines combining the actions of move() and addch() At a higher level routines combining the actions of move() and addch()
are defined, as are routines to add whole strings and to perform are defined, as are routines to add whole strings and to perform
format conversions in the manner of printf(). format conversions in the manner of printf().
Interfaces are also defined to erase the entire window and to specify Interfaces are also defined to erase the entire window and to specify
the attributes of individual characters in the window. Attributes the attributes of individual characters in the window. Attributes
such as inverse video, underline and blink can be used on a such as inverse video, underline and blink can be used on a
per-character basis. per-character basis.
New windows can be created by allowing the application to build New windows can be created by allowing the application to build
several images of the screen and display the appropriate one very several images of the screen and display the appropriate one very
@ -41,18 +41,18 @@ each routine that manipulates the default window, stdscr, there is a
corresponding routine prefixed with w to manipulate the contents of a corresponding routine prefixed with w to manipulate the contents of a
specified window; for example, move() and wmove(). In fact, move(...) specified window; for example, move() and wmove(). In fact, move(...)
is functionally equivalent to wmove( stdscr, ...). This is similar to is functionally equivalent to wmove( stdscr, ...). This is similar to
the interface offered by printf(...) and fprintf(stdout, ...). the interface offered by printf(...) and fprintf(stdout, ...).
Windows do not have to correspond to the entire screen. It is Windows do not have to correspond to the entire screen. It is
possible to create smaller windows, and also to indicate that the possible to create smaller windows, and also to indicate that the
window is only partially visible on the screen. Furthermore, large window is only partially visible on the screen. Furthermore, large
windows or pads, which are bigger than the actual screen size, may be windows or pads, which are bigger than the actual screen size, may be
created. created.
Interfaces are also defined to allow input character manipulation and Interfaces are also defined to allow input character manipulation and
to disable and enable many input attributes: character echo, single to disable and enable many input attributes: character echo, single
character input with or without signal processing (cbreak or raw character input with or without signal processing (cbreak or raw
modes), carriage returns mapping to newlines, screen scrolling, etc. modes), carriage returns mapping to newlines, screen scrolling, etc.
Data Types and the <curses.h> Header Data Types and the <curses.h> Header
@ -60,14 +60,14 @@ Data Types and the <curses.h> Header
The data types supported by curses are described in this section. The data types supported by curses are described in this section.
As the library supports a procedural interface to the data types, actual As the library supports a procedural interface to the data types, actual
structure contents are not described. All curses data are manipulated structure contents are not described. All curses data are manipulated
using the routines provided. using the routines provided.
THE <curses.h> HEADER THE <curses.h> HEADER
The <curses.h> header defines various constants and declares the data The <curses.h> header defines various constants and declares the data
types that are available to the application. types that are available to the application.
@ -82,8 +82,8 @@ The following data types are declared:
cchar_t the wide-character equivalent of chtype cchar_t the wide-character equivalent of chtype
attr_t for WA_-style attributes attr_t for WA_-style attributes
The actual WINDOW and SCREEN objects used to store information are The actual WINDOW and SCREEN objects used to store information are
created by the corresponding routines and a pointer to them is provided. created by the corresponding routines and a pointer to them is provided.
All manipulation is through that pointer. All manipulation is through that pointer.
@ -93,15 +93,15 @@ The following variables are defined:
LINES number of lines on terminal screen LINES number of lines on terminal screen
COLS number of columns on terminal screen COLS number of columns on terminal screen
stdscr pointer to the default screen window stdscr pointer to the default screen window
curscr pointer to the current screen image curscr pointer to the current screen image
SP pointer to the current SCREEN struct SP pointer to the current SCREEN struct
Mouse_status status of the mouse Mouse_status status of the mouse
COLORS number of colors available COLORS number of colors available
COLOR_PAIRS number of color pairs available COLOR_PAIRS number of color pairs available
TABSIZE size of one TAB block TABSIZE size of one TAB block
acs_map[] alternate character set map acs_map[] alternate character set map
ttytype[] terminal name/description ttytype[] terminal name/description
CONSTANTS CONSTANTS
@ -118,7 +118,7 @@ GENERAL
VIDEO ATTRIBUTES VIDEO ATTRIBUTES
Normally, attributes are a property of the character. Normally, attributes are a property of the character.
For chtype: For chtype:
@ -129,7 +129,7 @@ For chtype:
A_INVIS invisible A_INVIS invisible
A_ITALIC italic A_ITALIC italic
A_LEFTLINE line along the left edge A_LEFTLINE line along the left edge
A_PROTECT protected (?) -- PDCurses renders this as a A_PROTECT protected (?) -- PDCurses renders this as a
combination of the *LINE attributes combination of the *LINE attributes
A_REVERSE reverse video A_REVERSE reverse video
A_RIGHTLINE line along the right edge A_RIGHTLINE line along the right edge
@ -140,8 +140,8 @@ For chtype:
A_CHARTEXT bit-mask to extract a character A_CHARTEXT bit-mask to extract a character
A_COLOR bit-mask to extract a color-pair A_COLOR bit-mask to extract a color-pair
Not all attributes will work on all terminals. A_RIGHTLINE, A_LEFTLINE Not all attributes will work on all terminals. A_RIGHTLINE, A_LEFTLINE
and A_ITALIC are specific to PDCurses. A_INVIS and A_ITALIC are given and A_ITALIC are specific to PDCurses. A_INVIS and A_ITALIC are given
the same value in PDCurses. the same value in PDCurses.
For attr_t: For attr_t:
@ -158,14 +158,14 @@ For attr_t:
WA_STANDOUT same as A_STANDOUT WA_STANDOUT same as A_STANDOUT
WA_UNDERLINE same as A_UNDERLINE WA_UNDERLINE same as A_UNDERLINE
Note that while A_LEFTLINE and A_RIGHTLINE are PDCurses-specific, Note that while A_LEFTLINE and A_RIGHTLINE are PDCurses-specific,
WA_LEFT and WA_RIGHT are standard. The following are also defined, for WA_LEFT and WA_RIGHT are standard. The following are also defined, for
compatibility, but currently have no effect in PDCurses: WA_HORIZONTAL, compatibility, but currently have no effect in PDCurses: WA_HORIZONTAL,
WA_LOW, WA_TOP, WA_VERTICAL. WA_LOW, WA_TOP, WA_VERTICAL.
THE ALTERNATE CHARACTER SET THE ALTERNATE CHARACTER SET
For use in chtypes and with related functions. These are a portable way For use in chtypes and with related functions. These are a portable way
to represent graphics characters on different terminals. to represent graphics characters on different terminals.
VT100-compatible symbols -- box characters: VT100-compatible symbols -- box characters:
@ -200,7 +200,7 @@ for optimum portability:
ACS_RARROW right arrow ACS_RARROW right arrow
ACS_DARROW down arrow ACS_DARROW down arrow
ACS_UARROW up arrow ACS_UARROW up arrow
ACS_BOARD checkerboard -- lighter (less dense) than ACS_BOARD checkerboard -- lighter (less dense) than
ACS_CKBOARD ACS_CKBOARD
ACS_LANTERN lantern symbol ACS_LANTERN lantern symbol
ACS_BLOCK solid block ACS_BLOCK solid block
@ -230,7 +230,7 @@ Box character aliases:
ACS_SBSB same as ACS_VLINE ACS_SBSB same as ACS_VLINE
ACS_SSSS same as ACS_PLUS ACS_SSSS same as ACS_PLUS
For cchar_t and wide-character functions, WACS_ equivalents are also For cchar_t and wide-character functions, WACS_ equivalents are also
defined. defined.
COLORS COLORS
@ -246,7 +246,7 @@ For use with init_pair(), color_set(), etc.:
COLOR_YELLOW COLOR_YELLOW
COLOR_WHITE COLOR_WHITE
Use these instead of numeric values. The definition of the colors Use these instead of numeric values. The definition of the colors
depends on the implementation of curses. depends on the implementation of curses.
@ -354,19 +354,19 @@ The virtual keypad is arranged like this:
left B2 right left B2 right
C1 down C3 C1 down C3
This list is incomplete -- see curses.h for the full list, and use the This list is incomplete -- see curses.h for the full list, and use the
testcurs demo to see what values are actually returned. The above are testcurs demo to see what values are actually returned. The above are
just the keys required by X/Open. In particular, PDCurses defines many just the keys required by X/Open. In particular, PDCurses defines many
CTL_ and ALT_ combinations; these are not portable. CTL_ and ALT_ combinations; these are not portable.
FUNCTIONS FUNCTIONS
The following table lists each curses routine and the name of the manual The following table lists each curses routine and the name of the manual
page on which it is described. page on which it is described.
Functions from the X/Open curses standard -- complete, except for Functions from the X/Open curses standard -- complete, except for
getch() and ungetch(), which are implemented as macros for DOS getch() and ungetch(), which are implemented as macros for DOS
compatibility: compatibility:
Curses Function Manual Page Name Curses Function Manual Page Name
@ -649,9 +649,9 @@ compatibility:
wtouchln touch wtouchln touch
wvline border wvline border
Wide-character functions from the X/Open standard -- these are only Wide-character functions from the X/Open standard -- these are only
available when PDCurses is built with PDC_WIDE defined, and the available when PDCurses is built with PDC_WIDE defined, and the
prototypes are only available from curses.h when PDC_WIDE is defined prototypes are only available from curses.h when PDC_WIDE is defined
before its inclusion in your app: before its inclusion in your app:
addnwstr addstr addnwstr addstr
@ -781,7 +781,7 @@ Functions from ncurses:
wenclose mouse wenclose mouse
wmouse_trafo mouse wmouse_trafo mouse
PDCurses-specific functions -- avoid these in code that's intended to be PDCurses-specific functions -- avoid these in code that's intended to be
portable: portable:
addrawch addch addrawch addch

View File

@ -1,93 +1,93 @@
SDL Considerations SDL Considerations
================== ==================
There are no special requirements to use PDCurses for SDL -- all There are no special requirements to use PDCurses for SDL -- all
PDCurses-compatible code should work fine. (In fact, you can even build PDCurses-compatible code should work fine. (In fact, you can even build
against the Win32 console pdcurses.dll, and then swap in the SDL against the Win32 console pdcurses.dll, and then swap in the SDL
pdcurses.dll.) Nothing extra is needed beyond the base SDL library. pdcurses.dll.) Nothing extra is needed beyond the base SDL library.
However, there are some optional special features, described here. However, there are some optional special features, described here.
The principal limitation of this port is that input is currently The principal limitation of this port is that input is currently
restricted to ASCII (i.e., 0-127), plus the special keys like KEY_LEFT. restricted to ASCII (i.e., 0-127), plus the special keys like KEY_LEFT.
(You could have Unicode input, but then the input wouldn't match the (You could have Unicode input, but then the input wouldn't match the
output, which is in Code Page 437.) Also, see the note about the output, which is in Code Page 437.) Also, see the note about the
potential for incomplete output under "PDC_update_rects()", below. potential for incomplete output under "PDC_update_rects()", below.
Fonts Fonts
----- -----
The font is a simple BMP, 32 characters wide by 8 characters tall, The font is a simple BMP, 32 characters wide by 8 characters tall,
preferably with a palette. (BMPs without palettes still work, but in preferably with a palette. (BMPs without palettes still work, but in
that case, no attributes will be available, nor will the cursor work.) that case, no attributes will be available, nor will the cursor work.)
The first entry in the palette (usually black) is treated as the The first entry in the palette (usually black) is treated as the
background color; the last entry (usually white) is treated as the background color; the last entry (usually white) is treated as the
foreground. These are changed or made transparent as appropriate; any foreground. These are changed or made transparent as appropriate; any
other colors in the palette are passed through unchanged. So -- although other colors in the palette are passed through unchanged. So -- although
a one-bit depth is sufficient for a normal font -- you could redraw some a one-bit depth is sufficient for a normal font -- you could redraw some
characters as multi-colored tiles. characters as multi-colored tiles.
The font must be monospaced. The size of each character is derived by The font must be monospaced. The size of each character is derived by
dividing the width of the BMP by 32 and the height by 8. There is no dividing the width of the BMP by 32 and the height by 8. There is no
constraint on the dimensions. constraint on the dimensions.
As provided in the default font and expected by acs_map[], the font is As provided in the default font and expected by acs_map[], the font is
in Code Page 437 form. But you can of course use any layout if you're in Code Page 437 form. But you can of course use any layout if you're
not relying on correct values for the ACS_* macros. not relying on correct values for the ACS_* macros.
The font can be set via the environment variable PDC_FONT. If it's not The font can be set via the environment variable PDC_FONT. If it's not
set, PDCurses looks for a file named "pdcfont.bmp" in the current set, PDCurses looks for a file named "pdcfont.bmp" in the current
directory at the time of initscr(). If neither is found, it uses the directory at the time of initscr(). If neither is found, it uses the
built-in default font encoded in deffont.h. built-in default font encoded in deffont.h.
Backgrounds Backgrounds
----------- -----------
PDCurses for SDL supports an optional background image BMP. This is used PDCurses for SDL supports an optional background image BMP. This is used
whenever start_color() has not been called (see the ptest demo for an whenever start_color() has not been called (see the ptest demo for an
example), or when use_default_colors() has been called after example), or when use_default_colors() has been called after
start_color(), and the background color of a pair has been set to -1 start_color(), and the background color of a pair has been set to -1
(see newdemo, worm, and rain for examples). The usage parallels that of (see newdemo, worm, and rain for examples). The usage parallels that of
ncurses in an appropriate terminal (e.g., Gnome Terminal). The image is ncurses in an appropriate terminal (e.g., Gnome Terminal). The image is
tiled to cover the PDCurses window, and can be any size or depth. tiled to cover the PDCurses window, and can be any size or depth.
As with the font, you can point to a location for the background via the As with the font, you can point to a location for the background via the
environment variable PDC_BACKGROUND; "pdcback.bmp" is the fallback. environment variable PDC_BACKGROUND; "pdcback.bmp" is the fallback.
(There is no default background.) (There is no default background.)
Icons Icons
----- -----
The icon (used with SDL_WM_SetIcon() -- not used for the executable The icon (used with SDL_WM_SetIcon() -- not used for the executable
file) can be set via the environment variable PDC_ICON, and falls back file) can be set via the environment variable PDC_ICON, and falls back
to "pdcicon.bmp", and then to the built-in icon from deficon.h. The to "pdcicon.bmp", and then to the built-in icon from deficon.h. The
built-in icon is the PDCurses logo, as seen in ../x11/little_icon.xbm. built-in icon is the PDCurses logo, as seen in ../x11/little_icon.xbm.
The SDL docs say that the icon must be 32x32, at least for use with MS The SDL docs say that the icon must be 32x32, at least for use with MS
Windows. Windows.
If pdc_screen is preinitialized (see below), PDCurses does not attempt If pdc_screen is preinitialized (see below), PDCurses does not attempt
to set the icon. to set the icon.
Screen size Screen size
----------- -----------
The default screen size is 80x25 characters (whatever size they may be), The default screen size is 80x25 characters (whatever size they may be),
but you can override this via the environment variables PDC_COLS and/or but you can override this via the environment variables PDC_COLS and/or
PDC_LINES. (Some other ports use COLS and LINES; this is not done here PDC_LINES. (Some other ports use COLS and LINES; this is not done here
because those values are, or should be, those of the controlling because those values are, or should be, those of the controlling
terminal, and PDCurses for SDL is independent of the terminal.) If terminal, and PDCurses for SDL is independent of the terminal.) If
pdc_screen is preinitialized (see below), these are ignored. pdc_screen is preinitialized (see below), these are ignored.
Integration with SDL Integration with SDL
-------------------- --------------------
If you want to go further, you can mix PDCurses and SDL functions. (Of If you want to go further, you can mix PDCurses and SDL functions. (Of
course this is extremely non-portable!) To aid you, there are several course this is extremely non-portable!) To aid you, there are several
external variables and functions specific to the SDL port; you could external variables and functions specific to the SDL port; you could
include pdcsdl.h, or just add the declarations you need in your code: include pdcsdl.h, or just add the declarations you need in your code:
PDCEX SDL_Surface *pdc_screen, *pdc_font, *pdc_icon, *pdc_back; PDCEX SDL_Surface *pdc_screen, *pdc_font, *pdc_icon, *pdc_back;
@ -96,57 +96,57 @@ include pdcsdl.h, or just add the declarations you need in your code:
void PDC_update_rects(void); void PDC_update_rects(void);
void PDC_retile(void); void PDC_retile(void);
pdc_screen is the main surface, created by SDL_SetVideoMode(), unless pdc_screen is the main surface, created by SDL_SetVideoMode(), unless
it's preset before initscr(). You can perform normal SDL operations on it's preset before initscr(). You can perform normal SDL operations on
this surface, but PDCurses won't respect them when it updates. (For this surface, but PDCurses won't respect them when it updates. (For
that, see PDC_retile().) As an alternative, you can preinitialize this that, see PDC_retile().) As an alternative, you can preinitialize this
surface before calling initscr(). In that case, you can use pdc_sheight, surface before calling initscr(). In that case, you can use pdc_sheight,
pdc_swidth, pdc_yoffset and/or pdc_xoffset (q.v.) to confine PDCurses to pdc_swidth, pdc_yoffset and/or pdc_xoffset (q.v.) to confine PDCurses to
only a specific area of the surface, reserving the rest for other SDL only a specific area of the surface, reserving the rest for other SDL
operations. If you preinitialize pdc_screen, you'll have to close it operations. If you preinitialize pdc_screen, you'll have to close it
yourself; PDCurses will ignore resize events, and won't try to set the yourself; PDCurses will ignore resize events, and won't try to set the
icon. Also note that if you preinitialize pdc_screen, it need not be the icon. Also note that if you preinitialize pdc_screen, it need not be the
display surface. display surface.
pdc_font, pdc_icon, and pdc_back are the SDL_surfaces for the font, pdc_font, pdc_icon, and pdc_back are the SDL_surfaces for the font,
icon, and background, respectively. You can set any or all of them icon, and background, respectively. You can set any or all of them
before initscr(), and thus override any of the other ways to set them. before initscr(), and thus override any of the other ways to set them.
But note that pdc_icon will be ignored if pdc_screen is preset. But note that pdc_icon will be ignored if pdc_screen is preset.
pdc_sheight and pdc_swidth are the dimensions of the area of pdc_screen pdc_sheight and pdc_swidth are the dimensions of the area of pdc_screen
to be used by PDCurses. You can preset them before initscr(); if either to be used by PDCurses. You can preset them before initscr(); if either
is not set, it defaults to the full screen size minus the x or y offset, is not set, it defaults to the full screen size minus the x or y offset,
as appropriate. as appropriate.
pdc_xoffset and pdc_yoffset are the x and y offset for the area of pdc_xoffset and pdc_yoffset are the x and y offset for the area of
pdc_screen to be used by PDCurses. See the sdltest demo for an example. pdc_screen to be used by PDCurses. See the sdltest demo for an example.
PDC_retile() makes a copy of pdc_screen, then tiles it with the PDC_retile() makes a copy of pdc_screen, then tiles it with the
background image, if any. The resulting surface is used as the background image, if any. The resulting surface is used as the
background for transparent character cells. PDC_retile() is called from background for transparent character cells. PDC_retile() is called from
initscr() and resize_term(). However, you can also use it at other initscr() and resize_term(). However, you can also use it at other
times, to take advantage of the way it copies pdc_screen: Draw some SDL times, to take advantage of the way it copies pdc_screen: Draw some SDL
stuff; call PDC_retile(); do some curses stuff -- it will use whatever stuff; call PDC_retile(); do some curses stuff -- it will use whatever
was on pdc_screen as the background. Then you can erase the curses was on pdc_screen as the background. Then you can erase the curses
screen, do some more SDL stuff, and call PDC_retile() again to make a screen, do some more SDL stuff, and call PDC_retile() again to make a
new background. (If you don't erase the curses screen, it will be new background. (If you don't erase the curses screen, it will be
incorporated into the background when you call PDC_retile().) But this incorporated into the background when you call PDC_retile().) But this
only works if no background image is set. only works if no background image is set.
PDC_update_rects() is how the screen actually gets updated. For PDC_update_rects() is how the screen actually gets updated. For
performance reasons, when drawing, PDCurses for SDL maintains a table of performance reasons, when drawing, PDCurses for SDL maintains a table of
rectangles that need updating, and only updates (by calling this rectangles that need updating, and only updates (by calling this
function) during getch(), napms(), or when the table gets full. function) during getch(), napms(), or when the table gets full.
Normally, this is sufficient; but if you're pausing in some way other Normally, this is sufficient; but if you're pausing in some way other
than by using napms(), and you're not doing keyboard checks, you may get than by using napms(), and you're not doing keyboard checks, you may get
an incomplete update. If that happens, you can call PDC_update_rects() an incomplete update. If that happens, you can call PDC_update_rects()
manually. manually.
Interaction with stdio Interaction with stdio
---------------------- ----------------------
As with X11, it's a bad idea to mix curses and stdio calls. (In fact, As with X11, it's a bad idea to mix curses and stdio calls. (In fact,
that's true for PDCurses on any platform; but especially these two, that's true for PDCurses on any platform; but especially these two,
which don't run under terminals.) Depending on how SDL is built, stdout which don't run under terminals.) Depending on how SDL is built, stdout
and stderr may be redirected to files. and stderr may be redirected to files.

View File

@ -1,35 +1,35 @@
X11 Considerations X11 Considerations
================== ==================
PDCurses for X11 uses the System V IPC shared memory facility, along PDCurses for X11 uses the System V IPC shared memory facility, along
with sockets, to share data between the curses program and the child with sockets, to share data between the curses program and the child
process created to manage the X stuff. process created to manage the X stuff.
When compiling your application, you need to include the <curses.h> or When compiling your application, you need to include the <curses.h> or
<xcurses.h> that comes with PDCurses. You also need to link your code <xcurses.h> that comes with PDCurses. You also need to link your code
with libXCurses. You may need to link with the following libraries under with libXCurses. You may need to link with the following libraries under
X11R5: X11R5:
Xaw Xmu Xt X11 Xaw Xmu Xt X11
or, under X11R6: or, under X11R6:
Xaw Xmu Xt X11 SM ICE Xext Xaw Xmu Xt X11 SM ICE Xext
You can run "xcurses-config --libs" to show the link parameters for your You can run "xcurses-config --libs" to show the link parameters for your
system. If using dynamic linking, on some systems, "-lXCurses" suffices. system. If using dynamic linking, on some systems, "-lXCurses" suffices.
By calling Xinitscr() rather than initscr(), you can pass your program By calling Xinitscr() rather than initscr(), you can pass your program
name and resource overrides to PDCurses. The program name is used as the name and resource overrides to PDCurses. The program name is used as the
title of the X window, and for defining X resources specific to your title of the X window, and for defining X resources specific to your
program. program.
Interaction with stdio Interaction with stdio
---------------------- ----------------------
Be aware that curses programs that expect to have a normal tty Be aware that curses programs that expect to have a normal tty
underneath them will be very disappointed! Output directed to stdout underneath them will be very disappointed! Output directed to stdout
will go to the xterm that invoked the PDCurses application, or to the will go to the xterm that invoked the PDCurses application, or to the
console if not invoked directly from an xterm. Similarly, stdin will console if not invoked directly from an xterm. Similarly, stdin will
expect its input from the same place as stdout. expect its input from the same place as stdout.
@ -89,7 +89,7 @@ normalFont: The name of a fixed width font.
Default: 7x13 Default: 7x13
italicFont: The name of a fixed width font to be used for italicFont: The name of a fixed width font to be used for
characters with A_ITALIC attributes. Must have the characters with A_ITALIC attributes. Must have the
same cell size as normalFont. same cell size as normalFont.
Default: 7x13 (obviously not an italic font) Default: 7x13 (obviously not an italic font)
@ -155,14 +155,14 @@ colorBoldWhite: COLOR_WHITE combined with A_BOLD.
bitmap: The name of a valid bitmap file of depth 1 (black and white) bitmap: The name of a valid bitmap file of depth 1 (black and white)
used for the application's icon. The file is an X bitmap. used for the application's icon. The file is an X bitmap.
Default: a 32x32 or 64x64 pixmap depending on the Default: a 32x32 or 64x64 pixmap depending on the
window manager window manager
pixmap: The name of a valid pixmap file of any depth pixmap: The name of a valid pixmap file of any depth
supported by the window manager (color) for the supported by the window manager (color) for the
application's icon, The file is an X11 pixmap. This application's icon, The file is an X11 pixmap. This
resource is only available if the libXpm package has resource is only available if the libXpm package has
been installed (most systems have this by default). been installed (most systems have this by default).
This resource overrides the "bitmap" resource. This resource overrides the "bitmap" resource.
Default: none, uses default bitmap above Default: none, uses default bitmap above
@ -177,28 +177,28 @@ translations: Translations enable the user to customize the action
<BtnUp>: XCursesButton() <BtnUp>: XCursesButton()
<BtnMotion>: XCursesButton() <BtnMotion>: XCursesButton()
The most useful action for KeyPress translations is The most useful action for KeyPress translations is
string(). The argument to the string() action can be string(). The argument to the string() action can be
either a string or a hex representation of a either a string or a hex representation of a
character; e.g., string(0x1b) will send the ASCII character; e.g., string(0x1b) will send the ASCII
escape character to the application; string("[11~") escape character to the application; string("[11~")
will send [ 1 1 ~ , as separate keystrokes. will send [ 1 1 ~ , as separate keystrokes.
shmmin: On most systems, there are two Unix kernel parameters shmmin: On most systems, there are two Unix kernel parameters
that determine the allowable size of a shared memory that determine the allowable size of a shared memory
segment. These parameters are usually something like segment. These parameters are usually something like
SHMMIN and SHMMAX. To use shared memory, a program SHMMIN and SHMMAX. To use shared memory, a program
must allocate a segment of shared memory that is must allocate a segment of shared memory that is
between these two values. Usually these values are between these two values. Usually these values are
like 1 for SHMMIN and some large number for SHMMAX. like 1 for SHMMIN and some large number for SHMMAX.
Sometimes the Unix kernel is configured to have a Sometimes the Unix kernel is configured to have a
value of SHMMIN that is bigger than the size of one value of SHMMIN that is bigger than the size of one
of the shared memory segments that libXCurses uses. of the shared memory segments that libXCurses uses.
On these systems an error message like: On these systems an error message like:
Cannot allocate shared memory for SCREEN: Invalid argument Cannot allocate shared memory for SCREEN: Invalid argument
will result. To overcome this problem, this resource will result. To overcome this problem, this resource
should be set to the kernel value for SHMMIN. This should be set to the kernel value for SHMMIN. This
ensures that a shared memory segment will always be ensures that a shared memory segment will always be
bigger than the kernel value for SHMMIN (and bigger than the kernel value for SHMMIN (and
@ -212,7 +212,7 @@ borderColor: The color of the border around the screen.
borderWidth: The width in pixels of the border around the screen. borderWidth: The width in pixels of the border around the screen.
Default: 0 Default: 0
clickPeriod: The period (in milliseconds) between a button clickPeriod: The period (in milliseconds) between a button
press and a button release that determines if a click press and a button release that determines if a click
of a button has occurred. of a button has occurred.
Default: 100 Default: 100
@ -223,10 +223,10 @@ doubleClickPeriod: The period (in milliseconds) between two button
Default: 200 Default: 200
composeKey: The name of the X key that defines the "compose key", composeKey: The name of the X key that defines the "compose key",
which is used to enter characters in the Latin-1 which is used to enter characters in the Latin-1
character set above 0xA0. (See "Compose Keys for character set above 0xA0. (See "Compose Keys for
Latin-1" below.) This is used only when PDCurses is Latin-1" below.) This is used only when PDCurses is
built without XIM support. While in compose mode, the built without XIM support. While in compose mode, the
text cursor will appear as a hollow rectangle. text cursor will appear as a hollow rectangle.
Default: Multi_key Default: Multi_key
@ -234,8 +234,8 @@ composeKey: The name of the X key that defines the "compose key",
Using Resources Using Resources
--------------- ---------------
All applications have a top-level class name of "XCurses". If Xinitscr() All applications have a top-level class name of "XCurses". If Xinitscr()
is used, it sets an application's top-level widget name. (Otherwise the is used, it sets an application's top-level widget name. (Otherwise the
name defaults to "PDCurses".) name defaults to "PDCurses".)
Examples for app-defaults or .Xdefaults: Examples for app-defaults or .Xdefaults:
@ -275,26 +275,26 @@ the*pointerBackColor: black
the.bitmap: /home/mark/the/the64.xbm the.bitmap: /home/mark/the/the64.xbm
the.pixmap: /home/mark/the/the64.xpm the.pixmap: /home/mark/the/the64.xpm
Resources may also be passed as parameters to the Xinitscr() function. Resources may also be passed as parameters to the Xinitscr() function.
Parameters are strings in the form of switches; e.g., to set the color Parameters are strings in the form of switches; e.g., to set the color
"red" to "indianred", and the number of lines to 30, the string passed "red" to "indianred", and the number of lines to 30, the string passed
to Xinitscr would be: "-colorRed indianred -lines 30" to Xinitscr would be: "-colorRed indianred -lines 30"
Compose Keys for Latin-1 Compose Keys for Latin-1
------------------------ ------------------------
When built without XIM support, PDCurses for X11 provides its own, When built without XIM support, PDCurses for X11 provides its own,
limited compose key system for Latin-1 characters. The available limited compose key system for Latin-1 characters. The available
combinations are listed here. For a given character, any of the combinations are listed here. For a given character, any of the
combinations shown in the last column may be used. To generate a combinations shown in the last column may be used. To generate a
character, press the "compose" key followed by one of the pairs of character, press the "compose" key followed by one of the pairs of
keystrokes. Where no key is evident, the spacebar is used. Thus, to keystrokes. Where no key is evident, the spacebar is used. Thus, to
generate the NO-BREAK SPACE, press the "compose" key followed by two generate the NO-BREAK SPACE, press the "compose" key followed by two
hits of the spacebar. hits of the spacebar.
With a typical modern X server, you can get many more compose key With a typical modern X server, you can get many more compose key
combinations by using XIM instead. Configure PDCurses with --enable-xim combinations by using XIM instead. Configure PDCurses with --enable-xim
to use XIM support. to use XIM support.
This document is encoded in UTF-8. This document is encoded in UTF-8.
@ -404,13 +404,13 @@ This document is encoded in UTF-8.
Deprecated Deprecated
---------- ----------
XCursesProgramName is no longer used. To set the program name, you must XCursesProgramName is no longer used. To set the program name, you must
use Xinitscr(), or PDC_set_title() to set just the window title. use Xinitscr(), or PDC_set_title() to set just the window title.
The XCursesExit() function is now called automatically via atexit(). The XCursesExit() function is now called automatically via atexit().
(Multiple calls to it are OK, so you don't need to remove it if you've (Multiple calls to it are OK, so you don't need to remove it if you've
already added it for previous versions of PDCurses.) already added it for previous versions of PDCurses.)
XCURSES is no longer defined automatically, but need not be defined, XCURSES is no longer defined automatically, but need not be defined,
unless you want the X11-specific prototypes. (Normal curses programs unless you want the X11-specific prototypes. (Normal curses programs
won't need it.) won't need it.)

View File

@ -31,8 +31,8 @@ Building
(For Watcom, use "wmake" instead of "make"; for MSVC, "nmake".) You'll (For Watcom, use "wmake" instead of "make"; for MSVC, "nmake".) You'll
get the libraries (pdcurses.lib or .a, depending on your compiler; and get the libraries (pdcurses.lib or .a, depending on your compiler; and
panel.lib or .a), the demos (*.exe), and a lot of object files. Note panel.lib or .a), the demos (*.exe), and a lot of object files. Note
that the panel library is just a copy of the main library, provided that the panel library is just a copy of the main library, provided
for convenience; both panel and curses functions are in the main for convenience; both panel and curses functions are in the main
library. library.

View File

@ -20,9 +20,9 @@ PDCURSES_SRCDIR = ..
osdir = $(PDCURSES_SRCDIR)\dos osdir = $(PDCURSES_SRCDIR)\dos
!ifdef DEBUG !ifdef DEBUG
CFLAGS = -N -v -y -DPDCDEBUG CFLAGS = -N -v -y -DPDCDEBUG
!else !else
CFLAGS = -O CFLAGS = -O
!endif !endif
CPPFLAGS = -I$(PDCURSES_SRCDIR) CPPFLAGS = -I$(PDCURSES_SRCDIR)

View File

@ -13,7 +13,7 @@
-+getch.obj & -+getch.obj &
-+getstr.obj & -+getstr.obj &
-+getyx.obj & -+getyx.obj &
-+inch.obj & -+inch.obj &
-+inchstr.obj & -+inchstr.obj &
-+initscr.obj & -+initscr.obj &
-+inopts.obj & -+inopts.obj &
@ -23,21 +23,21 @@
-+kernel.obj & -+kernel.obj &
-+keyname.obj & -+keyname.obj &
-+mouse.obj & -+mouse.obj &
-+move.obj & -+move.obj &
-+outopts.obj & -+outopts.obj &
-+overlay.obj & -+overlay.obj &
-+pad.obj & -+pad.obj &
-+panel.obj & -+panel.obj &
-+printw.obj & -+printw.obj &
-+refresh.obj & -+refresh.obj &
-+scanw.obj & -+scanw.obj &
-+scr_dump.obj & -+scr_dump.obj &
-+scroll.obj & -+scroll.obj &
-+slk.obj & -+slk.obj &
-+termattr.obj & -+termattr.obj &
-+terminfo.obj & -+terminfo.obj &
-+touch.obj & -+touch.obj &
-+util.obj & -+util.obj &
-+window.obj & -+window.obj &
-+debug.obj & -+debug.obj &
-+pdcclip.obj & -+pdcclip.obj &

View File

@ -26,7 +26,7 @@ CC = cl
!ifdef DEBUG !ifdef DEBUG
CFLAGS = /Od /Zi /DPDCDEBUG CFLAGS = /Od /Zi /DPDCDEBUG
LDFLAGS = /CO /NOE /SE:160 LDFLAGS = /CO /NOE /SE:160
!else !else
CFLAGS = /Ox CFLAGS = /Ox
LDFLAGS = /NOE /SE:160 LDFLAGS = /NOE /SE:160

View File

@ -31,7 +31,7 @@ Building
library, provided for convenience; both panel and curses functions are library, provided for convenience; both panel and curses functions are
in the main library. in the main library.
You can also use the optional parameter "DLL=Y" with EMX, to build the You can also use the optional parameter "DLL=Y" with EMX, to build the
library as a DLL: library as a DLL:
make -f gccos2.mak DLL=Y make -f gccos2.mak DLL=Y

View File

@ -19,9 +19,9 @@ osdir = $(PDCURSES_SRCDIR)\os2
CC = bcc CC = bcc
!ifdef DEBUG !ifdef DEBUG
CFLAGS = -N -v -y -DPDCDEBUG CFLAGS = -N -v -y -DPDCDEBUG
!else !else
CFLAGS = -O CFLAGS = -O
!endif !endif
CPPFLAGS = -I$(PDCURSES_SRCDIR) CPPFLAGS = -I$(PDCURSES_SRCDIR)

View File

@ -31,7 +31,7 @@ ifeq ($(EMXVIDEO),Y)
BINDFLAGS = -acm BINDFLAGS = -acm
else else
CCLIBS = CCLIBS =
BINDFLAGS = BINDFLAGS =
endif endif
ifeq ($(DEBUG),Y) ifeq ($(DEBUG),Y)
@ -52,7 +52,7 @@ DLLTARGET = pdcurses.dll
DLLFLAGS = -Zdll -Zcrtdll -Zomf DLLFLAGS = -Zdll -Zcrtdll -Zomf
LINK = gcc LINK = gcc
EMXBIND = emxbind EMXBIND = emxbind
EMXOMF = emxomf EMXOMF = emxomf
LIBEXE = ar LIBEXE = ar

View File

@ -13,7 +13,7 @@
-+getch.obj & -+getch.obj &
-+getstr.obj & -+getstr.obj &
-+getyx.obj & -+getyx.obj &
-+inch.obj & -+inch.obj &
-+inchstr.obj & -+inchstr.obj &
-+initscr.obj & -+initscr.obj &
-+inopts.obj & -+inopts.obj &
@ -23,21 +23,21 @@
-+kernel.obj & -+kernel.obj &
-+keyname.obj & -+keyname.obj &
-+mouse.obj & -+mouse.obj &
-+move.obj & -+move.obj &
-+outopts.obj & -+outopts.obj &
-+overlay.obj & -+overlay.obj &
-+pad.obj & -+pad.obj &
-+panel.obj & -+panel.obj &
-+printw.obj & -+printw.obj &
-+refresh.obj & -+refresh.obj &
-+scanw.obj & -+scanw.obj &
-+scr_dump.obj & -+scr_dump.obj &
-+scroll.obj & -+scroll.obj &
-+slk.obj & -+slk.obj &
-+termattr.obj & -+termattr.obj &
-+terminfo.obj & -+terminfo.obj &
-+touch.obj & -+touch.obj &
-+util.obj & -+util.obj &
-+window.obj & -+window.obj &
-+debug.obj & -+debug.obj &
-+pdcclip.obj & -+pdcclip.obj &

View File

@ -1,14 +1,14 @@
PDCurses Portable Core PDCurses Portable Core
====================== ======================
This directory contains core PDCurses source code files common to all This directory contains core PDCurses source code files common to all
platforms. platforms.
Building Building
-------- --------
These modules are built by the platform-specific makefiles, in the These modules are built by the platform-specific makefiles, in the
platform directories. platform directories.

View File

@ -60,9 +60,9 @@ demos: $(DEMOS)
pdcurses.dll: $(DEFFILE) pdcurses.dll: $(DEFFILE)
$(DEFFILE): $(DEFDEPS) $(DEFFILE): $(DEFDEPS)
echo LIBRARY pdcurses > $@ echo LIBRARY pdcurses > $@
echo EXPORTS >> $@ echo EXPORTS >> $@
type $(BASEDEF) >> $@ type $(BASEDEF) >> $@
echo pdc_screen >> $@ echo pdc_screen >> $@
echo pdc_font >> $@ echo pdc_font >> $@
echo pdc_icon >> $@ echo pdc_icon >> $@

View File

@ -9,7 +9,7 @@ Building
. On *nix (including Linux and Mac OS X), run "make" in the sdl1 . On *nix (including Linux and Mac OS X), run "make" in the sdl1
directory. There is no configure script (yet?) for this port. This directory. There is no configure script (yet?) for this port. This
assumes a working sdl-config, and GNU make. It builds the library assumes a working sdl-config, and GNU make. It builds the library
libpdcurses.a (dynamic lib not implemented). libpdcurses.a (dynamic lib not implemented).
With MinGW, run "make -f Makefile.mng". This assumes SDL is installed With MinGW, run "make -f Makefile.mng". This assumes SDL is installed
@ -17,7 +17,7 @@ Building
parameters "DLL=Y" and "DEBUG=Y", as with the console version. (Wide- parameters "DLL=Y" and "DEBUG=Y", as with the console version. (Wide-
character support is not yet implemented for SDL.) Both makefiles character support is not yet implemented for SDL.) Both makefiles
recognize the optional PDCURSES_SRCDIR environment variable, as with recognize the optional PDCURSES_SRCDIR environment variable, as with
the console ports. Makefile.mng builds libpdcurses.a, along with the console ports. Makefile.mng builds libpdcurses.a, along with
pdcurses.dll, if specified. pdcurses.dll, if specified.

View File

@ -1,7 +1,7 @@
PDCurses for Win32 PDCurses for Win32
================== ==================
This directory contains PDCurses source code files specific to Win32 This directory contains PDCurses source code files specific to Win32
console mode (Win9x/Me/NT/2k/XP/Vista). console mode (Win9x/Me/NT/2k/XP/Vista).
@ -38,7 +38,7 @@ Building
for convenience; both panel and curses functions are in the main for convenience; both panel and curses functions are in the main
library. library.
You can also give the optional parameter "WIDE=Y", to build the You can also give the optional parameter "WIDE=Y", to build the
library with wide-character (Unicode) support: library with wide-character (Unicode) support:
make -f mingwin32.mak WIDE=Y make -f mingwin32.mak WIDE=Y
@ -47,9 +47,9 @@ Building
unless you also link with the Microsoft Layer for Unicode (not unless you also link with the Microsoft Layer for Unicode (not
tested). tested).
Another option, "UTF8=Y", makes PDCurses ignore the system locale, and Another option, "UTF8=Y", makes PDCurses ignore the system locale, and
treat all narrow-character strings as UTF-8. This option has no effect treat all narrow-character strings as UTF-8. This option has no effect
unless WIDE=Y is also set. Use it to get around the poor support for unless WIDE=Y is also set. Use it to get around the poor support for
UTF-8 in the Win32 console: UTF-8 in the Win32 console:
make -f mingwin32.mak WIDE=Y UTF8=Y make -f mingwin32.mak WIDE=Y UTF8=Y

View File

@ -26,13 +26,13 @@ CPPFLAGS = @DEFS@ -DXCURSES @SYS_DEFS@ -I$(PDCURSES_SRCDIR)
BUILD = @CC@ -c $(CFLAGS) $(CPPFLAGS) @MH_XINC_DIR@ BUILD = @CC@ -c $(CFLAGS) $(CPPFLAGS) @MH_XINC_DIR@
LINK = @CC@ LINK = @CC@
LDFLAGS = LDFLAGS =
LIBCURSES = libXCurses.a LIBCURSES = libXCurses.a
all : $(LIBCURSES) all : $(LIBCURSES)
install : install :
echo Does nothing at the moment echo Does nothing at the moment
clean : clean :

View File

@ -1,8 +1,8 @@
PDCurses for X11 PDCurses for X11
================ ================
This is a port of PDCurses for X11, aka XCurses. It is designed to This is a port of PDCurses for X11, aka XCurses. It is designed to
allow existing curses programs to be re-compiled with PDCurses, allow existing curses programs to be re-compiled with PDCurses,
resulting in native X11 programs. resulting in native X11 programs.
@ -43,8 +43,8 @@ Building
Distribution Status Distribution Status
------------------- -------------------
As of April 13, 2006, the files in this directory are released to the As of April 13, 2006, the files in this directory are released to the
Public Domain, except for ScrollBox*, which are under essentially the Public Domain, except for ScrollBox*, which are under essentially the
MIT X License. MIT X License.