diff --git a/curspriv.h b/curspriv.h index 23b1be46..eec05c36 100644 --- a/curspriv.h +++ b/curspriv.h @@ -15,7 +15,7 @@ * See the file maintain.er for details of the current maintainer. * ************************************************************************/ -/* $Id: curspriv.h,v 1.107 2006/07/31 22:28:53 wmcbrine Exp $ */ +/* $Id: curspriv.h,v 1.108 2006/07/31 23:07:41 wmcbrine Exp $ */ /* CURSPRIV.H @@ -101,7 +101,6 @@ void PDC_init_atrtab(void); WINDOW *PDC_makenew(int, int, int, int); int PDC_mouse_in_slk(int, int); void PDC_napms(int); -int PDC_rawgetch(void); int PDC_reset_prog_mode(void); int PDC_reset_shell_mode(void); int PDC_resize_screen(int, int); @@ -110,7 +109,6 @@ int PDC_scr_open(int, char **); int PDC_set_ctrl_break(bool); int PDC_set_font(int); void PDC_sync(WINDOW *); -int PDC_sysgetch(void); void PDC_transform_line(int, int, int, const chtype *); int PDC_validchar(int); diff --git a/dos/bccdos.lrf b/dos/bccdos.lrf index f9486e37..70f3238f 100644 --- a/dos/bccdos.lrf +++ b/dos/bccdos.lrf @@ -5,5 +5,5 @@ +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj & +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj & +touch.obj +util.obj +window.obj +pdcdebug.obj +pdcclip.obj +pdcdisp.obj & -+pdcgetsc.obj +pdckbd.obj +pdckey.obj +pdcscrn.obj +pdcsetsc.obj & -+pdcutil.obj +pdcwin.obj ,lib.map ++pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj & ++pdcwin.obj ,lib.map diff --git a/dos/bccdos.mak b/dos/bccdos.mak index dc3c9296..bcd739a2 100644 --- a/dos/bccdos.mak +++ b/dos/bccdos.mak @@ -77,7 +77,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcdebug.obj pdcclip.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -220,9 +220,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) -o$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -o$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) -o$@ $(osdir)\pdcscrn.c diff --git a/dos/gccdos.mak b/dos/gccdos.mak index 00d9829c..414c21a4 100644 --- a/dos/gccdos.mak +++ b/dos/gccdos.mak @@ -83,7 +83,7 @@ move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \ scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o PDCOBJS = pdcclip.o pdcdebug.o pdcdisp.o pdcgetsc.o pdcgo32.o pdckbd.o \ -pdckey.o pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o +pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o PANOBJS = panel.o @@ -229,9 +229,6 @@ pdcgo32.o: $(osdir)/pdcgo32.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) pdckbd.o: $(osdir)/pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) -c $(CCFLAGS) -o$@ $< -pdckey.o: $(srcdir)/pdckey.c $(PDCURSES_HEADERS) - $(CC) -c $(CCFLAGS) -o$@ $< - pdcscrn.o: $(osdir)/pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) -c $(CCFLAGS) -o$@ $< diff --git a/dos/mscdos.lrf b/dos/mscdos.lrf index 444ca746..27f401a0 100644 --- a/dos/mscdos.lrf +++ b/dos/mscdos.lrf @@ -41,7 +41,6 @@ -+pdcdisp.obj & -+pdcgetsc.obj & -+pdckbd.obj & --+pdckey.obj & -+pdcscrn.obj & -+pdcsetsc.obj & -+pdcutil.obj & diff --git a/dos/mscdos.mak b/dos/mscdos.mak index a6bee5fd..65fe7488 100644 --- a/dos/mscdos.mak +++ b/dos/mscdos.mak @@ -83,7 +83,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -224,9 +224,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c diff --git a/dos/msvcdos.mak b/dos/msvcdos.mak index 1680615b..7cabfd7a 100644 --- a/dos/msvcdos.mak +++ b/dos/msvcdos.mak @@ -83,7 +83,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -224,9 +224,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c diff --git a/dos/wccdos.lrf b/dos/wccdos.lrf index a1d00b76..156ee8e4 100644 --- a/dos/wccdos.lrf +++ b/dos/wccdos.lrf @@ -5,5 +5,4 @@ +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj +touch.obj +util.obj +window.obj +pdcclip.obj +pdcdebug.obj +pdcdisp.obj -+pdcgetsc.obj +pdckbd.obj +pdckey.obj +pdcscrn.obj +pdcsetsc.obj -+pdcutil.obj +pdcwin.obj ++pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj +pdcwin.obj diff --git a/dos/wccdos16.mak b/dos/wccdos16.mak index e747a75b..76167cfc 100644 --- a/dos/wccdos16.mak +++ b/dos/wccdos16.mak @@ -82,7 +82,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj & window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj & -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -224,9 +224,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) /fo=$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdcscrn.c diff --git a/dos/wccdos4g.mak b/dos/wccdos4g.mak index aafe116b..9772b767 100644 --- a/dos/wccdos4g.mak +++ b/dos/wccdos4g.mak @@ -81,7 +81,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj & window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj & -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -223,9 +223,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) /fo=$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_DOS_H) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdcscrn.c diff --git a/os2/bccos2.lrf b/os2/bccos2.lrf index f9486e37..70f3238f 100644 --- a/os2/bccos2.lrf +++ b/os2/bccos2.lrf @@ -5,5 +5,5 @@ +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj & +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj & +touch.obj +util.obj +window.obj +pdcdebug.obj +pdcclip.obj +pdcdisp.obj & -+pdcgetsc.obj +pdckbd.obj +pdckey.obj +pdcscrn.obj +pdcsetsc.obj & -+pdcutil.obj +pdcwin.obj ,lib.map ++pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj & ++pdcwin.obj ,lib.map diff --git a/os2/bccos2.mak b/os2/bccos2.mak index 9fd968f9..04c46ff6 100644 --- a/os2/bccos2.mak +++ b/os2/bccos2.mak @@ -75,7 +75,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -218,9 +218,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -o$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -o$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -o$@ $(osdir)\pdcscrn.c diff --git a/os2/gccos2.mak b/os2/gccos2.mak index 10019089..297b39cb 100644 --- a/os2/gccos2.mak +++ b/os2/gccos2.mak @@ -110,10 +110,10 @@ scroll.dlo slk.dlo termattr.dlo terminfo.dlo touch.dlo util.dlo \ window.dlo PDCOBJS = pdcclip.o pdcdebug.o pdcdisp.o pdcgetsc.o pdckbd.o \ -pdckey.o pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o +pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o PDCDLOS = pdcclip.dlo pdcdebug.dlo pdcdisp.dlo pdcgetsc.dlo pdckbd.dlo \ -pdckey.dlo pdcscrn.dlo pdcsetsc.dlo pdcutil.dlo pdcwin.dlo +pdcscrn.dlo pdcsetsc.dlo pdcutil.dlo pdcwin.dlo PANOBJS = panel.o @@ -268,9 +268,6 @@ pdcgetsc.o: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.o: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -o$@ $< -pdckey.o: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -o$@ $< - pdcscrn.o: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -o$@ $< @@ -413,9 +410,6 @@ pdcgetsc.dlo: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.dlo: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) $(DLLFLAGS) -o$@ $< -pdckey.dlo: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) $(DLLFLAGS) -o$@ $< - pdcscrn.dlo: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) $(DLLFLAGS) -o$@ $< diff --git a/os2/iccos2.lrf b/os2/iccos2.lrf index 5a059119..0b0fae52 100644 --- a/os2/iccos2.lrf +++ b/os2/iccos2.lrf @@ -41,7 +41,6 @@ -+pdcdisp.obj & -+pdcgetsc.obj & -+pdckbd.obj & --+pdckey.obj & -+pdcscrn.obj & -+pdcsetsc.obj & -+pdcutil.obj & diff --git a/os2/iccos2.mak b/os2/iccos2.mak index 898e028b..fcd10134 100644 --- a/os2/iccos2.mak +++ b/os2/iccos2.mak @@ -76,7 +76,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -216,9 +216,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c diff --git a/os2/wccos2.mak b/os2/wccos2.mak index fd027fc2..cafd5a67 100644 --- a/os2/wccos2.mak +++ b/os2/wccos2.mak @@ -79,7 +79,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj & window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj & -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -221,9 +221,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) /fo=$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdcscrn.c diff --git a/pdcurses/getch.c b/pdcurses/getch.c index c552e3d2..1cfd97ea 100644 --- a/pdcurses/getch.c +++ b/pdcurses/getch.c @@ -33,7 +33,7 @@ # undef wmove #endif -RCSID("$Id: getch.c,v 1.30 2006/07/15 15:38:24 wmcbrine Exp $"); +RCSID("$Id: getch.c,v 1.31 2006/07/31 23:07:41 wmcbrine Exp $"); /*man-start************************************************************** @@ -104,6 +104,168 @@ RCSID("$Id: getch.c,v 1.30 2006/07/15 15:38:24 wmcbrine Exp $"); #define getch PDC_getch #define ungetch PDC_ungetch +/*man-start************************************************************** + + PDC_breakout() - check for type-ahead + + PDCurses Description: + Check if input is pending, either directly from the keyboard, + or previously buffered. + + PDCurses Return Value: + The PDC_breakout() routine returns TRUE if keyboard input is + pending otherwise FALSE is returned. + + Portability: + PDCurses bool PDC_breakout(void); + +**man-end****************************************************************/ + +static bool PDC_breakout(void) +{ + bool rc; + + PDC_LOG(("PDC_breakout() - called\n")); + + /* ungotten or buffered char */ + rc = (c_ungind) || (c_pindex > c_gindex); + + if (!rc) + rc = PDC_check_bios_key(); + + PDC_LOG(("PDC_breakout() - rc %d c_ungind %d c_pindex %d c_gindex %d\n", + rc, c_ungind, c_pindex, c_gindex)); + + return rc; +} + +/*man-start************************************************************** + + PDC_rawgetch() - Returns the next uninterpreted character (if available). + + PDCurses Description: + Gets a character without any interpretation at all and returns + it. If keypad mode is active for the designated window, function + key translation will be performed. Otherwise, function keys are + ignored. If nodelay mode is active in the window, then + PDC_rawgetch() returns -1 if no character is available. + + WARNING: It is unknown whether the FUNCTION key translation + is performed at this level. --Frotz 911130 BUG + + PDCurses Return Value: + This function returns OK on success and ERR on error. + + Portability: + PDCurses int PDC_rawgetch(void); + +**man-end****************************************************************/ + +static int PDC_rawgetch(void) +{ + int c, oldc; + + PDC_LOG(("PDC_rawgetch() - called\n")); + + if (_getch_win_ == (WINDOW *)NULL) + return -1; + + if ((SP->delaytenths || _getch_win_->_delayms || _getch_win_->_nodelay) + && !PDC_breakout()) + return -1; + + for (;;) + { + c = PDC_get_bios_key(); + oldc = c; + + /* return the key if it is not a special key */ + + if (c != KEY_MOUSE && (c = PDC_validchar(c)) >= 0) + return c; + + if (_getch_win_->_use_keypad) + return oldc; + } +} + +/*man-start************************************************************** + + PDC_sysgetch() - Return a character using default system routines. + + PDCurses Description: + This is a private PDCurses function. + + Gets a character without normal ^S, ^Q, ^P and ^C interpretation + and returns it. If keypad mode is active for the designated + window, function key translation will be performed. Otherwise, + function keys are ignored. If nodelay mode is active in the + window, then sysgetch() returns -1 if no character is + available. + + PDCurses Return Value: + This function returns OK upon success otherwise ERR is returned. + + Portability: + PDCurses int PDC_sysgetch(void); + +**man-end****************************************************************/ + +static int PDC_sysgetch(void) +{ + int c; + + PDC_LOG(("PDC_sysgetch() - called\n")); + + if (_getch_win_ == (WINDOW *)NULL) + return -1; + + if ((SP->delaytenths || _getch_win_->_delayms || _getch_win_->_nodelay) + && !PDC_breakout()) + return -1; + + for (;;) + { + c = PDC_get_bios_key(); + + /* return the key if it is not a special key */ + + if ((unsigned int)c < 256) + return c; + + if ((c = PDC_validchar(c)) >= 0) + return c; + } +} + +/*man-start************************************************************** + + PDC_get_key_modifiers() - Returns the keyboard modifier(s) at time + of last getch() + + PDCurses Description: + This is a private PDCurses routine. + + Returns the keyboard modifiers effective at the time of the last + getch() call only if PDC_save_key_modifiers(TRUE) has been + called before the getch(). Use the macros; PDC_KEY_MODIFIER_* to + determine which modifier(s) were set. + + PDCurses Return Value: + This function returns the modifiers. + + Portability: + PDCurses int PDC_get_key_modifiers(void); + +**man-end****************************************************************/ + +unsigned long PDC_get_key_modifiers(void) +{ + PDC_LOG(("PDC_get_key_modifiers() - called\n")); + + return pdc_key_modifiers; +} + int PDC_getch(void) { PDC_LOG(("getch() - called\n")); diff --git a/pdcurses/pdckey.c b/pdcurses/pdckey.c deleted file mode 100644 index a727734f..00000000 --- a/pdcurses/pdckey.c +++ /dev/null @@ -1,183 +0,0 @@ -/************************************************************************ - * This file is part of PDCurses. PDCurses is public domain software; * - * you may use it for any purpose. This software is provided AS IS with * - * NO WARRANTY whatsoever. * - * * - * 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. * - * * - * No distribution of modified PDCurses code may be made under the name * - * "PDCurses", except by the current maintainer. (Although PDCurses is * - * public domain, the name is a trademark.) * - * * - * See the file maintain.er for details of the current maintainer. * - ************************************************************************/ - -#define CURSES_LIBRARY 1 -#include - -RCSID("$Id: pdckey.c,v 1.6 2006/07/31 22:49:07 wmcbrine Exp $"); - -/*man-start************************************************************** - - PDC_breakout() - check for type-ahead - - PDCurses Description: - Check if input is pending, either directly from the keyboard, - or previously buffered. - - PDCurses Return Value: - The PDC_breakout() routine returns TRUE if keyboard input is - pending otherwise FALSE is returned. - - Portability: - PDCurses bool PDC_breakout(void); - -**man-end****************************************************************/ - -static bool PDC_breakout(void) -{ - bool rc; - - PDC_LOG(("PDC_breakout() - called\n")); - - /* ungotten or buffered char */ - rc = (c_ungind) || (c_pindex > c_gindex); - - if (!rc) - rc = PDC_check_bios_key(); - - PDC_LOG(("PDC_breakout() - rc %d c_ungind %d c_pindex %d c_gindex %d\n", - rc, c_ungind, c_pindex, c_gindex)); - - return rc; -} - -/*man-start************************************************************** - - PDC_rawgetch() - Returns the next uninterpreted character (if available). - - PDCurses Description: - Gets a character without any interpretation at all and returns - it. If keypad mode is active for the designated window, function - key translation will be performed. Otherwise, function keys are - ignored. If nodelay mode is active in the window, then - PDC_rawgetch() returns -1 if no character is available. - - WARNING: It is unknown whether the FUNCTION key translation - is performed at this level. --Frotz 911130 BUG - - PDCurses Return Value: - This function returns OK on success and ERR on error. - - Portability: - PDCurses int PDC_rawgetch(void); - -**man-end****************************************************************/ - -int PDC_rawgetch(void) -{ - int c, oldc; - - PDC_LOG(("PDC_rawgetch() - called\n")); - - if (_getch_win_ == (WINDOW *)NULL) - return -1; - - if ((SP->delaytenths || _getch_win_->_delayms || _getch_win_->_nodelay) - && !PDC_breakout()) - return -1; - - for (;;) - { - c = PDC_get_bios_key(); - oldc = c; - - /* return the key if it is not a special key */ - - if (c != KEY_MOUSE && (c = PDC_validchar(c)) >= 0) - return c; - - if (_getch_win_->_use_keypad) - return oldc; - } -} - -/*man-start************************************************************** - - PDC_sysgetch() - Return a character using default system routines. - - PDCurses Description: - This is a private PDCurses function. - - Gets a character without normal ^S, ^Q, ^P and ^C interpretation - and returns it. If keypad mode is active for the designated - window, function key translation will be performed. Otherwise, - function keys are ignored. If nodelay mode is active in the - window, then sysgetch() returns -1 if no character is - available. - - PDCurses Return Value: - This function returns OK upon success otherwise ERR is returned. - - Portability: - PDCurses int PDC_sysgetch(void); - -**man-end****************************************************************/ - -int PDC_sysgetch(void) -{ - int c; - - PDC_LOG(("PDC_sysgetch() - called\n")); - - if (_getch_win_ == (WINDOW *)NULL) - return -1; - - if ((SP->delaytenths || _getch_win_->_delayms || _getch_win_->_nodelay) - && !PDC_breakout()) - return -1; - - for (;;) - { - c = PDC_get_bios_key(); - - /* return the key if it is not a special key */ - - if ((unsigned int)c < 256) - return c; - - if ((c = PDC_validchar(c)) >= 0) - return c; - } -} - -/*man-start************************************************************** - - PDC_get_key_modifiers() - Returns the keyboard modifier(s) at time - of last getch() - - PDCurses Description: - This is a private PDCurses routine. - - Returns the keyboard modifiers effective at the time of the last - getch() call only if PDC_save_key_modifiers(TRUE) has been - called before the getch(). Use the macros; PDC_KEY_MODIFIER_* to - determine which modifier(s) were set. - - PDCurses Return Value: - This function returns the modifiers. - - Portability: - PDCurses int PDC_get_key_modifiers(void); - -**man-end****************************************************************/ - -unsigned long PDC_get_key_modifiers(void) -{ - PDC_LOG(("PDC_get_key_modifiers() - called\n")); - - return pdc_key_modifiers; -} diff --git a/win32/bccwin32.lrf b/win32/bccwin32.lrf index f9486e37..70f3238f 100644 --- a/win32/bccwin32.lrf +++ b/win32/bccwin32.lrf @@ -5,5 +5,5 @@ +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj & +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj & +touch.obj +util.obj +window.obj +pdcdebug.obj +pdcclip.obj +pdcdisp.obj & -+pdcgetsc.obj +pdckbd.obj +pdckey.obj +pdcscrn.obj +pdcsetsc.obj & -+pdcutil.obj +pdcwin.obj ,lib.map ++pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj & ++pdcwin.obj ,lib.map diff --git a/win32/bccwin32.mak b/win32/bccwin32.mak index 9531cc25..e9a779ba 100644 --- a/win32/bccwin32.mak +++ b/win32/bccwin32.mak @@ -75,7 +75,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -221,9 +221,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -o$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -o$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -o$@ $(osdir)\pdcscrn.c diff --git a/win32/gccwin32.mak b/win32/gccwin32.mak index 145df67d..7f355bf6 100644 --- a/win32/gccwin32.mak +++ b/win32/gccwin32.mak @@ -79,7 +79,7 @@ move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \ scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o PDCOBJS = pdcclip.o pdcdebug.o pdcdisp.o pdcgetsc.o pdckbd.o \ -pdckey.o pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o +pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o PANOBJS = panel.o @@ -221,9 +221,6 @@ pdcgetsc.o: $(osdir)/pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.o: $(osdir)/pdckbd.c $(PDCURSES_HEADERS) $(CC) -c $(CCFLAGS) -o$@ $< -pdckey.o: $(srcdir)/pdckey.c $(PDCURSES_HEADERS) - $(CC) -c $(CCFLAGS) -o$@ $< - pdcscrn.o: $(osdir)/pdcscrn.c $(PDCURSES_HEADERS) $(CC) -c $(CCFLAGS) -o$@ $< diff --git a/win32/lccwin32.mak b/win32/lccwin32.mak index 0fd6bdfe..6967f10f 100644 --- a/win32/lccwin32.mak +++ b/win32/lccwin32.mak @@ -80,7 +80,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -95,8 +95,8 @@ scroll.dll.obj slk.dll.obj termattr.dll.obj terminfo.dll.obj \ touch.dll.obj util.dll.obj window.dll.obj PDCDLLS = pdcclip.dll.obj pdcdebug.dll.obj pdcdisp.dll.obj \ -pdcgetsc.dll.obj pdckbd.dll.obj pdckey.dll.obj pdcscrn.dll.obj \ -pdcsetsc.dll.obj pdcutil.dll.obj pdcwin.dll.obj +pdcgetsc.dll.obj pdckbd.dll.obj pdcscrn.dll.obj pdcsetsc.dll.obj \ +pdcutil.dll.obj pdcwin.dll.obj PANDLLS = panel.dll.obj @@ -239,9 +239,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c @@ -386,9 +383,6 @@ pdcgetsc.dll.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) $(DLL_DIR) pdckbd.dll.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(DLL_DIR) $(CC) $(DLL_CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.dll.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) $(DLL_DIR) - $(CC) $(DLL_CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.dll.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(DLL_DIR) $(CC) $(DLL_CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c diff --git a/win32/mingwin32.mak b/win32/mingwin32.mak index 2ae2765c..4ca049d7 100644 --- a/win32/mingwin32.mak +++ b/win32/mingwin32.mak @@ -77,7 +77,7 @@ move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \ scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o PDCOBJS = pdcclip.o pdcdebug.o pdcdisp.o pdcgetsc.o pdckbd.o \ -pdckey.o pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o +pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o PANOBJS = panel.o @@ -219,9 +219,6 @@ pdcgetsc.o: $(osdir)/pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.o: $(osdir)/pdckbd.c $(PDCURSES_HEADERS) $(CC) -c $(CCFLAGS) -o$@ $< -pdckey.o: $(srcdir)/pdckey.c $(PDCURSES_HEADERS) - $(CC) -c $(CCFLAGS) -o$@ $< - pdcscrn.o: $(osdir)/pdcscrn.c $(PDCURSES_HEADERS) $(CC) -c $(CCFLAGS) -o$@ $< diff --git a/win32/vcwin32.mak b/win32/vcwin32.mak index 6e9f3cc3..5953ca66 100644 --- a/win32/vcwin32.mak +++ b/win32/vcwin32.mak @@ -90,7 +90,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \ window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj \ -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -105,8 +105,8 @@ scroll.dll.obj slk.dll.obj termattr.dll.obj terminfo.dll.obj \ touch.dll.obj util.dll.obj window.dll.obj PDCDLLS = pdcclip.dll.obj pdcdebug.dll.obj pdcdisp.dll.obj \ -pdcgetsc.dll.obj pdckbd.dll.obj pdckey.dll.obj pdcscrn.dll.obj \ -pdcsetsc.dll.obj pdcutil.dll.obj pdcwin.dll.obj +pdcgetsc.dll.obj pdckbd.dll.obj pdcscrn.dll.obj pdcsetsc.dll.obj \ +pdcutil.dll.obj pdcwin.dll.obj PANDLLS = panel.dll.obj @@ -255,9 +255,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c @@ -402,9 +399,6 @@ pdcgetsc.dll.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.dll.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) -LD $(DLL_CCFLAGS) -Fo$@ $(osdir)\pdckbd.c -pdckey.dll.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) -LD $(DLL_CCFLAGS) -Fo$@ $(srcdir)\pdckey.c - pdcscrn.dll.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) -LD $(DLL_CCFLAGS) -Fo$@ $(osdir)\pdcscrn.c diff --git a/win32/wccwin32.mak b/win32/wccwin32.mak index 2335982c..39f70577 100644 --- a/win32/wccwin32.mak +++ b/win32/wccwin32.mak @@ -79,7 +79,7 @@ scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj & window.obj PDCOBJS = pdcclip.obj pdcdebug.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj & -pdckey.obj pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj +pdcscrn.obj pdcsetsc.obj pdcutil.obj pdcwin.obj PANOBJS = panel.obj @@ -221,9 +221,6 @@ pdcgetsc.obj: $(osdir)\pdcgetsc.c $(PDCURSES_HEADERS) pdckbd.obj: $(osdir)\pdckbd.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdckbd.c -pdckey.obj: $(srcdir)\pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) /fo=$@ $(srcdir)\pdckey.c - pdcscrn.obj: $(osdir)\pdcscrn.c $(PDCURSES_HEADERS) $(CC) $(CCFLAGS) /fo=$@ $(osdir)\pdcscrn.c diff --git a/x11/Makefile.aix.in b/x11/Makefile.aix.in index abb40f80..ae802e3b 100644 --- a/x11/Makefile.aix.in +++ b/x11/Makefile.aix.in @@ -81,7 +81,7 @@ move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \ scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o PDCOBJS = pdcclip.o pdcdebug.o pdcdisp.o pdcgetsc.o pdckbd.o \ -pdckey.o pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o +pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o X11OBJS = pdcx11.o x11.o sb.o ScrollBox.o @@ -231,9 +231,6 @@ pdcgetsc.o: $(osdir)/pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H) pdckbd.o: $(osdir)/pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H) $(CC) $(CCFLAGS) -o $@ $(osdir)/pdckbd.c -pdckey.o: $(srcdir)/pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -o $@ $(srcdir)/pdckey.c - pdcscrn.o: $(osdir)/pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H) $(CC) $(CCFLAGS) -o $@ $(osdir)/pdcscrn.c diff --git a/x11/Makefile.in b/x11/Makefile.in index 702295f9..4c1c38a1 100644 --- a/x11/Makefile.in +++ b/x11/Makefile.in @@ -93,7 +93,7 @@ move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \ scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o PDCOBJS = pdcclip.o pdcdebug.o pdcdisp.o pdcgetsc.o pdckbd.o \ -pdckey.o pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o +pdcscrn.o pdcsetsc.o pdcutil.o pdcwin.o X11OBJS = pdcx11.o x11.o sb.o ScrollBox.o @@ -108,7 +108,7 @@ scroll.sho slk.sho termattr.sho terminfo.sho touch.sho util.sho \ window.sho PDCSHOBJS = pdcclip.sho pdcdebug.sho pdcdisp.sho pdcgetsc.sho pdckbd.sho \ -pdckey.sho pdcscrn.sho pdcsetsc.sho pdcutil.sho pdcwin.sho +pdcscrn.sho pdcsetsc.sho pdcutil.sho pdcwin.sho X11SHOBJS = pdcx11.sho x11.sho sb.sho ScrollBox.sho @@ -257,9 +257,6 @@ pdcgetsc.o: $(osdir)/pdcgetsc.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H) pdckbd.o: $(osdir)/pdckbd.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H) $(CC) $(CCFLAGS) -o $@ $(osdir)/pdckbd.c -pdckey.o: $(srcdir)/pdckey.c $(PDCURSES_HEADERS) - $(CC) $(CCFLAGS) -o $@ $(srcdir)/pdckey.c - pdcscrn.o: $(osdir)/pdcscrn.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H) $(CC) $(CCFLAGS) -o $@ $(osdir)/pdcscrn.c @@ -550,12 +547,6 @@ pdckbd.sho: $(osdir)/pdckbd.c $(PDCURSES_HEADERS) $(O2SHO) $(SAVE2O) -pdckey.sho: $(srcdir)/pdckey.c $(PDCURSES_HEADERS) - $(O2SAVE) - $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(srcdir)/pdckey.c - $(O2SHO) - $(SAVE2O) - pdcscrn.sho: $(osdir)/pdcscrn.c $(PDCURSES_HEADERS) $(O2SAVE) $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(osdir)/pdcscrn.c