]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/MKfallback.sh
ncurses 6.0 - patch 20160917
[ncurses.git] / ncurses / tinfo / MKfallback.sh
index 2a76f6239b2b755f680b746c3b7afcc5897155b9..53d05f87e9f758311bd15afb9f936f4de50db832 100755 (executable)
@@ -1,5 +1,32 @@
 #!/bin/sh
-# $Id: MKfallback.sh,v 1.9 1999/06/15 22:57:45 tom Exp $
+##############################################################################
+# Copyright (c) 1998-2010,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 "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+# $Id: MKfallback.sh,v 1.16 2016/09/17 21:28:03 tom Exp $
 #
 # MKfallback.sh -- create fallback table for entry reads
 #
 # from an on-disk terminfo tree) tries to match the type with one of a
 # specified list of types generated in.
 #
+
+terminfo_dir=$1
+shift
+
+terminfo_src=$1
+shift
+
+tic_path=$1
+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
+
+       TERMINFO=`pwd`/$tmp_info
+       export TERMINFO
+
+       TERMINFO_DIRS=$TERMINFO:$terminfo_dir
+       export TERMINFO_DIRS
+
+       $tic_path -x $terminfo_src >&2
+else
+       tmp_info=
+fi
+
 cat <<EOF
 /*
  * DO NOT EDIT THIS FILE BY HAND!  It is generated by MKfallback.sh.
  */
 
 #include <curses.priv.h>
-#include <term.h>
 
 EOF
 
@@ -50,7 +109,7 @@ EOF
 fi
 
 cat <<EOF
-const TERMTYPE *_nc_fallback(const char *name GCC_UNUSED)
+NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *name GCC_UNUSED)
 {
 EOF
 
@@ -60,16 +119,23 @@ then
     const TERMTYPE     *tp;
 
     for (tp = fallbacks;
-               tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE);
-               tp++)
-       if (_nc_name_match(tp->term_names, name, "|"))
+        tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE);
+        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((TERMTYPE *)0);
 }
 EOF
+
+if test -n "$tmp_info" ; then
+       echo removing temporary terminfo directory... >&2
+       rm -rf $tmp_info
+fi