projects
/
ncurses.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ncurses 6.2 - patch 20210418
[ncurses.git]
/
ncurses
/
base
/
lib_getstr.c
diff --git
a/ncurses/base/lib_getstr.c
b/ncurses/base/lib_getstr.c
index 0e446349ca173ae0a0a64ba5b55b2f343fd04564..7871fb357a62a6d75388fa71127050a4a81c476b 100644
(file)
--- a/
ncurses/base/lib_getstr.c
+++ b/
ncurses/base/lib_getstr.c
@@
-1,5
+1,6
@@
/****************************************************************************
/****************************************************************************
- * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
+ * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 1998-2011,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@
-38,9
+39,10
@@
**
*/
**
*/
+#define NEED_KEY_EVENT
#include <curses.priv.h>
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getstr.c,v 1.3
0 2011/10/22 16:31:35
tom Exp $")
+MODULE_ID("$Id: lib_getstr.c,v 1.3
5 2020/07/18 20:02:24
tom Exp $")
/*
* This wipes out the last character, no matter whether it was a tab, control
/*
* This wipes out the last character, no matter whether it was a tab, control
@@
-85,9
+87,11
@@
wgetnstr_events(WINDOW *win,
T((T_CALLED("wgetnstr(%p,%p,%d)"), (void *) win, (void *) str, maxlen));
T((T_CALLED("wgetnstr(%p,%p,%d)"), (void *) win, (void *) str, maxlen));
- if (!win)
+ if (!win
|| !str
)
returnCode(ERR);
returnCode(ERR);
+ maxlen = _nc_getstr_limit(maxlen);
+
NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf);
oldnl = sp->_nl;
NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf);
oldnl = sp->_nl;
@@
-142,7
+146,7
@@
wgetnstr_events(WINDOW *win,
str = WipeOut(win, y, x, oldstr, str, oldecho);
}
} else if (ch >= KEY_MIN
str = WipeOut(win, y, x, oldstr, str, oldecho);
}
} else if (ch >= KEY_MIN
- || (
maxlen >= 0 &&
str - oldstr >= maxlen)) {
+ || (str - oldstr >= maxlen)) {
NCURSES_SP_NAME(beep) (NCURSES_SP_ARG);
} else {
*str++ = (char) ch;
NCURSES_SP_NAME(beep) (NCURSES_SP_ARG);
} else {
*str++ = (char) ch;