ncurses 5.9 - patch 20110730
[ncurses.git] / ncurses / tinfo / alloc_ttype.c
index afe74e1a01a088fe360df9822bbc787a1bb2c36e..b02cb9c6010e0c26015d7cc2cded446bd9ba4ef4 100644 (file)
@@ -42,7 +42,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: alloc_ttype.c,v 1.20 2010/04/24 23:49:43 tom Exp $")
+MODULE_ID("$Id: alloc_ttype.c,v 1.22 2010/12/19 00:24:09 tom Exp $")
 
 #if NCURSES_XNAMES
 /*
@@ -90,6 +90,9 @@ find_name(char **table, int length, char *name)
     return FALSE;
 }
 
+#define EXTEND_NUM(num, ext) \
+       to->num = (unsigned short) (to->num + (ext - to->ext))
+
 static void
 realign_data(TERMTYPE *to, char **ext_Names,
             int ext_Booleans,
@@ -100,7 +103,7 @@ realign_data(TERMTYPE *to, char **ext_Names,
     int limit = (to->ext_Booleans + to->ext_Numbers + to->ext_Strings);
 
     if (to->ext_Booleans != ext_Booleans) {
-       to->num_Booleans += (ext_Booleans - to->ext_Booleans);
+       EXTEND_NUM(num_Booleans, ext_Booleans);
        to->Booleans = typeRealloc(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
        for (n = to->ext_Booleans - 1,
             m = ext_Booleans - 1,
@@ -114,7 +117,7 @@ realign_data(TERMTYPE *to, char **ext_Names,
        to->ext_Booleans = UShort(ext_Booleans);
     }
     if (to->ext_Numbers != ext_Numbers) {
-       to->num_Numbers += (ext_Numbers - to->ext_Numbers);
+       EXTEND_NUM(num_Numbers, ext_Numbers);
        to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers);
        for (n = to->ext_Numbers - 1,
             m = ext_Numbers - 1,
@@ -128,7 +131,7 @@ realign_data(TERMTYPE *to, char **ext_Names,
        to->ext_Numbers = UShort(ext_Numbers);
     }
     if (to->ext_Strings != ext_Strings) {
-       to->num_Strings += (ext_Strings - to->ext_Strings);
+       EXTEND_NUM(num_Strings, ext_Strings);
        to->Strings = typeRealloc(char *, to->num_Strings, to->Strings);
        for (n = to->ext_Strings - 1,
             m = ext_Strings - 1,
@@ -347,7 +350,7 @@ adjust_cancels(TERMTYPE *to, TERMTYPE *from)
        int j_str = to->num_Strings - first - to->ext_Strings;
 
        if (to->Strings[j + j_str] == CANCELLED_STRING) {
-           if ((k = _nc_find_ext_name(from, to->ext_Names[j], BOOLEAN)) >= 0) {
+           if (_nc_find_ext_name(from, to->ext_Names[j], BOOLEAN) >= 0) {
                if (_nc_del_ext_name(to, name, STRING)
                    || _nc_del_ext_name(to, name, NUMBER)) {
                    k = _nc_ins_ext_name(to, name, BOOLEAN);
@@ -355,8 +358,7 @@ adjust_cancels(TERMTYPE *to, TERMTYPE *from)
                } else {
                    j++;
                }
-           } else if ((k = _nc_find_ext_name(from, to->ext_Names[j],
-                                             NUMBER)) >= 0) {
+           } else if (_nc_find_ext_name(from, to->ext_Names[j], NUMBER) >= 0) {
                if (_nc_del_ext_name(to, name, STRING)
                    || _nc_del_ext_name(to, name, BOOLEAN)) {
                    k = _nc_ins_ext_name(to, name, NUMBER);
@@ -364,8 +366,7 @@ adjust_cancels(TERMTYPE *to, TERMTYPE *from)
                } else {
                    j++;
                }
-           } else if ((k = _nc_find_ext_name(from, to->ext_Names[j],
-                                             STRING)) >= 0) {
+           } else if (_nc_find_ext_name(from, to->ext_Names[j], STRING) >= 0) {
                if (_nc_del_ext_name(to, name, NUMBER)
                    || _nc_del_ext_name(to, name, BOOLEAN)) {
                    k = _nc_ins_ext_name(to, name, STRING);