X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Fdump_entry.c;h=e084e0f0f541a507cba7aa71d75c36e059d18915;hp=d0e420ecfb453c6410d2d1f67ebbd33a9a36f5a4;hb=cf6a62567b2365c8678b7d561845bdbd1739e5da;hpb=b116355ab2af379e49fd0be31bdd440fc14fd902 diff --git a/progs/dump_entry.c b/progs/dump_entry.c index d0e420ec..e084e0f0 100644 --- a/progs/dump_entry.c +++ b/progs/dump_entry.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc. * + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2016,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 * @@ -39,7 +40,7 @@ #include "termsort.c" /* this C file is generated */ #include /* so is this */ -MODULE_ID("$Id: dump_entry.c,v 1.173 2019/05/11 21:02:24 tom Exp $") +MODULE_ID("$Id: dump_entry.c,v 1.179 2020/07/08 21:21:11 tom Exp $") #define DISCARD(string) string = ABSENT_STRING #define PRINTF (void) printf @@ -1124,7 +1125,7 @@ fmt_entry(TERMTYPE2 *tterm, char *s = srccap, *d = buffer; int need = 3 + (int) strlen(name); while ((*d = *s++) != 0) { - if ((d - buffer + 1) >= (int) sizeof(buffer)) { + if ((d - buffer + 2) >= (int) sizeof(buffer)) { fprintf(stderr, "%s: value for %s is too long\n", _nc_progname, @@ -1136,7 +1137,8 @@ fmt_entry(TERMTYPE2 *tterm, *d++ = '\\'; *d = ':'; } else if (*d == '\\') { - *++d = *s++; + if ((*++d = *s++) == '\0') + break; } d++; *d = '\0'; @@ -1396,7 +1398,7 @@ one_one_mapping(const char *mapping) if (VALID_STRING(mapping)) { int n = 0; - while (mapping[n] != '\0') { + while (mapping[n] != '\0' && mapping[n + 1] != '\0') { if (isLine(mapping[n]) && mapping[n] != mapping[n + 1]) { result = FALSE;