]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/MKfallback.sh
ncurses 6.2 - patch 20210911
[ncurses.git] / ncurses / tinfo / MKfallback.sh
index 9feab3507cc0ecb288dc261b8953fcdfe6c94a26..64c65f197e0da11dcaf101e5adae9252c004f3e6 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.                #
+# Copyright 2020 Thomas E. Dickey                                            #
+# Copyright 1998-2019,2020 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 "Software"), #
@@ -26,7 +27,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: MKfallback.sh,v 1.13 2006/07/15 16:54:20 tom Exp $
+# $Id: MKfallback.sh,v 1.25 2020/08/16 15:58:44 tom Exp $
 #
 # MKfallback.sh -- create fallback table for entry reads
 #
@@ -42,6 +43,22 @@ shift
 terminfo_src=$1
 shift
 
+tic_path=$1
+test -z "$tic_path" && tic_path=tic
+shift
+
+infocmp_path=$1
+test -z "$infocmp_path" && infocmp_path=infocmp
+shift
+
+case "$tic_path" in #(vi
+/*)
+       tic_head=`echo "$tic_path" | sed -e 's,/[^/]*$,,'`
+       PATH=$tic_head:$PATH
+       export PATH
+       ;;
+esac
+
 if test $# != 0 ; then
        tmp_info=tmp_info
        echo creating temporary terminfo directory... >&2
@@ -52,18 +69,19 @@ if test $# != 0 ; then
        TERMINFO_DIRS=$TERMINFO:$terminfo_dir
        export TERMINFO_DIRS
 
-       tic -x $terminfo_src >&2
+       "$tic_path" -x "$terminfo_src" >&2
 else
        tmp_info=
 fi
 
 cat <<EOF
+/* This file was generated by $0 */
+
 /*
- * DO NOT EDIT THIS FILE BY HAND!  It is generated by MKfallback.sh.
+ * DO NOT EDIT THIS FILE BY HAND!
  */
 
 #include <curses.priv.h>
-#include <term.h>
 
 EOF
 
@@ -74,21 +92,21 @@ then
 
 /* fallback entries for: $* */
 EOF
-       for x in $*
+       for x in "$@"
        do
                echo "/* $x */"
-               infocmp -E $x
+               "$infocmp_path" -E "$x" | sed -e 's/\<short\>/NCURSES_INT2/g'
        done
 
        cat <<EOF
-static const TERMTYPE fallbacks[$#] =
+static const TERMTYPE2 fallbacks[$#] =
 {
 EOF
        comma=""
-       for x in $*
+       for x in "$@"
        do
                echo "$comma /* $x */"
-               infocmp -e $x
+               "$infocmp_path" -e "$x"
                comma=","
        done
 
@@ -99,28 +117,51 @@ EOF
 fi
 
 cat <<EOF
-NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *name GCC_UNUSED)
+NCURSES_EXPORT(const TERMTYPE2 *)
+_nc_fallback2 (const char *name GCC_UNUSED)
 {
 EOF
 
 if [ "$*" ]
 then
        cat <<EOF
-    const TERMTYPE     *tp;
+    const TERMTYPE2    *tp;
 
     for (tp = fallbacks;
-               tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE);
-               tp++)
-       if (_nc_name_match(tp->term_names, name, "|"))
+        tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE2);
+        tp++) {
+       if (_nc_name_match(tp->term_names, name, "|")) {
            return(tp);
+       }
+    }
 EOF
 else
        echo "  /* the fallback list is empty */";
 fi
 
 cat <<EOF
-       return((TERMTYPE *)0);
+    return((const TERMTYPE2 *)0);
+}
+
+#if NCURSES_EXT_NUMBERS
+#undef _nc_fallback
+
+/*
+ * This entrypoint is used by tack 1.07
+ */
+NCURSES_EXPORT(const TERMTYPE *)
+_nc_fallback (const char *name)
+{
+    const TERMTYPE2 *tp = _nc_fallback2(name);
+    const TERMTYPE *result = 0;
+    if (tp != 0) {
+       static TERMTYPE temp;
+       _nc_export_termtype2(&temp, tp);
+       result = &temp;
+    }
+    return result;
 }
+#endif
 EOF
 
 if test -n "$tmp_info" ; then