]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - progs/dump_entry.c
ncurses 5.6 - patch 20080419
[ncurses.git] / progs / dump_entry.c
index 0a3cb38059cde1d19800dfdaba101ea7a6868f73..eeee5dbb6a04d64dc8a6672fa1f78595bd83f55c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 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 +39,7 @@
 #include "termsort.c"          /* this C file is generated */
 #include <parametrized.h>      /* so is this */
 
-MODULE_ID("$Id: dump_entry.c,v 1.79 2006/09/30 20:18:15 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.82 2008/04/19 22:27:04 tom Exp $")
 
 #define INDENT                 8
 #define DISCARD(string) string = ABSENT_STRING
@@ -352,14 +352,17 @@ version_filter(PredType type, PredIdx idx)
        }
        break;
 
+#define is_termcap(type) (idx < (int) sizeof(type##_from_termcap) && \
+                         type##_from_termcap[idx])
+
     case V_BSD:                /* BSD */
        switch (type) {
        case BOOLEAN:
-           return bool_from_termcap[idx];
+           return is_termcap(bool);
        case NUMBER:
-           return num_from_termcap[idx];
+           return is_termcap(num);
        case STRING:
-           return str_from_termcap[idx];
+           return is_termcap(str);
        }
        break;
     }
@@ -536,6 +539,10 @@ fmt_complex(char *src, int level)
            params = FALSE;
            percent = FALSE;
            break;
+       case ' ':
+           strncpy_DYN(&tmpbuf, "\\s", 2);
+           ++src;
+           continue;
        default:
            percent = FALSE;
            break;
@@ -788,11 +795,11 @@ fmt_entry(TERMTYPE *tterm,
      * Much more work should be done on this to support dumping termcaps.
      */
     if (tversion == V_HPUX) {
-       if (memory_lock) {
+       if (VALID_STRING(memory_lock)) {
            (void) sprintf(buffer, "meml=%s", memory_lock);
            WRAP_CONCAT;
        }
-       if (memory_unlock) {
+       if (VALID_STRING(memory_unlock)) {
            (void) sprintf(buffer, "memu=%s", memory_unlock);
            WRAP_CONCAT;
        }
@@ -1223,7 +1230,7 @@ repair_acsc(TERMTYPE *tp)
        bool fix_needed = FALSE;
 
        for (n = 0, source = 0; acs_chars[n] != 0; n++) {
-           target = acs_chars[n];
+           target = UChar(acs_chars[n]);
            if (source >= target) {
                fix_needed = TRUE;
                break;
@@ -1235,7 +1242,7 @@ repair_acsc(TERMTYPE *tp)
        if (fix_needed) {
            memset(mapped, 0, sizeof(mapped));
            for (n = 0; acs_chars[n] != 0; n++) {
-               source = acs_chars[n];
+               source = UChar(acs_chars[n]);
                if ((target = (unsigned char) acs_chars[n + 1]) != 0) {
                    mapped[source] = target;
                    n++;