#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.244 2017/09/20 00:39:37 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.248 2017/12/16 23:05:21 tom Exp $")
#define STDIN_NAME "<stdin>"
*target = (*target * 10) + (source - '0');
}
-#define VtoTrace(opt) (unsigned) ((opt > 0) ? opt : (opt == 0))
-
int
main(int argc, char *argv[])
{
return result;
}
+/*
+ * ncurses assumes that u6 could be used for getting the cursor-position, but
+ * that is not implemented. Make a special case for that, to quiet needless
+ * warnings.
+ *
+ * There are other string-capability extensions (see terminfo.src) which could
+ * have parameters such as "Ss", "%u", but are not used by ncurses.
+ */
static int
is_user_capability(const char *name)
{
- int result = 0;
+ int result = -1;
if (name[0] == 'u' &&
(name[1] >= '0' && name[1] <= '9') &&
name[2] == '\0')
- result = 1;
+ result = (name[1] == '6') ? 2 : 0;
return result;
}
analyzed = popcount;
}
if (actual != analyzed && expected != analyzed) {
- if (is_user_capability(name)) {
+ int user_cap = is_user_capability(name);
+ if ((user_cap == analyzed) && using_extensions) {
+ ; /* ignore */
+ } else if (user_cap >= 0) {
_nc_warning("tparm will use %d parameters for %s",
analyzed, name);
} else {
}
static void
-check_delays(const char *name, const char *value)
+check_delays(TERMTYPE2 *tp, const char *name, const char *value)
{
const char *p, *q;
const char *first = 0;
_nc_warning("function-key %s has delay", name);
} else if (proportional && !line_capability(name)) {
_nc_warning("non-line capability using proportional delay: %s", name);
+ } else if (!xon_xoff &&
+ !mandatory &&
+ strchr(_nc_first_name(tp->term_names), '+') == 0) {
+ _nc_warning("%s in %s is used since no xon/xoff",
+ (proportional
+ ? "proportional delay"
+ : "delay"),
+ name);
}
} else {
p = q - 1; /* restart scan */
* check for consistent number of parameters.
*/
if (j >= SIZEOF(parametrized) ||
- is_user_capability(name) ||
+ is_user_capability(name) > 0 ||
parametrized[j] > 0) {
check_params(tp, name, a, (j >= STRCOUNT));
}
- check_delays(ExtStrname(tp, (int) j, strnames), a);
+ check_delays(tp, ExtStrname(tp, (int) j, strnames), a);
if (capdump) {
check_infotocap(tp, (int) j, a);
}