#
# Copyright (C) 2016 Rimas Kudelis <rq@akl.lt>
#
#  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/>.

# The Lithuanian 8-dot Braille writing system is described in a decree of the Minister of
# Social Security and Labor, called "Dėl vieningos aštuonių taškų Brailio rašto sistemos
# naudojimo tvarkos aprašo patvirtinimo", which is in effect since 2011-04-13. Document
# number is A1-183. At the time of writing this file, the document was accessible at
# https://www.e-tar.lt/portal/lt/legalAct/TAR.443D667CA047 .
# The document is referred to as "the standard" below.
#
# The standard maps ISO-8859-13 character set to 8-dot Braille writing system. However,
# even though it defines different mappings for literary and computer braille modes, it
# doesn't seem like the authors had a good understanding of why these two modes exist
# and how they differ. Furthermore, the standard contains a few errors (incorrectly named
# characters as well as mapping conflicts). I would say it needs further improvements.
#
# This file is based on the standard, but does not exactly follow it. Some standard
# definitions are commented out, some changed, and some extra ones are added.


###
### WHITESPACE
###

space         \x0009 0                      [CHARACTER TABULATION]
space         \x000a 0                      [LINE FEED (LF)]
space         \x000b 0                      [LINE TABULATION]
space         \x000c 0                      [FORM FEED (FF)]
space         \x000d 0                      [CARRIAGE RETURN (CR)]
space         \x0020 0                      [SPACE]
# No-break space is defined as 7 in the standard.
space         \x00a0 0                      [NO-BREAK SPACE]


###
### DIGITS
###

include digits8Dots.uti


###
### LETTERS
###

include latinLetterDef8Dots.uti

# Accented letters which are part of the Lithuanian alphabet.
uplow         \x0104\x0105 167,16           Ąą LATIN CAPITAL LETTER A WITH OGONEK,LATIN SMALL LETTER A WITH OGONEK
uplow         \x010c\x010d 1467,146         Čč LATIN CAPITAL LETTER C WITH CARON,LATIN SMALL LETTER C WITH CARON
uplow         \x0118\x0119 1567,156         Ęę LATIN CAPITAL LETTER E WITH OGONEK,LATIN SMALL LETTER E WITH OGONEK
uplow         \x0116\x0117 3457,345         Ėė LATIN CAPITAL LETTER E WITH DOT ABOVE,LATIN SMALL LETTER E WITH DOT ABOVE
uplow         \x012e\x012f 2467,246         Įį LATIN CAPITAL LETTER I WITH OGONEK,LATIN SMALL LETTER E WITH OGONEK
uplow         \x0160\x0161 23467,2346       Šš LATIN CAPITAL LETTER S WITH CARON,LATIN SMALL LETTER S WITH CARON
uplow         \x0172\x0173 3467,346         Ųų LATIN CAPITAL LETTER U WITH OGONEK,LATIN SMALL LETTER U WITH OGONEK
uplow         \x016a\x016b 12567,1256       Ūū LATIN CAPITAL LETTER U WITH MACRON,LATIN SMALL LETTER U WITH MACRON
uplow         \x017d\x017e 1267,126         Žž LATIN CAPITAL LETTER Z WITH CARON,LATIN SMALL LETTER Z WITH CARON


###
### PUNCTUATION
###

punctuation   \x0021 235                    ! EXCLAMATION MARK
punctuation   \x0022 4                      " QUOTATION MARK
punctuation   \x0027 3                      ' APOSTROPHE
# The following symbol is defined as 134568 in the standard, but that is hardly useful.
# According to Unicode, it is the preferred character to use for apostrophe, hence
# defining it as one here.
punctuation   \x2019 3                      ’ RIGHT SINGLE QUOTATION MARK
punctuation   \x0028 23567                  ( LEFT PARENTHESIS
punctuation   \x0029 23568                  ) RIGHT PARENTHESIS
punctuation   \x002c 2                      , COMMA
punctuation   \x002d 36                     - HYPHEN-MINUS
punctuation   \x002e 256                    . FULL STOP
punctuation   \x003a 25                     : COLON
punctuation   \x003b 23                     ; SEMICOLON
punctuation   \x003f 26                     ? QUESTION MARK
punctuation   \x005b 12356                  [ LEFT SQUARE BRACKET
punctuation   \x005d 23456                  ] RIGHT SQUARE BRACKET
punctuation   \x007b 24678                  { LEFT CURLY BRACKET
punctuation   \x007d 13578                  } RIGHT CURLY BRACKET
# The following symbol is defined as 368 in the standard.
punctuation   \x00ad 36                     [SOFT HYPHEN]
# The following symbol is not defined in the standard.
punctuation   \x2013 36                     – EN DASH
punctuation   \x2014 36                     — EM DASH

# These are the typographically correct quotes in Lithuania.
punctuation   \x201e 2367                   „ DOUBLE LOW-9 QUOTATION MARK
punctuation   \x201c 3567                   “ LEFT DOUBLE QUOTATION MARK
# The following character is defined in the standard, because it exists in ISO-8859-13
# character set, even though it should not be used in Lithuanian texts.
punctuation   \x201d 367                    ” RIGHT DOUBLE QUOTATION MARK
# Let's make straight quotes smarter if we can.
prepunc       \x0022 2367                   " QUOTATION MARK
postpunc      \x0022 3567                   " QUOTATION MARK
# The following combination of smart quotes is sometimes mistakenly used due to automatic
# replacement based on English rules. This will turn them to the correct quotes.
prepunc       \x201c 2367                   “ LEFT DOUBLE QUOTATION MARK
postpunc      \x201d 3567                   ” RIGHT DOUBLE QUOTATION MARK

# Two versions of horizontal ellipsis.
punctuation   \x2026 3-3-3                  … HORIZONTAL ELLIPSIS
always        \x002e\x002e\x002e 3-3-3      ... Three times FULL STOP


###
### MATHEMATICAL SYMBOLS
###

math          \x002b 2358                   + PLUS SIGN
math          \x003c 2468                   < LESS-THAN SIGN
math          \x003d 2356                   = EQUALS SIGN
math          \x003e 1358                   > GREATER-THAN SIGN
math          \x00b1 23578                  ± PLUS-MINUS SIGN
# math          \x00bc 1368                   ¼ VULGAR FRACTION ONE QUARTER
# math          \x00bd 12368                  ½ VULGAR FRACTION ONE HALF
# math          \x00be 13468                  ¾ VULGAR FRACTION THREE QUARTERS
math          \x2212 36                     − MINUS SIGN
math          \x00d7 2348                   × MULTIPLICATION SIGN
math          \x00f7 125678                 ÷ DIVISION SIGN
# math          \x2215 25                     ∕ DIVISION SLASH
# Parentheses are different in Math than in literature.
# midnum        \x0028 126                    ( LEFT PARENTHESIS
# midnum        \x0029 345                    ) RIGHT PARENTHESIS


###
### OTHER CHARACTERS
###

sign          \x0023 3456                   # NUMBER SIGN
sign          \x0024 46                     $ DOLLAR SIGN
sign          \x0025 123456                 % PERCENT SIGN
sign          \x0026 12346                  & AMPERSAND
sign          \x002a 35                     * ASTERISK
sign          \x002f 34                     / SOLIDUS
sign          \x0040 34578                  @ COMMERCIAL AT
sign          \x005c 347                    \ REVERSE SOLIDUS
sign          \x005e 2568                   ^ CIRCUMFLEX ACCENT
sign          \x005f 4567                   _ LOW LINE
sign          \x0060 6                      `  GRAVE ACCENT
sign          \x007c 456                    |  VERTICAL LINE
sign          \x007e 268                    ~  TILDE
sign          \x00a2 58                     ¢ CENT SIGN
sign          \x00a3 467                    £ POUND SIGN
sign          \x00a4 4678                   ¤ CURRENCY SIGN
sign          \x00a6 1456                   ¦ BROKEN BAR
sign          \x00a7 3468                   § SECTION SIGN
sign          \x00a9 123468                 © COPYRIGHT SIGN
# Angle quotation marks are not commonly used in Lithuanian language.
# It's probably much more common to see them as fancy breadcrumb separators
# than anything else, thus marking them as sign, not punctuation.
sign          \x00ab 5678                   « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
sign          \x00bb 4578                   » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
sign          \x00ac 5                      ¬ NOT SIGN
sign          \x00ae 12358                  ® REGISTERED SIGN
sign          \x00b0 4568                   ° DEGREE SIGN
sign          \x00b2 1278                   ² SUPERSCRIPT TWO
sign          \x00b3 1478                   ³ SUPERSCRIPT THREE
sign          \x00b5 1348                   µ MICRO SIGN
sign          \x00b6 12348                  ¶ PILCROW SIGN
sign          \x00b7 37                     · MIDDLE DOT
sign          \x00b9 178                    ¹ SUPERSCRIPT ONE


###
### INDICATOR AND SPECIAL SYMBOL OPCODES
###

# numsign 3456                                Number indicator in text (6-dot output only)
hyphen        \x002d 36                     - HYPHEN-MINUS
decpoint      \x002c 2                      , DECIMAL SEPARATOR

sign          \xfffd 7                      � REPLACEMENT CHARACTER
undefined            7                      Replacement dots for characters not defined in this table


###
### ATTIC (commented out definitions)
###

# Other letters from the ISO-8859-13 repertoire.
# This set seems quite useless and poorly designed, so leaving it commented out.
# uplow         \x00c4\x00e4 567,3458         Ää LATIN CAPITAL LETTER A WITH DIAERESIS,LATIN SMALL LETTER A WITH DIAERESIS
# uplow         \x00c5\x00e5 34567,345678     Åå LATIN CAPITAL LETTER A WITH RING ABOVE,LATIN SMALL LETTER A WITH RING ABOVE
# uplow         \x00c6\x00e6 458,38           Ææ LATIN CAPITAL LETTER AE,LATIN SMALL LETTER AE
# uplow         \x00c9\x00e9 238,1268         Éé LATIN CAPITAL LETTER E WITH ACUTE,LATIN SMALL LETTER E WITH ACUTE
# uplow         \x00d3\x00f3 123567,14568     Óó LATIN CAPITAL LETTER O WITH ACUTE,LATIN SMALL LETTER O WITH ACUTE
# uplow         \x00d5\x00f5 267,1234567      Õõ LATIN CAPITAL LETTER O WITH TILDE,LATIN SMALL LETTER O WITH TILDE
# uplow         \x00d6\x00f6 358,1234568      Öö LATIN CAPITAL LETTER O WITH DIAERESIS,LATIN SMALL LETTER O WITH DIAERESIS
# uplow         \x00d8\x00f8 48,68            Øø LATIN CAPITAL LETTER O WITH STROKE,LATIN SMALL LETTER O WITH STROKE
# uplow         \x00dc\x00fc 2368,12568       Üü LATIN CAPITAL LETTER U WITH DIAERESIS,LATIN SMALL LETTER U WITH DIAERESIS
# lowercase     \x00df 34568                  ß  LATIN SMALL LETTER SHARP S
# uplow         \x0100\x0101 12468,1678       Āā LATIN CAPITAL LETTER A WITH MACRON,LATIN SMALL LETTER A WITH MACRON
# uplow         \x0106\x0107 15678,34678      Ćć LATIN CAPITAL LETTER C WITH ACUTE,LATIN SMALL LETTER C WITH ACUTE
# uplow         \x0112\x0113 123467,1234678   Ēē LATIN CAPITAL LETTER E WITH MACRON,LATIN SMALL LETTER E WITH MACRON
# uplow         \x0122\x0123 57,348           Ģģ LATIN CAPITAL LETTER G WITH CEDILLA,LATIN SMALL LETTER G WITH CEDILLA
# uplow         \x012a\x012b 23468,14678      Īī LATIN CAPITAL LETTER I WITH MACRON,LATIN SMALL LETTER I WITH MACRON
# uplow         \x0136\x0137 258,1468         Ķķ LATIN CAPITAL LETTER K WITH CEDILLA,LATIN SMALL LETTER K WITH CEDILLA
# uplow         \x013b\x013c 23678,124568     Ļļ LATIN CAPITAL LETTER L WITH CEDILLA,LATIN SMALL LETTER L WITH CEDILLA
# uplow         \x0141\x0142 35678,234568     Łł LATIN CAPITAL LETTER L WITH STROKE,LATIN SMALL LETTER L WITH STROKE
# uplow         \x0143\x0144 2567,13458       Ńń LATIN CAPITAL LETTER N WITH ACUTE,LATIN SMALL LETTER N WITH ACUTE
# uplow         \x0145\x0146 578,234567       Ņņ LATIN CAPITAL LETTER N WITH CEDILLA,LATIN SMALL LETTER N WITH CEDILLA
# uplow         \x014c\x014d 14567,145678     Ōō LATIN CAPITAL LETTER O WITH MACRON,LATIN SMALL LETTER O WITH MACRON
# uplow         \x015a\x015b 123568,1568      Śś LATIN CAPITAL LETTER S WITH ACUTE,LATIN SMALL LETTER S WITH ACUTE
# uplow         \x0179\x017a 23458,12678      Źź LATIN CAPITAL LETTER Z WITH ACUTE,LATIN SMALL LETTER A WITH ACUTE
# uplow         \x017b\x017c 3568,24568       Żż LATIN CAPITAL LETTER Z WITH DOT ABOVE,LATIN SMALL LETTER Z WITH DOT ABOVE
# uplow         \x0156\x0157 2357,12456       Ŗŗ LATIN CAPITAL LETTER R WITH CEDILLA,LATIN SMALL LETTER R WITH CEDILLA

# These control chars are defined by the standard, but are hardly useful.
# These official definitions are commented out below, and only whitespace characters
# are defined as 0 (no dots) in the Whitespace section at the top of this file.
# sign          \x0000 3578                   [NULL]
# sign          \x0001 28                     [START OF HEADING]
# sign          \x0002 45                     [START OF TEXT]
# sign          \x0003 47                     [END OF TEXT]
# sign          \x0004 14578                  [END OF TRANSMISSION]
# sign          \x0005 1578                   [ENQUIRY]
# sign          \x0006 12478                  [ACKNOWLEDGE]
# sign          \x0007 124578                 [BELL]
# sign          \x0008 12578                  [BACKSPACE]
# space         \x0009 2478                   [CHARACTER TABULATION]
# space         \x000a 24578                  [LINE FEED (LF)]
# space         \x000b 1378                   [LINE TABULATION]
# space         \x000c 12378                  [FORM FEED (FF)]
# space         \x000d 13478                  [CARRIAGE RETURN (CR)]
# sign          \x000e 134578                 [SHIFT OUT]
# sign          \x000f 56                     [SHIFT IN]
# sign          \x0010 123478                 [DATA LINK ESCAPE]
# sign          \x0011 1234578                [DEVICE CONTROL ONE]
# sign          \x0012 123578                 [DEVICE CONTROL TWO]
# sign          \x0013 23478                  [DEVICE CONTROL THREE]
# sign          \x0014 234578                 [DEVICE CONTROL FOUR]
# sign          \x0015 13678                  [NEGATIVE ACKNOWLEDGE]
# sign          \x0016 123678                 [SYNCHRONOUS IDLE]
# sign          \x0017 245678                 [END OF TRANSMISSION BLOCK]
# sign          \x0018 134678                 [CANCEL]
# sign          \x0019 1345678                [END OF MEDIUM]
# sign          \x001a 135678                 [SUBSTITUTE]
# sign          \x001b 1235678                [ESCAPE]
# sign          \x001c 3478                   [INFORMATION SEPARATOR FOUR]
# sign          \x001d 2345678                [INFORMATION SEPARATOR THREE]
# sign          \x001e 234678                 [INFORMATION SEPARATOR TWO]
# sign          \x001f 45678                  [INFORMATION SEPARATOR ONE]
# sign          \x007f 138                    [DELETE]
# sign          \x0080 457
# sign          \x0081 8
# sign          \x0082 3678                   [BREAK PERMITTED HERE]
# sign          \x0083 78                     [NO BREAK HERE]
# sign          \x0084 236
# sign          \x0085 25678                  [NEXT LINE (NEL)]
# sign          \x0086 168                    [START OF SELECTED AREA]
# sign          \x0087 357                    [END OF SELECTED AREA]
# sign          \x0088 378                    [CHARACTER TABULATION SET]
# sign          \x0089 468                    [CHARACTER TABULATION WITH JUSTIFICATION]
# sign          \x008a 678                    [LINE TABULATION SET]
# sign          \x008b 27                     [PARTIAL LINE FORWARD]
# sign          \x008c 237                    [PARTIAL LINE BACKWARD]
# sign          \x008d 257                    [REVERSE LINE FEED]
# sign          \x008e 478                    [SINGLE SHIFT TWO]
# sign          \x008f 12467                  [SINGLE SHIFT THREE]
# sign          \x0090 124678                 [DEVICE CONTROL STRING]
# sign          \x0091 568                    [PRIVATE USE ONE]
# sign          \x0092 1246                   [PRIVATE USE TWO]
# sign          \x0093 356                    [SET TRANSMIT STATE]
# sign          \x0094 1238                   [CANCEL CHARACTER]
# sign          \x0095 278                    [MESSAGE WAITING]
# sign          \x0096 2378                   [START OF GUARDED AREA]
# sign          \x0097 13568                  [END OF GUARDED AREA]
# sign          \x0098 2578                   [START OF STRING]
# sign          \x0099 1245678
# sign          \x009a 2678                   [SINGLE CHARACTER INTRODUCER]
# sign          \x009b 123458                 [CONTROL SEQUENCE INTRODUCER]
# sign          \x009c 67                     [STRING TERMINATOR]
# sign          \x009d 124567                 [OPERATING SYSTEM COMMAND]
# sign          \x009e 235678                 [PRIVACY MESSAGE]
# sign          \x009f 12345678               [APPLICATION PROGRAM COMMAND]
