# jlatin1.tcl - table of Compose-key sequences for iso8859-1 encoding
#
######################################################################
# Copyright 1992-1995 by Jay Sekora.  This file may be freely        #
# distributed, modified or unmodified, for any purpose, provided     #
# that this copyright notice is retained verbatim in all copies and  #
# no attempt is made to obscure the authorship of this file.  If you #
# distribute any modified versions, I ask, but do not require, that  #
# you clearly mark any changes you make as such and that you provide #
# your users with instructions for getting the original sources.     #
######################################################################

# this is used by jtextkeys.tcl, jbindentry.tcl, and jcompose.tcl

######################################################################
# TO DO:
#   generalise to other character sets
#   Add sequences for ASCII chars for people who might not have them 
#   on their keyboards (e.g. $, [, ], etc.).
######################################################################

# NOTE:  In the list of keysym, character, components, the two-character
#   components MUST be in collating order, because the keys the user 
#   types are sorted by the procs in jcompose.tcl (so `or' will work, 
#   but `ro' won't).

proc j:compose_init:iso8859-1 {} {
  global j_cmp
  
  foreach triple {
    {nobreakspace "\xa0" {  }}
    {exclamdown {¡} {!!}}
    {cent {¢} {/c}}
      {cent {¢} {c|}}
    {sterling {£} {-L}}
      {sterling {£} {=L}}
      {sterling {£} {LL}}
      {sterling {£} {##}}
    {currency {¤} {ox}}
      {currency {¤} {$$}}
    {yen {¥} {=Y}}
      {yen {¥} {-Y}}
    {brokenbar {¦} {||}}
    {section {§} {OS}}
      {section {§} {So}}
      {section {§} {os}}
    {diaeresis {¨} {""}}
    {copyright {©} {co}}
      {copyright {©} {Oc}}
      {copyright {©} {CO}}
    {ordfeminine {ª} {-a}}
      {ordfeminine {ª} {_a}}
    {guillemotleft {«} {<<}}
    {notsign {¬} {-|}}
      {notsign {¬} {,-}}
    {hyphen {­} {--}}
    {registered {®} {or}}
      {registered {®} {Or}}
      {registered {®} {OR}}
    {macron {¯} {-^}}
      {macron {¯} {^_}}
      {macron {¯} {__}}
    {degree {°} {oo}}
      {degree {°} {0^}}
      {degree {°} {00}}
    {plusminus {±} {+-}}
      {plusminus {±} {+_}}
    {twosuperior {²} {2^}}
      {twosuperior {²} {22}}
    {threesuperior {³} {3^}}
      {threesuperior {³} {33}}
    {acute {´} {''}}
      {acute {´} {\\}}
    {mu {µ} {/u}}
      {mu {µ} {u|}}
      {mu {µ} {mu}}
    {paragraph {¶} {PP}}
    {periodcentered {·} {..}}
      {periodcentered {·} {*+}}
      {periodcentered {·} {+o}}
      {periodcentered {·} {*.}}
    {cedilla {¸} {,,}}
    {onesuperior {¹} {1^}}
      {onesuperior {¹} {11}}
    {masculine {º} {-o}}
      {masculine {º} {_o}}
    {guillemotright {»} {>>}}
    {onequarter {¼} {14}}
    {onehalf {½} {12}}
    {threequarters {¾} {34}}
    {questiondown {¿} {??}}
    {Agrave {À} {A`}}
    {Aacute {Á} {'A}}
    {Acircumflex {Â} {A^}}
    {Atilde {Ã} {A~}}
    {Adiaeresis {Ä} {"A}}
    {Aring {Å} {Ao}}
      {Aring {Å} {AO}}
      {Aring {Å} {*A}}
      {Aring {Å} {AA}}
    {AE {Æ} {AE}}
    {Ccedilla {Ç} {,C}}
      {Ccedilla {Ç} {CC}}
    {Egrave {È} {E`}}
    {Eacute {É} {'E}}
    {Ecircumflex {Ê} {E^}}
    {Ediaeresis {Ë} {"E}}
    {Igrave {Ì} {I`}}
    {Iacute {Í} {'I}}
    {Icircumflex {Î} {I^}}
    {Idiaeresis {Ï} {"I}}
    {ETH {Ð} {DH}}
      {ETH {Ð} {Dh}}
      {ETH {Ð} {DD}}
      {ETH {Ð} {-D}}
      {ETH {Ð} {/D}}
      {ETH {Ð} {'D}}
    {Ntilde {Ñ} {N~}}
      {Ntilde {Ñ} {NN}}
    {Ograve {Ò} {O`}}
    {Oacute {Ó} {'O}}
    {Ocircumflex {Ô} {O^}}
    {Otilde {Õ} {O~}}
    {Odiaeresis {Ö} {"O}}
    {multiply {×} {xx}}
      {multiply {×} {**}}
    {Ooblique {Ø} {/O}}
    {Ugrave {Ù} {U`}}
    {Uacute {Ú} {'U}}
    {Ucircumflex {Û} {U^}}
    {Udiaeresis {Ü} {"U}}
    {Yacute {Ý} {'Y}}
    {THORN {Þ} {HT}}
      {THORN {Þ} {Th}}
      {THORN {Þ} {TT}}
      {THORN {Þ} {Tt}}
      {THORN {Þ} {BP}}
      {THORN {Þ} {Pb}}
    {ssharp {ß} {ss}}
      {ssharp {ß} {SS}}
    {agrave {à} {`a}}
    {aacute {á} {'a}}
    {acircumflex {â} {^a}}
    {atilde {ã} {a~}}
    {adiaeresis {ä} {"a}}
    {aring {å} {ao}}
      {aring {å} {*a}}
      {aring {å} {aa}}
    {ae {æ} {ae}}
    {ccedilla {ç} {,c}}
      {ccedilla {ç} {cc}}
    {egrave {è} {`e}}
    {eacute {é} {'e}}
    {ecircumflex {ê} {^e}}
    {ediaeresis {ë} {"e}}
    {igrave {ì} {`i}}
    {iacute {í} {'i}}
    {icircumflex {î} {^i}}
    {idiaeresis {ï} {"i}}
    {eth {ð} {dh}}
      {eth {ð} {dd}}
      {eth {ð} {/d}}
      {eth {ð} {-d}}
      {eth {ð} {'d}}
    {ntilde {ñ} {n~}}
      {ntilde {ñ} {nn}}
    {ograve {ò} {`o}}
    {oacute {ó} {'o}}
    {ocircumflex {ô} {^o}}
    {otilde {õ} {o~}}
    {odiaeresis {ö} {"o}}
    {division {÷} {-:}}
      {division {÷} {//}}
    {oslash {ø} {/o}}
    {ugrave {ù} {`u}}
    {uacute {ú} {'u}}
    {ucircumflex {û} {^u}}
    {udiaeresis {ü} {"u}}
    {yacute {ý} {'y}}
    {thorn {þ} {ht}}
      {thorn {þ} {bp}}
      {thorn {þ} {tt}}
    {ydiaeresis {ÿ} {"y}}
  } {
    set keysym [lindex $triple 0]
    set glyph [lindex $triple 1]
    set pair [lindex $triple 2]
    set j_cmp(iso8859-1,glyph,$pair) $glyph
    set j_cmp(iso8859-1,keysym,$pair) $keysym
    
    # signal to programs that the latin1 definitions have been loaded:
    set j_cmp(iso8859-1) 1
  }
}
