#
# 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 BRLTTY text subtable defines all the space characters to be empty
# braille cells.

space \s 0		SPACE
space \x000a 0		LINE FEED (LF)
space \x000b 0		LINE TABULATION
space \x000c 0		FORM FEED (FF)
space \x000d 0		CARRIAGE RETURN (CR)
space \x00a0 0		NO-BREAK SPACE
space \x2000 0		EN QUAD
space \x2001 0		EM QUAD
space \x2002 0		EN SPACE
space \x2003 0		EM SPACE
space \x2004 0		THREE-PER-EM SPACE
space \x2005 0		FOUR-PER-EM SPACE
space \x2006 0		SIX-PER-EM SPACE
space \x2007 0		FIGURE SPACE
space \x2008 0		PUNCTUATION SPACE
space \x2009 0		THIN SPACE
space \x200a 0		HAIR SPACE
space \x2028 0		LINE SEPARATOR
space \x2029 0		PARAGRAPH SEPARATOR
space \x202f 0		NARROW NO-BREAK SPACE
space \x205f 0		MEDIUM MATHEMATICAL SPACE
