#
# Copyright (C) 1995-2008 by The BRLTTY Developers.
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis 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
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.

# This text subtable defines braille representations for the chess figures in
# terms of the letters that are used for them in the English language.

# See: http://en.wikipedia.org/wiki/Chess_symbols_in_Unicode

# generated by ttbtest
punctuation \x2654 137		WHITE CHESS KING
punctuation \x2655 123457		WHITE CHESS QUEEN
punctuation \x2656 12357		WHITE CHESS ROOK
punctuation \x2657 127		WHITE CHESS BISHOP
punctuation \x2658 13457		WHITE CHESS KNIGHT
punctuation \x2659 12347		WHITE CHESS PAWN
punctuation \x265a 13		BLACK CHESS KING
punctuation \x265b 12345		BLACK CHESS QUEEN
punctuation \x265c 1235		BLACK CHESS ROOK
punctuation \x265d 12		BLACK CHESS BISHOP
punctuation \x265e 1345		BLACK CHESS KNIGHT
punctuation \x265f 1234		BLACK CHESS PAWN
