#! /bin/sh
## \file map-text.def
##
## This file is part of char-mapper.
## Copyright (C) 2005-2015 Bruce Korb - all rights reserved
##
## char-mapper is free software: you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by the
## Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## char-mapper is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program. If not, see <http://www.gnu.org/licenses/>.
case "${VERBOSE}" in
[YytT1-9]* ) set -x ;;
esac
base_name=test-cmap
rm -f ${base_name}*
case "${1}" in
-c | --cl* )
echo "rm -f ${base_name}*"
exit 0
;;
esac
rm -f test[-_]*
set -e
cat > ${base_name}.map <<- _EOF_
%file ${base_name}.h
%test
%comment
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
This file is part of some library.
%
# Basic types:
#
cntrl "\x00-\x1F\x7F"
digit "0-9"
lower "a-z"
horiz-space " \t"
line-end "\r\n"
vert-space "\f\v"
upper "A-Z"
# Compound char types. Only these may have subtracted names.
#
xdigit "a-fA-F" +digit
token-end "\x00" +horiz-space +line-end
name-start "_" +upper +lower
punctuation "\x20-\x7E" -upper -lower -horiz-space
# pure combined char types:
#
space +horiz-space +line-end +vert-space
%emit
#define HOST_CHARSET_UNKNOWN 0
#define HOST_CHARSET_ASCII 1
#define HOST_CHARSET_EBCDIC 2
#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \\
&& 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21
# define HOST_CHARSET HOST_CHARSET_ASCII
#else
# if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \\
&& 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A
# define HOST_CHARSET HOST_CHARSET_EBCDIC
# else
# define HOST_CHARSET HOST_CHARSET_UNKNOWN
# endif
#endif
%
_EOF_
./char-mapper ${base_name}.map
bash ./${base_name}.h
sed -i $'/%test/{\na\\\n%pthread\\\n%optimize\n\n}' ${base_name}.map
./char-mapper ${base_name}.map
bash ./${base_name}.h
test "X${KEEP_TEST_RESULTS}" = Xtrue || \
rm -f ${base_name}*