#! /bin/sh
-# $Id: MKkey_defs.sh,v 1.10 2002/09/28 23:32:16 tom Exp $
+# $Id: MKkey_defs.sh,v 1.19 2020/02/02 23:34:34 tom Exp $
##############################################################################
-# Copyright (c) 2001,2002 Free Software Foundation, Inc. #
+# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2001-2013,2017 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"), #
#
# MKkey_defs.sh -- generate function-key definitions for curses.h
#
-# Author: Thomas E. Dickey <dickey@herndon4.his.com> 2001
+# Author: Thomas E. Dickey 2001
#
# Extract function-key definitions from the Caps file
#
: ${AWK-awk}
-DATA=${1-Caps}
+
+test $# = 0 && set Caps
data=data$$
pass1=pass1_$$
pass2=pass2_$$
pass3=pass3_$$
pass4=pass4_$$
-trap 'rm -f $data pass[1234]_$$' 0 1 2 5 15
+trap 'rm -f $data pass[1234]_$$' EXIT INT QUIT TERM HUP
# change repeated tabs (used for readability) to single tabs (needed to make
# awk see the right field alignment of the corresponding columns):
-if sort -k 6 $DATA >$data 2>/dev/null
+if sort -k 6 "$@" >$data 2>/dev/null
then
# POSIX
- sed -e 's/[ ]\+/ /g' < $DATA |sort -n -k 6 >$data
-else
+ sed -e 's/[ ][ ]*/ /g' "$@" |sort -n -k 6 >$data
+elif sort -n +5 "$@" >$data 2>/dev/null
+then
# SunOS (and SVr4, marked as obsolete but still recognized)
- sed -e 's/[ ]\+/ /g' < $DATA |sort -n +5 >$data
+ sed -e 's/[ ][ ]*/ /g' "$@" |sort -n +5 >$data
+else
+ echo "Your sort utility is broken. Please install one that works." >&2
+ exit 1
fi
# add keys that we generate automatically:
key_event kv1 str V1 KEY_EVENT + ----- We were interrupted by an event
EOF
+THIS=./`basename $0`
+
cat <<EOF
/*
- * These definitions were generated by $0 $DATA
+ * These definitions were generated by $THIS $*
*/
EOF
/^#/ {next;}
/^capalias/ {next;}
/^infoalias/ {next;}
+/^used_by/ {next;}
+/^userdef/ {next;}
$5 != "-" && $6 != "-" {
if ($6 == "+") {