[LyX/master] Revert "add short language switch (file format change)"

Udi Fogiel <[email protected]> Sun, 12 Jul 2026 01:46:24 +0000
Newsgroups gmane.editors.lyx.cvs
Message-ID <[email protected]>
commit 6a1143b4bb2aac148b7eb2f4d76c672654e189cb
Author: Udi Fogiel <[email protected]>
Date:   Sun Jul 12 04:46:06 2026 +0300

    Revert "add short language switch (file format change)"
    
    This reverts commit 4bb5644d4ba9807859f7e38aa50e0cab388084da.
---
 development/FORMAT                 |  5 ---
 lib/RELEASE-NOTES                  |  3 --
 lib/doc/UserGuide.lyx              | 31 ++++------------
 lib/lyx2lyx/lyx_2_6.py             | 72 +-------------------------------------
 src/Cursor.cpp                     | 12 +------
 src/Font.cpp                       | 17 +++------
 src/FontInfo.cpp                   | 12 +------
 src/FontInfo.h                     | 13 ++-----
 src/LyXAction.cpp                  |  5 +--
 src/Paragraph.cpp                  |  9 ++---
 src/Text.cpp                       | 33 +++--------------
 src/frontends/qt/GuiCharacter.cpp  | 21 +----------
 src/frontends/qt/GuiCharacter.h    |  3 --
 src/frontends/qt/ui/CharacterUi.ui | 10 ------
 src/version.h                      |  4 +--
 15 files changed, 28 insertions(+), 222 deletions(-)

diff --git a/development/FORMAT b/development/FORMAT
index 8a1d316816..7b77fbe937 100644
--- a/development/FORMAT
+++ b/development/FORMAT
@@ -7,11 +7,6 @@ changes happened in particular if possible. A good example would be
 
 -----------------------
 
-2026-07-11 Udi Fogiel <[email protected]>
-	* Format incremented to 651:
-	  New optional "short" keyword on the \lang font token (\lang <LANG> short),
-	  marking a language switch that will always be rendered as a short switch.
-
 2026-04-24 Jürgen Spitzmüller <[email protected]>
 	* Format incremented to 650:
 	  New \language_package value "polyglossia" which uses polyglossia whenever
diff --git a/lib/RELEASE-NOTES b/lib/RELEASE-NOTES
index b7ae6fb491..b6fe35c956 100644
--- a/lib/RELEASE-NOTES
+++ b/lib/RELEASE-NOTES
@@ -35,9 +35,6 @@
 - The function newpage-insert has been renamed to textbreak-insert
   (since it does not only insert page breaks)
 
-- The function language now accepts an additional "short" argument
-  which ensures the language switch is a short one (e.g. \foreignlanguage).
-  
 !!!The following LyX functions have been removed in 2.6:
 
 !!!The following LyX function has been added and then removed in 2.6 development cycle:
diff --git a/lib/doc/UserGuide.lyx b/lib/doc/UserGuide.lyx
index 473a31ee01..6a7c81bd8a 100644
--- a/lib/doc/UserGuide.lyx
+++ b/lib/doc/UserGuide.lyx
@@ -1,5 +1,5 @@
-#LyX 2.6 created this file. For more info see https://www.lyx.org/
-\lyxformat 651
+#LyX 2.5 created this file. For more info see https://www.lyx.org/
+\lyxformat 643
 \begin_document
 \begin_header
 \save_transient_properties true
@@ -161,7 +161,7 @@ logicalmkup
 \end_branch
 \index Index
 \shortcut idx
-\color #ff008000
+\color #008000
 \end_index
 \secnumdepth 3
 \tocdepth 2
@@ -186,7 +186,6 @@ logicalmkup
 \docbook_mathml_prefix 1
 \docbook_mathml_version 0
 \author -712698321 "Jürgen Spitzmüller"
-\author 1064312605 "Udi Fogiel"
 \end_header
 
 \begin_body
@@ -17406,22 +17405,6 @@ Exclude from Spellchecking
 \family default
 .
  Passages marked like this will still be hyphenated correctly.
-\change_inserted 1064312605 1783806993
-
-\begin_inset Newline newline
-\end_inset
-
-If you want to switch the language of a short passage without ever letting it become the language of the whole paragraph —
- even if the passage happens to start at the very beginning of the paragraph —
- activate 
-\family sans
-Short Language Switch
-\family default
-.
- This is useful e. g.
- for a single foreign word or short quotation inserted inline.
-\change_unchanged
-
 \end_layout
 
 \begin_layout Standard
@@ -39711,7 +39694,7 @@ literal "true"
 \end_layout
 
 \begin_layout Standard
-\begin_inset Textbreak clearpage
+\begin_inset Newpage clearpage
 \end_inset
 
 
@@ -40801,7 +40784,7 @@ literal "true"
 \end_layout
 
 \begin_layout Standard
-\begin_inset Textbreak clearpage
+\begin_inset Newpage clearpage
 \end_inset
 
 
@@ -58283,7 +58266,7 @@ textwidth
 \end_layout
 
 \begin_layout Standard
-\begin_inset Textbreak newpage
+\begin_inset Newpage newpage
 \end_inset
 
 The bibliography on the following page was created with the 
@@ -59674,7 +59657,7 @@ https://wiki.lyx.org/Windows/Japanese
 \end_layout
 
 \begin_layout Standard
-\begin_inset Textbreak newpage
+\begin_inset Newpage newpage
 \end_inset
 
 
diff --git a/lib/lyx2lyx/lyx_2_6.py b/lib/lyx2lyx/lyx_2_6.py
index 47d438c560..9aacfb75bf 100644
--- a/lib/lyx2lyx/lyx_2_6.py
+++ b/lib/lyx2lyx/lyx_2_6.py
@@ -887,74 +887,6 @@ def revert_shorthands2(document):
         continue
 
 
-def revert_lang_short(document):
-    """Revert short language switches.
-
-    short language switches (which appears as \\lang <LANG short>),
-    marking a language switch that must always render as a short switch.
-    if such a switch happens to be the first content of its
-    paragraph, older LyX would (wrongly) treat it as changing the
-    whole paragraph's language. Guard against that by inserting an
-    empty Note inset before it (idea from #3660), so the switch
-    is no longer at the paragraph's first position,
-    then drop the keyword."""
-    font_attr_tokens = (
-        "\\family",
-        "\\series",
-        "\\shape",
-        "\\size",
-        "\\emph",
-        "\\numeric",
-        "\\nospellcheck",
-        "\\bar",
-        "\\strikeout",
-        "\\xout",
-        "\\uuline",
-        "\\uwave",
-        "\\noun",
-        "\\color",
-        "\\lang",
-    )
-
-    def is_paragraph_initial(i):
-        layout = get_containing_layout(document.body, i)
-        if not layout:
-            return False
-        for j in range(layout[3], i):
-            line = document.body[j].strip()
-            if line and line.split(" ", 1)[0] not in font_attr_tokens:
-                return False
-        return True
-
-    i = 0
-    while True:
-        i = find_token(document.body, "\\lang ", i)
-        if i == -1:
-            break
-        line = document.body[i]
-        if not line.rstrip().endswith(" short"):
-            i += 1
-            continue
-        if is_paragraph_initial(i):
-            note = [
-                "\\begin_inset Note Note",
-                "status collapsed",
-                "",
-                "\\begin_layout Plain Layout",
-                "",
-                "\\end_layout",
-                "",
-                "\\end_inset",
-                "",
-                "",
-            ]
-            document.body[i:i] = note
-            i += len(note)
-            line = document.body[i]
-        document.body[i] = line.rstrip()[: -len(" short")]
-        i += 1
-
-
 def revert_lp_polyglossia(document):
     """Revert language package polyglossia to auto"""
     i = find_token(document.header, "\\language_package polyglossia", 0)
@@ -973,13 +905,11 @@ convert = [
     [647, [convert_textbreaks]],
     [648, []],
     [649, []],
-    [650, []],
-    [651, []]
+    [650, []]
 ]
 
 
 revert = [
-    [650, [revert_lang_short]],
     [649, [revert_lp_polyglossia]],
     [648, [revert_shorthands2]],
     [647, [revert_hyphen_shorthands]],
diff --git a/src/Cursor.cpp b/src/Cursor.cpp
index e6a3d57def..2b713a80f5 100644
--- a/src/Cursor.cpp
+++ b/src/Cursor.cpp
@@ -2536,14 +2536,6 @@ void Cursor::setLanguageFromInput()
 	string const & code = theApp()->inputLanguageCode();
 	Language const * lang = languages.getFromCode(code, buffer()->getLanguages());
 	if (lang) {
-	        // respect_os_kbd_language is not exposed yet
-	        // but just in case for now a langue change
-	        // from a keyboard switch is not a short language switch
-	        // (did not test it...)
-		if (lang != current_font.language()) {
-			current_font.fontInfo().setLangShort(FONT_OFF);
-			real_current_font.fontInfo().setLangShort(FONT_OFF);
-		}
 		current_font.setLanguage(lang);
 		real_current_font.setLanguage(lang);
 	} else
@@ -2588,11 +2580,9 @@ void Cursor::setCurrentFont()
 	setLanguageFromInput();
 
 	// special case for paragraph end
-	// but not if we are continuing a short language
 	if (cs.pos() == lastpos()
 	    && tm.isRTLBoundary(cpit, cs.pos())
-	    && !boundary()
-	    && current_font.fontInfo().langshort() != FONT_ON) {
+	    && !boundary()) {
 		Language const * lang = par.getParLanguage(bufparams);
 		current_font.setLanguage(lang);
 		current_font.fontInfo().setNumber(FONT_OFF);
diff --git a/src/Font.cpp b/src/Font.cpp
index ca8ad28072..107ce23462 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -213,15 +213,11 @@ void Font::lyxWriteChanges(Font const & orgfont,
 	// FIXME: uncomment this when we support background.
 	//if (orgfont.fontInfo().background() != bits_.background())
 	//	os << "\\color " << lcolor.getLyXName(bits_.background()) << '\n';
-	if ((orgfont.language() != language() ||
-	     orgfont.fontInfo().langshort() != bits_.langshort()) &&
+	if (orgfont.language() != language() &&
 	    language() != latex_language) {
-		if (language()) {
-			os << "\\lang " << language()->lang();
-			if (bits_.langshort() == FONT_ON)
-				os << " short";
-			os << "\n";
-		} else
+		if (language())
+			os << "\\lang " << language()->lang() << "\n";
+		else
 			os << "\\lang unknown\n";
 	}
 
@@ -699,7 +695,6 @@ string Font::toString(bool const toggle) const
 	   << "noun " << bits_.noun() << '\n'
 	   << "number " << bits_.number() << '\n'
 	   << "nospellcheck " << bits_.nospellcheck() << '\n'
-	   << "langshort " << bits_.langshort() << '\n'
 	   << "color " << bits_.color() << '\n'
 	   << "language " << lang << '\n'
 	   << "toggleall " << convert<string>(toggle);
@@ -750,7 +745,7 @@ bool Font::fromString(string const & data, bool & toggle)
 			|| token == "noun" || token == "number"
 			|| token == "uuline" || token == "uwave"
 			|| token == "strikeout" || token == "xout"
-			|| token == "nospellcheck" || token == "langshort") {
+			|| token == "nospellcheck") {
 
 			int const next = lex.getInteger();
 			if (next == -1)
@@ -775,8 +770,6 @@ bool Font::fromString(string const & data, bool & toggle)
 				bits_.setNumber(misc);
 			else if (token == "nospellcheck")
 				bits_.setNoSpellcheck(misc);
-			else if (token == "langshort")
-				bits_.setLangShort(misc);
 
 		} else if (token == "color") {
 			int const next = lex.getInteger();
diff --git a/src/FontInfo.cpp b/src/FontInfo.cpp
index 00805a917c..85dace8a24 100644
--- a/src/FontInfo.cpp
+++ b/src/FontInfo.cpp
@@ -99,7 +99,6 @@ FontInfo const sane_font(
 	FONT_OFF,
 	FONT_OFF,
 	FONT_OFF,
-	FONT_OFF,
 	FONT_OFF);
 
 FontInfo const inherit_font(
@@ -118,7 +117,6 @@ FontInfo const inherit_font(
 	FONT_INHERIT,
 	FONT_INHERIT,
 	FONT_OFF,
-	FONT_INHERIT,
 	FONT_INHERIT);
 
 FontInfo const ignore_font(
@@ -137,7 +135,6 @@ FontInfo const ignore_font(
 	FONT_IGNORE,
 	FONT_IGNORE,
 	FONT_IGNORE,
-	FONT_IGNORE,
 	FONT_IGNORE);
 
 
@@ -267,8 +264,6 @@ void FontInfo::reduce(FontInfo const & tmplt)
 		background_ = Color_inherit;
 	if (nospellcheck_ == tmplt.nospellcheck_)
 		nospellcheck_ = FONT_INHERIT;
-	if (langshort_ == tmplt.langshort_)
-		langshort_ = FONT_INHERIT;
 }
 
 
@@ -325,9 +320,6 @@ FontInfo & FontInfo::realize(FontInfo const & tmplt)
 	if (nospellcheck_ == FONT_INHERIT)
 		nospellcheck_ = tmplt.nospellcheck_;
 
-	if (langshort_ == FONT_INHERIT)
-		langshort_ = tmplt.langshort_;
-
 	return *this;
 }
 
@@ -432,7 +424,6 @@ void FontInfo::update(FontInfo const & newfont, bool toggleall)
 	setNoun(setMisc(newfont.noun_, noun_));
 	setNumber(setMisc(newfont.number_, number_));
 	setNoSpellcheck(setMisc(newfont.nospellcheck_, nospellcheck_));
-	setLangShort(setMisc(newfont.langshort_, langshort_));
 
 	if (newfont.color_ == color_ && toggleall)
 		setColor(Color_inherit); // toggle 'back'
@@ -455,8 +446,7 @@ bool FontInfo::resolved() const
 		&& uuline_ != FONT_INHERIT && uwave_ != FONT_INHERIT
 		&& strikeout_ != FONT_INHERIT && xout_ != FONT_INHERIT
 		&& noun_ != FONT_INHERIT && color_ != Color_inherit
-		&& background_ != Color_inherit && nospellcheck_ != FONT_INHERIT
-		&& langshort_ != FONT_INHERIT);
+		&& background_ != Color_inherit && nospellcheck_ != FONT_INHERIT);
 }
 
 
diff --git a/src/FontInfo.h b/src/FontInfo.h
index 169354b79b..eb69fd3386 100644
--- a/src/FontInfo.h
+++ b/src/FontInfo.h
@@ -50,13 +50,11 @@ public:
 		FontState  uwave,
 		FontState  noun,
 		FontState  number,
-		FontState  nospellcheck,
-		FontState  langshort)
+		FontState  nospellcheck)
 		: family_(family), series_(series), shape_(shape), size_(size),
 		style_(style), color_(color), background_(background), emph_(emph),
 		underbar_(underbar), strikeout_(strikeout), xout_(xout), uuline_(uuline),
-		uwave_(uwave), noun_(noun), number_(number), nospellcheck_(nospellcheck),
-		langshort_(langshort)
+		uwave_(uwave), noun_(noun), number_(number), nospellcheck_(nospellcheck)
 	{}
 
 	/// Decreases font size by one
@@ -98,8 +96,6 @@ public:
 	void setBackground(ColorCode b) { background_ = b; }
 	FontState nospellcheck() const { return nospellcheck_; }
 	void setNoSpellcheck(FontState n) { nospellcheck_ = n; }
-	FontState langshort() const { return langshort_; }
-	void setLangShort(FontState s) { langshort_ = s; }
 	//@}
 
 	///
@@ -206,8 +202,6 @@ private:
 	FontState number_;
 	///
 	FontState nospellcheck_;
-	///
-	FontState langshort_;
 };
 
 
@@ -228,8 +222,7 @@ inline bool operator==(FontInfo const & lhs, FontInfo const & rhs)
 		&& lhs.uwave_ == rhs.uwave_
 		&& lhs.noun_ == rhs.noun_
 		&& lhs.number_ == rhs.number_
-		&& lhs.nospellcheck_ == rhs.nospellcheck_
-		&& lhs.langshort_ == rhs.langshort_;
+		&& lhs.nospellcheck_ == rhs.nospellcheck_;
 }
 
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index e3a10056c0..390312bfa8 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -2498,7 +2498,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_LANGUAGE
  * \li Action: Set language from the current cursor position.
- * \li Syntax: language <LANG> [set] [short]
+ * \li Syntax: language <LANG> [set]
  * \li Params: <LANG>: Requested language. Look in lib/languages for
                        the list. "language reset" or "language" (without param)
                        reset to the document language.
@@ -2506,9 +2506,6 @@ void LyXAction::init()
                        language. Otherwise, the language will be toggled (i.e., if
                        the current language is LANG, switch to the document language
                        or the default language, if LANG is the document language).
-                short: If used, the language change is forced to be
-                       a short switch (\foreignlanguage etc.)
-                       even if it covers the paragraph's first position.
  * \li Origin: Dekel, 2 Mar 2000
  * \endvar
  */
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index d101a0788d..b75d8ecaf6 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -4401,13 +4401,8 @@ bool Paragraph::isSpace(pos_type pos) const
 Language const *
 Paragraph::getParLanguage(BufferParams const & bparams) const
 {
-	if (!empty()) {
-		// Skip leading runs that of short language switch
-		for (auto const & f : d->fontlist_)
-			if (f.font().fontInfo().langshort() != FONT_ON)
-				return f.font().language();
-		return bparams.language;
-	}
+	if (!empty())
+		return getFirstFontSettings(bparams).language();
 	// FIXME: we should check the prev par as well (Lgb)
 	return bparams.language;
 }
diff --git a/src/Text.cpp b/src/Text.cpp
index 8888f7bbf9..e41b86232b 100644
--- a/src/Text.cpp
+++ b/src/Text.cpp
@@ -496,27 +496,15 @@ void Text::readParToken(Paragraph & par, Lexer & lex,
 		lex.next();
 		setLyXSize(lex.getString(), font.fontInfo());
 	} else if (token == "\\lang") {
-		lex.eatLine();
-		string const rest = lex.getString(true);
-		string langname = rest;
-		FontState langshort = FONT_OFF;
-		size_t const sp = rest.find(' ');
-		if (sp != string::npos) {
-			langname = rest.substr(0, sp);
-			string const flag = trim(rest.substr(sp + 1), " \t");
-			if (flag == "short")
-				langshort = FONT_ON;
-			else if (!flag.empty())
-				lex.printError("Unknown \\lang flag `" + flag + "'");
-		}
-		Language const * lang = languages.getLanguage(langname);
+		lex.next();
+		string const tok = lex.getString();
+		Language const * lang = languages.getLanguage(tok);
 		if (lang) {
 			font.setLanguage(lang);
 		} else {
 			font.setLanguage(bp.language);
 			lex.printError("Unknown language `$$Token'");
 		}
-		font.fontInfo().setLangShort(langshort);
 	} else if (token == "\\numeric") {
 		lex.next();
 		font.fontInfo().setNumber(setLyXMisc(lex.getString()));
@@ -2796,8 +2784,6 @@ void Text::setFont(Cursor & cur, Font const & font, bool toggleall)
 			newfi.setNumber(oldfi.number() == FONT_OFF ? FONT_ON : FONT_OFF);
 		if (newfi.nospellcheck() == FONT_TOGGLE)
 			newfi.setNoSpellcheck(oldfi.nospellcheck() == FONT_OFF ? FONT_ON : FONT_OFF);
-		if (newfi.langshort() == FONT_TOGGLE)
-			newfi.setLangShort(oldfi.langshort() == FONT_OFF ? FONT_ON : FONT_OFF);
 	}
 
 	setFont(cur.bv(), cur.selectionBegin().top(),
@@ -5965,20 +5951,9 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
 		// was requested via empty or "reset" arg.
 		if (!lang && !reset)
 			break;
-		// Remaining args ("set", "short") may appear in any order.
-		bool toggle = true;
-		bool short_lang = false;
-		for (int i = 1; !cmd.getArg(i).empty(); ++i) {
-			string const arg = cmd.getArg(i);
-			if (arg == "set")
-				toggle = false;
-			else if (arg == "short")
-				short_lang = true;
-		}
+		bool const toggle = (cmd.getArg(1) != "set");
 		selectWordWhenUnderCursor(cur, WHOLE_WORD_STRICT);
 		Font font(ignore_font, lang);
-		if (short_lang)
-			font.fontInfo().setLangShort(FONT_TOGGLE);
 		toggleAndShow(cur, this, font, toggle);
 		break;
 	}
diff --git a/src/frontends/qt/GuiCharacter.cpp b/src/frontends/qt/GuiCharacter.cpp
index 976cc04377..7995c28fcc 100644
--- a/src/frontends/qt/GuiCharacter.cpp
+++ b/src/frontends/qt/GuiCharacter.cpp
@@ -156,7 +156,7 @@ void fillCombo(QComboBox * combo, QList<T> const & list)
 GuiCharacter::GuiCharacter(GuiView & lv)
 	: GuiDialog(lv, "character", qt_("Text Properties")),
 	  font_(ignore_font, ignore_language),
-	  emph_(false), noun_(false), nospellcheck_(false), langshort_(false)
+	  emph_(false), noun_(false), nospellcheck_(false)
 {
 	setupUi(this);
 
@@ -213,7 +213,6 @@ GuiCharacter::GuiCharacter(GuiView & lv)
 	bc().addReadOnly(nounCB);
 	bc().addReadOnly(emphCB);
 	bc().addReadOnly(nospellcheckCB);
-	bc().addReadOnly(langshortCB);
 	bc().addReadOnly(langCO);
 	bc().addReadOnly(colorCO);
 	bc().addReadOnly(autoapplyCB);
@@ -272,17 +271,6 @@ void GuiCharacter::on_nospellcheckCB_clicked()
 }
 
 
-void GuiCharacter::on_langshortCB_clicked()
-{
-	// skip intermediate state at user click
-	if (!langshort_) {
-		langshortCB->setCheckState(Qt::Checked);
-		langshort_ = true;
-	}
-	change_adaptor();
-}
-
-
 void GuiCharacter::resetToDefault()
 {
 	Font font(inherit_font);
@@ -418,7 +406,6 @@ void GuiCharacter::checkRestoreDefaults()
 		|| setMarkupState(emphCB->checkState()) != FONT_OFF
 		|| setMarkupState(nounCB->checkState()) != FONT_OFF
 		|| setMarkupState(nospellcheckCB->checkState()) != FONT_OFF
-		|| setMarkupState(langshortCB->checkState()) != FONT_OFF
 		|| bar[ulineCO->currentIndex()].second != INHERIT
 		|| strike[strikeCO->currentIndex()].second != INHERIT
 		|| lcolor.getFromLyXName(fromqstr(colorCO->itemData(colorCO->currentIndex()).toString()), false) != Color_inherit
@@ -432,7 +419,6 @@ void GuiCharacter::checkRestoreDefaults()
 		|| setMarkupState(emphCB->checkState()) != FONT_IGNORE
 		|| setMarkupState(nounCB->checkState()) != FONT_IGNORE
 		|| setMarkupState(nospellcheckCB->checkState()) != FONT_IGNORE
-		|| setMarkupState(langshortCB->checkState()) != FONT_IGNORE
 		|| bar[ulineCO->currentIndex()].second != IGNORE
 		|| strike[strikeCO->currentIndex()].second != IGNORE
 		|| lcolor.getFromLyXName(fromqstr(colorCO->itemData(colorCO->currentIndex()).toString()), false) != Color_ignore
@@ -474,8 +460,6 @@ void GuiCharacter::updateContents()
 				font.fontInfo().setNoun(FONT_IGNORE);
 			if (fi.nospellcheck() != tmp.fontInfo().nospellcheck())
 				font.fontInfo().setNoSpellcheck(FONT_IGNORE);
-			if (fi.langshort() != tmp.fontInfo().langshort())
-				font.fontInfo().setLangShort(FONT_IGNORE);
 			if (fi.color() != tmp.fontInfo().color())
 				font.fontInfo().setColor(Color_ignore);
 			if (fi.underbar() != tmp.fontInfo().underbar()
@@ -584,11 +568,9 @@ void GuiCharacter::paramsToDialog(Font const & font)
 	emphCB->setCheckState(getMarkupState(fi.emph()));
 	nounCB->setCheckState(getMarkupState(fi.noun()));
 	nospellcheckCB->setCheckState(getMarkupState(fi.nospellcheck()));
-	langshortCB->setCheckState(getMarkupState(fi.langshort()));
 	emph_ = emphCB->checkState() == Qt::Checked;
 	noun_ = nounCB->checkState() == Qt::Checked;
 	nospellcheck_ = nospellcheckCB->checkState() == Qt::Checked;
-	langshort_ = langshortCB->checkState() == Qt::Checked;
 
 	// reset_language is a null pointer.
 	QString const lang = (font.language() == reset_language)
@@ -607,7 +589,6 @@ void GuiCharacter::applyView()
 	fi.setEmph(setMarkupState(emphCB->checkState()));
 	fi.setNoun(setMarkupState(nounCB->checkState()));
 	fi.setNoSpellcheck(setMarkupState(nospellcheckCB->checkState()));
-	fi.setLangShort(setMarkupState(langshortCB->checkState()));
 	setBar(fi, bar[ulineCO->currentIndex()].second);
 	setStrike(fi, strike[strikeCO->currentIndex()].second);
 	setLyXColor(fromqstr(colorCO->getData(colorCO->currentIndex())), fi);
diff --git a/src/frontends/qt/GuiCharacter.h b/src/frontends/qt/GuiCharacter.h
index 4d01cc96a3..d3345c210f 100644
--- a/src/frontends/qt/GuiCharacter.h
+++ b/src/frontends/qt/GuiCharacter.h
@@ -68,7 +68,6 @@ protected Q_SLOTS:
 	void on_emphCB_clicked();
 	void on_nounCB_clicked();
 	void on_nospellcheckCB_clicked();
-	void on_langshortCB_clicked();
 	void resetToDefault();
 	void resetToNoChange();
 	void checkRestoreDefaults();
@@ -110,8 +109,6 @@ private:
 	bool noun_;
 	///
 	bool nospellcheck_;
-	///
-	bool langshort_;
 
 	///
 	QAction * resetdefault_ = new QAction(this);
diff --git a/src/frontends/qt/ui/CharacterUi.ui b/src/frontends/qt/ui/CharacterUi.ui
index 035ff1b4a8..97d7f5caef 100644
--- a/src/frontends/qt/ui/CharacterUi.ui
+++ b/src/frontends/qt/ui/CharacterUi.ui
@@ -291,16 +291,6 @@
         </property>
        </widget>
       </item>
-      <item row="2" column="0">
-       <widget class="QCheckBox" name="langshortCB">
-        <property name="toolTip">
-         <string>If this is selected, the marked text is always output as short language switch (e.g. \foreignlanguage)</string>
-        </property>
-        <property name="text">
-         <string>&amp;Short Language Switch</string>
-        </property>
-       </widget>
-      </item>
      </layout>
     </widget>
    </item>
diff --git a/src/version.h b/src/version.h
index a0df812cd8..1c0ba33986 100644
--- a/src/version.h
+++ b/src/version.h
@@ -32,8 +32,8 @@ extern char const * const lyx_version_info;
 
 // Do not remove the comment below, so we get merge conflict in
 // independent branches. Instead add your own.
-#define LYX_FORMAT_LYX 651 // ufogiel: forced short (local) language switch
-#define LYX_FORMAT_TEX2LYX 651
+#define LYX_FORMAT_LYX 650 // spitz: language package polyglossia
+#define LYX_FORMAT_TEX2LYX 650
 
 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
 #ifndef _MSC_VER
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs