]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/comp_parse.c
ncurses 6.0 - patch 20170318
[ncurses.git] / ncurses / tinfo / comp_parse.c
index 653a37412648de6a43470ad0cc1b2ee72fd336de..9a0ce487b167b38c6e8e31e46c5f8420bb117c23 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2013,2016 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            *
@@ -47,7 +47,7 @@
 
 #include <tic.h>
 
 
 #include <tic.h>
 
-MODULE_ID("$Id: comp_parse.c,v 1.88 2013/06/03 11:05:54 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.92 2016/09/10 20:08:32 tom Exp $")
 
 static void sanity_check2(TERMTYPE *, bool);
 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
 
 static void sanity_check2(TERMTYPE *, bool);
 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
@@ -75,6 +75,8 @@ enqueue(ENTRY * ep)
        newp->last->next = newp;
 }
 
        newp->last->next = newp;
 }
 
+#define NAMEBUFFER_SIZE (MAX_NAME_SIZE + 2)
+
 static char *
 force_bar(char *dst, char *src)
 {
 static char *
 force_bar(char *dst, char *src)
 {
@@ -82,8 +84,8 @@ force_bar(char *dst, char *src)
        size_t len = strlen(src);
        if (len > MAX_NAME_SIZE)
            len = MAX_NAME_SIZE;
        size_t len = strlen(src);
        if (len > MAX_NAME_SIZE)
            len = MAX_NAME_SIZE;
-       (void) strncpy(dst, src, len);
-       _nc_STRCPY(dst + len, "|", MAX_NAME_SIZE);
+       _nc_STRNCPY(dst, src, len);
+       _nc_STRCPY(dst + len, "|", NAMEBUFFER_SIZE - len);
        src = dst;
     }
     return src;
        src = dst;
     }
     return src;
@@ -107,8 +109,8 @@ static bool
 check_collisions(char *n1, char *n2, int counter)
 {
     char *pstart, *qstart, *pend, *qend;
 check_collisions(char *n1, char *n2, int counter)
 {
     char *pstart, *qstart, *pend, *qend;
-    char nc1[MAX_NAME_SIZE + 2];
-    char nc2[MAX_NAME_SIZE + 2];
+    char nc1[NAMEBUFFER_SIZE];
+    char nc2[NAMEBUFFER_SIZE];
 
     n1 = ForceBar(nc1, n1);
     n2 = ForceBar(nc2, n2);
 
     n1 = ForceBar(nc1, n1);
     n2 = ForceBar(nc2, n2);
@@ -162,18 +164,15 @@ name_ending(char *name)
 static bool
 remove_collision(char *n1, char *n2)
 {
 static bool
 remove_collision(char *n1, char *n2)
 {
-    char *p1 = n1;
     char *p2 = n2;
     char *pstart, *qstart, *pend, *qend;
     bool removed = FALSE;
 
 #if NCURSES_USE_TERMCAP && NCURSES_XNAMES
     if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
     char *p2 = n2;
     char *pstart, *qstart, *pend, *qend;
     bool removed = FALSE;
 
 #if NCURSES_USE_TERMCAP && NCURSES_XNAMES
     if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
-       p1 = n1 = skip_index(n1);
+       n1 = skip_index(n1);
        p2 = n2 = skip_index(n2);
     }
        p2 = n2 = skip_index(n2);
     }
-#else
-    (void) p1;
 #endif
 
     for (pstart = n1; (pend = name_ending(pstart)); pstart = next_name(pend)) {
 #endif
 
     for (pstart = n1; (pend = name_ending(pstart)); pstart = next_name(pend)) {
@@ -550,6 +549,7 @@ sanity_check2(TERMTYPE *tp, bool literal)
 #endif /* __UNUSED__ */
        PAIRED(enter_standout_mode, exit_standout_mode);
        PAIRED(enter_underline_mode, exit_underline_mode);
 #endif /* __UNUSED__ */
        PAIRED(enter_standout_mode, exit_standout_mode);
        PAIRED(enter_underline_mode, exit_underline_mode);
+       PAIRED(enter_italics_mode, exit_italics_mode);
     }
 
     /* we do this check/fix in postprocess_termcap(), but some packagers
     }
 
     /* we do this check/fix in postprocess_termcap(), but some packagers