# liblouis: Computer Braille Code comp6 character definitions for EBAE
#
# Computer Braille Code reference:
# http://liblouis.org/braille-specs/english/#computer-braille-code-cbc
#
#  Copyright (C) 2019 Timothy Wynn <tmthywynn8@gmail.com>
#
#  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/>.
#
# Notes:
# * This sub-table is meant to complement the EBAE braille tables only,
#   i.e., en-us-g1.ctb and en-us-g2.ctb. For stand-alone use, use the
#   six-dot Computer Braille Code table (en-us-comp6.ctb).
# * Print characters, braille dots, and meanings are defined according
#   to the "COMPUTER BRAILLE CODE SYMBOLS: ASCII ORDER" table (pp. 53-60)
#   of the Computer Braille Code (CBC; 2000) manual.

# Letters and punctuation that differ from chardefs.cti (ASCII order):
comp6 @ 4 at
comp6 A 456-1 A
comp6 B 456-12 B
comp6 C 456-14 C
comp6 D 456-145 D
comp6 E 456-15 E
comp6 F 456-124 F
comp6 G 456-1245 G
comp6 H 456-125 H
comp6 I 456-24 I
comp6 J 456-245 J
comp6 K 456-13 K
comp6 L 456-123 L
comp6 M 456-134 M
comp6 N 456-1345 N
comp6 O 456-135 O
comp6 P 456-1234 P
comp6 Q 456-12345 Q
comp6 R 456-1235 R
comp6 S 456-234 S
comp6 T 456-2345 T
comp6 U 456-136 U
comp6 V 456-1236 V
comp6 W 456-2456 W
comp6 X 456-1346 X
comp6 Y 456-13456 Y
comp6 Z 456-1356 Z
comp6 [ 246 left bracket
comp6 \\ 1256 backslash
comp6 ] 12456 right bracket
comp6 ^ 45 up arrow/caret
comp6 _ 456-456 underscore
comp6 ` 456-4 grave accent
comp6 { 456-246 left brace
comp6 | 456-1256 vertical bar
comp6 } 456-12456 right brace
comp6 ~ 456-45 tilde
