X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Finfocmp.c;h=587cbc3449beee64f18cbc787b21bc8a3c592387;hp=bcec57d9c75cd03f4dd573417c9362c02f09fb79;hb=17d9459c7aecedecbfc59b8ba5d29279a01e9003;hpb=e6f4ffe150c7d919792f29a70b4f031cfab5ef06 diff --git a/progs/infocmp.c b/progs/infocmp.c index bcec57d9..587cbc34 100644 --- a/progs/infocmp.c +++ b/progs/infocmp.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2014 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 * @@ -42,7 +42,7 @@ #include -MODULE_ID("$Id: infocmp.c,v 1.126 2013/06/08 16:51:33 tom Exp $") +MODULE_ID("$Id: infocmp.c,v 1.129 2014/02/01 22:11:03 tom Exp $") #define L_CURL "{" #define R_CURL "}" @@ -788,7 +788,7 @@ analyze_string(const char *name, const char *cap, TERMTYPE *tp) const assoc *ap; int tp_lines = tp->Numbers[2]; - if (cap == ABSENT_STRING || cap == CANCELLED_STRING) + if (!VALID_STRING(cap)) return; (void) printf("%s: ", name); @@ -804,12 +804,13 @@ analyze_string(const char *name, const char *cap, TERMTYPE *tp) for (i = 0; i < STRCOUNT; i++) { char *cp = tp->Strings[i]; - /* don't use soft-key capabilities */ - if (strnames[i][0] == 'k' && strnames[i][0] == 'f') + /* don't use function-key capabilities */ + if (strnames[i][0] == 'k' && strnames[i][1] == 'f') continue; - if (cp != ABSENT_STRING && cp != CANCELLED_STRING && cp[0] && cp - != cap) { + if (VALID_STRING(cp) && + cp[0] != '\0' && + cp != cap) { len = strlen(cp); (void) strncpy(buf2, sp, len); buf2[len] = '\0'; @@ -817,7 +818,7 @@ analyze_string(const char *name, const char *cap, TERMTYPE *tp) if (_nc_capcmp(cp, buf2)) continue; -#define ISRS(s) (!strncmp((s), "is", 2) || !strncmp((s), "rs", 2)) +#define ISRS(s) (!strncmp((s), "is", (size_t) 2) || !strncmp((s), "rs", (size_t) 2)) /* * Theoretically we just passed the test for translation * (equality once the padding is stripped). However, there @@ -857,7 +858,7 @@ analyze_string(const char *name, const char *cap, TERMTYPE *tp) /* now check for standard-mode sequences */ if (!expansion && (csi = skip_csi(sp)) != 0 - && (len = strspn(sp + csi, "0123456789;")) + && (len = (strspn) (sp + csi, "0123456789;")) && (len < sizeof(buf3)) && (next = (size_t) csi + len) && ((sp[next] == 'h') || (sp[next] == 'l'))) { @@ -878,7 +879,7 @@ analyze_string(const char *name, const char *cap, TERMTYPE *tp) if (!expansion && (csi = skip_csi(sp)) != 0 && sp[csi] == '?' - && (len = strspn(sp + csi + 1, "0123456789;")) + && (len = (strspn) (sp + csi + 1, "0123456789;")) && (len < sizeof(buf3)) && (next = (size_t) csi + 1 + len) && ((sp[next] == 'h') || (sp[next] == 'l'))) { @@ -898,7 +899,7 @@ analyze_string(const char *name, const char *cap, TERMTYPE *tp) /* now check for ECMA highlight sequences */ if (!expansion && (csi = skip_csi(sp)) != 0 - && (len = strspn(sp + csi, "0123456789;")) != 0 + && (len = (strspn) (sp + csi, "0123456789;")) != 0 && (len < sizeof(buf3)) && (next = (size_t) csi + len) && sp[next] == 'm') {