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:
parent
9b7bb4911d
commit
5bbc5e5e0d
File diff suppressed because it is too large
Load Diff
|
@ -2,71 +2,71 @@ PDCurses Implementor's Guide
|
|||
============================
|
||||
|
||||
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 1.1 - 2007/06/06 - minor cosmetic change
|
||||
Version 1.0 - 2007/04/01 - initial revision
|
||||
|
||||
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
|
||||
be needed for application programming; for that, refer to PDCurses.txt,
|
||||
as built in doc/, or distributed as a file separate from this source
|
||||
package. This document assumes that you've read the user-level
|
||||
documentation and are very familiar with application-level curses
|
||||
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
|
||||
be needed for application programming; for that, refer to PDCurses.txt,
|
||||
as built in doc/, or distributed as a file separate from this source
|
||||
package. This document assumes that you've read the user-level
|
||||
documentation and are very familiar with application-level curses
|
||||
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:
|
||||
|
||||
- Don't modify anything in the pdcurses directory or in other port
|
||||
directories. Don't modify curses.h or curspriv.h unless absolutely
|
||||
- Don't modify anything in the pdcurses directory or in other port
|
||||
directories. Don't modify curses.h or curspriv.h unless absolutely
|
||||
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.
|
||||
|
||||
- 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.
|
||||
|
||||
|
||||
DATA STRUCTURES
|
||||
---------------
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
value. Also, values may be read from this table by apps, and passed
|
||||
through functions such as waddch(), which does no special processing on
|
||||
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
|
||||
A_ALTCHARSET flag set. Implementations should provide suitable values
|
||||
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
|
||||
table can be either hardwired, or filled by PDC_scr_open(). Existing
|
||||
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
|
||||
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
|
||||
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
|
||||
value. Also, values may be read from this table by apps, and passed
|
||||
through functions such as waddch(), which does no special processing on
|
||||
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
|
||||
A_ALTCHARSET flag set. Implementations should provide suitable values
|
||||
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
|
||||
table can be either hardwired, or filled by PDC_scr_open(). Existing
|
||||
ports define it in pdcdisp.c, but this is not required.
|
||||
|
||||
|
||||
FUNCTIONS
|
||||
---------
|
||||
|
||||
A port of PDCurses must implement the following functions, with extern
|
||||
scope. These functions are traditionally divided into several modules,
|
||||
as indicated below; this division is not required (only the functions
|
||||
are), but may make it easier to follow for someone familiar with the
|
||||
A port of PDCurses must implement the following functions, with extern
|
||||
scope. These functions are traditionally divided into several modules,
|
||||
as indicated below; this division is not required (only the functions
|
||||
are), but may make it easier to follow for someone familiar with the
|
||||
existing ports.
|
||||
|
||||
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
|
||||
named with the "PDC_" prefix. This minimizes the risk of collision with
|
||||
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
|
||||
named with the "PDC_" prefix. This minimizes the risk of collision with
|
||||
an application's choices.
|
||||
|
||||
Current PDCurses style also uses a single leading underscore with the
|
||||
name of any static function; and modified BSD/Allman-style indentation,
|
||||
approximately equivalent to "indent -kr -i8 -bl -bli0", with adjustments
|
||||
to keep every line under 80 columns. This isn't essential, but a
|
||||
Current PDCurses style also uses a single leading underscore with the
|
||||
name of any static function; and modified BSD/Allman-style indentation,
|
||||
approximately equivalent to "indent -kr -i8 -bl -bli0", with adjustments
|
||||
to keep every line under 80 columns. This isn't essential, but a
|
||||
consistent style helps readability.
|
||||
|
||||
|
||||
|
@ -75,17 +75,17 @@ pdcdisp.c:
|
|||
|
||||
void PDC_gotoyx(int y, int x);
|
||||
|
||||
Move the physical cursor (as opposed to the logical cursor affected by
|
||||
wmove()) to the given location. This is called mainly from doupdate().
|
||||
In general, this function need not compare the old location with the new
|
||||
Move the physical cursor (as opposed to the logical cursor affected by
|
||||
wmove()) to the given location. This is called mainly from doupdate().
|
||||
In general, this function need not compare the old location with the new
|
||||
one, and should just move the cursor unconditionally.
|
||||
|
||||
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
|
||||
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[],
|
||||
if they're flagged with A_ALTCHARSET in the attribute portion of the
|
||||
The core output routine. It takes len chtype entities from srcp (a
|
||||
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[],
|
||||
if they're flagged with A_ALTCHARSET in the attribute portion of the
|
||||
chtype.
|
||||
|
||||
|
||||
|
@ -94,22 +94,22 @@ pdcgetsc.c:
|
|||
|
||||
int PDC_get_columns(void);
|
||||
|
||||
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
|
||||
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
|
||||
internally from PDC_scr_open(), but this is not required.)
|
||||
|
||||
int PDC_get_cursor_mode(void);
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
cursor in normal visibility mode (curs_set(1)).
|
||||
|
||||
int PDC_get_rows(void);
|
||||
|
||||
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
|
||||
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
|
||||
internally from PDC_scr_open(), but this is not required.)
|
||||
|
||||
|
||||
|
@ -148,23 +148,23 @@ TRUE).
|
|||
|
||||
int PDC_modifiers_set(void);
|
||||
|
||||
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
|
||||
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
|
||||
here. Returns OK or ERR, which is passed on by the caller.
|
||||
|
||||
int PDC_mouse_set(void);
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
the caller.
|
||||
|
||||
void PDC_set_keyboard_binary(bool on);
|
||||
|
||||
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 mode on; FALSE reverts it. This function is called from raw() and
|
||||
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 mode on; FALSE reverts it. This function is called from raw() and
|
||||
noraw().
|
||||
|
||||
|
||||
|
@ -173,90 +173,90 @@ pdcscrn.c:
|
|||
|
||||
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().
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
void PDC_init_pair(short pair, short fg, short bg);
|
||||
|
||||
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
|
||||
should be returned by a call to PDC_pair_content() with the same pair
|
||||
number. PDC_transform_line() should use the specified colors when
|
||||
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
|
||||
should be returned by a call to PDC_pair_content() with the same pair
|
||||
number. PDC_transform_line() should use the specified colors when
|
||||
rendering a chtype with the given pair number.
|
||||
|
||||
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.
|
||||
|
||||
void PDC_reset_prog_mode(void);
|
||||
|
||||
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
|
||||
sets the keyboard to binary mode; in Win32, it enables or disables the
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
int PDC_resize_screen(int nlines, int ncols);
|
||||
|
||||
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 a size chosen by the user at
|
||||
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
|
||||
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 a size chosen by the user at
|
||||
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
|
||||
action for the platform.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
void PDC_scr_close(void);
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
the cursor to the lower left corner. (The X11 port does nothing.)
|
||||
|
||||
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().
|
||||
|
||||
int PDC_scr_open(int argc, char **argv);
|
||||
|
||||
The platform-specific part of initscr(). It's actually called from
|
||||
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
|
||||
other, platform-specific purposes. (The arguments are currently used
|
||||
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,
|
||||
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
|
||||
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
|
||||
existing terminal, and the environment variable PDC_RESTORE_SCREEN is
|
||||
set, this function may also store the existing screen image for later
|
||||
The platform-specific part of initscr(). It's actually called from
|
||||
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
|
||||
other, platform-specific purposes. (The arguments are currently used
|
||||
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,
|
||||
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
|
||||
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
|
||||
existing terminal, and the environment variable PDC_RESTORE_SCREEN is
|
||||
set, this function may also store the existing screen image for later
|
||||
restoration by PDC_scr_close().
|
||||
|
||||
|
||||
|
@ -265,9 +265,9 @@ pdcsetsc.c:
|
|||
|
||||
int PDC_curs_set(int visibility);
|
||||
|
||||
Called from curs_set(). Changes the appearance of the cursor -- 0 turns
|
||||
it off, 1 is normal (the terminal's default, if applicable, as
|
||||
determined by SP->orig_cursor), and 2 is high visibility. The exact
|
||||
Called from curs_set(). Changes the appearance of the cursor -- 0 turns
|
||||
it off, 1 is normal (the terminal's default, if applicable, as
|
||||
determined by SP->orig_cursor), and 2 is high visibility. The exact
|
||||
appearance of these modes is not specified.
|
||||
|
||||
|
||||
|
@ -276,30 +276,30 @@ pdcutil.c:
|
|||
|
||||
void PDC_beep(void);
|
||||
|
||||
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
|
||||
PDC_scr_open() -- not here); otherwise, set it to TRUE. This function is
|
||||
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
|
||||
PDC_scr_open() -- not here); otherwise, set it to TRUE. This function is
|
||||
called from beep().
|
||||
|
||||
void PDC_napms(int ms);
|
||||
|
||||
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
|
||||
degrees of accuracy and precision are not expected (though desirable, if
|
||||
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
|
||||
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
|
||||
degrees of accuracy and precision are not expected (though desirable, if
|
||||
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
|
||||
usage.
|
||||
|
||||
const char *PDC_sysname(void);
|
||||
|
||||
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
|
||||
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
|
||||
should be much, much shorter (existing platforms use no more than 5).
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
The following functions are implemented in the platform directories, but
|
||||
are accessed directly by apps. Refer to the user documentation for their
|
||||
The following functions are implemented in the platform directories, but
|
||||
are accessed directly by apps. Refer to the user documentation for their
|
||||
descriptions:
|
||||
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|||
Prefix: %base
|
||||
|
||||
%description
|
||||
PDCurses for X11 is an implementation of the curses library that lets
|
||||
you build text-mode curses programs as native X11 applications. For more
|
||||
PDCurses for X11 is an implementation of the curses library that lets
|
||||
you build text-mode curses programs as native X11 applications. For more
|
||||
information, visit http://pdcurses.sourceforge.net/
|
||||
|
||||
%prep
|
||||
|
@ -25,7 +25,7 @@ information, visit http://pdcurses.sourceforge.net/
|
|||
|
||||
%build
|
||||
./configure --prefix=%{base}
|
||||
make
|
||||
make
|
||||
|
||||
%install
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
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:
|
||||
|
||||
http://pdcurses.sourceforge.net/
|
||||
|
@ -12,14 +12,14 @@ For changes, see the HISTORY file.
|
|||
Legal Stuff
|
||||
-----------
|
||||
|
||||
The core package is in the public domain, but small portions of PDCurses
|
||||
are subject to copyright under various licenses. Each directory
|
||||
contains a README file, with a section titled "Distribution Status"
|
||||
The core package is in the public domain, but small portions of PDCurses
|
||||
are subject to copyright under various licenses. Each directory
|
||||
contains a README file, with a section titled "Distribution Status"
|
||||
which describes the status of the files in that directory.
|
||||
|
||||
If you use PDCurses in an application, an acknowledgement would be
|
||||
appreciated, but is not mandatory. If you make corrections or
|
||||
enhancements to PDCurses, please forward them to the current maintainer
|
||||
If you use PDCurses in an application, an acknowledgement would be
|
||||
appreciated, but is not mandatory. If you make corrections or
|
||||
enhancements to PDCurses, please forward them to the current maintainer
|
||||
for the benefit of other users.
|
||||
|
||||
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
|
||||
-----
|
||||
|
||||
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
|
||||
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
|
||||
platforms. Build instructions are in the README file for each platform.
|
||||
|
||||
|
||||
Distribution Status
|
||||
-------------------
|
||||
|
||||
All files in this directory except configure, 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
|
||||
All files in this directory except configure, 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
|
||||
described within it.
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ AC_CANONICAL_SYSTEM([])
|
|||
mymakefile="Makefile"
|
||||
on_qnx=no
|
||||
case "$target" in
|
||||
*hp-hpux*)
|
||||
*hp-hpux*)
|
||||
SYS_DEFS="-D_HPUX_SOURCE"
|
||||
;;
|
||||
*ibm-aix*)
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
PDCurses Demos
|
||||
==============
|
||||
|
||||
This directory contains demonstration programs to show and test the
|
||||
capabilities of curses libraries. Some of them predate PDCurses,
|
||||
PCcurses or even pcurses/ncurses. Although some PDCurses-specific code
|
||||
has been added, all programs remain portable to other implementations
|
||||
This directory contains demonstration programs to show and test the
|
||||
capabilities of curses libraries. Some of them predate PDCurses,
|
||||
PCcurses or even pcurses/ncurses. Although some PDCurses-specific code
|
||||
has been added, all programs remain portable to other implementations
|
||||
(at a minimum, to ncurses).
|
||||
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
The demos are built by the platform-specific makefiles, in the platform
|
||||
directories. Alternatively, you can build them manually, individually,
|
||||
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
|
||||
The demos are built by the platform-specific makefiles, in the platform
|
||||
directories. Alternatively, you can build them manually, individually,
|
||||
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
|
||||
no configuration is needed.
|
||||
|
||||
|
||||
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).
|
||||
|
|
|
@ -23,16 +23,16 @@ convenient order. Once all data have been added, the routine
|
|||
refresh() is called. The package then determines what changes have
|
||||
been made which affect the screen. The screen contents are then
|
||||
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()
|
||||
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
|
||||
the attributes of individual characters in the window. Attributes
|
||||
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
|
||||
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
|
||||
specified window; for example, move() and wmove(). In fact, move(...)
|
||||
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
|
||||
possible to create smaller windows, and also to indicate that the
|
||||
window is only partially visible on the screen. Furthermore, large
|
||||
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
|
||||
to disable and enable many input attributes: character echo, single
|
||||
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
|
||||
|
@ -60,14 +60,14 @@ Data Types and the <curses.h> Header
|
|||
|
||||
The data types supported by curses are described in this section.
|
||||
|
||||
As the library supports a procedural interface to the data types, actual
|
||||
structure contents are not described. All curses data are manipulated
|
||||
As the library supports a procedural interface to the data types, actual
|
||||
structure contents are not described. All curses data are manipulated
|
||||
using the routines provided.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
@ -82,8 +82,8 @@ The following data types are declared:
|
|||
cchar_t the wide-character equivalent of chtype
|
||||
attr_t for WA_-style attributes
|
||||
|
||||
The actual WINDOW and SCREEN objects used to store information are
|
||||
created by the corresponding routines and a pointer to them is provided.
|
||||
The actual WINDOW and SCREEN objects used to store information are
|
||||
created by the corresponding routines and a pointer to them is provided.
|
||||
All manipulation is through that pointer.
|
||||
|
||||
|
||||
|
@ -93,15 +93,15 @@ The following variables are defined:
|
|||
|
||||
LINES number of lines 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
|
||||
SP pointer to the current SCREEN struct
|
||||
Mouse_status status of the mouse
|
||||
COLORS number of colors available
|
||||
COLOR_PAIRS number of color pairs available
|
||||
TABSIZE size of one TAB block
|
||||
acs_map[] alternate character set map
|
||||
ttytype[] terminal name/description
|
||||
acs_map[] alternate character set map
|
||||
ttytype[] terminal name/description
|
||||
|
||||
|
||||
CONSTANTS
|
||||
|
@ -118,7 +118,7 @@ GENERAL
|
|||
|
||||
VIDEO ATTRIBUTES
|
||||
|
||||
Normally, attributes are a property of the character.
|
||||
Normally, attributes are a property of the character.
|
||||
|
||||
For chtype:
|
||||
|
||||
|
@ -129,7 +129,7 @@ For chtype:
|
|||
A_INVIS invisible
|
||||
A_ITALIC italic
|
||||
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
|
||||
A_REVERSE reverse video
|
||||
A_RIGHTLINE line along the right edge
|
||||
|
@ -140,8 +140,8 @@ For chtype:
|
|||
A_CHARTEXT bit-mask to extract a character
|
||||
A_COLOR bit-mask to extract a color-pair
|
||||
|
||||
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
|
||||
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
|
||||
the same value in PDCurses.
|
||||
|
||||
For attr_t:
|
||||
|
@ -158,14 +158,14 @@ For attr_t:
|
|||
WA_STANDOUT same as A_STANDOUT
|
||||
WA_UNDERLINE same as A_UNDERLINE
|
||||
|
||||
Note that while A_LEFTLINE and A_RIGHTLINE are PDCurses-specific,
|
||||
WA_LEFT and WA_RIGHT are standard. The following are also defined, for
|
||||
compatibility, but currently have no effect in PDCurses: WA_HORIZONTAL,
|
||||
Note that while A_LEFTLINE and A_RIGHTLINE are PDCurses-specific,
|
||||
WA_LEFT and WA_RIGHT are standard. The following are also defined, for
|
||||
compatibility, but currently have no effect in PDCurses: WA_HORIZONTAL,
|
||||
WA_LOW, WA_TOP, WA_VERTICAL.
|
||||
|
||||
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.
|
||||
|
||||
VT100-compatible symbols -- box characters:
|
||||
|
@ -200,7 +200,7 @@ for optimum portability:
|
|||
ACS_RARROW right arrow
|
||||
ACS_DARROW down arrow
|
||||
ACS_UARROW up arrow
|
||||
ACS_BOARD checkerboard -- lighter (less dense) than
|
||||
ACS_BOARD checkerboard -- lighter (less dense) than
|
||||
ACS_CKBOARD
|
||||
ACS_LANTERN lantern symbol
|
||||
ACS_BLOCK solid block
|
||||
|
@ -230,7 +230,7 @@ Box character aliases:
|
|||
ACS_SBSB same as ACS_VLINE
|
||||
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.
|
||||
|
||||
COLORS
|
||||
|
@ -246,7 +246,7 @@ For use with init_pair(), color_set(), etc.:
|
|||
COLOR_YELLOW
|
||||
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.
|
||||
|
||||
|
||||
|
@ -354,19 +354,19 @@ The virtual keypad is arranged like this:
|
|||
left B2 right
|
||||
C1 down C3
|
||||
|
||||
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
|
||||
just the keys required by X/Open. In particular, PDCurses defines many
|
||||
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
|
||||
just the keys required by X/Open. In particular, PDCurses defines many
|
||||
CTL_ and ALT_ combinations; these are not portable.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
Functions from the X/Open curses standard -- complete, except for
|
||||
getch() and ungetch(), which are implemented as macros for DOS
|
||||
Functions from the X/Open curses standard -- complete, except for
|
||||
getch() and ungetch(), which are implemented as macros for DOS
|
||||
compatibility:
|
||||
|
||||
Curses Function Manual Page Name
|
||||
|
@ -649,9 +649,9 @@ compatibility:
|
|||
wtouchln touch
|
||||
wvline border
|
||||
|
||||
Wide-character functions from the X/Open standard -- these are only
|
||||
available when PDCurses is built with PDC_WIDE defined, and the
|
||||
prototypes are only available from curses.h when PDC_WIDE is defined
|
||||
Wide-character functions from the X/Open standard -- these are only
|
||||
available when PDCurses is built with PDC_WIDE defined, and the
|
||||
prototypes are only available from curses.h when PDC_WIDE is defined
|
||||
before its inclusion in your app:
|
||||
|
||||
addnwstr addstr
|
||||
|
@ -781,7 +781,7 @@ Functions from ncurses:
|
|||
wenclose 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:
|
||||
|
||||
addrawch addch
|
||||
|
|
|
@ -1,93 +1,93 @@
|
|||
SDL Considerations
|
||||
==================
|
||||
|
||||
There are no special requirements to use PDCurses for SDL -- all
|
||||
PDCurses-compatible code should work fine. (In fact, you can even build
|
||||
against the Win32 console pdcurses.dll, and then swap in the SDL
|
||||
pdcurses.dll.) Nothing extra is needed beyond the base SDL library.
|
||||
There are no special requirements to use PDCurses for SDL -- all
|
||||
PDCurses-compatible code should work fine. (In fact, you can even build
|
||||
against the Win32 console pdcurses.dll, and then swap in the SDL
|
||||
pdcurses.dll.) Nothing extra is needed beyond the base SDL library.
|
||||
However, there are some optional special features, described here.
|
||||
|
||||
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.
|
||||
(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
|
||||
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.
|
||||
(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
|
||||
potential for incomplete output under "PDC_update_rects()", below.
|
||||
|
||||
|
||||
Fonts
|
||||
-----
|
||||
|
||||
The font is a simple BMP, 32 characters wide by 8 characters tall,
|
||||
preferably with a palette. (BMPs without palettes still work, but in
|
||||
that case, no attributes will be available, nor will the cursor work.)
|
||||
The first entry in the palette (usually black) 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
|
||||
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
|
||||
The font is a simple BMP, 32 characters wide by 8 characters tall,
|
||||
preferably with a palette. (BMPs without palettes still work, but in
|
||||
that case, no attributes will be available, nor will the cursor work.)
|
||||
The first entry in the palette (usually black) 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
|
||||
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
|
||||
characters as multi-colored tiles.
|
||||
|
||||
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
|
||||
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
|
||||
constraint on the dimensions.
|
||||
|
||||
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
|
||||
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
|
||||
not relying on correct values for the ACS_* macros.
|
||||
|
||||
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
|
||||
directory at the time of initscr(). If neither is found, it uses the
|
||||
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
|
||||
directory at the time of initscr(). If neither is found, it uses the
|
||||
built-in default font encoded in deffont.h.
|
||||
|
||||
|
||||
Backgrounds
|
||||
-----------
|
||||
|
||||
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
|
||||
example), or when use_default_colors() has been called after
|
||||
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
|
||||
ncurses in an appropriate terminal (e.g., Gnome Terminal). The image is
|
||||
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
|
||||
example), or when use_default_colors() has been called after
|
||||
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
|
||||
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.
|
||||
|
||||
As with the font, you can point to a location for the background via the
|
||||
environment variable PDC_BACKGROUND; "pdcback.bmp" is the fallback.
|
||||
As with the font, you can point to a location for the background via the
|
||||
environment variable PDC_BACKGROUND; "pdcback.bmp" is the fallback.
|
||||
(There is no default background.)
|
||||
|
||||
|
||||
Icons
|
||||
-----
|
||||
|
||||
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
|
||||
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.
|
||||
The SDL docs say that the icon must be 32x32, at least for use with MS
|
||||
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
|
||||
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.
|
||||
The SDL docs say that the icon must be 32x32, at least for use with MS
|
||||
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.
|
||||
|
||||
|
||||
Screen size
|
||||
-----------
|
||||
|
||||
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
|
||||
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
|
||||
terminal, and PDCurses for SDL is independent of the terminal.) If
|
||||
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
|
||||
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
|
||||
terminal, and PDCurses for SDL is independent of the terminal.) If
|
||||
pdc_screen is preinitialized (see below), these are ignored.
|
||||
|
||||
|
||||
Integration with SDL
|
||||
--------------------
|
||||
|
||||
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
|
||||
external variables and functions specific to the SDL port; you could
|
||||
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
|
||||
external variables and functions specific to the SDL port; you could
|
||||
include pdcsdl.h, or just add the declarations you need in your code:
|
||||
|
||||
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_retile(void);
|
||||
|
||||
pdc_screen is the main surface, created by SDL_SetVideoMode(), unless
|
||||
it's preset before initscr(). You can perform normal SDL operations on
|
||||
this surface, but PDCurses won't respect them when it updates. (For
|
||||
that, see PDC_retile().) As an alternative, you can preinitialize this
|
||||
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
|
||||
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
|
||||
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
|
||||
pdc_screen is the main surface, created by SDL_SetVideoMode(), unless
|
||||
it's preset before initscr(). You can perform normal SDL operations on
|
||||
this surface, but PDCurses won't respect them when it updates. (For
|
||||
that, see PDC_retile().) As an alternative, you can preinitialize this
|
||||
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
|
||||
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
|
||||
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
|
||||
display surface.
|
||||
|
||||
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
|
||||
before initscr(), and thus override any of the other ways to set them.
|
||||
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
|
||||
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.
|
||||
|
||||
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
|
||||
is not set, it defaults to the full screen size minus the x or y offset,
|
||||
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
|
||||
is not set, it defaults to the full screen size minus the x or y offset,
|
||||
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_retile() makes a copy of pdc_screen, then tiles it with the
|
||||
background image, if any. The resulting surface is used as the
|
||||
background for transparent character cells. PDC_retile() is called from
|
||||
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
|
||||
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
|
||||
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
|
||||
incorporated into the background when you call PDC_retile().) But this
|
||||
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 for transparent character cells. PDC_retile() is called from
|
||||
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
|
||||
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
|
||||
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
|
||||
incorporated into the background when you call PDC_retile().) But this
|
||||
only works if no background image is set.
|
||||
|
||||
PDC_update_rects() is how the screen actually gets updated. For
|
||||
performance reasons, when drawing, PDCurses for SDL maintains a table of
|
||||
rectangles that need updating, and only updates (by calling this
|
||||
function) during getch(), napms(), or when the table gets full.
|
||||
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
|
||||
an incomplete update. If that happens, you can call PDC_update_rects()
|
||||
PDC_update_rects() is how the screen actually gets updated. For
|
||||
performance reasons, when drawing, PDCurses for SDL maintains a table of
|
||||
rectangles that need updating, and only updates (by calling this
|
||||
function) during getch(), napms(), or when the table gets full.
|
||||
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
|
||||
an incomplete update. If that happens, you can call PDC_update_rects()
|
||||
manually.
|
||||
|
||||
|
||||
Interaction with stdio
|
||||
----------------------
|
||||
|
||||
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,
|
||||
which don't run under terminals.) Depending on how SDL is built, stdout
|
||||
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,
|
||||
which don't run under terminals.) Depending on how SDL is built, stdout
|
||||
and stderr may be redirected to files.
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
X11 Considerations
|
||||
==================
|
||||
|
||||
PDCurses for X11 uses the System V IPC shared memory facility, along
|
||||
with sockets, to share data between the curses program and the child
|
||||
PDCurses for X11 uses the System V IPC shared memory facility, along
|
||||
with sockets, to share data between the curses program and the child
|
||||
process created to manage the X stuff.
|
||||
|
||||
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
|
||||
with libXCurses. You may need to link with the following libraries under
|
||||
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
|
||||
with libXCurses. You may need to link with the following libraries under
|
||||
X11R5:
|
||||
Xaw Xmu Xt X11
|
||||
|
||||
or, under X11R6:
|
||||
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.
|
||||
|
||||
By calling Xinitscr() rather than initscr(), you can pass your program
|
||||
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
|
||||
By calling Xinitscr() rather than initscr(), you can pass your program
|
||||
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
|
||||
program.
|
||||
|
||||
|
||||
Interaction with stdio
|
||||
----------------------
|
||||
|
||||
Be aware that curses programs that expect to have a normal tty
|
||||
underneath them will be very disappointed! Output directed to stdout
|
||||
will go to the xterm that invoked the PDCurses application, or to the
|
||||
console if not invoked directly from an xterm. Similarly, stdin will
|
||||
Be aware that curses programs that expect to have a normal tty
|
||||
underneath them will be very disappointed! Output directed to stdout
|
||||
will go to the xterm that invoked the PDCurses application, or to the
|
||||
console if not invoked directly from an xterm. Similarly, stdin will
|
||||
expect its input from the same place as stdout.
|
||||
|
||||
|
||||
|
@ -89,7 +89,7 @@ normalFont: The name of a fixed width font.
|
|||
Default: 7x13
|
||||
|
||||
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.
|
||||
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)
|
||||
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
|
||||
|
||||
pixmap: The name of a valid pixmap file of any depth
|
||||
supported by the window manager (color) for the
|
||||
application's icon, The file is an X11 pixmap. This
|
||||
resource is only available if the libXpm package has
|
||||
been installed (most systems have this by default).
|
||||
pixmap: The name of a valid pixmap file of any depth
|
||||
supported by the window manager (color) for the
|
||||
application's icon, The file is an X11 pixmap. This
|
||||
resource is only available if the libXpm package has
|
||||
been installed (most systems have this by default).
|
||||
This resource overrides the "bitmap" resource.
|
||||
Default: none, uses default bitmap above
|
||||
|
||||
|
@ -177,28 +177,28 @@ translations: Translations enable the user to customize the action
|
|||
<BtnUp>: XCursesButton()
|
||||
<BtnMotion>: XCursesButton()
|
||||
|
||||
The most useful action for KeyPress translations is
|
||||
string(). The argument to the string() action can be
|
||||
either a string or a hex representation of a
|
||||
The most useful action for KeyPress translations is
|
||||
string(). The argument to the string() action can be
|
||||
either a string or a hex representation of a
|
||||
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.
|
||||
|
||||
shmmin: On most systems, there are two Unix kernel parameters
|
||||
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
|
||||
must allocate a segment of shared memory that is
|
||||
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
|
||||
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:
|
||||
|
||||
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
|
||||
ensures that a shared memory segment will always be
|
||||
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.
|
||||
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
|
||||
of a button has occurred.
|
||||
Default: 100
|
||||
|
@ -223,10 +223,10 @@ doubleClickPeriod: The period (in milliseconds) between two button
|
|||
Default: 200
|
||||
|
||||
composeKey: The name of the X key that defines the "compose key",
|
||||
which is used to enter characters in the Latin-1
|
||||
character set above 0xA0. (See "Compose Keys for
|
||||
Latin-1" below.) This is used only when PDCurses is
|
||||
built without XIM support. While in compose mode, the
|
||||
which is used to enter characters in the Latin-1
|
||||
character set above 0xA0. (See "Compose Keys for
|
||||
Latin-1" below.) This is used only when PDCurses is
|
||||
built without XIM support. While in compose mode, the
|
||||
text cursor will appear as a hollow rectangle.
|
||||
Default: Multi_key
|
||||
|
||||
|
@ -234,8 +234,8 @@ composeKey: The name of the X key that defines the "compose key",
|
|||
Using Resources
|
||||
---------------
|
||||
|
||||
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
|
||||
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
|
||||
name defaults to "PDCurses".)
|
||||
|
||||
Examples for app-defaults or .Xdefaults:
|
||||
|
@ -275,26 +275,26 @@ the*pointerBackColor: black
|
|||
the.bitmap: /home/mark/the/the64.xbm
|
||||
the.pixmap: /home/mark/the/the64.xpm
|
||||
|
||||
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
|
||||
"red" to "indianred", and the number of lines to 30, the string passed
|
||||
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
|
||||
"red" to "indianred", and the number of lines to 30, the string passed
|
||||
to Xinitscr would be: "-colorRed indianred -lines 30"
|
||||
|
||||
|
||||
Compose Keys for Latin-1
|
||||
------------------------
|
||||
|
||||
When built without XIM support, PDCurses for X11 provides its own,
|
||||
limited compose key system for Latin-1 characters. The available
|
||||
combinations are listed here. For a given character, any of the
|
||||
combinations shown in the last column may be used. To generate a
|
||||
character, press the "compose" key followed by one of the pairs of
|
||||
keystrokes. Where no key is evident, the spacebar is used. Thus, to
|
||||
generate the NO-BREAK SPACE, press the "compose" key followed by two
|
||||
When built without XIM support, PDCurses for X11 provides its own,
|
||||
limited compose key system for Latin-1 characters. The available
|
||||
combinations are listed here. For a given character, any of the
|
||||
combinations shown in the last column may be used. To generate a
|
||||
character, press the "compose" key followed by one of the pairs of
|
||||
keystrokes. Where no key is evident, the spacebar is used. Thus, to
|
||||
generate the NO-BREAK SPACE, press the "compose" key followed by two
|
||||
hits of the spacebar.
|
||||
|
||||
With a typical modern X server, you can get many more compose key
|
||||
combinations by using XIM instead. Configure PDCurses with --enable-xim
|
||||
With a typical modern X server, you can get many more compose key
|
||||
combinations by using XIM instead. Configure PDCurses with --enable-xim
|
||||
to use XIM support.
|
||||
|
||||
This document is encoded in UTF-8.
|
||||
|
@ -404,13 +404,13 @@ This document is encoded in UTF-8.
|
|||
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.
|
||||
|
||||
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
|
||||
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
|
||||
already added it for previous versions of PDCurses.)
|
||||
|
||||
XCURSES is no longer defined automatically, but need not be defined,
|
||||
unless you want the X11-specific prototypes. (Normal curses programs
|
||||
XCURSES is no longer defined automatically, but need not be defined,
|
||||
unless you want the X11-specific prototypes. (Normal curses programs
|
||||
won't need it.)
|
||||
|
|
|
@ -31,8 +31,8 @@ Building
|
|||
(For Watcom, use "wmake" instead of "make"; for MSVC, "nmake".) You'll
|
||||
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
|
||||
that the panel library is just a copy of the main library, provided
|
||||
for convenience; both panel and curses functions are in the main
|
||||
that the panel library is just a copy of the main library, provided
|
||||
for convenience; both panel and curses functions are in the main
|
||||
library.
|
||||
|
||||
|
||||
|
|
|
@ -20,9 +20,9 @@ PDCURSES_SRCDIR = ..
|
|||
osdir = $(PDCURSES_SRCDIR)\dos
|
||||
|
||||
!ifdef DEBUG
|
||||
CFLAGS = -N -v -y -DPDCDEBUG
|
||||
CFLAGS = -N -v -y -DPDCDEBUG
|
||||
!else
|
||||
CFLAGS = -O
|
||||
CFLAGS = -O
|
||||
!endif
|
||||
|
||||
CPPFLAGS = -I$(PDCURSES_SRCDIR)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
-+getch.obj &
|
||||
-+getstr.obj &
|
||||
-+getyx.obj &
|
||||
-+inch.obj &
|
||||
-+inch.obj &
|
||||
-+inchstr.obj &
|
||||
-+initscr.obj &
|
||||
-+inopts.obj &
|
||||
|
@ -23,21 +23,21 @@
|
|||
-+kernel.obj &
|
||||
-+keyname.obj &
|
||||
-+mouse.obj &
|
||||
-+move.obj &
|
||||
-+move.obj &
|
||||
-+outopts.obj &
|
||||
-+overlay.obj &
|
||||
-+pad.obj &
|
||||
-+pad.obj &
|
||||
-+panel.obj &
|
||||
-+printw.obj &
|
||||
-+refresh.obj &
|
||||
-+scanw.obj &
|
||||
-+scr_dump.obj &
|
||||
-+scroll.obj &
|
||||
-+slk.obj &
|
||||
-+slk.obj &
|
||||
-+termattr.obj &
|
||||
-+terminfo.obj &
|
||||
-+touch.obj &
|
||||
-+util.obj &
|
||||
-+util.obj &
|
||||
-+window.obj &
|
||||
-+debug.obj &
|
||||
-+pdcclip.obj &
|
||||
|
|
|
@ -26,7 +26,7 @@ CC = cl
|
|||
|
||||
!ifdef DEBUG
|
||||
CFLAGS = /Od /Zi /DPDCDEBUG
|
||||
LDFLAGS = /CO /NOE /SE:160
|
||||
LDFLAGS = /CO /NOE /SE:160
|
||||
!else
|
||||
CFLAGS = /Ox
|
||||
LDFLAGS = /NOE /SE:160
|
||||
|
|
|
@ -31,7 +31,7 @@ Building
|
|||
library, provided for convenience; both panel and curses functions are
|
||||
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:
|
||||
|
||||
make -f gccos2.mak DLL=Y
|
||||
|
|
|
@ -19,9 +19,9 @@ osdir = $(PDCURSES_SRCDIR)\os2
|
|||
CC = bcc
|
||||
|
||||
!ifdef DEBUG
|
||||
CFLAGS = -N -v -y -DPDCDEBUG
|
||||
CFLAGS = -N -v -y -DPDCDEBUG
|
||||
!else
|
||||
CFLAGS = -O
|
||||
CFLAGS = -O
|
||||
!endif
|
||||
|
||||
CPPFLAGS = -I$(PDCURSES_SRCDIR)
|
||||
|
|
|
@ -31,7 +31,7 @@ ifeq ($(EMXVIDEO),Y)
|
|||
BINDFLAGS = -acm
|
||||
else
|
||||
CCLIBS =
|
||||
BINDFLAGS =
|
||||
BINDFLAGS =
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG),Y)
|
||||
|
@ -52,7 +52,7 @@ DLLTARGET = pdcurses.dll
|
|||
DLLFLAGS = -Zdll -Zcrtdll -Zomf
|
||||
|
||||
LINK = gcc
|
||||
EMXBIND = emxbind
|
||||
EMXBIND = emxbind
|
||||
EMXOMF = emxomf
|
||||
|
||||
LIBEXE = ar
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
-+getch.obj &
|
||||
-+getstr.obj &
|
||||
-+getyx.obj &
|
||||
-+inch.obj &
|
||||
-+inch.obj &
|
||||
-+inchstr.obj &
|
||||
-+initscr.obj &
|
||||
-+inopts.obj &
|
||||
|
@ -23,21 +23,21 @@
|
|||
-+kernel.obj &
|
||||
-+keyname.obj &
|
||||
-+mouse.obj &
|
||||
-+move.obj &
|
||||
-+move.obj &
|
||||
-+outopts.obj &
|
||||
-+overlay.obj &
|
||||
-+pad.obj &
|
||||
-+pad.obj &
|
||||
-+panel.obj &
|
||||
-+printw.obj &
|
||||
-+refresh.obj &
|
||||
-+scanw.obj &
|
||||
-+scr_dump.obj &
|
||||
-+scroll.obj &
|
||||
-+slk.obj &
|
||||
-+slk.obj &
|
||||
-+termattr.obj &
|
||||
-+terminfo.obj &
|
||||
-+touch.obj &
|
||||
-+util.obj &
|
||||
-+util.obj &
|
||||
-+window.obj &
|
||||
-+debug.obj &
|
||||
-+pdcclip.obj &
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
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.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
|
|
@ -60,9 +60,9 @@ demos: $(DEMOS)
|
|||
pdcurses.dll: $(DEFFILE)
|
||||
|
||||
$(DEFFILE): $(DEFDEPS)
|
||||
echo LIBRARY pdcurses > $@
|
||||
echo EXPORTS >> $@
|
||||
type $(BASEDEF) >> $@
|
||||
echo LIBRARY pdcurses > $@
|
||||
echo EXPORTS >> $@
|
||||
type $(BASEDEF) >> $@
|
||||
echo pdc_screen >> $@
|
||||
echo pdc_font >> $@
|
||||
echo pdc_icon >> $@
|
||||
|
|
|
@ -9,7 +9,7 @@ Building
|
|||
|
||||
. On *nix (including Linux and Mac OS X), run "make" in the sdl1
|
||||
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).
|
||||
|
||||
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-
|
||||
character support is not yet implemented for SDL.) Both makefiles
|
||||
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.
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
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).
|
||||
|
||||
|
||||
|
@ -38,7 +38,7 @@ Building
|
|||
for convenience; both panel and curses functions are in the main
|
||||
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:
|
||||
|
||||
make -f mingwin32.mak WIDE=Y
|
||||
|
@ -47,9 +47,9 @@ Building
|
|||
unless you also link with the Microsoft Layer for Unicode (not
|
||||
tested).
|
||||
|
||||
Another option, "UTF8=Y", makes PDCurses ignore the system locale, and
|
||||
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
|
||||
Another option, "UTF8=Y", makes PDCurses ignore the system locale, and
|
||||
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
|
||||
UTF-8 in the Win32 console:
|
||||
|
||||
make -f mingwin32.mak WIDE=Y UTF8=Y
|
||||
|
|
|
@ -26,13 +26,13 @@ CPPFLAGS = @DEFS@ -DXCURSES @SYS_DEFS@ -I$(PDCURSES_SRCDIR)
|
|||
BUILD = @CC@ -c $(CFLAGS) $(CPPFLAGS) @MH_XINC_DIR@
|
||||
|
||||
LINK = @CC@
|
||||
LDFLAGS =
|
||||
LDFLAGS =
|
||||
|
||||
LIBCURSES = libXCurses.a
|
||||
|
||||
all : $(LIBCURSES)
|
||||
|
||||
install :
|
||||
install :
|
||||
echo Does nothing at the moment
|
||||
|
||||
clean :
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PDCurses for X11
|
||||
================
|
||||
|
||||
This is a port of PDCurses for X11, aka XCurses. It is designed to
|
||||
allow existing curses programs to be re-compiled with PDCurses,
|
||||
This is a port of PDCurses for X11, aka XCurses. It is designed to
|
||||
allow existing curses programs to be re-compiled with PDCurses,
|
||||
resulting in native X11 programs.
|
||||
|
||||
|
||||
|
@ -43,8 +43,8 @@ Building
|
|||
Distribution Status
|
||||
-------------------
|
||||
|
||||
As of April 13, 2006, the files in this directory are released to the
|
||||
Public Domain, except for ScrollBox*, which are under essentially 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
|
||||
MIT X License.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue