summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Sanda <ps@twin.jikos.cz>2018-02-21 17:24:52 +0100
committerPavel Sanda <ps@twin.jikos.cz>2018-02-21 17:24:52 +0100
commit01c59e91b3010a26d252c31439aea61d2922f52a (patch)
tree27972810ceb8aab49c2e7040caa1a4dd9f9f985b
parentFix SRC_URI of pdfeditor. (diff)
downloadrebutia-01c59e91b3010a26d252c31439aea61d2922f52a.tar.gz
rebutia-01c59e91b3010a26d252c31439aea61d2922f52a.tar.bz2
rebutia-01c59e91b3010a26d252c31439aea61d2922f52a.zip
lyx live 2.3 patch, not for wider use, it counts on qt4.
-rw-r--r--app-office/lyx/Manifest5
-rw-r--r--app-office/lyx/files/1.6.7-python.patch26
-rw-r--r--app-office/lyx/files/2.0-python.patch26
-rw-r--r--app-office/lyx/files/2.0.patches262
-rw-r--r--app-office/lyx/files/2.1-python.patch29
-rw-r--r--app-office/lyx/files/2.3-python.patch (renamed from app-office/lyx/files/2.0.3-python.patch)13
-rw-r--r--app-office/lyx/files/2.3.patches161
-rw-r--r--app-office/lyx/files/legacy.patch33
-rw-r--r--app-office/lyx/lyx-2.3.99.ebuild189
9 files changed, 395 insertions, 349 deletions
diff --git a/app-office/lyx/Manifest b/app-office/lyx/Manifest
new file mode 100644
index 0000000..c7f8b07
--- /dev/null
+++ b/app-office/lyx/Manifest
@@ -0,0 +1,5 @@
+AUX 2.0.patches 9724 SHA256 9bf26943ce4f27b4cdbfa924f3097aa1bfba6e23a10d8db494148066e9bf8a39 SHA512 99bdb8204d2f2d40adbb6280e8273b6d974ad6db5575388bedb6ed913a2afa17f693c6f35d600cc7d35d637f3426dcc485237be3548f47055588a5c199fb66db WHIRLPOOL b5c1555147329388d4bb1911712a38256c518a4d17cadba3911d125313a607e9eabd5b2f81c4831b6b9b8ae38c05ce0d9c37305b31286a0773fa3288e7c37a08
+AUX 2.3-python.patch 1049 SHA256 8f5531e99d769700b28b097950455aff9921d1c07c2815ff5a4d50dd0017f41e SHA512 8f2fda91c4c35ffdf3325fc6613df1c5ecd87ced88e4d690aef5c7085edda1b66c0ae704e266521627f7a82eb8b4e2f35fed0f14b37feb367422ef1c5693e31d WHIRLPOOL 91091414fb74e3ef2cf7b08ae4a22b4ca39f9e8c2474a96bd1d195bdc2995d44e550a90f01c5a42d32ee4606becf3b177ef2d85611d48e936f3fff6b9fbc33ab
+AUX 2.3.patches 5517 SHA256 8e3ad2051ec00870a561aad9e9ce9f2710e3545f964024902df3442761dfa9ae SHA512 95c9b281d718de3a98b0193fbe6ad23f83ab69ef5f5fef0efe27afdc369745f4153cb2be592579ef42fa02950af3a34d89b0640e08cf4cfc3b33f2436acecd3e WHIRLPOOL 0fdbdd4cac7acc84321423f7b07ad0742abc2a09c7def84425af8d69750b88158de823a77eeca1d21499f76794b06b0b487eb96babcfa03eecd41e91de014218
+AUX legacy.patch 1491 SHA256 e70cd461962a16094dfacf09717b41c4ff45cb063dfa6cd93a1f4cc5b112b3ab SHA512 c2a02a20f10a24e2c06ce0a1958b62809ec0149f05c875ddff223f2ee12f15e8991ff93f7f7b7672b68d7b2ff27f9320fc181a4a96b1e8ad412fa7948b832e8f WHIRLPOOL c655336edda332a7e6ec55fa6ec3edc3cd7840af451671340893a56d02367bcb155a56eed8fc6d02fa0caa6e73b1ca47e2af278ba8e501c77cd32f5f148fbd44
+EBUILD lyx-2.3.99.ebuild 4430 SHA256 8f26c4f68a416fb40a07f7bfe7ec51bb0c6d779795efc7aa39f46d0fbdcf0289 SHA512 d1453ef5df9c5fcd653f7099a30a1639e749690d84b628c1b74dce60b3130738f8f09b3496992aa21507aa054e49205878f405d1c22fc3629d584166dc0016c8 WHIRLPOOL 42044e88847f08519f1392644e67e623a5b6b41dd90865139ec828b2e718a13154e8dff2ab4c9cfe6b87ef1fcbba70a54678703c98416445c7ed93b2c6555bba
diff --git a/app-office/lyx/files/1.6.7-python.patch b/app-office/lyx/files/1.6.7-python.patch
deleted file mode 100644
index 3717cc8..0000000
--- a/app-office/lyx/files/1.6.7-python.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/graphics/GraphicsConverter.cpp b/src/graphics/GraphicsConverter.cpp
-index 97c4f68..8f05e62 100644
---- a/src/graphics/GraphicsConverter.cpp
-+++ b/src/graphics/GraphicsConverter.cpp
-@@ -262,7 +262,7 @@ static void build_script(FileName const & from_file,
- LYXERR(Debug::GRAPHICS, "build_script ... ");
- typedef Graph::EdgePath EdgePath;
-
-- script << "#!/usr/bin/env python\n"
-+ script << "#!/usr/bin/env python2\n"
- "# -*- coding: utf-8 -*-\n"
- "import os, shutil, sys\n\n"
- "def unlinkNoThrow(file):\n"
-diff --git a/src/support/os.cpp b/src/support/os.cpp
-index 6984d2c..e6f17ff 100644
---- a/src/support/os.cpp
-+++ b/src/support/os.cpp
-@@ -26,7 +26,7 @@ string const python()
- {
- // Use the -tt switch so that mixed tab/whitespace indentation is
- // an error
-- static string const command("python -tt");
-+ static string const command("python2 -tt");
- return command;
- }
-
diff --git a/app-office/lyx/files/2.0-python.patch b/app-office/lyx/files/2.0-python.patch
deleted file mode 100644
index e12f66a..0000000
--- a/app-office/lyx/files/2.0-python.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/graphics/GraphicsConverter.cpp b/src/graphics/GraphicsConverter.cpp
-index 97c4f68..8f05e62 100644
---- a/src/graphics/GraphicsConverter.cpp
-+++ b/src/graphics/GraphicsConverter.cpp
-@@ -262,7 +262,7 @@ static void build_script(FileName const & from_file,
- LYXERR(Debug::GRAPHICS, "build_script ... ");
- typedef Graph::EdgePath EdgePath;
-
-- script << "#!/usr/bin/env python\n"
-+ script << "#!/usr/bin/env python2\n"
- "# -*- coding: utf-8 -*-\n"
- "import os, shutil, sys\n\n"
- "def unlinkNoThrow(file):\n"
-diff --git a/src/support/os.cpp b/src/support/os.cpp
-index f36331c..02f5a93 100644
---- a/src/support/os.cpp
-+++ b/src/support/os.cpp
-@@ -57,7 +57,7 @@ static string const python2(string const & binary, bool verbose = false)
- string const python()
- {
- // Check whether the first python in PATH is the right one.
-- static string command = python2("python -tt");
-+ static string command = python2("python2 -tt");
-
- if (command.empty()) {
- // It was not, so check whether we can find it elsewhere in
diff --git a/app-office/lyx/files/2.0.patches b/app-office/lyx/files/2.0.patches
deleted file mode 100644
index ac040ab..0000000
--- a/app-office/lyx/files/2.0.patches
+++ /dev/null
@@ -1,262 +0,0 @@
-diff --git a/src/Format.cpp b/src/Format.cpp
-index 050af14..7d495b7 100644
---- a/src/Format.cpp
-+++ b/src/Format.cpp
-@@ -260,6 +260,27 @@ void Formats::setEditor(string const & name, string const & command)
- }
-
-
-+bool Formats::viewURL(docstring const & url) {
-+ Format const * format = getFormat("html");
-+ if (!format)
-+ return false;
-+
-+ string command = libScriptSearch(format->viewer());
-+
-+ if (!contains(command, token_from_format))
-+ command += ' ' + token_from_format;
-+ command = subst(command, token_from_format, quoteName(to_utf8(url)));
-+
-+ LYXERR(Debug::FILES, "Executing command: " << command);
-+
-+ Systemcall one;
-+ one.startscript(Systemcall::DontWait, command);
-+
-+ // we can't report any sort of error, since we aren't waiting
-+ return true;
-+}
-+
-+
- bool Formats::view(Buffer const & buffer, FileName const & filename,
- string const & format_name) const
- {
-diff --git a/src/Format.h b/src/Format.h
-index 445c11b..3737f4c 100644
---- a/src/Format.h
-+++ b/src/Format.h
-@@ -143,6 +143,8 @@ public:
- void setViewer(std::string const & name, std::string const & command);
- ///
- void setEditor(std::string const & name, std::string const & command);
-+ /// Currently used by hyperlink insets and GuiCitation
-+ bool viewURL(docstring const & url);
- /// View the given file. Buffer used for DVI's paper orientation.
- bool view(Buffer const & buffer, support::FileName const & filename,
- std::string const & format_name) const;
-diff --git a/src/insets/InsetHyperlink.cpp b/src/insets/InsetHyperlink.cpp
-index 42dd691..7a293ff 100644
---- a/src/insets/InsetHyperlink.cpp
-+++ b/src/insets/InsetHyperlink.cpp
-@@ -100,7 +100,10 @@ bool InsetHyperlink::getStatus(Cursor & cur, FuncRequest const & cmd,
-
- void InsetHyperlink::viewTarget() const
- {
-- if (getParam("type") == "file:") {
-+ if (getParam("type").empty())
-+ formats.viewURL(getParam("target"));
-+
-+ else if (getParam("type") == "file:") {
- FileName url = makeAbsPath(to_utf8(getParam("target")), buffer().filePath());
- string const format = formats.getFormatFromFile(url);
- formats.view(buffer(), url, format);
-diff --git a/lib/ui/stdcontext.inc b/lib/ui/stdcontext.inc
-index a8cf62e..8086b7f 100644
---- a/lib/ui/stdcontext.inc
-+++ b/lib/ui/stdcontext.inc
-@@ -601,6 +601,8 @@ Menuset
- #
- Menu "context-hyperlink"
- Item "Settings...|S" "inset-settings"
-+ Separator
-+ Item "Open Target...|O" "inset-edit"
- End
-
- End
-diff --git a/lib/ui/stdmenus.inc b/lib/ui/stdmenus.inc
-index 88d84d2..f2cb35a 100644
---- a/lib/ui/stdmenus.inc
-+++ b/lib/ui/stdmenus.inc
-@@ -384,6 +384,7 @@ Menuset
- Item "Breakable Slash|a" "specialchar-insert slash"
- Item "Menu Separator|M" "specialchar-insert menu-separator"
- Item "Phonetic Symbols|P" "command-sequence math-insert \text\textipa ; char-forward ;"
-+ Item "Visible Space|V" "unicode-insert 0x2423"
- End
-
- Menu "insert_formatting"
-diff --git a/lib/scripts/legacy_lyxpreview2ppm.py b/lib/scripts/legacy_lyxpreview2ppm.py
-index be242cc..3125006 100644
---- a/lib/scripts/legacy_lyxpreview2ppm.py
-+++ b/lib/scripts/legacy_lyxpreview2ppm.py
-@@ -172,11 +172,18 @@ def legacy_latex_file(latex_file, fg_color, bg_color, bg_color_gr):
- use_preview_dvi_re = re.compile("(\s*\\\\usepackage\[[^]]+)(dvips\]{preview})")
- use_preview_pdf_re = re.compile("(\s*\\\\usepackage\[[^]]+)(pdftex\]{preview})")
-
-+ do_not_color_pictures_re = re.compile("(\\includegraphics)")
-+
- tmp = mkstemp()
-
- success = 0
- try:
- for line in open(latex_file, 'r').readlines():
-+ match = do_not_color_pictures_re.search(line)
-+ if match != None:
-+ tmp.write("\colorbox{white}{" + line + "}\n")
-+ continue
-+
- match = use_preview_dvi_re.match(line)
- if match == None:
- match = use_preview_pdf_re.match(line)
-@@ -192,7 +199,7 @@ def legacy_latex_file(latex_file, fg_color, bg_color, bg_color_gr):
-
- success = 1
- tmp.write("%stightpage,%s\n" \
-- " \\AtBeginDocument{\\AtBeginDvi{%%\n" \
-+ " \\usepackage{color}\n\\AtBeginDocument{\\AtBeginDvi{%%\n" \
- " \\special{!userdict begin/bop-hook{//bop-hook exec\n" \
- " <%s%s>{255 div}forall setrgbcolor\n" \
- " clippath fill setrgbcolor}bind def end}}}\n" \
-Index: stdinsets.inc
-===================================================================
---- a/lib/layouts/stdinsets.inc (revision 28602)
-+++ a/lib/layouts/stdinsets.inc (working copy)
-@@ -166,7 +166,7 @@
- Family typewriter
- EndFont
- LabelFont
-- Color foreground
-+ Color latex
- Size Small
- EndFont
- BgColor listingsbg
-diff --git a/lib/ui/default.ui b/lib/ui/default.ui
-index 03efe16..32e9efc 100644
---- a/lib/ui/default.ui
-+++ b/lib/ui/default.ui
-@@ -46,13 +46,13 @@ Include "stdtoolbars.inc"
- #
- Toolbars
- "standard" "on,top"
-- "view/update" "on,top"
-+ "view/update" "off,top"
- "extra" "on,top,samerow"
- "review" "auto,review,top"
-- "vcs" "off,top"
-+ "vcs" "on,top"
- "table" "auto,table,bottom"
- "math_panels" "auto,math,bottom"
- "math" "auto,math,bottom"
- "mathmacrotemplate" "auto,mathmacrotemplate,bottom"
-- "minibuffer" "off,bottom"
-+ "minibuffer" "on,bottom"
- End
-Index: lib/ui/stdtoolbars.inc
-===================================================================
---- a/lib/ui/stdtoolbars.inc (revision 29259)
-+++ b/lib/ui/stdtoolbars.inc (working copy)
-@@ -91,6 +91,8 @@
- Item "Increase depth" "depth-increment"
- Item "Decrease depth" "depth-decrement"
- Separator
-+ Item "Align center" "paragraph-params \align center"
-+ Separator
- Item "Insert figure float" "float-insert figure"
- Item "Insert table float" "float-insert table"
- Item "Insert label" "label-insert"
-diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp
-index ea08213..e29cc7f 100644
---- a/src/frontends/qt4/GuiView.cpp
-+++ b/src/frontends/qt4/GuiView.cpp
-@@ -1623,9 +1623,7 @@ bool GuiView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
-
- case LFUN_BUFFER_RELOAD:
- enable = doc_buffer && !doc_buffer->isUnnamed()
-- && doc_buffer->fileName().exists()
-- && (!doc_buffer->isClean()
-- || doc_buffer->isExternallyModified(Buffer::timestamp_method));
-+ && doc_buffer->fileName().exists();
- break;
-
- case LFUN_BUFFER_CHILD_OPEN:
-Index: src/frontends/qt4/GuiApplication.cpp
-===================================================================
---- a/src/frontends/qt4/GuiApplication.cpp (revision 31877)
-+++ b/src/frontends/qt4/GuiApplication.cpp (working copy)
-@@ -708,7 +708,8 @@
- QString app_name = "LyX";
- QCoreApplication::setOrganizationName(app_name);
- QCoreApplication::setOrganizationDomain("lyx.org");
-- QCoreApplication::setApplicationName(lyx_package);
-+ //make portage build LyX.conf without interefence to devel tweaks...
-+ QCoreApplication::setApplicationName("LyX");
-
- // Install translator for GUI elements.
- installTranslator(&d->qt_trans_);
-diff --git a/src/frontends/qt4/GuiCompleter.cpp b/src/frontends/qt4/GuiCompleter.cpp
-index 89a889d..ac5088f 100644
---- a/src/frontends/qt4/GuiCompleter.cpp
-+++ b/src/frontends/qt4/GuiCompleter.cpp
-@@ -165,7 +165,7 @@ GuiCompleter::GuiCompleter(GuiWorkArea * gui, QObject * parent)
- model_ = new GuiCompletionModel(this, 0);
- setModel(model_);
- setCompletionMode(QCompleter::PopupCompletion);
-- setCaseSensitivity(Qt::CaseSensitive);
-+ setCaseSensitivity(Qt::CaseInsensitive);
- setWidget(gui_);
-
- // create the popup
-diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp
-index 04c5b82..a127b0e 100644
---- a/src/mathed/InsetMathHull.cpp
-+++ b/src/mathed/InsetMathHull.cpp
-@@ -29,6 +29,7 @@
- #include "Encoding.h"
- #include "Exporter.h"
- #include "FuncRequest.h"
-+#include "LyX.h"
- #include "FuncStatus.h"
- #include "Language.h"
- #include "LaTeXFeatures.h"
-@@ -1277,6 +1278,7 @@ void InsetMathHull::doDispatch(Cursor & cur, FuncRequest & cmd)
- break;
-
- case LFUN_BREAK_PARAGRAPH:
-+ lyx::dispatch(FuncRequest(LFUN_MATH_EXTERN, "maxima"));
- // just swallow this
- break;
-
-diff --git a/src/rowpainter.cpp b/src/rowpainter.cpp
-index bcbf6da..0173a8d 100644
---- a/src/rowpainter.cpp
-+++ b/src/rowpainter.cpp
-@@ -888,8 +888,8 @@ void RowPainter::paintText()
-
- // If we reach the end of a change or if the author changes, paint it.
- // We also don't paint across things like tables
-- if (change_running.changed() && (highly_editable_inset
-- || !change.changed() || !change_running.isSimilarTo(change))) {
-+ if (change_running.changed() && (
-+ !change.changed() || !change_running.isSimilarTo(change))) {
- // Calculate 1/3 height of the buffer's default font
- FontMetrics const & fm
- = theFontMetrics(pi_.base.bv->buffer().params().getFont());
-diff --git a/src/frontends/qt4/GuiKeySymbol.cpp b/src/frontends/qt4/GuiKeySymbol.cpp
-index b318430..5ec58c4 100644
---- a/src/frontends/qt4/GuiKeySymbol.cpp
-+++ b/src/frontends/qt4/GuiKeySymbol.cpp
-@@ -341,6 +341,7 @@ static int string_to_qkey(std::string const & str)
- if (str == "yacute") return Qt::Key_Yacute;
- if (str == "thorn") return Qt::Key_THORN;
- if (str == "ydiaeresis") return Qt::Key_ydiaeresis;
-+ if (str == "Dead_Caron") return Qt::Key_Dead_Caron;
-
- // FIXME, correct for all these ?
- if (str == "Super_L") return Qt::Key_Super_L;
-@@ -559,6 +560,7 @@ static std::string const qkey_to_string(int lkey)
- case Qt::Key_ssharp: return "ssharp";
- case Qt::Key_ydiaeresis: return "ydiaeresis";
- case Qt::Key_Bar: return "bar";
-+ case Qt::Key_Dead_Caron: return "Dead_Caron";
-
- // FIXME: these ones I don't know the names of ... help !
- // what's here is basically guesses ...
diff --git a/app-office/lyx/files/2.1-python.patch b/app-office/lyx/files/2.1-python.patch
deleted file mode 100644
index 5fb2165..0000000
--- a/app-office/lyx/files/2.1-python.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/src/graphics/GraphicsConverter.cpp b/src/graphics/GraphicsConverter.cpp
-index 97c4f68..8f05e62 100644
---- a/src/graphics/GraphicsConverter.cpp
-+++ b/src/graphics/GraphicsConverter.cpp
-@@ -262,7 +262,7 @@ static void build_script(FileName const & from_file,
- LYXERR(Debug::GRAPHICS, "build_script ... ");
- typedef Graph::EdgePath EdgePath;
-
-- script << "#!/usr/bin/env python\n"
-+ script << "#!/usr/bin/env python2\n"
- "# -*- coding: utf-8 -*-\n"
- "import os, shutil, sys\n\n"
- "def unlinkNoThrow(file):\n"
-diff --git a/src/support/os.cpp b/src/support/os.cpp
-index 8f60c68..2f1cb91 100644
---- a/src/support/os.cpp
-+++ b/src/support/os.cpp
-@@ -63,9 +63,9 @@ int timeout_min()
- string const python(bool reset)
- {
- // Check whether the first python in PATH is the right one.
-- static string command = python2("python -tt");
-+ static string command = python2("python2 -tt");
- if (reset) {
-- command = python2("python -tt");
-+ command = python2("python2 -tt");
- }
-
- if (command.empty()) {
diff --git a/app-office/lyx/files/2.0.3-python.patch b/app-office/lyx/files/2.3-python.patch
index 5fb2165..e41c260 100644
--- a/app-office/lyx/files/2.0.3-python.patch
+++ b/app-office/lyx/files/2.3-python.patch
@@ -12,18 +12,19 @@ index 97c4f68..8f05e62 100644
"import os, shutil, sys\n\n"
"def unlinkNoThrow(file):\n"
diff --git a/src/support/os.cpp b/src/support/os.cpp
-index 8f60c68..2f1cb91 100644
+index 8eea49370a..d7a0f81aa3 100644
--- a/src/support/os.cpp
+++ b/src/support/os.cpp
-@@ -63,9 +63,9 @@ int timeout_min()
+@@ -65,10 +65,10 @@ int timeout_min()
string const python(bool reset)
{
// Check whether the first python in PATH is the right one.
-- static string command = python2("python -tt");
-+ static string command = python2("python2 -tt");
+- static string command = python23("python -tt");
++ static string command = python23("python2 -tt");
+ // FIXME THREAD
if (reset) {
-- command = python2("python -tt");
-+ command = python2("python2 -tt");
+- command = python23("python -tt");
++ command = python23("python2 -tt");
}
if (command.empty()) {
diff --git a/app-office/lyx/files/2.3.patches b/app-office/lyx/files/2.3.patches
new file mode 100644
index 0000000..26beade
--- /dev/null
+++ b/app-office/lyx/files/2.3.patches
@@ -0,0 +1,161 @@
+diff --git a/src/Format.cpp b/src/Format.cpp
+index 050af14..7d495b7 100644
+--- a/src/Format.cpp
++++ b/src/Format.cpp
+@@ -260,6 +260,27 @@ void Formats::setEditor(string const & name, string const & command)
+ }
+
+
++bool Formats::viewURL(docstring const & url) {
++ Format const * format = getFormat("html");
++ if (!format)
++ return false;
++
++ string command = libScriptSearch(format->viewer());
++
++ if (!contains(command, token_from_format))
++ command += ' ' + token_from_format;
++ command = subst(command, token_from_format, quoteName(to_utf8(url)));
++
++ LYXERR(Debug::FILES, "Executing command: " << command);
++
++ Systemcall one;
++ one.startscript(Systemcall::DontWait, command);
++
++ // we can't report any sort of error, since we aren't waiting
++ return true;
++}
++
++
+ bool Formats::view(Buffer const & buffer, FileName const & filename,
+ string const & format_name) const
+ {
+diff --git a/src/Format.h b/src/Format.h
+index 445c11b..3737f4c 100644
+--- a/src/Format.h
++++ b/src/Format.h
+@@ -143,6 +143,8 @@ public:
+ void setViewer(std::string const & name, std::string const & command);
+ ///
+ void setEditor(std::string const & name, std::string const & command);
++ /// Currently used by hyperlink insets and GuiCitation
++ bool viewURL(docstring const & url);
+ /// View the given file. Buffer used for DVI's paper orientation.
+ bool view(Buffer const & buffer, support::FileName const & filename,
+ std::string const & format_name) const;
+diff --git a/src/insets/InsetHyperlink.cpp b/src/insets/InsetHyperlink.cpp
+index 42dd691..7a293ff 100644
+--- a/src/insets/InsetHyperlink.cpp
++++ b/src/insets/InsetHyperlink.cpp
+@@ -100,7 +100,10 @@ bool InsetHyperlink::getStatus(Cursor & cur, FuncRequest const & cmd,
+
+ void InsetHyperlink::viewTarget() const
+ {
+- if (getParam("type") == "file:") {
++ if (getParam("type").empty())
++ formats.viewURL(getParam("target"));
++
++ else if (getParam("type") == "file:") {
+ FileName url = makeAbsPath(to_utf8(getParam("target")), buffer().filePath());
+ string const format = formats.getFormatFromFile(url);
+ formats.view(buffer(), url, format);
+diff --git a/lib/ui/stdcontext.inc b/lib/ui/stdcontext.inc
+index a8cf62e..8086b7f 100644
+--- a/lib/ui/stdcontext.inc
++++ b/lib/ui/stdcontext.inc
+@@ -601,6 +601,8 @@ Menuset
+ #
+ Menu "context-hyperlink"
+ Item "Settings...|S" "inset-settings"
++ Separator
++ Item "Open Target...|O" "inset-edit"
+ End
+
+ End
+Index: stdinsets.inc
+===================================================================
+--- a/lib/layouts/stdinsets.inc (revision 28602)
++++ a/lib/layouts/stdinsets.inc (working copy)
+@@ -166,7 +166,7 @@
+ Family typewriter
+ EndFont
+ LabelFont
+- Color foreground
++ Color latex
+ Size Small
+ EndFont
+ BgColor listingsbg
+Index: lib/ui/stdtoolbars.inc
+===================================================================
+--- a/lib/ui/stdtoolbars.inc (revision 29259)
++++ b/lib/ui/stdtoolbars.inc (working copy)
+@@ -91,6 +91,8 @@
+ Item "Increase depth" "depth-increment"
+ Item "Decrease depth" "depth-decrement"
+ Separator
++ Item "Align center" "paragraph-params \align center"
++ Separator
+ Item "Insert figure float" "float-insert figure"
+ Item "Insert table float" "float-insert table"
+ Item "Insert label" "label-insert"
+diff --git a/src/frontends/qt4/GuiCompleter.cpp b/src/frontends/qt4/GuiCompleter.cpp
+index 89a889d..ac5088f 100644
+--- a/src/frontends/qt4/GuiCompleter.cpp
++++ b/src/frontends/qt4/GuiCompleter.cpp
+@@ -165,7 +165,7 @@ GuiCompleter::GuiCompleter(GuiWorkArea * gui, QObject * parent)
+ model_ = new GuiCompletionModel(this, 0);
+ setModel(model_);
+ setCompletionMode(QCompleter::PopupCompletion);
+- setCaseSensitivity(Qt::CaseSensitive);
++ setCaseSensitivity(Qt::CaseInsensitive);
+ setWidget(gui_);
+
+ // create the popup
+diff --git a/lib/ui/default.ui b/lib/ui/default.ui
+index 4a1e154aab..94964d6a53 100644
+--- a/lib/ui/default.ui
++++ b/lib/ui/default.ui
+@@ -48,15 +48,15 @@ Include "stdtoolbars.inc"
+ #
+ Toolbars
+ "standard" "on,top"
+- "view/update" "on,top"
++ "view/update" "off,top"
+ "extra" "on,top,samerow"
+ "review" "auto,review,top"
+- "vcs" "off,top"
++ "vcs" "on,top"
+ "table" "auto,table,bottom"
+ "math_panels" "auto,math,bottom"
+ "math" "auto,math,bottom"
+ "mathmacrotemplate" "auto,mathmacrotemplate,bottom"
+ "ipa" "auto,ipa,bottom"
+- "minibuffer" "auto,minibuffer,bottom"
++ "minibuffer" "on,bottom"
+ "documentation" "off,top"
+ End
+diff --git a/lib/ui/stdmenus.inc b/lib/ui/stdmenus.inc
+index 37c1067c98..fc09c121b2 100644
+--- a/lib/ui/stdmenus.inc
++++ b/lib/ui/stdmenus.inc
+@@ -414,6 +414,7 @@ Menuset
+ Item "Visible Space|V" "space-insert visible"
+ Item "Menu Separator|M" "specialchar-insert menu-separator"
+ Item "Phonetic Symbols|P" "ipa-insert"
++ Item "Visible Space|V" "unicode-insert 0x2423"
+ Submenu "Logos|L" "insert_logos"
+ End
+
+diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp
+index 323e654a41..fc339e44d2 100644
+--- a/src/frontends/qt4/GuiApplication.cpp
++++ b/src/frontends/qt4/GuiApplication.cpp
+@@ -1022,7 +1022,7 @@ GuiApplication::GuiApplication(int & argc, char ** argv)
+ QString app_name = "LyX";
+ QCoreApplication::setOrganizationName(app_name);
+ QCoreApplication::setOrganizationDomain("lyx.org");
+- QCoreApplication::setApplicationName(lyx_package);
++ QCoreApplication::setApplicationName("LyX");
+ #if QT_VERSION >= 0x050000
+ QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+ #endif
diff --git a/app-office/lyx/files/legacy.patch b/app-office/lyx/files/legacy.patch
new file mode 100644
index 0000000..d546851
--- /dev/null
+++ b/app-office/lyx/files/legacy.patch
@@ -0,0 +1,33 @@
+diff --git a/lib/scripts/legacy_lyxpreview2ppm.py b/lib/scripts/legacy_lyxpreview2ppm.py
+index be242cc..3125006 100644
+--- a/lib/scripts/legacy_lyxpreview2ppm.py
++++ b/lib/scripts/legacy_lyxpreview2ppm.py
+@@ -172,11 +172,18 @@ def legacy_latex_file(latex_file, fg_color, bg_color, bg_color_gr):
+ use_preview_dvi_re = re.compile("(\s*\\\\usepackage\[[^]]+)(dvips\]{preview})")
+ use_preview_pdf_re = re.compile("(\s*\\\\usepackage\[[^]]+)(pdftex\]{preview})")
+
++ do_not_color_pictures_re = re.compile("(\\includegraphics)")
++
+ tmp = mkstemp()
+
+ success = 0
+ try:
+ for line in open(latex_file, 'r').readlines():
++ match = do_not_color_pictures_re.search(line)
++ if match != None:
++ tmp.write("\colorbox{white}{" + line + "}\n")
++ continue
++
+ match = use_preview_dvi_re.match(line)
+ if match == None:
+ match = use_preview_pdf_re.match(line)
+@@ -192,7 +199,7 @@ def legacy_latex_file(latex_file, fg_color, bg_color, bg_color_gr):
+
+ success = 1
+ tmp.write("%stightpage,%s\n" \
+- " \\AtBeginDocument{\\AtBeginDvi{%%\n" \
++ " \\usepackage{color}\n\\AtBeginDocument{\\AtBeginDvi{%%\n" \
+ " \\special{!userdict begin/bop-hook{//bop-hook exec\n" \
+ " <%s%s>{255 div}forall setrgbcolor\n" \
+ " clippath fill setrgbcolor}bind def end}}}\n" \
+
diff --git a/app-office/lyx/lyx-2.3.99.ebuild b/app-office/lyx/lyx-2.3.99.ebuild
new file mode 100644
index 0000000..e801033
--- /dev/null
+++ b/app-office/lyx/lyx-2.3.99.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+inherit gnome2-utils xdg-utils flag-o-matic font python-single-r1 qmake-utils toolchain-funcs multilib desktop git-r3
+
+MY_P="${P/_}"
+EGIT_REPO_URI="git://git.lyx.org/lyx"
+#EGIT_BRANCH="2.3.x"
+EGIT_BRANCH="2.3.2-staging"
+
+S="${WORKDIR}/${MY_P}"
+FONT_S="${S}/lib/fonts"
+FONT_SUFFIX="ttf"
+DESCRIPTION="WYSIWYM frontend for LaTeX, DocBook, etc."
+HOMEPAGE="https://www.lyx.org/"
+#SRC_URI="ftp://ftp.lyx.org/pub/lyx/stable/2.2.x/${MY_P}.tar.xz
+# ftp://ftp.lyx.org/pub/lyx/devel/lyx-2.2/${MY_P}/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~hppa ia64 ppc ppc64 ~sparc x86 ~x64-macos ~x86-macos"
+IUSE="aspell cups debug docbook dia dot enchant gnumeric html +hunspell +latex monolithic-build nls -qt5 rcs rtf subversion svg l10n_he"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=
+ dev-texlive/texlive-fontsextra
+ sys-apps/file
+ sys-libs/zlib
+ virtual/imagemagick-tools[png,svg?]
+ aspell? ( app-text/aspell )
+ cups? ( net-print/cups )
+ dia? ( app-office/dia )
+ docbook? ( app-text/sgmltools-lite )
+ dot? ( media-gfx/graphviz )
+ enchant? ( app-text/enchant )
+ gnumeric? ( app-office/gnumeric )
+ html? ( dev-tex/html2latex )
+ hunspell? ( app-text/hunspell )
+ latex? (
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/noweb
+ app-text/ps2eps
+ app-text/texlive
+ dev-tex/chktex
+ dev-tex/dvipost
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-pictures
+ || ( dev-texlive/texlive-mathscience dev-texlive/texlive-science )
+ || ( dev-texlive/texlive-plaingeneric dev-texlive/texlive-genericextra )
+ || (
+ dev-tex/hevea
+ dev-tex/latex2html
+ dev-tex/tex4ht[java]
+ dev-tex/tth
+ )
+ )
+ l10n_he? ( dev-tex/culmus-latex )
+ !qt5? (
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ )
+ rcs? ( dev-vcs/rcs )
+ rtf? (
+ app-text/unrtf
+ dev-tex/html2latex
+ dev-tex/latex2rtf
+ )
+ subversion? ( dev-vcs/subversion )
+ svg? ( || ( gnome-base/librsvg media-gfx/inkscape ) )
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ !qt5? ( dev-qt/qtsvg:4 )
+ qt5? (
+ dev-qt/qtconcurrent:5
+ dev-qt/qtx11extras:5
+ )
+"
+
+DOCS=( ANNOUNCE NEWS README RELEASE-NOTES UPGRADING )
+
+PATCHES=( "${FILESDIR}"/2.3-python.patch "${FILESDIR}"/2.3.patches )
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+ font_pkg_setup
+}
+
+src_prepare() {
+ default
+ sed "s:python -tt:${EPYTHON} -tt:g" -i lib/configure.py || die
+}
+
+src_configure() {
+ ./autogen.sh
+ tc-export CXX
+ #bug 221921
+ export VARTEXFONTS=${T}/fonts
+
+ econf \
+ $(use_with aspell) \
+ $(use_enable debug) \
+ $(use_with enchant) \
+ $(use_with hunspell) \
+ $(use_enable monolithic-build) \
+ $(use_enable nls) \
+ --disable-stdlib-debug \
+ --without-included-boost \
+ --with-packaging=posix
+}
+
+src_install() {
+ default
+
+ if use l10n_he ; then
+ echo "\bind_file cua" > "${T}"/hebrew.bind
+ echo "\bind \"F12\" \"language hebrew\"" >> "${T}"/hebrew.bind
+
+ insinto /usr/share/lyx/bind
+ doins "${T}"/hebrew.bind
+ fi
+
+ newicon -s 32 "${S}/development/Win32/packaging/icons/lyx_32x32.png" ${PN}.png
+ doicon -s 48 "${S}/lib/images/lyx.png"
+ doicon -s scalable "${S}/lib/images/lyx.svg"
+
+ # fix for bug 91108
+ if use latex ; then
+ dosym ../../../lyx/tex /usr/share/texmf-site/tex/latex/lyx
+ fi
+
+ # fonts needed for proper math display, see also bug #15629
+ font_src_install
+
+ python_fix_shebang "${ED}"/usr/share/${PN}
+
+ if use hunspell ; then
+ dosym ../myspell /usr/share/lyx/dicts
+ dosym ../myspell /usr/share/lyx/thes
+ fi
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ font_pkg_postinst
+ gnome2_icon_cache_update
+ xdg_desktop_database_update
+
+ # fix for bug 91108
+ if use latex ; then
+ texhash
+ fi
+
+ # instructions for RTL support. See also bug 168331.
+ if use l10n_he || has he ${LINGUAS} || has ar ${LINGUAS} ; then
+ elog
+ elog "Enabling RTL support in LyX:"
+ elog "If you intend to use a RTL language (such as Hebrew or Arabic)"
+ elog "You must enable RTL support in LyX. To do so start LyX and go to"
+ elog "Tools->Preferences->Language settings->Language"
+ elog "and make sure the \"Right-to-left language support\" is checked"
+ elog
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ xdg_desktop_database_update
+
+ if use latex ; then
+ texhash
+ fi
+}