60 lines
1.7 KiB
C++
60 lines
1.7 KiB
C++
$NetBSD: patch-Source_CursesDialog_cmCursesStringWidget.cxx,v 1.2 2015/09/12 16:46:11 wiz Exp $
|
|
|
|
printw takes a format string.
|
|
http://public.kitware.com/Bug/view.php?id=15738
|
|
|
|
Don't use implemention-details of ncurses to see
|
|
if the overloading behavior of REQ_DEL_PREV is active, just undo any
|
|
damage it may have done.
|
|
http://public.kitware.com/Bug/view.php?id=15739
|
|
|
|
--- Source/CursesDialog/cmCursesStringWidget.cxx.orig 2015-08-13 14:57:00.000000000 +0000
|
|
+++ Source/CursesDialog/cmCursesStringWidget.cxx
|
|
@@ -168,17 +168,16 @@ bool cmCursesStringWidget::HandleInput(i
|
|
else if ( key == 127 ||
|
|
key == KEY_BACKSPACE )
|
|
{
|
|
- if ( form->curcol > 0 )
|
|
- {
|
|
+ FIELD *cur = current_field(form);
|
|
form_driver(form, REQ_DEL_PREV);
|
|
- }
|
|
+ if (current_field(form) != cur)
|
|
+ {
|
|
+ set_current_field(form, cur);
|
|
+ }
|
|
}
|
|
else if ( key == ctrl('d') ||key == KEY_DC )
|
|
{
|
|
- if ( form->curcol >= 0 )
|
|
- {
|
|
- form_driver(form, REQ_DEL_CHAR);
|
|
- }
|
|
+ form_driver(form, REQ_DEL_CHAR);
|
|
}
|
|
else
|
|
{
|
|
@@ -229,17 +228,16 @@ bool cmCursesStringWidget::PrintKeys()
|
|
}
|
|
firstLine[511] = '\0';
|
|
curses_move(y-4,0);
|
|
- printw(firstLine);
|
|
+ printw("%s", firstLine);
|
|
curses_move(y-3,0);
|
|
- printw(firstLine);
|
|
+ printw("%s", firstLine);
|
|
curses_move(y-2,0);
|
|
- printw(firstLine);
|
|
+ printw("%s", firstLine);
|
|
curses_move(y-1,0);
|
|
- printw(firstLine);
|
|
+ printw("%s", firstLine);
|
|
|
|
- sprintf(firstLine, "Editing option, press [enter] to leave edit.");
|
|
curses_move(y-3,0);
|
|
- printw(firstLine);
|
|
+ printw("Editing option, press [enter] to leave edit.");
|
|
return true;
|
|
}
|
|
else
|