[LyX/master] Enhance support for Xindy

Juergen Spitzmueller spitz at lyx.org
Sun Dec 15 10:46:43 UTC 2019


commit aa141bc293916ee3a7676549a7a2d8a7d2393fd7
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Sun Dec 15 12:01:59 2019 +0100

    Enhance support for Xindy
    
    This adds the proper language module and codepage for languages supported
    by Xindy
---
 lib/configure.py   |    2 +-
 lib/languages      |   77 +++++++++++++++++++++++++++++++++++++++++++++-------
 src/Converter.cpp  |    1 +
 src/LaTeX.cpp      |   18 +++++++++++-
 src/Language.cpp   |    7 ++++-
 src/Language.h     |    4 +++
 src/OutputParams.h |    3 ++
 7 files changed, 99 insertions(+), 13 deletions(-)

diff --git a/lib/configure.py b/lib/configure.py
index 6c1e20a..9e6db09 100644
--- a/lib/configure.py
+++ b/lib/configure.py
@@ -1238,7 +1238,7 @@ def checkOtherEntries():
         rc_entry = [ r'\jbibtex_command "automatic"' ],
         alt_rc_entry = [ r'\jbibtex_alternatives "%%"' ])
     checkProgAlternatives('available index processors',
-        ['texindy', 'makeindex -c -q', 'xindy'],
+        ['texindy $$x', 'makeindex -c -q', 'xindy $$x'],
         rc_entry = [ r'\index_command "%%"' ],
         alt_rc_entry = [ r'\index_alternatives "%%"' ])
     checkProg('an index processor appropriate to Japanese',
diff --git a/lib/languages b/lib/languages
index c4a098d..bcaf882 100644
--- a/lib/languages
+++ b/lib/languages
@@ -10,6 +10,7 @@
 #	BabelName          <babelname>
 #	PolyglossiaName    <polyglossianame>
 #	PolyglossiaOpts    "<language-specific options>"
+#	XindyName          <xindyname>
 #	ActiveChars        <activated characters>
 #	QuoteStyle         <british|danish|english|french|frenchin|
 #                           german|polish|russian|swedish|swedishg|swiss|plain>
@@ -123,6 +124,8 @@
 # * ActiveChars provides a string of the characters that are made active
 #   by the language. We record particularly those characters that have to 
 #   be de-activated in some contexts (such as - or =).
+# * XindyName holds the value to the (te)xindy -L option. We only give it
+#   if a corresponding language module exists.
 #
 ##########################################################################
 
@@ -172,6 +175,7 @@ Language albanian
 	  \@ifl at aded{def}{t1enc}{\DeclareTextSymbol{\th}{T1}{254}}{}
 	EndPostBabelPreamble
 	PolyglossiaName  albanian
+	XindyName        albanian
 	QuoteStyle       swiss
 	Encoding         iso8859-2
 	FontEncoding     T1|OT1
@@ -184,6 +188,7 @@ Language american
 	BabelName        american
 	PolyglossiaName  english
 	PolyglossiaOpts  "variant=american"
+	XindyName        english
 	QuoteStyle       english
 	Encoding         iso8859-15
 	FontEncoding	 ASCII
@@ -210,6 +215,7 @@ Language ancientgreek
 	EndPostBabelPreamble
 	PolyglossiaName  greek
 	PolyglossiaOpts  "variant=ancient"
+	XindyName        greek
 	QuoteStyle       french
 	Encoding         iso8859-7
 	InternalEncoding true
@@ -291,6 +297,7 @@ Language australian
 	BabelName        australian
 	PolyglossiaName  english
 	PolyglossiaOpts  "variant=australian"
+	XindyName        english
 	Encoding         iso8859-15
 	FontEncoding	 ASCII
 	DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
@@ -305,6 +312,7 @@ Language austrian
 	BabelName        austrian
 	PolyglossiaName  german
 	PolyglossiaOpts  "variant=austrian,spelling=old,babelshorthands=true"
+	XindyName        german-duden
 	QuoteStyle       german
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -319,6 +327,7 @@ Language naustrian
 	BabelName        naustrian
 	PolyglossiaName  german
 	PolyglossiaOpts  "variant=austrian,spelling=new,babelshorthands=true"
+	XindyName        german-duden
 	QuoteStyle       german
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -385,6 +394,7 @@ Language belarusian
 	GuiName          "Belarusian"
 	BabelName        belarusian
 	PolyglossiaName  belarusian
+	XindyName        belarusian
 	QuoteStyle       french
 	Encoding         cp1251
 	FontEncoding	 T2A
@@ -419,6 +429,7 @@ Language brazilian
 	HasGuiSupport    true
 	BabelName        brazil
 	PolyglossiaName  brazil
+	XindyName        portuguese
 	QuoteStyle       english
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -443,6 +454,7 @@ Language british
 	BabelName        british
 	PolyglossiaName  english
 	PolyglossiaOpts  "variant=british"
+	XindyName        english
 	QuoteStyle       british
 	Encoding         iso8859-15
 	FontEncoding	 ASCII
@@ -455,6 +467,7 @@ Language bulgarian
 	HasGuiSupport    true
 	BabelName        bulgarian
 	PolyglossiaName  bulgarian
+	XindyName        bulgarian
 	QuoteStyle       german
 	Encoding         cp1251
 	FontEncoding     T2A
@@ -463,28 +476,25 @@ Language bulgarian
 	Provides         textcyrillic
 End
 
-# Unless polyglossia supports variant=canadian,
-# we can use american, as canadian \eq. american also in babel
 Language canadian
 	GuiName          "English (Canada)"
 	BabelName        canadian
 	PolyglossiaName  english
-	PolyglossiaOpts  "variant=american"
-#	PolyglossiaOpts  "variant=canadian"
+	PolyglossiaOpts  "variant=canadian"
+	XindyName        english
 	QuoteStyle       english
 	Encoding         iso8859-15
-	FontEncoding	 ASCII
+	FontEncoding     ASCII
 	DateFormats      "MMMM d, yyyy|d MMM yyyy|yyyy-MM-dd"
 	LangCode         en_CA
 End
 
-# Unless polyglossia supports variant=canadian,
-# we can use french, as canadien \eq. french also in babel
 Language canadien
 	GuiName          "French (Canada)"
 	BabelName        acadian
 	PolyglossiaName  french
-#	PolyglossiaOpts  "variant=canadian"
+	PolyglossiaOpts  "variant=canadian"
+	XindyName        french
 	QuoteStyle       french
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -554,6 +564,7 @@ Language croatian
 	GuiName          "Croatian"
 	BabelName        croatian
 	PolyglossiaName  croatian
+	XindyName        croatian
 	QuoteStyle       polish
 	Encoding         iso8859-2
 	FontEncoding	 T1|OT1
@@ -566,6 +577,7 @@ Language czech
 	HasGuiSupport    true
 	BabelName        czech
 	PolyglossiaName  czech
+	XindyName        czech
 	QuoteStyle       german
 	ActiveChars      -
 	Encoding         iso8859-2
@@ -579,6 +591,7 @@ Language danish
 	HasGuiSupport    true
 	BabelName        danish
 	PolyglossiaName  danish
+	XindyName        danish
 	QuoteStyle       danish
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -601,6 +614,7 @@ Language dutch
 	BabelName        dutch
 	PolyglossiaName  dutch
 	PolyglossiaOpts  "babelshorthands=true"
+	XindyName        dutch
 	QuoteStyle       polish
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -614,6 +628,7 @@ Language english
 	BabelName        english
 	PolyglossiaName  english
 	PolyglossiaOpts  "variant=american"
+	XindyName        english
 	QuoteStyle       english
 	DateFormats      "MMMM dd, yyyy|MMM dd, yyyy|M/d/yyyy"
 	Encoding         iso8859-15
@@ -627,6 +642,7 @@ Language esperanto
 	GuiName          "Esperanto"
 	BabelName        esperanto
 	PolyglossiaName  esperanto
+	XindyName        esperanto
 	QuoteStyle       english
 	Encoding         iso8859-3
 	FontEncoding	 IL3|T1|OT1
@@ -638,6 +654,7 @@ Language estonian
 	GuiName          "Estonian"
 	BabelName        estonian
 	PolyglossiaName  estonian
+	XindyName        estonian
 	QuoteStyle       german
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -654,6 +671,7 @@ Language farsi
 	GuiName          "Farsi"
 	BabelName        farsi
 	PolyglossiaName  farsi
+	XindyName        persian
 	Encoding         utf8
 	FontEncoding     LAE,LFE
 	DateFormats      "d MMMM yyyy|d MMM yyyy|yyyy/M/d"
@@ -671,6 +689,7 @@ Language finnish
 	HasGuiSupport    true
 	BabelName        finnish
 	PolyglossiaName  finnish
+	XindyName        finnish
 	QuoteStyle       swedish
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -683,6 +702,7 @@ Language french
 	HasGuiSupport    true
 	BabelName        french
 	PolyglossiaName  french
+	XindyName        french
 	QuoteStyle       french
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -722,6 +742,7 @@ Language georgian
 	GuiName          "Georgian"
 	BabelName        georgian
 	PolyglossiaName  georgian
+	XindyName        georgian
 	QuoteStyle       german
 	Encoding         utf8
 	FontEncoding     T8M
@@ -734,6 +755,7 @@ Language german
 	BabelName        german
 	PolyglossiaName  german
 	PolyglossiaOpts  "variant=german,spelling=old,babelshorthands=true"
+	XindyName        german-duden
 	QuoteStyle       german
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -748,6 +770,7 @@ Language ngerman
 	BabelName        ngerman
 	PolyglossiaName  german
 	PolyglossiaOpts  "variant=german,spelling=new,babelshorthands=true"
+	XindyName        german-duden
 	QuoteStyle       german
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -764,6 +787,7 @@ Language german-ch
 	BabelName        nswissgerman
 	PolyglossiaName  german
 	PolyglossiaOpts  "variant=swiss,spelling=new,babelshorthands=true"
+	XindyName        german-duden
 	QuoteStyle       swiss
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -779,6 +803,7 @@ Language german-ch-old
  	BabelName        swissgerman
  	PolyglossiaName  german
  	PolyglossiaOpts  "variant=swiss,spelling=old,babelshorthands=true"
+	XindyName        german-duden
  	QuoteStyle       swiss
  	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -792,6 +817,7 @@ Language greek
 	BabelName        greek
 	PolyglossiaName  greek
 	PolyglossiaOpts  "variant=monotonic"
+	XindyName        greek
 	QuoteStyle       french
 	Encoding         iso8859-7
 	InternalEncoding true
@@ -806,6 +832,7 @@ Language polutonikogreek
 	BabelName        polutonikogreek
 	PolyglossiaName  greek
 	PolyglossiaOpts  "variant=polytonic"
+	XindyName        greek
 	QuoteStyle       french
 	Encoding         iso8859-7
 	InternalEncoding true
@@ -820,6 +847,7 @@ Language hebrew
 	HasGuiSupport    true
 	BabelName        hebrew
 	PolyglossiaName  hebrew
+	XindyName        hebrew
 	Encoding         cp1255
 	QuoteStyle       english
 	InternalEncoding true
@@ -865,6 +893,7 @@ Language icelandic
 	GuiName          "Icelandic"
 	BabelName        icelandic
 	PolyglossiaName  icelandic
+	XindyName        icelandic
 	QuoteStyle       german
 	Encoding         iso8859-15
 	FontEncoding	 T1
@@ -902,6 +931,7 @@ Language italian
 	HasGuiSupport    true
 	BabelName        italian
 	PolyglossiaName  italian
+	XindyName        italian
 	QuoteStyle       french
 	Encoding         iso8859-15
 	FontEncoding	 ASCII
@@ -966,6 +996,7 @@ End
 Language korean
 	GuiName         "Korean"
 	PolyglossiaName korean
+	XindyName       korean
 	Encoding        euc-kr
 	QuoteStyle      cjkangle
 	DateFormats     "yyyy년 M월 d일|yyyy. M. d.|yy. M. d."
@@ -987,6 +1018,7 @@ Language kurmanji
 	GuiName          "Kurdish (Kurmanji)"
 	BabelName        kurmanji
 	PolyglossiaName  kurdish
+	XindyName        kurdish-bedirxan
 	PolyglossiaOpts  "variant=kurmanji"
 	Encoding         utf8
 	FontEncoding	 T1|OT1
@@ -1010,6 +1042,7 @@ Language latin
 	GuiName          "Latin"
 	BabelName        latin
 	PolyglossiaName  latin
+	XindyName        latin
 	ActiveChars      ^=
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1023,6 +1056,7 @@ Language latvian
 	GuiName          "Latvian"
 	BabelName        latvian
 	PolyglossiaName  latvian
+	XindyName        latvian
 	QuoteStyle       german
 	Encoding         iso8859-4
 	FontEncoding     L7x|T1|OT1
@@ -1037,6 +1071,7 @@ Language lithuanian
 	GuiName          "Lithuanian"
 	BabelName        lithuanian
 	PolyglossiaName  lithuanian
+	XindyName        lithunian
 	QuoteStyle       german
 	Encoding         iso8859-13
 	FontEncoding     L7x
@@ -1056,6 +1091,7 @@ Language lowersorbian
 	GuiName          "Lower Sorbian"
 	BabelName        lowersorbian
 	PolyglossiaName  lsorbian
+	XindyName        lower-sorbian
 	QuoteStyle       german
 	Encoding         iso8859-2
 	FontEncoding	 T1|OT1
@@ -1068,6 +1104,7 @@ Language magyar
 	HasGuiSupport    true
 	BabelName        magyar
 	PolyglossiaName  magyar
+	XindyName        hungarian
 	QuoteStyle       polish
 	Encoding         iso8859-2
 	FontEncoding	 T1|OT1
@@ -1079,6 +1116,7 @@ Language macedonian
 	GuiName          "Macedonian"
 	BabelName        macedonian
 	PolyglossiaName  macedonian
+	XindyName        macedonian
 	QuoteStyle       german
 	Encoding         cp1251
 	FontEncoding     T2A
@@ -1112,6 +1150,7 @@ Language mongolian
 	GuiName          "Mongolian"
 	BabelName        mongolian
 	PolyglossiaName  mongolian
+	XindyName        mongolian
 	Encoding         utf8
 	FontEncoding     T2A
 	DateFormats      "yyyy оны M сарын d|d-M-yyyy|dd-MM-yyyy"
@@ -1124,6 +1163,7 @@ Language newzealand
 	BabelName        newzealand
 	PolyglossiaName  english
 	PolyglossiaOpts  "variant=newzealand"
+	XindyName        english
 	QuoteStyle       english
 	Encoding         iso8859-15
 	FontEncoding	 ASCII
@@ -1136,6 +1176,7 @@ Language norsk
 	HasGuiSupport    true
 	BabelName        norsk
 	PolyglossiaName  norsk
+	XindyName        norwegian
 	QuoteStyle       swiss
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1164,6 +1205,7 @@ Language nynorsk
 	HasGuiSupport    true
 	BabelName        nynorsk
 	PolyglossiaName  nynorsk
+	XindyName        norwegian
 	QuoteStyle       swiss
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1188,6 +1230,7 @@ Language oldrussian
 	GuiName          "Russian (Petrine orthography)"
 	PolyglossiaName  russian
 	PolyglossiaOpts  "spelling=old"
+	XindyName        russian
 	QuoteStyle       russian
 	LangCode         ru_petr1708
 End
@@ -1210,6 +1253,7 @@ Language polish
 	HasGuiSupport    true
 	BabelName        polish
 	PolyglossiaName  polish
+	XindyName        polish
 	QuoteStyle       polish
 	Encoding         iso8859-2
 	FontEncoding     QX|T1|OT1
@@ -1222,6 +1266,7 @@ Language portuguese
 	HasGuiSupport    true
 	BabelName        portuges
 	PolyglossiaName  portuges
+	XindyName        portuguese
 	QuoteStyle       french
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1234,6 +1279,7 @@ Language romanian
 	HasGuiSupport    true
 	BabelName        romanian
 	PolyglossiaName  romanian
+	XindyName        romanian
 	QuoteStyle       polish
 	Encoding         iso8859-16
 	FontEncoding	 T1|OT1
@@ -1259,6 +1305,7 @@ Language russian
 	BabelName        russian
 	PolyglossiaName  russian
 	PolyglossiaOpts  "spelling=modern"
+	XindyName        russian
 	QuoteStyle       russian
 	Encoding         koi8-r
 	FontEncoding     T2A
@@ -1311,6 +1358,7 @@ Language serbian
 	BabelName        serbianc
 	PolyglossiaName  serbian
 	PolyglossiaOpts  "script=Cyrillic"
+	XindyName        serbian
 	# Note: script option is uppercase, even if the polyglossia
 	#       manual states otherwise.
 	QuoteStyle       polish
@@ -1320,13 +1368,13 @@ Language serbian
 	LangCode         sr_RS
 End
 
-# Note: script option is uppercase, even if the polyglossia
-#       manual states otherwise.
+# We use croatian for Latin Serbian index ordering
 Language serbian-latin
 	GuiName          "Serbian (Latin)"
 	BabelName        serbian
 	PolyglossiaName  serbian
 	PolyglossiaOpts  "script=Latin"
+	XindyName        croatian
 	QuoteStyle       polish
 	Encoding         iso8859-2
 	FontEncoding	 T1|OT1
@@ -1339,6 +1387,7 @@ Language slovak
 	HasGuiSupport    true
 	BabelName        slovak
 	PolyglossiaName  slovak
+	XindyName        slovak-large
 	QuoteStyle       german
 	ActiveChars      -^
 	Encoding         iso8859-2
@@ -1351,6 +1400,7 @@ Language slovene
 	GuiName          "Slovene"
 	BabelName        slovene
 	PolyglossiaName  slovenian
+	XindyName        slovenian
 	QuoteStyle       german
 	Encoding         iso8859-2
 	FontEncoding	 T1|OT1
@@ -1363,6 +1413,7 @@ Language spanish
 	HasGuiSupport    true
 	BabelName        spanish
 	PolyglossiaName  spanish
+	XindyName        spanish-modern
 	QuoteStyle       french
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1378,6 +1429,7 @@ Language spanish-mexico
 	GuiName          "Spanish (Mexico)"
 	BabelName        spanish
 	PolyglossiaName  spanish
+	XindyName        spanish-modern
 	QuoteStyle       french
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1393,6 +1445,7 @@ Language swedish
 	HasGuiSupport    true
 	BabelName        swedish
 	PolyglossiaName  swedish
+	XindyName        swedish
 	QuoteStyle       swedish
 	Encoding         iso8859-15
 	FontEncoding	 T1|OT1
@@ -1474,6 +1527,7 @@ Language turkish
 	HasGuiSupport    true
 	BabelName        turkish
 	PolyglossiaName  turkish
+	XindyName        turkish
 	QuoteStyle       english
 	ActiveChars      =
 	Encoding         iso8859-9
@@ -1500,6 +1554,7 @@ Language ukrainian
 	HasGuiSupport    true
 	BabelName        ukrainian
 	PolyglossiaName  ukrainian
+	XindyName        ukrainian
 	QuoteStyle       russian
 	Encoding         koi8-u
 	FontEncoding     T2A
@@ -1512,6 +1567,7 @@ Language uppersorbian
 	GuiName          "Upper Sorbian"
 	BabelName        uppersorbian
 	PolyglossiaName  usorbian
+	XindyName        upper-sorbian
 	QuoteStyle       german
 	Encoding         iso8859-2
 	FontEncoding	 T1|OT1
@@ -1533,6 +1589,7 @@ Language vietnamese
 	GuiName          "Vietnamese"
 	BabelName        vietnamese
 	PolyglossiaName  vietnamese
+	XindyName        vietnamese
 	QuoteStyle       english
 	Encoding         utf8
 	DateFormats      "dd 'tháng' MMMM yyyy|dd-MM-yyyy|dd/MM/yyyy"
diff --git a/src/Converter.cpp b/src/Converter.cpp
index 4dab241..2ffd98a 100644
--- a/src/Converter.cpp
+++ b/src/Converter.cpp
@@ -486,6 +486,7 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
 		runparams.index_command = (bp.index_command == "default") ?
 			string() : bp.index_command;
 		runparams.document_language = bp.language->babel();
+		runparams.xindy_language = bp.language->xindy();
 		// Some macros rely on font encoding
 		runparams.main_fontenc = bp.main_font_encoding();
 		runparams.only_childbibs = !bp.useBiblatex()
diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp
index 5cb5df4..3ac59b7 100644
--- a/src/LaTeX.cpp
+++ b/src/LaTeX.cpp
@@ -20,6 +20,7 @@
 #include "LyXRC.h"
 #include "LyX.h"
 #include "DepTable.h"
+#include "Encoding.h"
 
 #include "support/debug.h"
 #include "support/convert.h"
@@ -105,7 +106,7 @@ LaTeX::LaTeX(string const & latex, OutputParams const & rp,
 	     FileName const & f, string const & p, string const & lp, 
 	     bool allow_cancellation, bool const clean_start)
 	: cmd(latex), file(f), path(p), lpath(lp), runparams(rp), biber(false),
-       allow_cancel(allow_cancellation)
+	  allow_cancel(allow_cancellation)
 {
 	num_errors = 0;
 	// lualatex can still produce a DVI with --output-format=dvi. However,
@@ -499,6 +500,21 @@ int LaTeX::runMakeIndex(string const & f, OutputParams const & rp,
 
 	if (!rp.index_command.empty())
 		tmp = rp.index_command;
+	
+	if (contains(tmp, "$$x")) {
+		// This adds appropriate [te]xindy options
+		// such as language and codepage (for the
+		// main document language/encoding)
+		string xdyopts = rp.xindy_language;
+		if (!xdyopts.empty())
+			xdyopts = "-L " + xdyopts;
+		if (rp.encoding->iconvName() == "UTF-8") {
+			if (!xdyopts.empty())
+				xdyopts += " ";
+			xdyopts += "-C utf8";
+		}
+		tmp = subst(tmp, "$$x", xdyopts);
+	}
 
 	LYXERR(Debug::LATEX,
 		"idx file has been made, running index processor ("
diff --git a/src/Language.cpp b/src/Language.cpp
index 97a1788..6bccf7a 100644
--- a/src/Language.cpp
+++ b/src/Language.cpp
@@ -140,6 +140,7 @@ bool Language::readLanguage(Lexer & lex)
 		LA_LANG_VARIETY,
 		LA_POLYGLOSSIANAME,
 		LA_POLYGLOSSIAOPTS,
+		LA_XINDYNAME,
 		LA_POSTBABELPREAMBLE,
 		LA_PREBABELPREAMBLE,
 		LA_PROVIDES,
@@ -171,7 +172,8 @@ bool Language::readLanguage(Lexer & lex)
 		{ "quotestyle",           LA_QUOTESTYLE },
 		{ "requires",             LA_REQUIRES },
 		{ "rtl",                  LA_RTL },
-		{"wordwrap",              LA_WORDWRAP }
+		{ "wordwrap",             LA_WORDWRAP },
+		{ "xindyname",            LA_XINDYNAME }
 	};
 
 	bool error = false;
@@ -206,6 +208,9 @@ bool Language::readLanguage(Lexer & lex)
 		case LA_POLYGLOSSIAOPTS:
 			lex >> polyglossia_opts_;
 			break;
+		case LA_XINDYNAME:
+			lex >> xindy_;
+			break;
 		case LA_QUOTESTYLE:
 			lex >> quote_style_;
 			break;
diff --git a/src/Language.h b/src/Language.h
index 6876828..a535f98 100644
--- a/src/Language.h
+++ b/src/Language.h
@@ -46,6 +46,8 @@ public:
 	std::string const polyglossia() const { return polyglossia_name_; }
 	/// polyglossia language options
 	std::string const polyglossiaOpts() const { return polyglossia_opts_; }
+	/// polyglossia language options
+	std::string const xindy() const { return xindy_; }
 	/// Is this language only supported by polyglossia?
 	bool isPolyglossiaExclusive() const;
 	/// Is this language only supported by babel?
@@ -117,6 +119,8 @@ private:
 	///
 	trivstring polyglossia_opts_;
 	///
+	trivstring xindy_;
+	///
 	trivstring quote_style_;
 	///
 	trivstring active_chars_;
diff --git a/src/OutputParams.h b/src/OutputParams.h
index 201d091..a2eb397 100644
--- a/src/OutputParams.h
+++ b/src/OutputParams.h
@@ -188,6 +188,9 @@ public:
 	*/
 	std::string index_command;
 
+	/// The Xindy language module
+	std::string xindy_language;
+
 	/** Hyperref driver
 	*/
 	std::string hyperref_driver;


More information about the lyx-cvs mailing list