X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2FMKcaptab.sh;h=c800023d105a46a375d06216f0f6341ca96b1006;hp=d333301a0b377eeded747bb76f80f8c3fcec4b92;hb=c976a90788f3e50afc773670ff74c5270ecb48df;hpb=d27c5b45ccee25dd4cfc8000d0f96b96c20ec6cf diff --git a/ncurses/tinfo/MKcaptab.sh b/ncurses/tinfo/MKcaptab.sh index d333301a..c800023d 100755 --- a/ncurses/tinfo/MKcaptab.sh +++ b/ncurses/tinfo/MKcaptab.sh @@ -1,6 +1,7 @@ #!/bin/sh ############################################################################## -# Copyright (c) 2007,2009 Free Software Foundation, Inc. # +# Copyright 2019,2020 Thomas E. Dickey # +# Copyright 2007-2010,2011 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,11 +27,28 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: MKcaptab.sh,v 1.10 2009/08/08 17:19:25 tom Exp $ -AWK=${1-awk} -OPT1=${2-0} -OPT2=${3-tinfo/MKcaptab.awk} -DATA=${4-../include/Caps} +# $Id: MKcaptab.sh,v 1.19 2020/02/02 23:34:34 tom Exp $ + +if test $# != 0 +then + AWK="$1"; shift 1 +else + AWK=awk +fi + +if test $# != 0 +then + OPT1="$1"; shift 1 +else + OPT1="-0" +fi + +if test $# != 0 +then + OPT2="$1"; shift 1 +else + OPT2="tinfo/MKcaptab.awk" +fi cat < #include +/* *INDENT-OFF* */ EOF -./make_hash 1 info $OPT1 <$DATA -./make_hash 3 cap $OPT1 <$DATA +cat "$@" |./make_hash 1 info $OPT1 +cat "$@" |./make_hash 3 cap $OPT1 -$AWK -f $OPT2 bigstrings=$OPT1 tablename=capalias <$DATA +cat "$@" |$AWK -f $OPT2 bigstrings=$OPT1 tablename=capalias -$AWK -f $OPT2 bigstrings=$OPT1 tablename=infoalias <$DATA +cat "$@" |$AWK -f $OPT2 bigstrings=$OPT1 tablename=infoalias cat <= TCAP_LEN) + break; + } + temp[limit] = '\0'; + return info_hash(temp); +} + static int -compare_cap_names(const char *a, const char *b) +compare_tcap_names(const char *a, const char *b) { - return !strncmp(a, b, 2); + return !strncmp(a, b, (size_t) TCAP_LEN); } static int @@ -170,18 +210,21 @@ compare_info_names(const char *a, const char *b) return !strcmp(a, b); } -static const HashData hash_data[2] = { - { HASHTABSIZE, _nc_info_hash_table, hash_function, compare_info_names }, - { HASHTABSIZE, _nc_cap_hash_table, hash_function, compare_cap_names } +static const HashData hash_data[2] = +{ + {HASHTABSIZE, _nc_info_hash_table, info_hash, compare_info_names}, + {HASHTABSIZE, _nc_cap_hash_table, tcap_hash, compare_tcap_names} }; -NCURSES_EXPORT(const HashData *) _nc_get_hash_info (bool termcap) +NCURSES_EXPORT(const HashData *) +_nc_get_hash_info(bool termcap) { return &hash_data[(termcap != FALSE)]; } #if NO_LEAKS -NCURSES_EXPORT(void) _nc_comp_captab_leaks(void) +NCURSES_EXPORT(void) +_nc_comp_captab_leaks(void) { #if $OPT1 FreeIfNeeded(_nc_cap_table);