[prev in list] [next in list] [prev in thread] [next in thread]
List: lyx-cvs
Subject: [LyX features/features/indexmacros] Merge branch 'master' into features/indexmacros
From: Juergen Spitzmueller <spitz () lyx ! org>
Date: 2022-05-14 14:08:30
Message-ID: 20220514140832.5FA39280303 () lyx ! lyx ! org
[Download RAW message or body]
The branch, features/indexmacros, has been updated.
- Log -----------------------------------------------------------------
commit 047004cb0fca7247a6e13dde9f22c9a56ab245e6
Merge: f352a37 1464bd3
Author: Juergen Spitzmueller <spitz@lyx.org>
Date: Sat May 14 16:29:46 2022 +0200
Merge branch 'master' into features/indexmacros
commit 1464bd3f3fc9895affadf56d12c68e9751983ad1
Author: Kornel Benko <kornel@lyx.org>
Date: Sat May 14 14:49:52 2022 +0200
FindAdv: Amend(2) f845a4e9
Removing '\n' like in previous version with utf8-strings
This is needed e.g. for display math, which comes as
"\n\\[\n.....\n\\]\n"
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 480d4d1..e7771a8 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -4014,16 +4014,21 @@ static string convertLF2Space(docstring const &s, bool \
ignore_format) dospace = false;
}
}
- else if ((pos > start) &&
- s[pos-1] == '%') {
- skip = 1;
- while ((pos > start+skip) && (s[pos-1-skip] == '%'))
- skip++;
- if ((pos > start+skip) &&
- (s[pos+1] == '~' || isSpace(s[pos+1]) ||
- s[pos-1-skip] == '~' || isSpace(s[pos-1-skip]))) {
- // discard '%%%%%\n'
+ else if (pos > start) {
+ if (s[pos-1] == '%') {
+ skip = 1;
+ while ((pos > start+skip) && (s[pos-1-skip] == '%'))
+ skip++;
+ if ((pos > start+skip) &&
+ (s[pos+1] == '~' || isSpace(s[pos+1]) ||
+ s[pos-1-skip] == '~' || isSpace(s[pos-1-skip]))) {
+ // discard '%%%%%\n'
+ dospace = false;
+ }
+ }
+ else if (!isAlnumASCII(s[pos+1]) || !isAlnumASCII(s[pos-1])) {
dospace = false;
+ skip = 0; // remove the '\n' only
}
}
}
commit 3576be9a3b63ccea5f94f7eda8bf56d4d3c3495a
Author: Kornel Benko <kornel@lyx.org>
Date: Sat May 14 14:49:03 2022 +0200
Ctests: Adapt test 06 to changed shortcut
diff --git a/development/autotests/findadv-06-in.txt \
b/development/autotests/findadv-06-in.txt index 5df35bd..a746501 100644
--- a/development/autotests/findadv-06-in.txt
+++ b/development/autotests/findadv-06-in.txt
@@ -31,8 +31,8 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \[Escape]\C\[Home]
KK: \Axdialog-show findreplaceadv\[Return]
KK: \[Delete]
-# Uncheck ignore format
-#KK: \At\Ar\Ak\Ah
+# Check ignore format
+KK: \At\Ar\Ať\Ah
#KK: \CF
KK: \C\[F29]
KK: foo\[Return]\[Return]\[Return]
commit cd6d21ebb3c66a60a38b371e66179bac6e8044ed
Author: Kornel Benko <kornel@lyx.org>
Date: Sat May 14 09:51:23 2022 +0200
FindAdv: Amend f845a4e9
Also do not remove '\n' if in non-format-search mode. Otherwise
'\n' cannot be found with regex '\s'
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index b996cd0..480d4d1 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -3986,12 +3986,14 @@ static string convertLF2Space(docstring const &s, bool \
ignore_format) size_t pos;
size_t start = 0;
size_t end = s.size() - 1;
- while (s[start] == '\n' && start <= end)
- start++;
- while (end >= start && s[end] == '\n')
- end--;
- if (start >= end + 1)
- return "";
+ if (!ignore_format) {
+ while (s[start] == '\n' && start <= end)
+ start++;
+ while (end >= start && s[end] == '\n')
+ end--;
+ if (start >= end + 1)
+ return "";
+ }
do {
bool dospace = true;
int skip = -1;
commit f845a4e9a38897d86d4e713024d1f5e2b990df21
Author: Kornel Benko <kornel@lyx.org>
Date: Sat May 14 09:25:06 2022 +0200
FindAdv: Do not handle stale empty latex commands if not in format-search mode
In non-format-search mode, we do not have any latex commands here.
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 4f5d97d..b996cd0 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -4093,16 +4093,18 @@ string MatchStringAdv::normalize(docstring const & s, bool \
ignore_format) const {
string t = convertLF2Space(s, ignore_format);
- // Remove stale empty \emph{}, \textbf{} and similar blocks from latexify
- // Kornel: Added textsl, textsf, textit, texttt and noun
- // + allow to seach for colored text too
- LYXERR(Debug::FINDVERBOSE, "Removing stale empty macros from: " << t);
- while (regex_replace(t, t, \
"\\\\(emph|noun|text(bf|sl|sf|it|tt)|(u|uu)line|(s|x)out|uwave)(\\{(\\{\\})?\\})+", \
""))
- LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} \
macros from: " << t);
- while (regex_replace(t, t, \
"\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", \
""))
- LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\section{}, \\part{}, \
\\paragraph{} macros from: " << t);
- while (regex_replace(t, t, \
"\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", \
""));
-
+ // The following replaces are not appropriate in non-format-search mode
+ if (!ignore_format) {
+ // Remove stale empty \emph{}, \textbf{} and similar blocks from latexify
+ // Kornel: Added textsl, textsf, textit, texttt and noun
+ // + allow to seach for colored text too
+ LYXERR(Debug::FINDVERBOSE, "Removing stale empty macros from: " << t);
+ while (regex_replace(t, t, \
"\\\\(emph|noun|text(bf|sl|sf|it|tt)|(u|uu)line|(s|x)out|uwave)(\\{(\\{\\})?\\})+", \
"")) + LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \
\\textbf{} macros from: " << t); + while (regex_replace(t, t, \
"\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", "")) \
+ LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\section{}, \\part{}, \
\\paragraph{} macros from: " << t); + while (regex_replace(t, t, \
"\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", "")); + }
return t;
}
commit 115d6ceeddf90a71fcb0556411b3c68aae63ddad
Author: Kornel Benko <kornel@lyx.org>
Date: Sat May 14 08:56:00 2022 +0200
FindAdv: Don't check on '\\\\\n' if ignoring format
Since it can only happen if the lyx source contains two backslasches before
the inserted newline. And here it is the wrong case.
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 40d20c4..4f5d97d 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -4000,31 +4000,29 @@ static string convertLF2Space(docstring const &s, bool \
ignore_format) t << lyx::to_utf8(s.substr(start, end + 1 - start));
break;
}
- if ((pos > start+2) &&
- s[pos-1] == '\\' &&
- s[pos-2] == '\\') {
- if (s[pos-1] == '\\' && s[pos-2] == '\\') {
+ if (!ignore_format) {
+ if ((pos > start + 1) &&
+ s[pos-1] == '\\' &&
+ s[pos-2] == '\\') {
skip = 2;
- if ((pos > start+3) &&
+ if ((pos > start + 2) &&
(s[pos+1] == '~' || isSpace(s[pos+1]) ||
s[pos-3] == '~' || isSpace(s[pos-3]))) {
// discard '\n'
dospace = false;
}
}
- else if (s[pos-1] == '\\' && s[pos-2] == '\\')
- skip = 2;
- }
- else if (!ignore_format && (pos > start) &&
- s[pos-1] == '%') {
- skip = 1;
- while ((pos > start+skip) && (s[pos-1-skip] == '%'))
- skip++;
- if ((pos > start+skip) &&
- (s[pos+1] == '~' || isSpace(s[pos+1]) ||
- s[pos-1-skip] == '~' || isSpace(s[pos-1-skip]))) {
- // discard '%%%%%\n'
- dospace = false;
+ else if ((pos > start) &&
+ s[pos-1] == '%') {
+ skip = 1;
+ while ((pos > start+skip) && (s[pos-1-skip] == '%'))
+ skip++;
+ if ((pos > start+skip) &&
+ (s[pos+1] == '~' || isSpace(s[pos+1]) ||
+ s[pos-1-skip] == '~' || isSpace(s[pos-1-skip]))) {
+ // discard '%%%%%\n'
+ dospace = false;
+ }
}
}
else {
commit b0323628af817a08730be464b1fbe250b96b82e1
Author: Kornel Benko <kornel@lyx.org>
Date: Fri May 13 12:00:47 2022 +0200
FindAdv: Amend 6c735efb: Resolve some conflicts regex vs. math meaning of '$'
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index fddf398..40d20c4 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -892,6 +892,7 @@ string correctRegex(string t, bool withformat)
buildAccentsMap();
//LYXERR0("correctRegex input '" << t << "'");
+ int skip = 0;
for (sregex_iterator it(t.begin(), t.end(), wordre), end; it != end; ++it) {
sub = *it;
string replace;
@@ -908,6 +909,10 @@ string correctRegex(string t, bool withformat)
replace = "";
backslashed = true;
}
+ else if (withformat && next[0] == '$') {
+ replace = accents["lyxdollar"];
+ skip = 1; // Skip following '$'
+ }
}
}
else if (sub.str(4) == "mathcircumflex")
@@ -960,7 +965,8 @@ string correctRegex(string t, bool withformat)
if (lastpos < (size_t) sub.position(2))
s += std::regex_replace(t.substr(lastpos, sub.position(2) - lastpos), \
protectedSpace, R"( )"); s += replace;
- lastpos = sub.position(2) + sub.length(2);
+ lastpos = sub.position(2) + sub.length(2) + skip;
+ skip = 0;
}
if (lastpos == 0)
s = std::regex_replace(t, protectedSpace, R"( )");
@@ -4069,14 +4075,14 @@ static string convertLF2Space(docstring const & s, bool \
ignore_format) // Replace all other \n with spaces
t.replace(pos, 1, " ");
}
- }
- if (!ignore_format) {
- size_t count = 0;
- while ((pos > count + 1) && (t[pos - 1 -count] == '%')) {
- count++;
- }
- if (count > 0) {
- t.replace(pos - count, count, "");
+ if (!ignore_format) {
+ size_t count = 0;
+ while ((pos > count + 1) && (t[pos - 1 -count] == '%')) {
+ count++;
+ }
+ if (count > 0) {
+ t.replace(pos - count, count, "");
+ }
}
}
}
commit 6c735efb1fa34e167f0ae9f4a40f8127631200c3
Author: Kornel Benko <kornel@lyx.org>
Date: Fri May 13 09:30:30 2022 +0200
FindAdv: In format search could '$'-char be interpreted as math-start.
To handle this case, we use '\lyxdollar' string instead.
Also try to handle '\n' in the docstring directly instead in the
string already converted to utf8.
(The utf8-version is still there, but commented out)
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 8a96e6d..73edb5d 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1223,6 +1223,9 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
case '}':
os << "\\braceright ";
return;
+ case '$':
+ os << "\\lyxdollar ";
+ return;
case '~':
os << "\\lyxtilde ";
return;
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 601f319..fddf398 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -1967,6 +1967,7 @@ static void buildAccentsMap()
accents["braceright"] = getutf8(0xf0031);
accents["lyxtilde"] = getutf8(0xf0032);
accents["sim"] = getutf8(0xf0032);
+ accents["lyxdollar"] = getutf8(0xf0033);
accents["backslash lyx"] = getutf8(0xf0010); // Used logos inserted with \
starting \backslash accents["backslash LyX"] = getutf8(0xf0010);
accents["backslash tex"] = getutf8(0xf0011);
@@ -3969,8 +3970,74 @@ static bool simple_replace(string &t, string from, string to)
}
#endif
-string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
+#if 1
+static string convertLF2Space(docstring const &s, bool ignore_format)
{
+ // Using original docstring to handle '\n'
+
+ if (s.size() == 0) return "";
+ stringstream t;
+ size_t pos;
+ size_t start = 0;
+ size_t end = s.size() - 1;
+ while (s[start] == '\n' && start <= end)
+ start++;
+ while (end >= start && s[end] == '\n')
+ end--;
+ if (start >= end + 1)
+ return "";
+ do {
+ bool dospace = true;
+ int skip = -1;
+ pos = s.find('\n', start);
+ if (pos >= end) {
+ t << lyx::to_utf8(s.substr(start, end + 1 - start));
+ break;
+ }
+ if ((pos > start+2) &&
+ s[pos-1] == '\\' &&
+ s[pos-2] == '\\') {
+ if (s[pos-1] == '\\' && s[pos-2] == '\\') {
+ skip = 2;
+ if ((pos > start+3) &&
+ (s[pos+1] == '~' || isSpace(s[pos+1]) ||
+ s[pos-3] == '~' || isSpace(s[pos-3]))) {
+ // discard '\n'
+ dospace = false;
+ }
+ }
+ else if (s[pos-1] == '\\' && s[pos-2] == '\\')
+ skip = 2;
+ }
+ else if (!ignore_format && (pos > start) &&
+ s[pos-1] == '%') {
+ skip = 1;
+ while ((pos > start+skip) && (s[pos-1-skip] == '%'))
+ skip++;
+ if ((pos > start+skip) &&
+ (s[pos+1] == '~' || isSpace(s[pos+1]) ||
+ s[pos-1-skip] == '~' || isSpace(s[pos-1-skip]))) {
+ // discard '%%%%%\n'
+ dospace = false;
+ }
+ }
+ else {
+ dospace = true;
+ skip = 0;
+ }
+ t << lyx::to_utf8(s.substr(start, pos-skip-start));
+ if (dospace)
+ t << ' ';
+ start = pos+1;
+ } while (start <= end);
+ return(t.str());
+}
+
+#else
+static string convertLF2Space(docstring const & s, bool ignore_format)
+{
+ // Using utf8-converted string to handle '\n'
+
string t;
t = lyx::to_utf8(s);
// Remove \n at begin
@@ -4002,17 +4069,26 @@ string MatchStringAdv::normalize(docstring const & s, bool \
ignore_format) const // Replace all other \n with spaces
t.replace(pos, 1, " ");
}
- if (!ignore_format) {
- size_t count = 0;
- while ((pos > count + 1) && (t[pos - 1 -count] == '%')) {
- count++;
- }
- if (count > 0) {
- t.replace(pos - count, count, "");
- }
+ }
+ if (!ignore_format) {
+ size_t count = 0;
+ while ((pos > count + 1) && (t[pos - 1 -count] == '%')) {
+ count++;
+ }
+ if (count > 0) {
+ t.replace(pos - count, count, "");
}
}
}
+ return(t);
+
+}
+#endif
+
+string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
+{
+ string t = convertLF2Space(s, ignore_format);
+
// Remove stale empty \emph{}, \textbf{} and similar blocks from latexify
// Kornel: Added textsl, textsf, textit, texttt and noun
// + allow to seach for colored text too
@@ -4026,7 +4102,6 @@ string MatchStringAdv::normalize(docstring const & s, bool \
ignore_format) const return t;
}
-
docstring stringifyFromCursor(DocIterator const & cur, int len)
{
LYXERR(Debug::FINDVERBOSE, "Stringifying with len=" << len << " from cursor at pos: \
" << cur);
commit a8c6ca621c5fa262bda70849b4812ebe0b6b1eec
Author: jpc <jpc@lyx.org>
Date: Thu May 12 14:44:16 2022 +0200
Update fr.po
diff --git a/po/fr.gmo b/po/fr.gmo
index 8315283..3b8c00b 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index a9e9403..bb215ca 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -362,8 +362,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-05-10 14:08+0200\n"
-"PO-Revision-Date: 2022-05-10 14:09+0200\n"
+"POT-Creation-Date: 2022-05-12 14:41+0200\n"
+"PO-Revision-Date: 2022-05-12 14:43+0200\n"
"Last-Translator: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>\n"
"Language-Team: lyxfr\n"
"Language: fr\n"
@@ -4552,59 +4552,65 @@ msgstr ""
"Définir un patron de recherche (voir le Manuel de l'utilisateur pour la "
"syntaxe)"
-#: src/frontends/qt/ui/PrefEditUi.ui:167 src/LyXRC.cpp:3175
+#: src/frontends/qt/ui/PrefEditUi.ui:167
+msgid "Cursor width (&pixels):"
+msgstr "Largeur du curseur (&pixels) :"
+
+#: src/frontends/qt/ui/PrefEditUi.ui:177
msgid ""
-"Configure the width of the text cursor. Automatic zoom-controlled cursor "
-"width used when set to 0."
+"Configure the width of the text cursor. \"Auto\" means that zoom-controlled "
+"width is used."
msgstr ""
-"Configurer le largeur du curseur de texte. Si la valeur vaut 0, une largeur "
-"de curseur avec zoom automatique est utilisée."
+"Configurer le largeur du curseur de texte. Si la valeur vaut Auto , le "
+"zoom automatique fixe la largeur du curseur. "
-#: src/frontends/qt/ui/PrefEditUi.ui:170
-msgid "Cursor width (&pixels):"
-msgstr "Largeur du curseur (&pixels) :"
+#: src/frontends/qt/ui/PrefEditUi.ui:180
+#: lib/citeengines/biblatex-natbib.citeengine:148
+#: lib/citeengines/biblatex.citeengine:138
+msgid "Auto"
+msgstr "Auto"
-#: src/frontends/qt/ui/PrefEditUi.ui:198
+#: src/frontends/qt/ui/PrefEditUi.ui:201
msgid "Skip trailing non-word characters"
msgstr "Sauter les caractères finaux non alphanumériques"
-#: src/frontends/qt/ui/PrefEditUi.ui:201
+#: src/frontends/qt/ui/PrefEditUi.ui:204
msgid "Use M&ac-style cursor movement"
msgstr "Utiliser les déplacements de curseur la M&ac"
-#: src/frontends/qt/ui/PrefEditUi.ui:208
+#: src/frontends/qt/ui/PrefEditUi.ui:211
msgid "&Group environments by their category"
msgstr "Re&grouper les environnements par catégorie"
-#: src/frontends/qt/ui/PrefEditUi.ui:218
+#: src/frontends/qt/ui/PrefEditUi.ui:221
msgid "Fullscreen"
msgstr "Plein écran"
-#: src/frontends/qt/ui/PrefEditUi.ui:230
+#: src/frontends/qt/ui/PrefEditUi.ui:233
msgid "Hide &menubar"
msgstr "Cacher la barre des &menus"
-#: src/frontends/qt/ui/PrefEditUi.ui:237
+#: src/frontends/qt/ui/PrefEditUi.ui:240
msgid "Hide scr&ollbar"
msgstr "Cacher l'&ascenseur"
-#: src/frontends/qt/ui/PrefEditUi.ui:260
+#: src/frontends/qt/ui/PrefEditUi.ui:263
msgid "Hide sta&tusbar"
msgstr "Cacher la barre d'&état"
-#: src/frontends/qt/ui/PrefEditUi.ui:267
+#: src/frontends/qt/ui/PrefEditUi.ui:270
msgid "H&ide tabbar"
msgstr "Cacher la barre des &onglets"
-#: src/frontends/qt/ui/PrefEditUi.ui:305
+#: src/frontends/qt/ui/PrefEditUi.ui:308
msgid "&Limit text width"
msgstr "&Limitation de la largeur du texte"
-#: src/frontends/qt/ui/PrefEditUi.ui:328
+#: src/frontends/qt/ui/PrefEditUi.ui:331
msgid "Screen used (pi&xels):"
msgstr "Écran &utilisé (pixels) :"
-#: src/frontends/qt/ui/PrefEditUi.ui:375
+#: src/frontends/qt/ui/PrefEditUi.ui:378
msgid "&Hide toolbars"
msgstr "Cacher les palettes d'&outils"
@@ -6728,11 +6734,6 @@ msgstr "Entrée bibliographique complète."
msgid "Autocite"
msgstr "Autocite"
-#: lib/citeengines/biblatex-natbib.citeengine:148
-#: lib/citeengines/biblatex.citeengine:138
-msgid "Auto"
-msgstr "Auto"
-
#: lib/citeengines/biblatex-natbib.citeengine:150
#: lib/citeengines/biblatex.citeengine:142
msgid "F&orce full title[[Possible substitute to All aut&hors]]"
@@ -30296,6 +30297,14 @@ msgstr ""
"déplacez avec la barre de défilement. Cochez si vous préférez avoir toujours "
"le curseur l'écran."
+#: src/LyXRC.cpp:3175
+msgid ""
+"Configure the width of the text cursor. Automatic zoom-controlled cursor "
+"width used when set to 0."
+msgstr ""
+"Configurer le largeur du curseur de texte. Si la valeur vaut 0, une largeur "
+"de curseur avec zoom automatique est utilisée."
+
#: src/LyXRC.cpp:3179
msgid ""
"LyX normally doesn't allow the user to scroll further than the bottom of the "
@@ -37458,28 +37467,28 @@ msgstr "%1$d chaînes remplacées dans le sélection."
msgid "%1$d strings have been replaced."
msgstr "%1$d chaînes remplacées."
-#: src/lyxfind.cpp:4745
+#: src/lyxfind.cpp:4769
msgid "One match has been replaced."
msgstr "Une correspondance a été remplacée."
-#: src/lyxfind.cpp:4748
+#: src/lyxfind.cpp:4772
msgid "Two matches have been replaced."
msgstr "Deux correspondances ont été remplacées."
-#: src/lyxfind.cpp:4751
+#: src/lyxfind.cpp:4775
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d correspondances ont été remplacées."
-#: src/lyxfind.cpp:4757
+#: src/lyxfind.cpp:4781
msgid "Match not found."
msgstr "Chaîne de caractères introuvable."
-#: src/lyxfind.cpp:4763
+#: src/lyxfind.cpp:4787
msgid "Match has been replaced."
msgstr "Chaîne de caractères remplacée."
-#: src/lyxfind.cpp:4765
+#: src/lyxfind.cpp:4789
msgid "Match found."
msgstr "Chaîne de caractères reconnue."
commit 895aa9cd0f98f703b0563f65fc3c8f079307536e
Author: Kornel Benko <kornel@lyx.org>
Date: Thu May 12 13:22:21 2022 +0200
FindAdv: Remove invalid closings
If the searched area contains deleted parts, there may be more closing
as opening parentheses in latex output. We have to remove them before
further processing.
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 8c609a7..601f319 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -1435,6 +1435,7 @@ public:
void removeAccents();
void setForDefaultLang(KeyInfo const & defLang) const;
int findclosing(int start, int end, char up, char down, int repeat);
+ void removeInvalidClosings(void);
void handleParentheses(int lastpos, bool closingAllowed);
bool hasTitle;
// Number of disabled language specs up
@@ -2241,6 +2242,27 @@ int Intervall::findclosing(int start, int end, char up = '{', \
char down = '}', i return end;
}
+void Intervall::removeInvalidClosings(void)
+{
+ // this can happen, if there are deleted parts
+ int skip = 0;
+ int depth = 0;
+ for (unsigned i = 0; i < par.size(); i += 1 + skip) {
+ char c = par[i];
+ skip = 0;
+ if (c == '\\') skip = 1;
+ else if (c == '{')
+ depth++;
+ else if (c == '}') {
+ if (depth == 0) {
+ addIntervall(i, i+1);
+ LYXERR(Debug::FINDVERBOSE, "removed invalid closing '}' at " << i);
+ }
+ else
+ --depth;
+ }
+ }
+}
class MathInfo {
class MathEntry {
public:
@@ -2328,6 +2350,7 @@ void LatexInfo::buildEntries(bool isPatternString)
static bool removeMathHull = false;
interval_.removeAccents();
+ interval_.removeInvalidClosings();
for (sregex_iterator itmath(interval_.par.begin(), interval_.par.end(), rmath), \
end; itmath != end; ++itmath) { submath = *itmath;
commit 4b41f54575ed5e7408e74a36f8a9f093272b9e42
Author: Kornel Benko <kornel@lyx.org>
Date: Thu May 12 13:20:24 2022 +0200
FindAdv: Use unicode for space where possible
Search for different space-types should be done with
regular expression '\s'
diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp
index 28a5978..c8d304e 100644
--- a/src/insets/InsetSpace.cpp
+++ b/src/insets/InsetSpace.cpp
@@ -585,25 +585,30 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const os << (runparams.free_spacing ? " " : "\\ ");
break;
case InsetSpaceParams::PROTECTED:
- if (runparams.local_font &&
+ if (runparams.find_effective())
+ os.put(0xa0);
+ else if (runparams.local_font &&
runparams.local_font->language()->lang() == "polutonikogreek")
// in babel's polutonikogreek, ~ is active
- os << (runparams.free_spacing && !runparams.find_effective() ? " " : \
"\\nobreakspace{}"); + os << (runparams.free_spacing ? " " : "\\nobreakspace{}");
else
- os << (runparams.free_spacing && !runparams.find_effective() ? ' ' : '~');
+ os << (runparams.free_spacing ? ' ' : '~');
break;
case InsetSpaceParams::VISIBLE:
- os << (runparams.free_spacing && !runparams.find_effective() ? " " : \
"\\textvisiblespace{}"); + if (runparams.find_effective())
+ os.put(0x2423);
+ else
+ os << (runparams.free_spacing ? " " : "\\textvisiblespace{}");
break;
case InsetSpaceParams::THIN:
if (runparams.find_effective())
- os << "\\thinspace{}";
+ os.put(0x2009);
else
os << (runparams.free_spacing ? " " : "\\,");
break;
case InsetSpaceParams::MEDIUM:
if (runparams.find_effective())
- os << "\\medspace{}";
+ os.put(0x2005);
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\:");
else
@@ -611,23 +616,37 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const break;
case InsetSpaceParams::THICK:
if (runparams.find_effective())
- os << "\\thickspace{}";
+ os.put(0x2004);
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\;");
else
os << (runparams.free_spacing ? " " : "\\thickspace{}");
break;
case InsetSpaceParams::QUAD:
- os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\quad{}");
+ if (runparams.find_effective())
+ os.put(0x2003);
+ else
+ os << (runparams.free_spacing ? " " : "\\quad{}");
break;
case InsetSpaceParams::QQUAD:
- os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\qquad{}");
+ if (runparams.find_effective()) {
+ os.put(0x2003);
+ os.put(0x2003);
+ }
+ else
+ os << (runparams.free_spacing ? " " : "\\qquad{}");
break;
case InsetSpaceParams::ENSPACE:
- os << (runparams.free_spacing && runparams.find_effective() ? " " : \
"\\enspace{}"); + if (runparams.find_effective())
+ os.put(0x2002);
+ else
+ os << (runparams.free_spacing ? " " : "\\enspace{}");
break;
case InsetSpaceParams::ENSKIP:
- os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\enskip{}");
+ if (runparams.find_effective())
+ os.put(0x2002);
+ else
+ os << (runparams.free_spacing ? " " : "\\enskip{}");
break;
case InsetSpaceParams::NEGTHIN:
os << (runparams.free_spacing && runparams.find_effective() ? " " : \
"\\negthinspace{}"); @@ -663,13 +682,17 @@ void InsetSpace::latex(otexstream & os, \
OutputParams const & runparams) const os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\downbracefill{}"); break;
case InsetSpaceParams::CUSTOM:
- if (runparams.free_spacing)
+ if (runparams.find_effective())
+ os.put(0x00a0);
+ else if (runparams.free_spacing)
os << " ";
else
os << "\\hspace{" << from_ascii(params_.length.asLatexString()) << "}";
break;
case InsetSpaceParams::CUSTOM_PROTECTED:
- if (runparams.free_spacing)
+ if (runparams.find_effective())
+ os.put(0x00a0);
+ else if (runparams.free_spacing)
os << " ";
else
os << "\\hspace*{" << from_ascii(params_.length.asLatexString()) << "}";
@@ -679,7 +702,7 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const
int InsetSpace::plaintext(odocstringstream & os,
- OutputParams const &runparams, size_t) const
+ OutputParams const &, size_t) const
{
switch (params_.kind) {
case InsetSpaceParams::HFILL:
@@ -737,10 +760,7 @@ int InsetSpace::plaintext(odocstringstream & os,
return 1;
case InsetSpaceParams::PROTECTED:
case InsetSpaceParams::CUSTOM_PROTECTED:
- if (runparams.find_effective())
- os.put(' ');
- else
- os.put(0x00a0);
+ os.put(0x00a0);
return 1;
case InsetSpaceParams::NEGTHIN:
case InsetSpaceParams::NEGMEDIUM:
commit 7838802fdb2acb72b9119a5bc14c52885d83fa59
Author: Kornel Benko <kornel@lyx.org>
Date: Thu May 12 13:20:10 2022 +0200
Update sk.po
diff --git a/po/sk.po b/po/sk.po
index f4eff67..c62def9 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX-2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-05-10 13:53+0200\n"
-"PO-Revision-Date: 2022-05-10 12:30+0000\n"
+"POT-Creation-Date: 2022-05-11 18:56+0200\n"
+"PO-Revision-Date: 2022-05-11 16:59+0000\n"
"Last-Translator: Kornel Benko <kornel@lyx.org>\n"
"Language-Team: Slovak <kornel@lyx.org>\n"
"Language: sk\n"
@@ -4124,6 +4124,14 @@ msgstr ""
msgid "Cursor width (&pixels):"
msgstr " írka kurzoru (pi&xel):"
+#: src/frontends/qt/ui/PrefEditUi.ui:177
+msgid ""
+"Configure the width of the text cursor. \"Auto\" means that zoom-controlled "
+"width is used."
+msgstr ""
+"Konfigurovanie šírky textového kurzoru. \"Auto\" znamená že šírka je "
+"kontrolovaná lupou."
+
#: src/frontends/qt/ui/PrefEditUi.ui:198
msgid "Skip trailing non-word characters"
msgstr "Vynechať bočné písmená nepatriace k slovu"
commit 4dd1fbbce05ac1498cc3ada712e10f0a0b69cfac
Author: Daniel Ramoeller <d.lyx@web.de>
Date: Sun Mar 27 11:40:54 2022 +0200
Use "Auto" value on cursor width spinbox
Fix for bug #12515.
diff --git a/src/frontends/qt/ui/PrefEditUi.ui b/src/frontends/qt/ui/PrefEditUi.ui
index 4c3f784..bcedaf8 100644
--- a/src/frontends/qt/ui/PrefEditUi.ui
+++ b/src/frontends/qt/ui/PrefEditUi.ui
@@ -163,9 +163,6 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_3">
- <property name="toolTip">
- <string>Configure the width of the text cursor. Automatic zoom-controlled \
cursor width used when set to 0.</string>
- </property>
<property name="text">
<string>Cursor width (&pixels):</string>
</property>
@@ -176,6 +173,12 @@
</item>
<item>
<widget class="QSpinBox" name="cursorWidthSB">
+ <property name="toolTip">
+ <string>Configure the width of the text cursor. "Auto" means \
that zoom-controlled width is used.</string> + </property>
+ <property name="specialValueText">
+ <string>Auto</string>
+ </property>
<property name="minimum">
<number>0</number>
</property>
commit 8e256fbf0fb1fdffafe5bb35e18a0746d3ce8d1f
Author: Kornel Benko <kornel@lyx.org>
Date: Wed May 11 17:42:50 2022 +0200
FindAdv: Do not insert space for '\n' if there already are spaces around
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 7048fc2..8c609a7 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -3962,10 +3962,11 @@ string MatchStringAdv::normalize(docstring const & s, bool \
ignore_format) const while ((pos = t.find("\n")) != string::npos) {
if (pos > 1 && t[pos-1] == '\\' && t[pos-2] == '\\' ) {
// Handle '\\\n'
- if (isAlnumASCII(t[pos+1])) {
+ if (isPrintableNonspace(t[pos+1]) && ((pos < 3) || \
isPrintableNonspace(t[pos-3]))) { t.replace(pos-2, 3, " ");
}
else {
+ // Already a space there
t.replace(pos-2, 3, "");
}
}
commit 10077521066919e8c7474b0f3d7bd2a2dfc4ade0
Author: Kornel Benko <kornel@lyx.org>
Date: Tue May 10 15:03:11 2022 +0200
FindAdv tests: update to new shortcuts
diff --git a/development/autotests/findadv-05-in.txt \
b/development/autotests/findadv-05-in.txt index c2a8f25..b8c2d47 100644
--- a/development/autotests/findadv-05-in.txt
+++ b/development/autotests/findadv-05-in.txt
@@ -9,7 +9,7 @@ KK: foo \Cefoo foo\Ce foo\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
# Select emphasised
KK: \Ce
diff --git a/development/autotests/findadv-06-in.txt \
b/development/autotests/findadv-06-in.txt index c75050f..5df35bd 100644
--- a/development/autotests/findadv-06-in.txt
+++ b/development/autotests/findadv-06-in.txt
@@ -20,7 +20,7 @@ KK: \C\[F29]foo\C\[Home]
KK: \Axbuffer-write\[Return]
KK: \Axdialog-show findreplaceadv\[Return]
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
#KK: \Aj
KK: \C\[F22]foo\[Return]
@@ -32,7 +32,7 @@ KK: \[Escape]\C\[Home]
KK: \Axdialog-show findreplaceadv\[Return]
KK: \[Delete]
# Uncheck ignore format
-#KK: \At\Ai\Ah
+#KK: \At\Ar\Ak\Ah
#KK: \CF
KK: \C\[F29]
KK: foo\[Return]\[Return]\[Return]
diff --git a/development/autotests/findadv-07-in.txt \
b/development/autotests/findadv-07-in.txt index 844145a..28f4b32 100644
--- a/development/autotests/findadv-07-in.txt
+++ b/development/autotests/findadv-07-in.txt
@@ -27,7 +27,7 @@ KK: foo bar\C\[Home]
KK: \Axbuffer-write\[Return]
KK: \Axdialog-show findreplaceadv\[Return]
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F30]
Sleep 1
@@ -40,7 +40,7 @@ KK: \[Escape]\C\[Home]
KK: \CF
KK: \[Delete]
# Uncheck ignore format
-#KK: \At\Ai\Ah
+#KK: \At\Ar\Ak\Ah
#KK: \CF
KK: \C\[F30]
Sleep 1
diff --git a/development/autotests/findadv-09-in.txt \
b/development/autotests/findadv-09-in.txt index b5a9b17..ce8a106 100644
--- a/development/autotests/findadv-09-in.txt
+++ b/development/autotests/findadv-09-in.txt
@@ -12,7 +12,7 @@ KK: \C\[F30]
KK: one\[Return]two\[Return]three\C\[Home]\Cs
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F30]
KK: \C\[F20][a-z]* \[Return]
@@ -24,7 +24,7 @@ KK: \[Escape]\C\[Home]
KK: \CF
KK: \[Delete]
# Uncheck ignore format
-#KK: \At\Ai\Ah
+#KK: \At\Ar\Ak\Ah
#KK: \CF
KK: \C\[F30]
KK: \C\[F20][a-z]* \[Return]\[Return]
diff --git a/development/autotests/findadv-10-in.txt \
b/development/autotests/findadv-10-in.txt index 8ff7df9..1c5bfca 100644
--- a/development/autotests/findadv-10-in.txt
+++ b/development/autotests/findadv-10-in.txt
@@ -10,7 +10,7 @@ KK: a WYSIWYG LaTeX editor.\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format (depends on IT language)
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: LyX\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 8\n with len: 3
@@ -21,7 +21,7 @@ KK: \[Escape]\C\[Home]
KK: \CF
KK: \[Delete]
# Uncheck ignore format
-#KK: \At\Ai\Ah
+#KK: \At\Ar\Ak\Ah
#KK: \CF
KK: LaTeX\[Return]
CP: Putting selection at .*idx: 0 par: 1 pos: 10\n with len: 5
diff --git a/development/autotests/findadv-14-in.txt \
b/development/autotests/findadv-14-in.txt index c35371d..641fe5c 100644
--- a/development/autotests/findadv-14-in.txt
+++ b/development/autotests/findadv-14-in.txt
@@ -11,7 +11,7 @@ KK: x^2 +x^2\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Amd
KK: x^2\[Return]
@@ -33,7 +33,7 @@ KK: \[Escape]\C\[Home]
CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF
KK: \[Delete]
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Amd
KK: x^2\[Return]
diff --git a/development/autotests/findadv-15-in.txt \
b/development/autotests/findadv-15-in.txt index 7a4899d..9009489 100644
--- a/development/autotests/findadv-15-in.txt
+++ b/development/autotests/findadv-15-in.txt
@@ -12,7 +12,7 @@ KK: x^2 +x^2\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F22]
KK: x^2\[Return]
@@ -35,7 +35,7 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF
KK: \[Delete]
# Check ignore format (was unchecked)
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F22]
KK: x^2\[Return]
diff --git a/development/autotests/findadv-16-in.txt \
b/development/autotests/findadv-16-in.txt index 00b7f6e..60f3ad1 100644
--- a/development/autotests/findadv-16-in.txt
+++ b/development/autotests/findadv-16-in.txt
@@ -13,7 +13,7 @@ KK: x^2 +x^2\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \CM\C\[F24]
KK: x^2\[Return]
diff --git a/development/autotests/findadv-17-in.txt \
b/development/autotests/findadv-17-in.txt index 57c222d..4918c90 100644
--- a/development/autotests/findadv-17-in.txt
+++ b/development/autotests/findadv-17-in.txt
@@ -17,7 +17,7 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF
KK: \[Delete]
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Cm\\beta\\alpha \[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 0\n.*idx: 0 par: 0 pos: 1\n with len: \
2
diff --git a/development/autotests/findadv-21-in.txt \
b/development/autotests/findadv-21-in.txt index 1c851e8..6309245 100644
--- a/development/autotests/findadv-21-in.txt
+++ b/development/autotests/findadv-21-in.txt
@@ -23,7 +23,7 @@ KK: op2 nine\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Aoe
KK: \C\[F20][a-z]* \[Return]\[Return]
@@ -38,7 +38,7 @@ Cr: ^.*Putting
KK: \CF\[Delete]
# Uncheck ignore format
-#KK: \At\Ai\Ah
+#KK: \At\Ar\Ak\Ah
#KK: \CF
KK: \Aol
KK: \C\[F20][a-z]2 \C\[F20][a-z]+
diff --git a/development/autotests/findadv-22-in.txt \
b/development/autotests/findadv-22-in.txt index bc2de11..ba6a4ad 100644
--- a/development/autotests/findadv-22-in.txt
+++ b/development/autotests/findadv-22-in.txt
@@ -5,7 +5,7 @@ PrepareShortcuts
#
Lang sk_SK.utf8
CO: findadv-22.ctrl
-TestBegin test.lyx -dbg key,find >findadv-22.loga.txt 2>&1
+TestBegin test.lyx -dbg key,findverbose >findadv-22.loga.txt 2>&1
CN: Part 1
KK: \Cm
KK: I_t\\wedge s
@@ -19,7 +19,7 @@ CP: Putting selection at .*idx: 0 par: 0 pos: 0\n.*idx: 0 par: 0 \
pos: 0\n.*idx: CN: Part 2
KK: \[Escape]\C\[Home]
KK: \CF
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \[Return]
CP: Identified Features
diff --git a/development/autotests/findadv-combined-in.txt \
b/development/autotests/findadv-combined-in.txt index bbcb14d..6bbd853 100644
--- a/development/autotests/findadv-combined-in.txt
+++ b/development/autotests/findadv-combined-in.txt
@@ -93,7 +93,7 @@ CN: ..
#
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
Sleep 1
KK: \[Escape]\C\[Home]
Sleep 1
diff --git a/development/autotests/findadv-logo-in.txt \
b/development/autotests/findadv-logo-in.txt index b3a4a6c..d5f5021 100644
--- a/development/autotests/findadv-logo-in.txt
+++ b/development/autotests/findadv-logo-in.txt
@@ -9,7 +9,7 @@ KK: for a WYSIWYG LaTeX editor.\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format (depends on IT language)
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Axspecialchar-insert lyx\[Return]\[Tab]
KK: \Axspecialchar-insert latex\[Return]\Al\Ar\An
diff --git a/development/autotests/findadv-re-01-in.txt \
b/development/autotests/findadv-re-01-in.txt index 034e1a0..cb62b92 100644
--- a/development/autotests/findadv-re-01-in.txt
+++ b/development/autotests/findadv-re-01-in.txt
@@ -21,7 +21,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-01.loga.txt 2>&1
CN: Part 2
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\(\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 1\n with len: 1
@@ -44,7 +44,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-01.loga.txt 2>&1
CN: Part 4
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\[\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 3\n with len: 1
diff --git a/development/autotests/findadv-re-02-in.txt \
b/development/autotests/findadv-re-02-in.txt index 66ade28..2221a57 100644
--- a/development/autotests/findadv-re-02-in.txt
+++ b/development/autotests/findadv-re-02-in.txt
@@ -20,7 +20,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-02.loga.txt 2>&1
CN: Part 2
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\\\\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 0\n with len: 1
@@ -43,7 +43,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-02.loga.txt 2>&1
CN: Part 4
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]%\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 7\n with len: 1
@@ -66,7 +66,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-02.loga.txt 2>&1
CN: Part 6
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\^\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 8\n with len: 1
diff --git a/development/autotests/findadv-re-03-in.txt \
b/development/autotests/findadv-re-03-in.txt index 020f50a..dd99a5d 100644
--- a/development/autotests/findadv-re-03-in.txt
+++ b/development/autotests/findadv-re-03-in.txt
@@ -20,7 +20,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-03.loga.txt 2>&1
CN: Part 2
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\{\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 5\n with len: 1
@@ -43,7 +43,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-03.loga.txt 2>&1
CN: Part 4
KK: \CF
# Uncheck ignore format
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\}\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 6\n with len: 1
diff --git a/development/autotests/findadv-re-04-in.txt \
b/development/autotests/findadv-re-04-in.txt index ef7c08f..7868ebd 100644
--- a/development/autotests/findadv-re-04-in.txt
+++ b/development/autotests/findadv-re-04-in.txt
@@ -14,7 +14,7 @@ KK: \C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format (depends on IT language)
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
CN: Case insensitive, format not ignored .*
@@ -31,7 +31,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-04.loga.txt 2>&1
CN: Case insensitive, format not ignored [a-z]+
KK: \CF
# Uncheck ignore format (depends on IT language)
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
KK: \C\[F20]\\b[a-z]+\\b\[Return]\[Return]\[Return]
@@ -49,7 +49,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-04.loga.txt 2>&1
CN: Case sensitive, format not ignored [a-z]+
KK: \CF
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
KK: \Az\[Tab]\[Tab]\C\[F20][a-z]+\[Return]\[Return]\[Return]\[Return]
@@ -71,7 +71,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-04.loga.txt 2>&1
CN: Case sensitive, format not ignored [A-Z]+
KK: \CF
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
KK: \Az\[Tab]\[Tab]\C\[F20][A-Z]+\[Return]\[Return]\[Return]
diff --git a/development/autotests/findadv-re-06-in.txt \
b/development/autotests/findadv-re-06-in.txt index 1050ef9..0b0084c 100644
--- a/development/autotests/findadv-re-06-in.txt
+++ b/development/autotests/findadv-re-06-in.txt
@@ -9,7 +9,7 @@ KD: 50
KK: \Cm\\frac 1-x\[Down]1+x^2 \C\[Home]
KK: \CF
# Uncheck ignore format (depends on IT language)
-KK: \At\Ai\Ah
+KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Cm\\frac \C\[F20].* \[Down]1+x^2 \[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 0\n .*idx: 0 par: 0 pos: 0\n with len: \
1
commit 4345c6a96e7e65c231ce8248f0c454665cbf2069
Author: Kornel Benko <kornel@lyx.org>
Date: Tue May 10 15:02:16 2022 +0200
Update sk.po
diff --git a/po/sk.po b/po/sk.po
index a5c177d..f4eff67 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX-2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-04-30 19:26+0200\n"
-"PO-Revision-Date: 2022-04-30 17:57+0000\n"
+"POT-Creation-Date: 2022-05-10 13:53+0200\n"
+"PO-Revision-Date: 2022-05-10 12:30+0000\n"
"Last-Translator: Kornel Benko <kornel@lyx.org>\n"
"Language-Team: Slovak <kornel@lyx.org>\n"
"Language: sk\n"
@@ -1675,13 +1675,13 @@ msgstr "Vš&etky príručky"
msgid "Restrict search to math environments only"
msgstr "Obmedziť hľadanie na mat. prostredia"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
-msgid "Search on&ly in maths"
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
+msgid "Search onl&y in maths"
msgstr "Prehľadať len mat. vzork&y"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
msgid "E&xpand macros"
-msgstr "&Rozvinúť makrá"
+msgstr "Rozvinúť &makrá"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:406
msgid ""
@@ -1710,8 +1710,8 @@ msgstr ""
"zaškrtnutými vlastnosťami"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
-msgid "Ad&here to search string formatting of"
-msgstr "Dr&žať hľadaný reťazec s vlastnosťou pre"
+msgid "Adhe&re to search string formatting of"
+msgstr "D&ržať hľadaný reťazec s vlastnosťou pre"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
msgid "Strike-through"
@@ -1722,8 +1722,8 @@ msgid "Emph/noun"
msgstr "dôraz/meno"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
-msgid "Deselect all"
-msgstr "Vypnúť všetko"
+msgid "Dese&lect all"
+msgstr "Vypnú&ť všetko"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
msgid "Sectioning markup"
@@ -1738,8 +1738,8 @@ msgid "Underlining"
msgstr "podčiarknutie"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
-msgid "Select all"
-msgstr "Vybrať všetko"
+msgid "&Select all"
+msgstr "Vybrať všet&ko"
#: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
commit 37408895feaa930ae0f0bc2afd4b65bdcfbdfa4a
Author: jpc <jpc@lyx.org>
Date: Tue May 10 14:38:56 2022 +0200
Update fr.po
diff --git a/po/fr.gmo b/po/fr.gmo
index 41b0231..8315283 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index 23464b5..a9e9403 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -362,8 +362,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-05-01 18:14+0200\n"
-"PO-Revision-Date: 2022-05-02 11:14+0200\n"
+"POT-Creation-Date: 2022-05-10 14:08+0200\n"
+"PO-Revision-Date: 2022-05-10 14:09+0200\n"
"Last-Translator: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>\n"
"Language-Team: lyxfr\n"
"Language: fr\n"
@@ -2066,7 +2066,7 @@ msgid "Restrict search to math environments only"
msgstr "Restreindre la recherche aux seuls environnements mathématiques"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
-msgid "Search on&ly in maths"
+msgid "Search onl&y in maths"
msgstr "Rechercher uniquement dans les formules mat&hématiques"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:390
@@ -2099,7 +2099,7 @@ msgstr ""
"pour le rubriques cochées"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
-msgid "Ad&here to search string formatting of"
+msgid "Adhe&re to search string formatting of"
msgstr "&Appliquer la mise en forme de la chaîne recherchée pour"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
@@ -2113,8 +2113,8 @@ msgid "Emph/noun"
msgstr "En évidence/nom propre"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
-msgid "Deselect all"
-msgstr "Tout désélectionner"
+msgid "Dese&lect all"
+msgstr "Tout désé&lectionner"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
msgid "Sectioning markup"
@@ -2129,8 +2129,8 @@ msgid "Underlining"
msgstr "Souligné"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
-msgid "Select all"
-msgstr "Tout sélectionner"
+msgid "&Select all"
+msgstr "Tout &sélectionner"
#: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
@@ -28376,7 +28376,7 @@ msgid "greyedout inset text"
msgstr "texte d'insert grisé"
#: src/BufferParams.cpp:1718 src/BufferParams.cpp:1872
-#: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3014
+#: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3026
#: src/frontends/qt/LaTeXHighlighter.cpp:143
#: src/frontends/qt/LaTeXHighlighter.cpp:257
#: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516
@@ -28388,7 +28388,7 @@ msgid "LyX Warning: "
msgstr "Avertissement LyX : "
#: src/BufferParams.cpp:1719 src/BufferParams.cpp:1873
-#: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3015
+#: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3027
#: src/insets/InsetCommandParams.cpp:509 src/insets/InsetCommandParams.cpp:517
#: src/insets/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909
#: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308
@@ -30786,15 +30786,15 @@ msgstr "Revenir la version enregistrée du document ?"
msgid "&Revert"
msgstr "&Revenir la Sauvegarde"
-#: src/Paragraph.cpp:2152
+#: src/Paragraph.cpp:2164
msgid "Senseless with this layout!"
msgstr "Inapproprié avec ce style !"
-#: src/Paragraph.cpp:2206
+#: src/Paragraph.cpp:2218
msgid "Alignment not permitted"
msgstr "Alignement non autorisé"
-#: src/Paragraph.cpp:2207
+#: src/Paragraph.cpp:2219
msgid ""
"The new layout does not permit the alignment previously used.\n"
"Setting to default."
@@ -30899,7 +30899,7 @@ msgstr ", Char: 0x"
msgid ", Boundary: "
msgstr ", Frontière : "
-#: src/Text2.cpp:406
+#: src/Text2.cpp:407
msgid "No font change defined."
msgstr "Aucune modification de police définie."
@@ -30923,36 +30923,36 @@ msgstr "Mode expression régulière "
msgid "Layout "
msgstr "Environnement "
-#: src/Text3.cpp:1619 src/Text3.cpp:2193
+#: src/Text3.cpp:1619 src/Text3.cpp:2203
msgid " not known"
msgstr " inconnu"
-#: src/Text3.cpp:2192
+#: src/Text3.cpp:2202
msgid "Table Style "
msgstr "Style de tableau "
-#: src/Text3.cpp:2385 src/frontends/qt/GuiApplication.cpp:1887
+#: src/Text3.cpp:2395 src/frontends/qt/GuiApplication.cpp:1887
msgid "Missing argument"
msgstr "Paramètre manquant"
-#: src/Text3.cpp:2550
+#: src/Text3.cpp:2560
msgid "Invalid argument (number exceeds stack size)!"
msgstr "Argument invalide (le nombre est supérieur la taille de la pile) !"
-#: src/Text3.cpp:2554
+#: src/Text3.cpp:2564
msgid "Invalid argument (must be a non-negative number)!"
msgstr "Argument invalide (nombre non négatif obligatoire)"
-#: src/Text3.cpp:2559 src/Text3.cpp:2573
+#: src/Text3.cpp:2569 src/Text3.cpp:2583
#, c-format
msgid "Text properties applied: %1$s"
msgstr "Propriétés du texte appliquées : %1$s"
-#: src/Text3.cpp:2732
+#: src/Text3.cpp:2742
msgid "Path to thesaurus directory not set!"
msgstr "Chemin d'accès au répertoire du thésaurus non précisé !"
-#: src/Text3.cpp:2733
+#: src/Text3.cpp:2743
msgid ""
"The path to the thesaurus directory has not been specified.\n"
"The thesaurus is not functional.\n"
@@ -30964,7 +30964,7 @@ msgstr ""
"Se référer au Guide de l'utilisateur, section 6.15.1, pour\n"
"les instructions de réglage."
-#: src/Text3.cpp:2859 src/Text3.cpp:2870
+#: src/Text3.cpp:2869 src/Text3.cpp:2880
msgid "Paragraph layout set"
msgstr "Style du paragraphe redéfini"
@@ -37458,28 +37458,28 @@ msgstr "%1$d chaînes remplacées dans le sélection."
msgid "%1$d strings have been replaced."
msgstr "%1$d chaînes remplacées."
-#: src/lyxfind.cpp:4683
+#: src/lyxfind.cpp:4745
msgid "One match has been replaced."
msgstr "Une correspondance a été remplacée."
-#: src/lyxfind.cpp:4686
+#: src/lyxfind.cpp:4748
msgid "Two matches have been replaced."
msgstr "Deux correspondances ont été remplacées."
-#: src/lyxfind.cpp:4689
+#: src/lyxfind.cpp:4751
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d correspondances ont été remplacées."
-#: src/lyxfind.cpp:4695
+#: src/lyxfind.cpp:4757
msgid "Match not found."
msgstr "Chaîne de caractères introuvable."
-#: src/lyxfind.cpp:4701
+#: src/lyxfind.cpp:4763
msgid "Match has been replaced."
msgstr "Chaîne de caractères remplacée."
-#: src/lyxfind.cpp:4703
+#: src/lyxfind.cpp:4765
msgid "Match found."
msgstr "Chaîne de caractères reconnue."
commit faedcd5cfeaac855c302b5f0ebc480ff62904820
Author: Juergen Spitzmueller <spitz@lyx.org>
Date: Tue May 10 13:48:59 2022 +0200
de.po
diff --git a/po/de.gmo b/po/de.gmo
index 61a1b81..e9e4c2b 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index e13633c..9e367ca 100644
--- a/po/de.po
+++ b/po/de.po
@@ -94,8 +94,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4git\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-04-30 17:39+0200\n"
-"PO-Revision-Date: 2022-04-30 17:50+0200\n"
+"POT-Creation-Date: 2022-05-10 13:31+0200\n"
+"PO-Revision-Date: 2022-05-10 13:47+0200\n"
"Last-Translator: Jürgen Spitzmüller <spitz@lyx.org>\n"
"Language-Team: Deutsch <lyx-docs@lists.lyx.org>\n"
"Language: de\n"
@@ -1798,8 +1798,8 @@ msgid "Restrict search to math environments only"
msgstr "Suche auf die Mathe-Umgebung beschränken"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
-msgid "Search on&ly in maths"
-msgstr "Nur im Ma&the-Umfeld"
+msgid "Search onl&y in maths"
+msgstr "Nu&r im Mathe-Umfeld"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:390
msgid ""
@@ -1832,7 +1832,7 @@ msgstr ""
"Aspekten, die hier ausgewählt sind, wie der Sucheintrag formatiert sind."
#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
-msgid "Ad&here to search string formatting of"
+msgid "Adhe&re to search string formatting of"
msgstr "Sucheintrags&formatierung beachten bzgl."
#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
@@ -1844,8 +1844,8 @@ msgid "Emph/noun"
msgstr "Hervorh./Eigenname"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
-msgid "Deselect all"
-msgstr "Alles auswählen"
+msgid "Dese&lect all"
+msgstr "Alles deakti&vieren"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
msgid "Sectioning markup"
@@ -1860,8 +1860,8 @@ msgid "Underlining"
msgstr "Unterstreichung"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
-msgid "Select all"
-msgstr "Alles auswählen"
+msgid "&Select all"
+msgstr "Alles ausw&ählen"
#: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
@@ -28068,7 +28068,7 @@ msgid "greyedout inset text"
msgstr "Grauschrift-Einfügungstext"
#: src/BufferParams.cpp:1718 src/BufferParams.cpp:1872
-#: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3014
+#: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3026
#: src/frontends/qt/LaTeXHighlighter.cpp:143
#: src/frontends/qt/LaTeXHighlighter.cpp:257
#: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516
@@ -28080,7 +28080,7 @@ msgid "LyX Warning: "
msgstr "LyX-Warnung: "
#: src/BufferParams.cpp:1719 src/BufferParams.cpp:1873
-#: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3015
+#: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3027
#: src/insets/InsetCommandParams.cpp:509 src/insets/InsetCommandParams.cpp:517
#: src/insets/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909
#: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308
@@ -30500,15 +30500,15 @@ msgstr "Zur gespeicherten Version des Dokuments \
zurückkehren?" msgid "&Revert"
msgstr "&Wiederherstellen"
-#: src/Paragraph.cpp:2152
+#: src/Paragraph.cpp:2164
msgid "Senseless with this layout!"
msgstr "Für dieses Format nicht relevant!"
-#: src/Paragraph.cpp:2206
+#: src/Paragraph.cpp:2218
msgid "Alignment not permitted"
msgstr "Ausrichtung nicht erlaubt"
-#: src/Paragraph.cpp:2207
+#: src/Paragraph.cpp:2219
msgid ""
"The new layout does not permit the alignment previously used.\n"
"Setting to default."
@@ -30613,7 +30613,7 @@ msgstr ", Zeichen: 0x"
msgid ", Boundary: "
msgstr ", Grenze: "
-#: src/Text2.cpp:406
+#: src/Text2.cpp:407
msgid "No font change defined."
msgstr "Keine Schriftänderung definiert."
@@ -30637,36 +30637,36 @@ msgstr "Regexp-Editor-Modus"
msgid "Layout "
msgstr "Format "
-#: src/Text3.cpp:1619 src/Text3.cpp:2193
+#: src/Text3.cpp:1619 src/Text3.cpp:2203
msgid " not known"
msgstr " unbekannt"
-#: src/Text3.cpp:2192
+#: src/Text3.cpp:2202
msgid "Table Style "
msgstr "Tabellenstil"
-#: src/Text3.cpp:2385 src/frontends/qt/GuiApplication.cpp:1887
+#: src/Text3.cpp:2395 src/frontends/qt/GuiApplication.cpp:1887
msgid "Missing argument"
msgstr "Fehlendes Argument"
-#: src/Text3.cpp:2550
+#: src/Text3.cpp:2560
msgid "Invalid argument (number exceeds stack size)!"
msgstr "Ungültiges Argument (Zahl größer als Zwischenspeicher)!"
-#: src/Text3.cpp:2554
+#: src/Text3.cpp:2564
msgid "Invalid argument (must be a non-negative number)!"
msgstr "Ungültiges Argument (muss eine nicht-negative Zahl sein)!"
-#: src/Text3.cpp:2559 src/Text3.cpp:2573
+#: src/Text3.cpp:2569 src/Text3.cpp:2583
#, c-format
msgid "Text properties applied: %1$s"
msgstr "Angewendete Texteigenschaften: %1$s"
-#: src/Text3.cpp:2732
+#: src/Text3.cpp:2742
msgid "Path to thesaurus directory not set!"
msgstr "Pfad zum Thesaurus-Wörterbuch nicht festlegt!"
-#: src/Text3.cpp:2733
+#: src/Text3.cpp:2743
msgid ""
"The path to the thesaurus directory has not been specified.\n"
"The thesaurus is not functional.\n"
@@ -30678,7 +30678,7 @@ msgstr ""
"Im Benutzerhandbuch, Abschnitt 6.15.11, finden Sie Hinweise,\n"
"um den Thesaurus einzurichten."
-#: src/Text3.cpp:2859 src/Text3.cpp:2870
+#: src/Text3.cpp:2869 src/Text3.cpp:2880
msgid "Paragraph layout set"
msgstr "Absatzformat festgelegt"
@@ -37215,28 +37215,28 @@ msgstr "%1$d Zeichenketten wurden in der Auswahl ersetzt."
msgid "%1$d strings have been replaced."
msgstr "%1$d Zeichenketten wurden ersetzt."
-#: src/lyxfind.cpp:4683
+#: src/lyxfind.cpp:4745
msgid "One match has been replaced."
msgstr "Ein Treffer wurde ersetzt."
-#: src/lyxfind.cpp:4686
+#: src/lyxfind.cpp:4748
msgid "Two matches have been replaced."
msgstr "Zwei Treffer wurden ersetzt."
-#: src/lyxfind.cpp:4689
+#: src/lyxfind.cpp:4751
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d Treffer wurden ersetzt."
-#: src/lyxfind.cpp:4695
+#: src/lyxfind.cpp:4757
msgid "Match not found."
msgstr "Die Zeichenkette wurde nicht gefunden!"
-#: src/lyxfind.cpp:4701
+#: src/lyxfind.cpp:4763
msgid "Match has been replaced."
msgstr "Die Zeichenkette wurde ersetzt."
-#: src/lyxfind.cpp:4703
+#: src/lyxfind.cpp:4765
msgid "Match found."
msgstr "Die Zeichenkette wurde gefunden!"
commit 8bf45dd3eae73e0477b6b4457e97f070d9501b78
Author: Juergen Spitzmueller <spitz@lyx.org>
Date: Tue May 10 13:29:51 2022 +0200
Shuffle and add some shortcuts
diff --git a/src/frontends/qt/ui/FindAndReplaceUi.ui \
b/src/frontends/qt/ui/FindAndReplaceUi.ui index 6713723..45c7919 100644
--- a/src/frontends/qt/ui/FindAndReplaceUi.ui
+++ b/src/frontends/qt/ui/FindAndReplaceUi.ui
@@ -380,7 +380,7 @@
<string>Restrict search to math environments only</string>
</property>
<property name="text">
- <string>Search on&ly in maths</string>
+ <string>Search onl&y in maths</string>
</property>
</widget>
</item>
@@ -425,7 +425,7 @@
<string>If the search string is formatted in a non-default way, only find \
strings formatted like the search string in the checked respects</string> \
</property> <property name="title">
- <string>Ad&here to search string formatting of</string>
+ <string>Adhe&re to search string formatting of</string>
</property>
<property name="checkable">
<bool>true</bool>
@@ -465,7 +465,7 @@
<item row="6" column="1">
<widget class="QPushButton" name="deselectAllPB">
<property name="text">
- <string>Deselect all</string>
+ <string>Dese&lect all</string>
</property>
</widget>
</item>
@@ -514,7 +514,7 @@
<item row="6" column="0">
<widget class="QPushButton" name="selectAllPB">
<property name="text">
- <string>Select all</string>
+ <string>&Select all</string>
</property>
</widget>
</item>
commit 055e097a2561f69cedefc898e2eb7b2fc30e5ba1
Author: Kornel Benko <kornel@lyx.org>
Date: Tue May 10 11:37:39 2022 +0200
Amend a7c58e2f: Do not output hyperref option unicode with recent hyperref \
versions
diff --git a/development/batchtests/beamer_test.tex.orig \
b/development/batchtests/beamer_test.tex.orig index c68031d..ee846cc 100644
--- a/development/batchtests/beamer_test.tex.orig
+++ b/development/batchtests/beamer_test.tex.orig
@@ -12,10 +12,10 @@
\usepackage{url}
\ifx\hypersetup\undefined
\AtBeginDocument{%
- \hypersetup{unicode=true}
+ \hypersetup{}
}
\else
- \hypersetup{unicode=true}
+ \hypersetup{}
\fi
\makeatletter
commit 62ab563c257d64df879ac27c1d77a1f45aea68a9
Author: Kornel Benko <kornel@lyx.org>
Date: Mon May 9 22:06:02 2022 +0200
FindAdv: Use private variable for_search
Using the new inline statements
find_effective(), find_with_non_output(), find_with_deleted(),
find_set_feature(), find_add_feature() and find_clean_features()
makes the code a slightly better readable.
diff --git a/src/Font.cpp b/src/Font.cpp
index 7b7585d..cd741d1 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -336,7 +336,7 @@ int Font::latexWriteStartChanges(otexstream & os, BufferParams \
const & bparams, p.reduce(prev.bits_);
if (f.size() != INHERIT_SIZE) {
- if (runparams.for_search == OutputParams::NoSearch) {
+ if (!runparams.find_effective()) {
os << '{';
++count;
os << '\\'
diff --git a/src/OutputParams.h b/src/OutputParams.h
index 64ab2f3..65b4fc2 100644
--- a/src/OutputParams.h
+++ b/src/OutputParams.h
@@ -433,7 +433,12 @@ public:
SearchNonOutput = 8
};
- int for_search = NoSearch;
+ inline bool find_effective(void) const { return (for_search != \
OutputParams::NoSearch); } + inline bool find_with_non_output() const { return \
((for_search & OutputParams::SearchNonOutput) != 0); } + inline bool \
find_with_deleted() const { return ((for_search & OutputParams::SearchWithDeleted) != \
0); } + inline void find_set_feature(enum Search set_) { for_search = set_; }
+ inline void find_add_feature(enum Search add_) { for_search |= add_; }
+ inline void find_clean_features(void) { for_search = OutputParams::NoSearch; }
/// Are we generating this material for instant preview?
bool for_preview = false;
@@ -446,6 +451,8 @@ public:
/// A postponed \\noindent (after VSpace)
mutable bool need_noindent = false;
+private:
+ int for_search = NoSearch;
};
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 7357337..8a96e6d 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1209,10 +1209,10 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
{
char_type const c = owner_->getUChar(bparams, runparams, i);
- if (style.pass_thru || runparams.pass_thru || (runparams.for_search != \
OutputParams::NoSearch) + if (style.pass_thru || runparams.pass_thru || \
runparams.find_effective() || contains(style.pass_thru_chars, c)
|| contains(runparams.pass_thru_chars, c)) {
- if (runparams.for_search != OutputParams::NoSearch) {
+ if (runparams.find_effective()) {
switch (c) {
case '\\':
os << "\\\\";
@@ -2622,7 +2622,7 @@ void Paragraph::latex(BufferParams const & bparams,
runparams);
runningChange = Change(Change::UNCHANGED);
- os << ((isEnvSeparator(i) && (runparams.for_search == OutputParams::NoSearch)) ? \
"}]~" : "}] "); + os << ((isEnvSeparator(i) && !runparams.find_effective()) ? \
"}]~" : "}] "); column +=3;
}
// For InTitle commands, we have already opened a group
@@ -2652,10 +2652,10 @@ void Paragraph::latex(BufferParams const & bparams,
// Check whether a display math inset follows
bool output_changes;
- if (runparams.for_search == OutputParams::NoSearch)
+ if (!runparams.find_effective())
output_changes = bparams.output_changes;
else
- output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
+ output_changes = runparams.find_with_deleted();
if (c == META_INSET
&& i >= start_pos && (end_pos == -1 || i < end_pos)) {
if (isDeleted(i))
@@ -4598,7 +4598,7 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
odocstringstream os;
if (inset->lyxCode() == lyx::QUOTE_CODE) {
OutputParams op(0);
- op.for_search = OutputParams::SearchQuick;
+ op.find_set_feature(OutputParams::SearchQuick);
inset->plaintext(os, op);
}
else {
diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp
index 4e02b62..a9c0ff9 100644
--- a/src/insets/InsetBibtex.cpp
+++ b/src/insets/InsetBibtex.cpp
@@ -983,7 +983,7 @@ int InsetBibtex::plaintext(odocstringstream & os,
// We could output more information here, e.g., what databases are included
// and information about options. But I don't necessarily see any reason to
// do this right now.
- if (op.for_tooltip || op.for_toc || op.for_search != OutputParams::NoSearch) {
+ if (op.for_tooltip || op.for_toc || op.find_effective()) {
os << '[' << reflabel << ']' << '\n';
return PLAINTEXT_NEWLINE;
}
diff --git a/src/insets/InsetBranch.cpp b/src/insets/InsetBranch.cpp
index a30930a..9d7cae0 100644
--- a/src/insets/InsetBranch.cpp
+++ b/src/insets/InsetBranch.cpp
@@ -321,7 +321,7 @@ bool InsetBranch::producesOutput() const
void InsetBranch::latex(otexstream & os, OutputParams const & runparams) const
{
- if (producesOutput() || ((runparams.for_search & OutputParams::SearchNonOutput) != \
0)) { + if (producesOutput() || runparams.find_with_non_output()) {
OutputParams rp = runparams;
rp.inbranch = true;
InsetText::latex(os, rp);
@@ -335,7 +335,7 @@ void InsetBranch::latex(otexstream & os, OutputParams const & \
runparams) const int InsetBranch::plaintext(odocstringstream & os,
OutputParams const & runparams, size_t max_length) const
{
- if (!producesOutput() && ((runparams.for_search & OutputParams::SearchNonOutput) == \
0)) + if (!producesOutput() && !runparams.find_with_non_output())
return 0;
int len = InsetText::plaintext(os, runparams, max_length);
diff --git a/src/insets/InsetInclude.cpp b/src/insets/InsetInclude.cpp
index 9ee08a3..870310e 100644
--- a/src/insets/InsetInclude.cpp
+++ b/src/insets/InsetInclude.cpp
@@ -1006,14 +1006,14 @@ int InsetInclude::plaintext(odocstringstream & os,
{
// just write the filename if we're making a tooltip or toc entry,
// or are generating this for advanced search
- if (op.for_tooltip || op.for_toc || op.for_search != OutputParams::NoSearch) {
+ if (op.for_tooltip || op.for_toc || op.find_effective()) {
os << '[' << screenLabel() << '\n'
<< ltrim(getParam("filename")) << "\n]";
return PLAINTEXT_NEWLINE + 1; // one char on a separate line
}
if (isVerbatim(params()) || isListings(params())) {
- if (op.for_search != OutputParams::NoSearch) {
+ if (op.find_effective()) {
os << '[' << screenLabel() << ']';
}
else {
diff --git a/src/insets/InsetIndex.cpp b/src/insets/InsetIndex.cpp
index 8622263..7ffff60 100644
--- a/src/insets/InsetIndex.cpp
+++ b/src/insets/InsetIndex.cpp
@@ -85,7 +85,7 @@ void InsetIndex::latex(otexstream & ios, OutputParams const & \
runparams_in) cons odocstringstream ourlatex;
otexstream ots(ourlatex);
InsetText::latex(ots, runparams);
- if (runparams.for_search != OutputParams::NoSearch) {
+ if (runparams.find_effective()) {
// No need for special handling, if we are only searching for some patterns
os << ourlatex.str() << "}";
return;
diff --git a/src/insets/InsetNote.cpp b/src/insets/InsetNote.cpp
index 45d89d0..998c8cc 100644
--- a/src/insets/InsetNote.cpp
+++ b/src/insets/InsetNote.cpp
@@ -207,12 +207,12 @@ bool InsetNote::isMacroScope() const
void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const
{
if (params_.type != InsetNoteParams::Greyedout
- && runparams_in.for_search != OutputParams::NoSearch
- && (runparams_in.for_search & OutputParams::SearchNonOutput) == 0)
+ && runparams_in.find_effective()
+ && !runparams_in.find_with_non_output())
return;
if (params_.type == InsetNoteParams::Note) {
- if ((runparams_in.for_search & OutputParams::SearchNonOutput) != 0) {
+ if (runparams_in.find_with_non_output()) {
OutputParams runparams(runparams_in);
InsetCollapsible::latex(os, runparams);
runparams_in.encoding = runparams.encoding;
@@ -251,11 +251,11 @@ void InsetNote::latex(otexstream & os, OutputParams const & \
runparams_in) const int InsetNote::plaintext(odocstringstream & os,
OutputParams const & runparams_in, size_t max_length) const
{
- if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0) {
+ if (!runparams_in.find_with_non_output()) {
if (params_.type == InsetNoteParams::Note)
return 0;
else if (params_.type == InsetNoteParams::Comment
- && (runparams_in.for_search != OutputParams::NoSearch))
+ && runparams_in.find_effective())
return 0;
}
@@ -265,10 +265,10 @@ int InsetNote::plaintext(odocstringstream & os,
// Ignore files that are exported inside a comment
runparams.exportdata.reset(new ExportData);
}
- if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0)
+ if (!runparams_in.find_with_non_output())
os << '[' << buffer().B_("note") << ":\n";
InsetText::plaintext(os, runparams, max_length);
- if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0)
+ if (!runparams_in.find_with_non_output())
os << "\n]";
return PLAINTEXT_NEWLINE + 1; // one char on a separate line
diff --git a/src/insets/InsetQuotes.cpp b/src/insets/InsetQuotes.cpp
index 1882769..19eb846 100644
--- a/src/insets/InsetQuotes.cpp
+++ b/src/insets/InsetQuotes.cpp
@@ -851,7 +851,7 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & \
runparams) const docstring qstr;
// In pass-thru context, we output plain quotes
- if (runparams.pass_thru || runparams.for_search != OutputParams::NoSearch)
+ if (runparams.pass_thru || runparams.find_effective())
qstr = (level_ == QuoteLevel::Primary) ? from_ascii("\"") : from_ascii("'");
else if (style == QuoteStyle::Plain && fontspec_) {
// For XeTeX and LuaTeX,we need to disable mapping to get straight
@@ -944,7 +944,7 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & \
runparams) const int InsetQuotes::plaintext(odocstringstream & os,
OutputParams const & op, size_t) const
{
- if (op.for_search == OutputParams::NoSearch) {
+ if (!op.find_effective()) {
docstring const str = displayString();
os << str;
return str.size();
diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp
index ffcc8b5..28a5978 100644
--- a/src/insets/InsetSpace.cpp
+++ b/src/insets/InsetSpace.cpp
@@ -579,7 +579,7 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const {
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
- if (runparams.for_search != OutputParams::NoSearch)
+ if (runparams.find_effective())
os << "~";
else
os << (runparams.free_spacing ? " " : "\\ ");
@@ -588,21 +588,21 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const if (runparams.local_font &&
runparams.local_font->language()->lang() == "polutonikogreek")
// in babel's polutonikogreek, ~ is active
- os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) \
? " " : "\\nobreakspace{}"); + os << (runparams.free_spacing && \
!runparams.find_effective() ? " " : "\\nobreakspace{}"); else
- os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) \
? ' ' : '~'); + os << (runparams.free_spacing && !runparams.find_effective() ? ' ' \
: '~'); break;
case InsetSpaceParams::VISIBLE:
- os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) \
? " " : "\\textvisiblespace{}"); + os << (runparams.free_spacing && \
!runparams.find_effective() ? " " : "\\textvisiblespace{}"); break;
case InsetSpaceParams::THIN:
- if (runparams.for_search != OutputParams::NoSearch)
+ if (runparams.find_effective())
os << "\\thinspace{}";
else
os << (runparams.free_spacing ? " " : "\\,");
break;
case InsetSpaceParams::MEDIUM:
- if (runparams.for_search != OutputParams::NoSearch)
+ if (runparams.find_effective())
os << "\\medspace{}";
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\:");
@@ -610,7 +610,7 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const os << (runparams.free_spacing ? " " : "\\medspace{}");
break;
case InsetSpaceParams::THICK:
- if (runparams.for_search != OutputParams::NoSearch)
+ if (runparams.find_effective())
os << "\\thickspace{}";
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\;");
@@ -618,49 +618,49 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const os << (runparams.free_spacing ? " " : "\\thickspace{}");
break;
case InsetSpaceParams::QUAD:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\quad{}"); + os << (runparams.free_spacing && runparams.find_effective() ? \
" " : "\\quad{}"); break;
case InsetSpaceParams::QQUAD:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\qquad{}"); + os << (runparams.free_spacing && runparams.find_effective() \
? " " : "\\qquad{}"); break;
case InsetSpaceParams::ENSPACE:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\enspace{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\enspace{}"); break;
case InsetSpaceParams::ENSKIP:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\enskip{}"); + os << (runparams.free_spacing && runparams.find_effective() \
? " " : "\\enskip{}"); break;
case InsetSpaceParams::NEGTHIN:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\negthinspace{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\negthinspace{}"); break;
case InsetSpaceParams::NEGMEDIUM:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\negmedspace{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\negmedspace{}"); break;
case InsetSpaceParams::NEGTHICK:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\negthickspace{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\negthickspace{}"); break;
case InsetSpaceParams::HFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\hfill{}"); + os << (runparams.free_spacing && runparams.find_effective() \
? " " : "\\hfill{}"); break;
case InsetSpaceParams::HFILL_PROTECTED:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\hspace*{\\fill}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\hspace*{\\fill}"); break;
case InsetSpaceParams::DOTFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\dotfill{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\dotfill{}"); break;
case InsetSpaceParams::HRULEFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\hrulefill{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\hrulefill{}"); break;
case InsetSpaceParams::LEFTARROWFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\leftarrowfill{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\leftarrowfill{}"); break;
case InsetSpaceParams::RIGHTARROWFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\rightarrowfill{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\rightarrowfill{}"); break;
case InsetSpaceParams::UPBRACEFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\upbracefill{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\upbracefill{}"); break;
case InsetSpaceParams::DOWNBRACEFILL:
- os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) \
? " " : "\\downbracefill{}"); + os << (runparams.free_spacing && \
runparams.find_effective() ? " " : "\\downbracefill{}"); break;
case InsetSpaceParams::CUSTOM:
if (runparams.free_spacing)
@@ -737,11 +737,10 @@ int InsetSpace::plaintext(odocstringstream & os,
return 1;
case InsetSpaceParams::PROTECTED:
case InsetSpaceParams::CUSTOM_PROTECTED:
- if (runparams.for_search == OutputParams::NoSearch)
- os.put(0x00a0);
- else {
+ if (runparams.find_effective())
os.put(' ');
- }
+ else
+ os.put(0x00a0);
return 1;
case InsetSpaceParams::NEGTHIN:
case InsetSpaceParams::NEGMEDIUM:
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 4df0f1e..7048fc2 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -812,6 +812,17 @@ namespace {
typedef vector<pair<string, string> > Escapes;
+static string getRegexSpaceCount(int count)
+{
+ if (count > 0) {
+ if (count > 1)
+ return "\\s{" + std::to_string(count) + "}";
+ else
+ return "\\s";
+ }
+ return "";
+}
+
string string2regex(string in)
{
static std::regex specialChars { R"([-[\]{}()*+?.,\^$|#\$\\])" };
@@ -833,20 +844,14 @@ string string2regex(string in)
}
else {
if (blanks > 0) {
- if (blanks > 1)
- temp += "\\s+";
- else
- temp += "\\s";
+ temp += getRegexSpaceCount(blanks);
}
temp += tempx[i];
blanks = 0;
}
}
if (blanks > 0) {
- if (blanks > 1)
- temp += "\\s+";
- else
- temp += "\\s";
+ temp += getRegexSpaceCount(blanks);
}
string temp2("");
@@ -1153,11 +1158,11 @@ static docstring buffer_to_latex(Buffer & buffer)
runparams.nice = true;
setFindParams(runparams);
if (ignoreFormats.getDeleted())
- runparams.for_search = OutputParams::SearchWithoutDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
else
- runparams.for_search = OutputParams::SearchWithDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithDeleted);
if (ignoreFormats.getNonContent()) {
- runparams.for_search |= OutputParams::SearchNonOutput;
+ runparams.find_add_feature(OutputParams::SearchNonOutput);
}
pit_type const endpit = buffer.paragraphs().size();
for (pit_type pit = 0; pit != endpit; ++pit) {
@@ -1231,13 +1236,13 @@ static docstring stringifySearchBuffer(Buffer & buffer, \
FindAndReplaceOptions co int option = AS_STR_INSETS |AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE;
- runparams.for_search = OutputParams::SearchWithoutDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
}
else {
- runparams.for_search = OutputParams::SearchWithDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithDeleted);
}
if (ignoreFormats.getNonContent()) {
- runparams.for_search |= OutputParams::SearchNonOutput;
+ runparams.find_add_feature(OutputParams::SearchNonOutput);
}
string t("");
for (pos_type pit = pos_type(0); pit < (pos_type)buffer.paragraphs().size(); \
++pit) { @@ -4014,13 +4019,13 @@ docstring stringifyFromCursor(DocIterator const & \
cur, int len) int option = AS_STR_INSETS | AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE;
- runparams.for_search = OutputParams::SearchWithoutDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
}
else {
- runparams.for_search = OutputParams::SearchWithDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithDeleted);
}
if (ignoreFormats.getNonContent()) {
- runparams.for_search |= OutputParams::SearchNonOutput;
+ runparams.find_add_feature(OutputParams::SearchNonOutput);
}
LYXERR(Debug::FINDVERBOSE, "Stringifying with cur: "
<< cur << ", from pos: " << cur.pos() << ", end: " << end);
@@ -4067,13 +4072,13 @@ docstring latexifyFromCursor(DocIterator const & cur, int \
len) runparams.nice = false;
setFindParams(runparams);
if (ignoreFormats.getDeleted()) {
- runparams.for_search = OutputParams::SearchWithoutDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
}
else {
- runparams.for_search = OutputParams::SearchWithDeleted;
+ runparams.find_set_feature(OutputParams::SearchWithDeleted);
}
if (ignoreFormats.getNonContent()) {
- runparams.for_search |= OutputParams::SearchNonOutput;
+ runparams.find_add_feature(OutputParams::SearchNonOutput);
}
if (cur.inTexted()) {
diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp
index e266ec8..de01bad 100644
--- a/src/mathed/InsetMathHull.cpp
+++ b/src/mathed/InsetMathHull.cpp
@@ -2359,10 +2359,10 @@ int InsetMathHull::plaintext(odocstringstream & os,
Encoding const * const enc = encodings.fromLyXName("utf8");
TeXMathStream::OutputType ot;
- if (op.for_search == OutputParams::NoSearch)
- ot = TeXMathStream::wsDefault;
- else
+ if (op.find_effective())
ot = TeXMathStream::wsSearchAdv;
+ else
+ ot = TeXMathStream::wsDefault;
// Fix Bug #6139
if (type_ == hullRegexp) {
TeXMathStream wi(ots, false, true, ot, enc);
diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp
index d4759a0..cfa5aaf 100644
--- a/src/mathed/InsetMathNest.cpp
+++ b/src/mathed/InsetMathNest.cpp
@@ -359,7 +359,7 @@ void InsetMathNest::normalize(NormalStream & os) const
void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
{
TeXMathStream::OutputType ot;
- if (runparams.for_search != OutputParams::NoSearch)
+ if (runparams.find_effective())
ot = TeXMathStream::wsSearchAdv;
else if (runparams.dryrun)
ot = TeXMathStream::wsDryrun;
diff --git a/src/output_latex.cpp b/src/output_latex.cpp
index 358aae5..1061f3d 100644
--- a/src/output_latex.cpp
+++ b/src/output_latex.cpp
@@ -462,10 +462,10 @@ void TeXEnvironment(Buffer const & buf, Text const & text,
// Do not output empty environments if the whole paragraph has
// been deleted with ct and changes are not output.
bool output_changes;
- if (runparams.for_search == OutputParams::NoSearch)
+ if (!runparams.find_effective())
output_changes = buf.params().output_changes;
else
- output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
+ output_changes = runparams.find_with_deleted();
if (size_t(pit + 1) < paragraphs.size()) {
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
Paragraph const & cpar = paragraphs.at(pit);
@@ -578,7 +578,7 @@ void getArgInsets(otexstream & os, OutputParams const & \
runparams, Layout::LaTeX }
}
}
- if ((runparams.for_search != OutputParams::NoSearch) && argnr > 1) {
+ if (runparams.find_effective() && argnr > 1) {
// Mark end of arguments for findadv() only
os << "\\endarguments{}";
}
@@ -746,7 +746,7 @@ void parStartCommand(Paragraph const & par, otexstream & os,
break;
case LATEX_ITEM_ENVIRONMENT:
case LATEX_LIST_ENVIRONMENT:
- if (runparams.for_search != OutputParams::NoSearch) {
+ if (runparams.find_effective()) {
os << "\\" + style.itemcommand() << "{" << style.latexname() << "}";
}
else {
@@ -758,7 +758,7 @@ void parStartCommand(Paragraph const & par, otexstream & os,
}
break;
case LATEX_ENVIRONMENT:
- if (runparams.for_search != OutputParams::NoSearch) {
+ if (runparams.find_effective()) {
os << "\\latexenvironment{" << style.latexname() << "}{";
}
break;
@@ -796,7 +796,7 @@ void TeXOnePar(Buffer const & buf,
// Do not output empty commands if the whole paragraph has
// been deleted with ct and changes are not output.
- if (((runparams_in.for_search & OutputParams::SearchWithDeleted) == 0) && \
style.latextype != LATEX_ENVIRONMENT + if (!runparams_in.find_with_deleted() && \
style.latextype != LATEX_ENVIRONMENT
&& !par.empty() && par.isDeleted(0, par.size()) && !bparams.output_changes)
return;
@@ -936,7 +936,7 @@ void TeXOnePar(Buffer const & buf,
bool const have_prior_nptpar =
prior_nontitle_par && !prior_nontitle_par->isPassThru();
Language const * const prev_language =
- runparams_in.for_search != OutputParams::NoSearch
+ runparams_in.find_effective()
? languages.getLanguage("ignore")
: (have_prior_nptpar)
? (use_prev_env_language
@@ -988,7 +988,7 @@ void TeXOnePar(Buffer const & buf,
&& !(have_prior_nptpar
&& (prev_language->rightToLeft() != par_language->rightToLeft()));
bool const localswitch =
- (runparams_in.for_search != OutputParams::NoSearch
+ (runparams_in.find_effective()
|| text.inset().forceLocalFontSwitch()
|| (using_begin_end && text.inset().forcePlainLayout())
|| in_polyglossia_rtl_env)
@@ -1003,7 +1003,7 @@ void TeXOnePar(Buffer const & buf,
bool const localswitch_needed = localswitch && par_lang != outer_lang;
// localswitches need to be closed and reopened at each par
- if ((runparams_in.for_search != OutputParams::NoSearch) || ((par_lang != prev_lang \
|| localswitch_needed) + if (runparams_in.find_effective() || ((par_lang != prev_lang \
|| localswitch_needed) // check if we already put language command in \
TeXEnvironment() && !(style.isEnvironment()
&& (pit == 0 || (priorpar->layout() != par.layout()
@@ -1071,7 +1071,7 @@ void TeXOnePar(Buffer const & buf,
// With CJK, the CJK tag has to be closed first (see below)
if ((runparams.encoding->package() != Encoding::CJK
|| bparams.useNonTeXFonts
- || (runparams.for_search != OutputParams::NoSearch))
+ || runparams.find_effective())
&& (par_lang != openLanguageName(state) || localswitch || intitle_command)
&& !par_lang.empty()) {
string bc = use_polyglossia ?
@@ -1312,7 +1312,7 @@ void TeXOnePar(Buffer const & buf,
// when the paragraph uses CJK, the language has to be closed earlier
if ((font.language()->encoding()->package() != Encoding::CJK)
|| bparams.useNonTeXFonts
- || (runparams_in.for_search != OutputParams::NoSearch)) {
+ || runparams_in.find_effective()) {
if (lang_end_command.empty()) {
// If this is a child, we should restore the
// master language after the last paragraph.
@@ -1708,10 +1708,10 @@ void latexParagraphs(Buffer const & buf,
// Do not output empty environments if the whole paragraph has
// been deleted with ct and changes are not output.
bool output_changes;
- if (runparams.for_search == OutputParams::NoSearch)
+ if (!runparams.find_effective())
output_changes = bparams.output_changes;
else
- output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
+ output_changes = runparams.find_with_deleted();
bool const lastpar = size_t(pit + 1) >= paragraphs.size();
if (!lastpar) {
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
@@ -1854,7 +1854,7 @@ pair<bool, int> switchEncoding(odocstream & os, BufferParams \
const & bparams, || oldEnc.package() == Encoding::japanese
|| oldEnc.package() == Encoding::none
|| newEnc.package() == Encoding::none
- || (runparams.for_search != OutputParams::NoSearch))
+ || runparams.find_effective())
return make_pair(false, 0);
// FIXME We ignore encoding switches from/to encodings that do
// neither support the inputenc package nor the CJK package here.
commit e6f5f428d7fbb10dde24aca79fca7623af5f7749
Author: Jean-Marc Lasgouttes <lasgouttes@lyx.org>
Date: Mon May 9 10:23:54 2022 +0200
Fix crash with LFUN_LAYOUT with multicell selection
This lfun (like several others) does not work with multicell
selection. Disable the lfun in this this case for now, until a nice
solution is found.
Fixes bug #12530.
diff --git a/src/Text2.cpp b/src/Text2.cpp
index 9026740..82cc994 100644
--- a/src/Text2.cpp
+++ b/src/Text2.cpp
@@ -162,6 +162,7 @@ void Text::setInsetFont(BufferView const & bv, pit_type pit,
void Text::setLayout(pit_type start, pit_type end,
docstring const & layout)
{
+ // FIXME: make this work in multicell selection case
LASSERT(start != end, return);
Buffer const & buffer = owner_->buffer();
diff --git a/src/Text3.cpp b/src/Text3.cpp
index f871bb3..8143f39 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -3575,8 +3575,10 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
docstring const req_layout = ignoreautonests ? from_utf8(cmd.getArg(0)) : \
cmd.argument(); docstring const layout = resolveLayout(req_layout, cur);
- enable = !owner_->forcePlainLayout() && !layout.empty();
- status.setOnOff(!owner_->forcePlainLayout() && isAlreadyLayout(layout, cur));
+ // FIXME: make this work in multicell selection case
+ enable = !owner_->forcePlainLayout() && !layout.empty() && !cur.selIsMultiCell();
+ status.setOnOff(!owner_->forcePlainLayout() && !cur.selIsMultiCell()
+ && isAlreadyLayout(layout, cur));
break;
}
commit 441b0eab2370b8b6cbe0c0a75a1718405a4b6329
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 8 22:43:56 2022 +0200
FindAdv: Amend 64af721a
The space handling is a nightmare.
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index e1ece12..7357337 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1223,6 +1223,9 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
case '}':
os << "\\braceright ";
return;
+ case '~':
+ os << "\\lyxtilde ";
+ return;
case ' ':
case '\0':
break;
diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp
index 669239b..ffcc8b5 100644
--- a/src/insets/InsetSpace.cpp
+++ b/src/insets/InsetSpace.cpp
@@ -679,7 +679,7 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const
int InsetSpace::plaintext(odocstringstream & os,
- OutputParams const &, size_t) const
+ OutputParams const &runparams, size_t) const
{
switch (params_.kind) {
case InsetSpaceParams::HFILL:
@@ -737,7 +737,11 @@ int InsetSpace::plaintext(odocstringstream & os,
return 1;
case InsetSpaceParams::PROTECTED:
case InsetSpaceParams::CUSTOM_PROTECTED:
- os.put(0x00a0);
+ if (runparams.for_search == OutputParams::NoSearch)
+ os.put(0x00a0);
+ else {
+ os.put(' ');
+ }
return 1;
case InsetSpaceParams::NEGTHIN:
case InsetSpaceParams::NEGMEDIUM:
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 9c70938..4df0f1e 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -833,14 +833,20 @@ string string2regex(string in)
}
else {
if (blanks > 0) {
- temp += "\\s+";
+ if (blanks > 1)
+ temp += "\\s+";
+ else
+ temp += "\\s";
}
temp += tempx[i];
blanks = 0;
}
}
if (blanks > 0) {
- temp += "\\s+";
+ if (blanks > 1)
+ temp += "\\s+";
+ else
+ temp += "\\s";
}
string temp2("");
@@ -1161,7 +1167,7 @@ static docstring buffer_to_latex(Buffer & buffer)
return ods.str();
}
-static string latexNamesToUtf8(docstring strIn)
+static string latexNamesToUtf8(docstring strIn, bool withformat)
{
string addtmp = to_utf8(strIn);
static regex const rmAcc("(\\\\)*("
@@ -1203,6 +1209,10 @@ static string latexNamesToUtf8(docstring strIn)
add = addtmp;
else if (addtmp.length() > lastpos)
add += addtmp.substr(lastpos, addtmp.length() - lastpos);
+ if (!withformat) {
+ static std::regex repltilde { R"(~)" };
+ add = std::regex_replace(add, repltilde, accents["lyxtilde"]);
+ }
LYXERR(Debug::FINDVERBOSE, "Adding to search string: '"
<< add << "'");
return add;
@@ -1234,7 +1244,7 @@ static docstring stringifySearchBuffer(Buffer & buffer, \
FindAndReplaceOptions co Paragraph const & par = buffer.paragraphs().at(pit);
string add = latexNamesToUtf8(par.asString(pos_type(0), par.size(),
option,
- &runparams));
+ &runparams), !opt.ignoreformat);
LYXERR(Debug::FINDVERBOSE, "Adding to search string: '"
<< add << "'");
t += add;
@@ -1929,7 +1939,6 @@ static void buildAccentsMap()
accents["cdot"] = " ";
accents["textasciicircum"] = "^";
accents["mathcircumflex"] = "^";
- accents["sim"] = "~";
accents["guillemotright"] = " ";
accents["guillemotleft"] = " ";
accents["hairspace"] = getutf8(0xf0000); // select from free unicode plane 15
@@ -1950,6 +1959,8 @@ static void buildAccentsMap()
accents["lyxarrow"] = getutf8(0xf0020);
accents["braceleft"] = getutf8(0xf0030);
accents["braceright"] = getutf8(0xf0031);
+ accents["lyxtilde"] = getutf8(0xf0032);
+ accents["sim"] = getutf8(0xf0032);
accents["backslash lyx"] = getutf8(0xf0010); // Used logos inserted with \
starting \backslash accents["backslash LyX"] = getutf8(0xf0010);
accents["backslash tex"] = getutf8(0xf0011);
@@ -4015,7 +4026,7 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
<< cur << ", from pos: " << cur.pos() << ", end: " << end);
docstring res = from_utf8(latexNamesToUtf8(par.asString(cur.pos(), end,
option,
- &runparams)));
+ &runparams), false));
LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified text from pos(" << cur.pos() \
<< ") len(" << len << "): " << res); return res;
} else if (cur.inMathed()) {
@@ -4028,7 +4039,7 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
MathData md2;
for (MathData::const_iterator it = md.begin() + cs.pos(); it != it_end; ++it)
md2.push_back(*it);
- docstring res = from_utf8(latexNamesToUtf8(asString(md2)));
+ docstring res = from_utf8(latexNamesToUtf8(asString(md2), false));
LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified math from pos(" << cur.pos() \
<< ") len(" << len << "): " << res); return res;
}
commit 64af721adc1a6bc1b730214cbcb14dd7b8f3f2d9
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 8 20:24:43 2022 +0200
FindAdv: Handle normal and protected space also inside regular expression
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 2208fd4..9c70938 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -872,7 +872,8 @@ string correctRegex(string t, bool withformat)
* and \{, \}, \[, \] => {, }, [, ]
*/
string s("");
- regex wordre("(\\\\)*(\\\\(([A-Za-z]+|[\\{\\}%])( |\\{\\})?|[\\[\\]\\{\\}]))");
+ static std::regex wordre("(\\\\)*(\\\\(( |[A-Za-z]+|[\\{\\}%])( \
|\\{\\})?|[\\[\\]\\{\\}]))"); + static std::regex protectedSpace { R"(~)" };
size_t lastpos = 0;
smatch sub;
bool backslashed = false;
@@ -892,7 +893,7 @@ string correctRegex(string t, bool withformat)
{
// transforms '\backslash \{' into '\{'
string next = t.substr(sub.position(2) + sub.str(2).length(), 2);
- if ((next == "\\{") || (next == "\\}")) {
+ if ((next == "\\{") || (next == "\\}") || (next == "\\ ")) {
replace = "";
backslashed = true;
}
@@ -907,6 +908,8 @@ string correctRegex(string t, bool withformat)
replace = accents["braceleft"];
else if (sub.str(3) == "}")
replace = accents["braceright"];
+ else if (sub.str(3) == " ")
+ replace = "\\ ";
else {
// else part should not exist
LASSERT(0, /**/);
@@ -917,6 +920,8 @@ string correctRegex(string t, bool withformat)
replace = "\\{";
else if (sub.str(3) == "}")
replace = "\\}";
+ else if (sub.str(3) == " ")
+ replace = "\\ ";
else {
// else part should not exist
LASSERT(0, /**/);
@@ -929,6 +934,8 @@ string correctRegex(string t, bool withformat)
replace = "}";
else if (sub.str(4) == "%")
replace = "%";
+ else if (sub.str(4) == " ")
+ replace = " ";
else {
AccentsIterator it_ac = accents.find(sub.str(4));
if (it_ac == accents.end()) {
@@ -940,14 +947,14 @@ string correctRegex(string t, bool withformat)
}
}
if (lastpos < (size_t) sub.position(2))
- s += t.substr(lastpos, sub.position(2) - lastpos);
+ s += std::regex_replace(t.substr(lastpos, sub.position(2) - lastpos), \
protectedSpace, R"( )"); s += replace;
lastpos = sub.position(2) + sub.length(2);
}
if (lastpos == 0)
- s = t;
+ s = std::regex_replace(t, protectedSpace, R"( )");
else if (lastpos < t.length())
- s += t.substr(lastpos, t.length() - lastpos);
+ s += std::regex_replace(t.substr(lastpos, t.length() - lastpos), protectedSpace, \
R"( )"); // Handle quotes in regex
// substitute all '„', '"', ' ', ' ' with '"'
// and all '‚', '‘', '›', '‹' with "\'"
commit 286dcfc9c767f1e791e219d9b282c62a40145f1b
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 8 15:32:13 2022 +0200
FindAdv: Correct the 'fix' in 4bb427a2
:(
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 669742e..2208fd4 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -3804,10 +3804,10 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, \
int len, bool at_be int matchend = match.capturedEnd(0);
size_t strsize = qstr.size();
if (!opt.ignoreformat) {
- while (mres.match_len > 0) {
+ while (mres.match_len > 1) {
QChar c = qstr.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
- // mres.match_len--;
+ mres.match_len--;
matchend--;
}
else
@@ -3833,10 +3833,10 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, \
int len, bool at_be int matchend = strend;
size_t strsize = str.size();
if (!opt.ignoreformat) {
- while (mres.match_len > 0) {
+ while (mres.match_len > 1) {
char c = str.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
- // mres.match_len--;
+ mres.match_len--;
matchend--;
}
else
commit 4bb427a2443d64bd01aad66ebdc0b3f802546bae
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 8 14:30:45 2022 +0200
FindAdv: Amend 627cd6de: Use '~' instead of "\\ " for search if possible
Also fix a thinko in interpreting the found values.
The match_len describes the length of the second regex field,
while matchend is the length of the search field 0.
diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp
index 92d4c43..669239b 100644
--- a/src/insets/InsetSpace.cpp
+++ b/src/insets/InsetSpace.cpp
@@ -579,7 +579,10 @@ void InsetSpace::latex(otexstream & os, OutputParams const & \
runparams) const {
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
- os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) \
? " " : "\\ "); + if (runparams.for_search != OutputParams::NoSearch)
+ os << "~";
+ else
+ os << (runparams.free_spacing ? " " : "\\ ");
break;
case InsetSpaceParams::PROTECTED:
if (runparams.local_font &&
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 83ccb23..669742e 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -831,10 +831,6 @@ string string2regex(string in)
blanks++;
i++;
}
- else if (tempx[i] == '\\' && tempx[i+1] == '\\' && tempx[i+2] == ' ') {
- blanks++;
- i += 2;
- }
else {
if (blanks > 0) {
temp += "\\s+";
@@ -3740,6 +3736,9 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, \
int len, bool at_be if (lng != str.size()) {
str = str.substr(0, lng);
}
+ // Replace occurences of '~' to ' '
+ static std::regex specialChars { R"(~)" };
+ str = std::regex_replace(str, specialChars, R"( )" );
}
if (str.empty()) {
mres.match_len = -1;
@@ -3808,7 +3807,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, \
int len, bool at_be while (mres.match_len > 0) {
QChar c = qstr.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
- mres.match_len--;
+ // mres.match_len--;
matchend--;
}
else
@@ -3837,7 +3836,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, \
int len, bool at_be while (mres.match_len > 0) {
char c = str.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
- mres.match_len--;
+ // mres.match_len--;
matchend--;
}
else
commit 627cd6dec2279f2adf473f789078861493a62a7f
Author: Kornel Benko <kornel@lyx.org>
Date: Fri May 6 17:16:49 2022 +0200
FindAdv: Simplify search for space also if not using regex
In the pattern-string convert occurences of
' ', '~'
and the values we get with
space-insert normal
space-insert protected
to "\s+".
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index c101e71..83ccb23 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -814,8 +814,39 @@ typedef vector<pair<string, string> > Escapes;
string string2regex(string in)
{
- static std::regex specialChars { R"([-[\]{}()*+?.,\^$|#\s\$\\])" };
- string temp = std::regex_replace(in, specialChars, R"(\$&)" );
+ static std::regex specialChars { R"([-[\]{}()*+?.,\^$|#\$\\])" };
+ string tempx = std::regex_replace(in, specialChars, R"(\$&)" );
+ // Special handling for ' '
+ string temp("");
+ int blanks = 0;
+ for (unsigned i = 0; i < tempx.size(); i++) {
+ if (tempx[i] == ' ' || tempx[i] == '~' ) {
+ // normal blanks
+ blanks++;
+ }
+ else if ((tempx[i] == '\302' && tempx[i+1] == '\240')
+ || (tempx[i] == '\342' && tempx[i+1] == '\200')) {
+ // protected space
+ // thin space
+ blanks++;
+ i++;
+ }
+ else if (tempx[i] == '\\' && tempx[i+1] == '\\' && tempx[i+2] == ' ') {
+ blanks++;
+ i += 2;
+ }
+ else {
+ if (blanks > 0) {
+ temp += "\\s+";
+ }
+ temp += tempx[i];
+ blanks = 0;
+ }
+ }
+ if (blanks > 0) {
+ temp += "\\s+";
+ }
+
string temp2("");
size_t lastpos = 0;
size_t fl_pos = 0;
@@ -3374,10 +3405,12 @@ static string correctlanguagesetting(string par, bool \
isPatternString, bool with while ((parlen > 0) && (par[parlen-1] == '\n')) {
parlen--;
}
+#if 0
if (isPatternString && (parlen > 0) && (par[parlen-1] == '~')) {
// Happens to be there in case of description or labeling environment
parlen--;
}
+#endif
string result;
if (withformat) {
// Split the latex input into pieces which
commit 70a762f91c6d43234a0290fd8d869937597feb9d
Author: Kornel Benko <kornel@lyx.org>
Date: Thu May 5 15:56:15 2022 +0200
FindAdv: Small improvements
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index df1d905..e1ece12 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -2619,7 +2619,7 @@ void Paragraph::latex(BufferParams const & bparams,
runparams);
runningChange = Change(Change::UNCHANGED);
- os << (isEnvSeparator(i) ? "}]~" : "}] ");
+ os << ((isEnvSeparator(i) && (runparams.for_search == OutputParams::NoSearch)) ? \
"}]~" : "}] "); column +=3;
}
// For InTitle commands, we have already opened a group
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 1334805..c101e71 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -2826,6 +2826,8 @@ string Intervall::show(int lastpos)
int idx = 0; /* int intervalls */
string s;
int i = 0;
+ if ((unsigned) lastpos > par.size())
+ lastpos = par.size();
for (idx = 0; idx <= ignoreidx; idx++) {
while (i < lastpos) {
int printsize;
@@ -3710,7 +3712,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, \
int len, bool at_be mres.match_len = -1;
return mres;
}
- LYXERR(Debug::FINDVERBOSE, "After normalization: Matching against:\n'" << str << \
"'"); + LYXERR(Debug::FINDVERBOSE|Debug::FIND, "After normalization: Matching \
against:\n'" << str << "'");
LASSERT(use_regexp, /**/);
{
commit 809a063358ba6ee5ca2be27be111b0d605e0d723
Author: Jean-Marc Lasgouttes <lasgouttes@lyx.org>
Date: Thu May 5 10:44:45 2022 +0200
Avoid crash when extending word selection
This happens when the cursor goes into a deeper inset, since
selectWord() was called on the wrong Text object.
Additionally, fix the new word selection when cursor goes before
existing selection.
Fixes bug #12529.
diff --git a/src/Text3.cpp b/src/Text3.cpp
index 185008b..f871bb3 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -1874,8 +1874,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
bvcur.resetAnchor();
if (!bv->mouseSetCursor(cur, cmd.modifier() == ShiftModifier))
cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor);
- if (bvcur.wordSelection())
- selectWord(bvcur, WHOLE_WORD);
+ // FIXME: move this to mouseSetCursor?
+ if (bvcur.wordSelection() && bvcur.inTexted()) {
+ // select word around new position
+ Cursor c = bvcur;
+ c.selection(false);
+ c.text()->selectWord(c, WHOLE_WORD);
+ // use the correct word boundary, depending on selection direction
+ if (bvcur.top() > bvcur.normalAnchor())
+ bvcur.pos() = c.selEnd().pos();
+ else
+ bvcur.pos() = c.selBegin().pos();
+ }
break;
case mouse_button::button2:
commit 9f30de3c5dfc036d2b0b8e51dd935c6300fc7286
Author: Kornel Benko <kornel@lyx.org>
Date: Wed May 4 15:59:57 2022 +0200
FindAdv: Partly revert 02c7dbb8. Handle the space in Paragraph.cpp instead.
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 434e515..df1d905 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1213,22 +1213,31 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
|| contains(style.pass_thru_chars, c)
|| contains(runparams.pass_thru_chars, c)) {
if (runparams.for_search != OutputParams::NoSearch) {
- if (c == '\\')
+ switch (c) {
+ case '\\':
os << "\\\\";
- else if (c == '{')
+ return;
+ case '{':
os << "\\braceleft ";
- else if (c == '}')
+ return;
+ case '}':
os << "\\braceright ";
- else if (c != '\0')
+ return;
+ case ' ':
+ case '\0':
+ break;
+ default:
os.put(c);
+ return;
+ }
}
else if (c != '\0') {
Encoding const * const enc = runparams.encoding;
if (enc && !enc->encodable(c))
throw EncodingException(c);
os.put(c);
+ return;
}
- return;
}
// TIPA uses its own T3 encoding
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 2c14cbd..1334805 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -3138,28 +3138,6 @@ int LatexInfo::dispatch(ostringstream &os, int previousStart, \
KeyInfo &actual) if (count > 0)
interval_.addIntervall(blk, blk+count);
}
- bool blank_found = false;
- // Removing invalid space between
- // "item{description}[{...}]"
- // and
- // "\foreignlanguage{..}"
- if (interval_.par[posdown+1] == ' ') {
- if (posdown == interval_.par.size() -2)
- blank_found = true;
- else if (nextKeyIdx > 0) {
- for (int i = nextKeyIdx; i < int(entries_.size()); i++) {
- if (entries_[i]._tokenstart <= posdown)
- continue;
- if ((entries_[i].keytype == KeyInfo::isMain)
- && (entries_[i]._tokenstart == posdown +2)) {
- blank_found = true;
- }
- break;
- }
- }
- }
- if (blank_found)
- interval_.addIntervall(posdown+1, posdown+2);
}
break;
}
commit 02c7dbb824b8b1b61e0472336cb94c9be4aa674d
Author: Kornel Benko <kornel@lyx.org>
Date: Tue May 3 16:31:52 2022 +0200
FindAdv: Better handling of lists
Still not optimal if searching different languages inside a list.
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index de512b8..2c14cbd 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -2736,9 +2736,14 @@ void LatexInfo::buildKeys(bool isPatternString)
// handle like standard keys with 1 parameter.
makeKey("url|href|vref|thanks", KeyInfo(KeyInfo::isStandard, 1, false), \
isPatternString);
- // Ignore deleted text
- makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString);
- // but preserve added text
+ if (ignoreFormats.getDeleted()) {
+ // Ignore deleted text
+ makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString);
+ }
+ else {
+ // but preserve added text
+ makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString);
+ }
makeKey("lyxadded", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString);
// Macros to remove, but let the parameter survive
@@ -3133,6 +3138,28 @@ int LatexInfo::dispatch(ostringstream &os, int previousStart, \
KeyInfo &actual) if (count > 0)
interval_.addIntervall(blk, blk+count);
}
+ bool blank_found = false;
+ // Removing invalid space between
+ // "item{description}[{...}]"
+ // and
+ // "\foreignlanguage{..}"
+ if (interval_.par[posdown+1] == ' ') {
+ if (posdown == interval_.par.size() -2)
+ blank_found = true;
+ else if (nextKeyIdx > 0) {
+ for (int i = nextKeyIdx; i < int(entries_.size()); i++) {
+ if (entries_[i]._tokenstart <= posdown)
+ continue;
+ if ((entries_[i].keytype == KeyInfo::isMain)
+ && (entries_[i]._tokenstart == posdown +2)) {
+ blank_found = true;
+ }
+ break;
+ }
+ }
+ }
+ if (blank_found)
+ interval_.addIntervall(posdown+1, posdown+2);
}
break;
}
commit f80ee027b3cceeaf780027ec317100717ffa5ab3
Author: jpc <jpc@lyx.org>
Date: Mon May 2 18:43:16 2022 +0200
Update fr.po
diff --git a/po/fr.gmo b/po/fr.gmo
index 453e4bd..41b0231 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index 7e45a8f..23464b5 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -362,8 +362,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-04-24 17:20+0200\n"
-"PO-Revision-Date: 2022-04-24 17:23+0200\n"
+"POT-Creation-Date: 2022-05-01 18:14+0200\n"
+"PO-Revision-Date: 2022-05-02 11:14+0200\n"
"Last-Translator: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>\n"
"Language-Team: lyxfr\n"
"Language: fr\n"
@@ -1306,6 +1306,7 @@ msgid "Font Properties"
msgstr "Propriétés des polices"
#: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:475
msgid "Font family"
msgstr "Famille de police"
@@ -1314,6 +1315,7 @@ msgid "Fa&mily:"
msgstr "&Famille :"
#: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:447
msgid "Font series"
msgstr "Série de police"
@@ -1322,6 +1324,7 @@ msgid "&Series:"
msgstr "&Série :"
#: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:510
msgid "Font shape"
msgstr "Forme de police"
@@ -1331,11 +1334,13 @@ msgstr "F&orme :"
#: src/frontends/qt/ui/CharacterUi.ui:114
#: src/frontends/qt/ui/CharacterUi.ui:133
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:524
msgid "Font size"
msgstr "Taille de police"
#: src/frontends/qt/ui/CharacterUi.ui:159
#: src/frontends/qt/ui/CharacterUi.ui:178
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:454
msgid "Font color"
msgstr "Couleur de police"
@@ -1369,12 +1374,14 @@ msgstr "Paramètres de langue"
msgid "&Language:"
msgstr "Lan&gue :"
-#: src/frontends/qt/ui/CharacterUi.ui:281 src/frontends/qt/ui/ListingsUi.ui:334
-#: lib/layouts/bicaption.module:16 lib/layouts/europasscv.layout:440
-#: lib/layouts/europasscv.layout:475 lib/layouts/europasscv.layout:482
-#: lib/layouts/europecv.layout:321 lib/layouts/europecv.layout:327
-#: lib/layouts/moderncv.layout:580 src/frontends/qt/GuiDocument.cpp:1781
-#: src/frontends/qt/GuiPrefs.cpp:2430 src/frontends/qt/Menus.cpp:938
+#: src/frontends/qt/ui/CharacterUi.ui:281
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:482
+#: src/frontends/qt/ui/ListingsUi.ui:334 lib/layouts/bicaption.module:16
+#: lib/layouts/europasscv.layout:440 lib/layouts/europasscv.layout:475
+#: lib/layouts/europasscv.layout:482 lib/layouts/europecv.layout:321
+#: lib/layouts/europecv.layout:327 lib/layouts/moderncv.layout:580
+#: src/frontends/qt/GuiDocument.cpp:1781 src/frontends/qt/GuiPrefs.cpp:2430
+#: src/frontends/qt/Menus.cpp:938
msgid "Language"
msgstr "Langue"
@@ -1980,24 +1987,24 @@ msgid "Case &sensitive"
msgstr "Selon la &casse"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:205
-#: src/frontends/qt/FindAndReplace.cpp:648
+#: src/frontends/qt/FindAndReplace.cpp:717
msgid "Find next occurrence (Enter, backwards: Shift+Enter)"
msgstr "Rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj+Entrée)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:208
-#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:647
+#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:716
msgid "Find &>"
msgstr "Rechercher &>"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:221
-#: src/frontends/qt/FindAndReplace.cpp:650
+#: src/frontends/qt/FindAndReplace.cpp:719
msgid "Replace and find next occurrence (Enter, backwards: Shift+Enter)"
msgstr ""
"Remplacer et rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj"
"+Entrée)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:224
-#: src/frontends/qt/FindAndReplace.cpp:649
+#: src/frontends/qt/FindAndReplace.cpp:718
msgid "Rep&lace >"
msgstr "&Remplacer >"
@@ -2050,31 +2057,19 @@ msgstr "Document &ouverts"
msgid "&All manuals"
msgstr "Tous les man&uels"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:370
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
+msgid "E&xpand macros"
+msgstr "&Déployer les macros"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:380
msgid "Restrict search to math environments only"
msgstr "Restreindre la recherche aux seuls environnements mathématiques"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid "Search on&ly in maths"
msgstr "Rechercher uniquement dans les formules mat&hématiques"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
-msgid ""
-"If unchecked, the search will be limited to occurrences of the selected text "
-"and paragraph style"
-msgstr ""
-"Case non cochée, la recherche sera limitée aux occurrences du texte "
-"sélectionné et du style de paragraphe"
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:386
-msgid "I&gnore format"
-msgstr "Ignorer le &format"
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
-msgid "E&xpand macros"
-msgstr "&Déployer les macros"
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:406
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:390
msgid ""
"Keep the case of the replacement's first letter as in each matching text "
"first letter"
@@ -2082,10 +2077,61 @@ msgstr ""
"Conserver la casse de la première lettre du remplacement telle quelle dans "
"chaque chaîne correspondante"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:409
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:393
msgid "&Preserve first case on replace"
msgstr "&Préserver la casse du premier caractère lors du remplacement"
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:413
+msgid "Do not search in content that is not output (e.g., notes)"
+msgstr "Ne pas rechercher dans les contenus non exportables (e.g., les notes)"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:416
+msgid "Ignore &non-output content"
+msgstr "Ignorer les &éléments non exportables"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:425
+msgid ""
+"If the search string is formatted in a non-default way, only find strings "
+"formatted like the search string in the checked respects"
+msgstr ""
+"Si la chaîne rechercher est mise ne forme d'une manière non implicite, "
+"trouver seulement les chaînes mises en forme comme la chaîne rechercher "
+"pour le rubriques cochées"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
+msgid "Ad&here to search string formatting of"
+msgstr "&Appliquer la mise en forme de la chaîne recherchée pour"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
+msgid "Strike-through"
+msgstr "Rayé"
+
+# revoir, accord avec les autres mots incertain
+# Pas nécessaire (JPC)
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:461
+msgid "Emph/noun"
+msgstr "En évidence/nom propre"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
+msgid "Deselect all"
+msgstr "Tout désélectionner"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
+msgid "Sectioning markup"
+msgstr "Balisage de sectionnement"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:496
+msgid "Deletion (change)"
+msgstr "Suppression (modifié)"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:503
+msgid "Underlining"
+msgstr "Souligné"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
+msgid "Select all"
+msgstr "Tout sélectionner"
+
#: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form"
@@ -5618,7 +5664,7 @@ msgstr "Sans préfixe"
msgid "Find previous occurrence (Shift+Enter)"
msgstr "Rechercher l'occurrence précédente (Maj+Entrée)"
-#: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:642
+#: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:711
msgid "&< Find"
msgstr "&< Rechercher"
@@ -31294,15 +31340,15 @@ msgstr ""
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
-#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358
-#: src/lyxfind.cpp:701 src/lyxfind.cpp:729
+#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
+#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&Yes"
msgstr "&Oui"
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
-#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358
-#: src/lyxfind.cpp:701 src/lyxfind.cpp:729
+#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
+#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&No"
msgstr "&Non"
@@ -31507,8 +31553,8 @@ msgstr "Recherche avancée en cours (appuyer sur ESC pour \
annuler) . . ." msgid "Advanced search cancelled by user"
msgstr "Recherche avancée annulée par l'utilisateur"
-#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:357
-#: src/lyxfind.cpp:700 src/lyxfind.cpp:728
+#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:364
+#: src/lyxfind.cpp:707 src/lyxfind.cpp:735
msgid "Wrap search?"
msgstr "Recherche récursive ?"
@@ -31516,23 +31562,23 @@ msgstr "Recherche récursive ?"
msgid "Nothing to search"
msgstr "Rien rechercher"
-#: src/frontends/qt/FindAndReplace.cpp:479
+#: src/frontends/qt/FindAndReplace.cpp:519
msgid "No open document(s) in which to search"
msgstr "Aucun document ouvert dans lequel rechercher"
-#: src/frontends/qt/FindAndReplace.cpp:588
+#: src/frontends/qt/FindAndReplace.cpp:657
msgid "Advanced Find and Replace"
msgstr "Rechercher et remplacer (élaboré)"
-#: src/frontends/qt/FindAndReplace.cpp:643
+#: src/frontends/qt/FindAndReplace.cpp:712
msgid "Find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr "Trouver l'occurrence précédente (Maj+Entrée, vers l'avant : Entrée)"
-#: src/frontends/qt/FindAndReplace.cpp:644
+#: src/frontends/qt/FindAndReplace.cpp:713
msgid "< Rep&lace"
msgstr "< &Remplacer"
-#: src/frontends/qt/FindAndReplace.cpp:645
+#: src/frontends/qt/FindAndReplace.cpp:714
msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr ""
"Remplacer et rechercher l'occurrence précédente (Maj+Entrée, vers l'avant : "
@@ -37331,15 +37377,15 @@ msgstr "Aperçu prêt"
msgid "Preview failed"
msgstr "Échec de l'aperçu"
-#: src/lyxfind.cpp:275
+#: src/lyxfind.cpp:282
msgid "Search error"
msgstr "Erreur de recherche"
-#: src/lyxfind.cpp:275
+#: src/lyxfind.cpp:282
msgid "Search string is empty"
msgstr "La chaîne de caractères chercher est vide"
-#: src/lyxfind.cpp:307
+#: src/lyxfind.cpp:314
msgid ""
"The search string matches the selection, and search is limited to "
"selection.\n"
@@ -37349,11 +37395,11 @@ msgstr ""
" la sélection.\n"
"Continuer chercher en dehors?"
-#: src/lyxfind.cpp:309 src/lyxfind.cpp:336
+#: src/lyxfind.cpp:316 src/lyxfind.cpp:343
msgid "Search outside selection?"
msgstr "Rechercher en-dehors de la sélection ?"
-#: src/lyxfind.cpp:334
+#: src/lyxfind.cpp:341
msgid ""
"The search string was not found within the selection.\n"
"Continue search outside?"
@@ -37361,7 +37407,7 @@ msgstr ""
"La chaîne recherchée n'a pas été trouvée dans la sélection.\n"
"Continuer chercher en-dehors ?"
-#: src/lyxfind.cpp:352 src/lyxfind.cpp:698
+#: src/lyxfind.cpp:359 src/lyxfind.cpp:705
msgid ""
"End of file reached while searching forward.\n"
"Continue searching from the beginning?"
@@ -37369,7 +37415,7 @@ msgstr ""
"Fin du fichier atteinte lors de la recherche en avant.\n"
"Continuer la recherche depuis le début ?"
-#: src/lyxfind.cpp:355 src/lyxfind.cpp:726
+#: src/lyxfind.cpp:362 src/lyxfind.cpp:733
msgid ""
"Beginning of file reached while searching backward.\n"
"Continue searching from the end?"
@@ -37377,63 +37423,63 @@ msgstr ""
"Début du fichier atteint lors de la recherche en arrière.\n"
"Continuer la recherche depuis la fin ?"
-#: src/lyxfind.cpp:371
+#: src/lyxfind.cpp:378
msgid "Search reached end of document, continuing from beginning."
msgstr "Fin du document atteinte, la recherche continue partir du début."
-#: src/lyxfind.cpp:372
+#: src/lyxfind.cpp:379
msgid "Search reached beginning of document, continuing from end."
msgstr ""
"La recherche a atteint le début du document, elle continue depuis la fin."
-#: src/lyxfind.cpp:671
+#: src/lyxfind.cpp:678
msgid "String not found in selection."
msgstr "Chaîne de caractères introuvable dans le sélection."
-#: src/lyxfind.cpp:673
+#: src/lyxfind.cpp:680
msgid "String not found."
msgstr "Chaîne de caractères introuvable."
-#: src/lyxfind.cpp:676
+#: src/lyxfind.cpp:683
msgid "String found."
msgstr "Chaîne de caractères trouvée."
-#: src/lyxfind.cpp:678
+#: src/lyxfind.cpp:685
msgid "String has been replaced."
msgstr "Chaîne remplacée."
-#: src/lyxfind.cpp:681
+#: src/lyxfind.cpp:688
#, c-format
msgid "%1$d strings have been replaced in the selection."
msgstr "%1$d chaînes remplacées dans le sélection."
-#: src/lyxfind.cpp:682
+#: src/lyxfind.cpp:689
#, c-format
msgid "%1$d strings have been replaced."
msgstr "%1$d chaînes remplacées."
-#: src/lyxfind.cpp:4679
+#: src/lyxfind.cpp:4683
msgid "One match has been replaced."
msgstr "Une correspondance a été remplacée."
-#: src/lyxfind.cpp:4682
+#: src/lyxfind.cpp:4686
msgid "Two matches have been replaced."
msgstr "Deux correspondances ont été remplacées."
-#: src/lyxfind.cpp:4685
+#: src/lyxfind.cpp:4689
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d correspondances ont été remplacées."
-#: src/lyxfind.cpp:4691
+#: src/lyxfind.cpp:4695
msgid "Match not found."
msgstr "Chaîne de caractères introuvable."
-#: src/lyxfind.cpp:4697
+#: src/lyxfind.cpp:4701
msgid "Match has been replaced."
msgstr "Chaîne de caractères remplacée."
-#: src/lyxfind.cpp:4699
+#: src/lyxfind.cpp:4703
msgid "Match found."
msgstr "Chaîne de caractères reconnue."
@@ -38037,6 +38083,16 @@ msgstr ""
msgid "Unknown user"
msgstr "Utilisateur inconnu"
+#~ msgid ""
+#~ "If unchecked, the search will be limited to occurrences of the selected "
+#~ "text and paragraph style"
+#~ msgstr ""
+#~ "Case non cochée, la recherche sera limitée aux occurrences du texte "
+#~ "sélectionné et du style de paragraphe"
+
+#~ msgid "I&gnore format"
+#~ msgstr "Ignorer le &format"
+
#~ msgid "foot"
#~ msgstr "bas"
@@ -39277,9 +39333,6 @@ msgstr "Utilisateur inconnu"
#~ msgid " (version control)"
#~ msgstr " (contrôle de version)"
-#~ msgid " (changed)"
-#~ msgstr " (modifié)"
-
#~ msgid " (read only)"
#~ msgstr " (en lecture seule)"
commit 6a70a26a4aa2846bbe04048fed4121e817fc4fd9
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 1 16:03:45 2022 +0200
FindAdv: Debug messages
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index ee92523..de512b8 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -3934,7 +3934,7 @@ string MatchStringAdv::normalize(docstring const & s, bool \
ignore_format) const while (regex_replace(t, t, \
"\\\\(emph|noun|text(bf|sl|sf|it|tt)|(u|uu)line|(s|x)out|uwave)(\\{(\\{\\})?\\})+", \
"")) LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} \
macros from: " << t); while (regex_replace(t, t, \
"\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", \
""))
- LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} \
macros from: " << t); + LYXERR(Debug::FINDVERBOSE, " further removing stale empty \
\\section{}, \\part{}, \\paragraph{} macros from: " << t); while (regex_replace(t, \
t, "\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", ""));
return t;
@@ -3970,7 +3970,7 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
docstring res = from_utf8(latexNamesToUtf8(par.asString(cur.pos(), end,
option,
&runparams)));
- LYXERR(Debug::FIND, "Stringified text from pos(" << cur.pos() << ") len(" << len \
<< "): " << res); + LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified text from \
pos(" << cur.pos() << ") len(" << len << "): " << res); return res;
} else if (cur.inMathed()) {
CursorSlice cs = cur.top();
@@ -4026,7 +4026,7 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
endpos = cur.pos() + len;
TeXOnePar(buf, *cur.innerText(), cur.pit(), os, runparams,
string(), cur.pos(), endpos, true);
- LYXERR(Debug::FIND, "Latexified text from pos(" << cur.pos() << ") len(" << len << \
"): " << ods.str()); + LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Latexified text from \
pos(" << cur.pos() << ") len(" << len << "): " << ods.str()); return(ods.str());
} else if (cur.inMathed()) {
// Retrieve the math environment type, and add '$' or '$[' or others \
(\begin{equation}) accordingly
commit aec76acecc835920cfdd5ce0bdcd8c012d70f75e
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 1 10:34:12 2022 +0200
Small addition concerning advanced find and regular expression
diff --git a/lib/doc/UserGuide.lyx b/lib/doc/UserGuide.lyx
index 30a6ad3..493e6d2 100644
--- a/lib/doc/UserGuide.lyx
+++ b/lib/doc/UserGuide.lyx
@@ -165,6 +165,7 @@ logicalmkup
\author 5863344 "Enrico Forestieri"
\author 244031559 "Yuriy"
\author 630872221 "Jean-Pierre Chrétien" jeanpierre.chretien@free.fr
+\author 1549938239 "Kornel Benko"
\author 1675569489 "Stephan Witt"
\end_header
@@ -8973,14 +8974,12 @@ Verbatim
\end_layout
\begin_layout Verbatim
-
This is Verbatim.
\end_layout
\begin_layout Verbatim
\noindent
\align block
-
The following 2 lines are empty:
\end_layout
@@ -8993,7 +8992,6 @@ The following 2 lines are empty:
\end_layout
\begin_layout Verbatim
-
Almost everything is allowed in Verbatim:"%&$ #~'`
\backslash
}][{|
@@ -9017,7 +9015,6 @@ Verbatim
\end_layout
\begin_layout Verbatim*
-
This is Verbatim*.
\end_layout
@@ -38775,7 +38772,7 @@ R
.
\end_layout
-\begin_layout Subsection
+\begin_layout Subsubsection
Advanced usage
\end_layout
@@ -38863,12 +38860,25 @@ Find
\end_layout
\begin_layout Enumerate
-Searching for all text with a given style: for example, after unchecking
- the
+Searching for all text with a given style: for example, after
+\change_deleted 1549938239 1651390777
+un
+\change_unchanged
+checking the
+\change_inserted 1549938239 1651390710
+
\family sans
+'Adhere to search string formatting of'
+\change_deleted 1549938239 1651390724
Ignore format
+\change_unchanged
+
\family default
- option from the
+
+\change_inserted 1549938239 1651390961
+and the 'Select all'
+\change_unchanged
+option from the
\family sans
Settings
\family default
@@ -38888,8 +38898,109 @@ Settings
regular expression in a bullet or enumerated list or a section heading,
you can find all bullet or enumerated lists or section headings.
+
+\change_inserted 1549938239 1651391772
+ The meaning of the specific style options (if checked) is as follows:
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\change_inserted 1549938239 1651391862
+Language Allows searching for text in specific language
\end_layout
+\begin_layout Description
+
+\change_inserted 1549938239 1651392163
+Font
+\begin_inset space ~
+\end_inset
+
+color colored text like cyan, yellow, etc
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392038
+Font
+\begin_inset space ~
+\end_inset
+
+family Roman, Sans serif, Typewriter
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392204
+Font
+\begin_inset space ~
+\end_inset
+
+series e.g.
+ Bold
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392249
+Font
+\begin_inset space ~
+\end_inset
+
+shape e.g.
+ upright, italic, ...
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392299
+Font
+\begin_inset space ~
+\end_inset
+
+size e.g.
+ Large, Tiny, ...
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392343
+Emph/noun Semantic Markup: Emphasized, Noun
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392414
+Underlining e.g.
+ Single, Double, Wawy
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392503
+Strike-through Single, With '/'
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392776
+Deletion searches also in deleted parts (in case of 'Track Changes' enabled)
+\end_layout
+
+\begin_layout Description
+
+\change_inserted 1549938239 1651392891
+Sectioning
+\begin_inset space ~
+\end_inset
+
+markup e.g.
+ title, part, chapter, section, ...
+
+\end_layout
+
+\end_deeper
\begin_layout Standard
Finally, references to (sub)expressions in regexp may be used as usual:
Enclosing parts of the expression within round braces
@@ -38909,9 +39020,25 @@ Finally, references to (sub)expressions in regexp may be \
used as usual: \begin_inset Newline newline
\end_inset
+
+\change_inserted 1549938239 1651393222
+
+\backslash
+b(
+\backslash
+w+)
+\backslash
+s
+\backslash
+1
+\backslash
+b
+\change_deleted 1549938239 1651393089
[[:space:]]([[:alpha:]]+)[[:space:]]
\backslash
1[[:space:]]
+\change_unchanged
+
\begin_inset Newline newline
\end_inset
@@ -38919,7 +39046,11 @@ in order to find word repetitions, if there are any.
\end_layout
\begin_layout Standard
-The usage of back references in the replaced text is not (yet) implemented.
+The usage of back references in the replaced text is not (yet)
+\change_inserted 1549938239 1651393403
+fully
+\change_unchanged
+implemented.
\end_layout
\begin_layout Standard
diff --git a/lib/ui/stdcontext.inc b/lib/ui/stdcontext.inc
index ed9a9da..a9b73cb 100644
--- a/lib/ui/stdcontext.inc
+++ b/lib/ui/stdcontext.inc
@@ -414,7 +414,7 @@ Menuset
Menu "context-edit-regexp"
Item "Anything|A" "command-sequence regexp-mode; self-insert .*"
Item "Anything Non-Empty|o" "command-sequence regexp-mode; self-insert .+"
- Item "Any Word|W" "command-sequence regexp-mode; self-insert [a-z]+"
+ Item "Any Word|W" "command-sequence regexp-mode; self-insert \w+"
Item "Any Number|N" "command-sequence regexp-mode; self-insert [0-9]+"
Item "User Defined|U" "regexp-mode"
End
commit 32367d3dc559e139d8ef310c5d70e9450a2515c3
Author: Kornel Benko <kornel@lyx.org>
Date: Sat Apr 30 20:00:38 2022 +0200
Update sk.po
diff --git a/po/sk.po b/po/sk.po
index 959591a..a5c177d 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX-2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-04-24 17:25+0200\n"
-"PO-Revision-Date: 2022-04-24 15:29+0000\n"
+"POT-Creation-Date: 2022-04-30 19:26+0200\n"
+"PO-Revision-Date: 2022-04-30 17:57+0000\n"
"Last-Translator: Kornel Benko <kornel@lyx.org>\n"
"Language-Team: Slovak <kornel@lyx.org>\n"
"Language: sk\n"
@@ -980,7 +980,7 @@ msgstr "&Farba:"
#: src/frontends/qt/ui/CharacterUi.ui:185
msgid "U&nderlining:"
-msgstr "Po&dčiarnutie:"
+msgstr "Po&dčiarknutie:"
#: src/frontends/qt/ui/CharacterUi.ui:201
msgid "Underlining of text"
@@ -1679,18 +1679,6 @@ msgstr "Obmedziť hľadanie na mat. prostredia"
msgid "Search on&ly in maths"
msgstr "Prehľadať len mat. vzork&y"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
-msgid ""
-"If unchecked, the search will be limited to occurrences of the selected text "
-"and paragraph style"
-msgstr ""
-"Keď nezaškrtnuté, hľadanie je ohraničené len na výskyty v označenom texte a \
"
-"v štýle odstavca"
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:386
-msgid "I&gnore format"
-msgstr "&Ignorovať formát"
-
#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
msgid "E&xpand macros"
msgstr "&Rozvinúť makrá"
@@ -1705,6 +1693,54 @@ msgstr "Udržovať veľkosť prvých písiem v slove tak, ako \
v nájdenom texte" msgid "&Preserve first case on replace"
msgstr "&Zachovať veľkosť prvých písiem"
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:413
+msgid "Do not search in content that is not output (e.g., notes)"
+msgstr "Nehľadať v častiach dokumentu ktoré nebudú vo výstupe (napr. \
poznámky)" +
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:416
+msgid "Ignore &non-output content"
+msgstr "&Ignorovať prvky bez výstupu"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:425
+msgid ""
+"If the search string is formatted in a non-default way, only find strings "
+"formatted like the search string in the checked respects"
+msgstr ""
+"Reťazec formátovaný na ne-štandardný spôsob nájde reťazce s príznačne "
+"zaškrtnutými vlastnosťami"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
+msgid "Ad&here to search string formatting of"
+msgstr "Dr&žať hľadaný reťazec s vlastnosťou pre"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
+msgid "Strike-through"
+msgstr "preškrtanie"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:461
+msgid "Emph/noun"
+msgstr "dôraz/meno"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
+msgid "Deselect all"
+msgstr "Vypnúť všetko"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
+msgid "Sectioning markup"
+msgstr "značkovanie členenia"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:496
+msgid "Deletion (change)"
+msgstr "vymazanie (zmena)"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:503
+msgid "Underlining"
+msgstr "podčiarknutie"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
+msgid "Select all"
+msgstr "Vybrať všetko"
+
#: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form"
@@ -37322,6 +37358,16 @@ msgstr ""
msgid "Unknown user"
msgstr "Neznámy používateľ"
+#~ msgid "I&gnore formatting"
+#~ msgstr "&Ignorovať formát"
+
+#~ msgid ""
+#~ "If unchecked, the search will be limited to occurrences of the selected "
+#~ "text and paragraph style"
+#~ msgstr ""
+#~ "Keď nezaškrtnuté, hľadanie je ohraničené len na výskyty v označenom \
texte " +#~ "a v štýle odstavca"
+
#~ msgid "Find and replace mechanism"
#~ msgstr "Mechanizmus hľadať a nahradiť"
@@ -42762,3 +42808,6 @@ msgstr "Neznámy používateľ"
#~ msgid "Set inner lines"
#~ msgstr "Nastaviť vnútorné čiary"
+
+#~ msgid "I&gnore format"
+#~ msgstr "&Ignorovať formát"
commit 4655792bda39495ff920a1b34b8172d19eab5f86
Author: Juergen Spitzmueller <spitz@lyx.org>
Date: Sat Apr 30 17:52:09 2022 +0200
de.po
diff --git a/po/de.gmo b/po/de.gmo
index 0173826..61a1b81 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index 517d75b..e13633c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -94,15 +94,15 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4git\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
-"POT-Creation-Date: 2022-04-24 16:54+0200\n"
-"PO-Revision-Date: 2022-04-24 17:05+0200\n"
+"POT-Creation-Date: 2022-04-30 17:39+0200\n"
+"PO-Revision-Date: 2022-04-30 17:50+0200\n"
"Last-Translator: Jürgen Spitzmüller <spitz@lyx.org>\n"
"Language-Team: Deutsch <lyx-docs@lists.lyx.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Gtranslator 41.0\n"
+"X-Generator: Gtranslator 42.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: src/frontends/qt/ui/AboutUi.ui:27
@@ -1037,6 +1037,7 @@ msgid "Font Properties"
msgstr "Schrifteigenschaften"
#: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:475
msgid "Font family"
msgstr "Schriftfamilie"
@@ -1045,6 +1046,7 @@ msgid "Fa&mily:"
msgstr "&Familie:"
#: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:447
msgid "Font series"
msgstr "Strichstärke"
@@ -1053,6 +1055,7 @@ msgid "&Series:"
msgstr "S&trichstärke:"
#: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:510
msgid "Font shape"
msgstr "Schriftschnitt"
@@ -1062,11 +1065,13 @@ msgstr "Sch&nitt:"
#: src/frontends/qt/ui/CharacterUi.ui:114
#: src/frontends/qt/ui/CharacterUi.ui:133
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:524
msgid "Font size"
msgstr "Schriftgrad"
#: src/frontends/qt/ui/CharacterUi.ui:159
#: src/frontends/qt/ui/CharacterUi.ui:178
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:454
msgid "Font color"
msgstr "Schriftfarbe"
@@ -1100,12 +1105,14 @@ msgstr "Spracheinstellungen"
msgid "&Language:"
msgstr "S&prache:"
-#: src/frontends/qt/ui/CharacterUi.ui:281 src/frontends/qt/ui/ListingsUi.ui:334
-#: lib/layouts/bicaption.module:16 lib/layouts/europasscv.layout:440
-#: lib/layouts/europasscv.layout:475 lib/layouts/europasscv.layout:482
-#: lib/layouts/europecv.layout:321 lib/layouts/europecv.layout:327
-#: lib/layouts/moderncv.layout:580 src/frontends/qt/GuiDocument.cpp:1781
-#: src/frontends/qt/GuiPrefs.cpp:2430 src/frontends/qt/Menus.cpp:938
+#: src/frontends/qt/ui/CharacterUi.ui:281
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:482
+#: src/frontends/qt/ui/ListingsUi.ui:334 lib/layouts/bicaption.module:16
+#: lib/layouts/europasscv.layout:440 lib/layouts/europasscv.layout:475
+#: lib/layouts/europasscv.layout:482 lib/layouts/europecv.layout:321
+#: lib/layouts/europecv.layout:327 lib/layouts/moderncv.layout:580
+#: src/frontends/qt/GuiDocument.cpp:1781 src/frontends/qt/GuiPrefs.cpp:2430
+#: src/frontends/qt/Menus.cpp:938
msgid "Language"
msgstr "Sprache"
@@ -1713,25 +1720,25 @@ msgid "Case &sensitive"
msgstr "&Groß-/Kleinschreibung beachten"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:205
-#: src/frontends/qt/FindAndReplace.cpp:648
+#: src/frontends/qt/FindAndReplace.cpp:717
msgid "Find next occurrence (Enter, backwards: Shift+Enter)"
msgstr ""
"Suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt+Eingabetaste)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:208
-#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:647
+#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:716
msgid "Find &>"
msgstr "Suchen &>"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:221
-#: src/frontends/qt/FindAndReplace.cpp:650
+#: src/frontends/qt/FindAndReplace.cpp:719
msgid "Replace and find next occurrence (Enter, backwards: Shift+Enter)"
msgstr ""
"Ersetze und suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt"
"+Eingabetaste)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:224
-#: src/frontends/qt/FindAndReplace.cpp:649
+#: src/frontends/qt/FindAndReplace.cpp:718
msgid "Rep&lace >"
msgstr "Erse&tzen >"
@@ -1782,31 +1789,19 @@ msgstr "&Geöffnete Dokumente"
msgid "&All manuals"
msgstr "&Alle LyX-Handbücher"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:370
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
+msgid "E&xpand macros"
+msgstr "Mak&ros ausklappen"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:380
msgid "Restrict search to math environments only"
msgstr "Suche auf die Mathe-Umgebung beschränken"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid "Search on&ly in maths"
msgstr "Nur im Ma&the-Umfeld"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
-msgid ""
-"If unchecked, the search will be limited to occurrences of the selected text "
-"and paragraph style"
-msgstr ""
-"Wenn Sie dies deaktivieren, wird die Suche nur auf Vorkommen beschränkt, die "
-"die den ausgewählten Text- und Absatzstil verwenden."
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:386
-msgid "I&gnore format"
-msgstr "Ignoriere For&mat"
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
-msgid "E&xpand macros"
-msgstr "Mak&ros ausklappen"
-
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:406
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:390
msgid ""
"Keep the case of the replacement's first letter as in each matching text "
"first letter"
@@ -1814,10 +1809,60 @@ msgstr ""
"Groß-/Kleinschreibung des ersten Buchstabens des gefundenen Textes "
"beibehalten"
-#: src/frontends/qt/ui/FindAndReplaceUi.ui:409
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:393
msgid "&Preserve first case on replace"
msgstr "Groß-/&Kleinschreibung bewahren"
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:413
+msgid "Do not search in content that is not output (e.g., notes)"
+msgstr ""
+"Nicht nach Inhalten suchen, die nicht ausgegeben werden (bspw. Notizen)"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:416
+msgid "Ignore &non-output content"
+msgstr "&Nicht ausgegebene Inhalte ignorieren"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:425
+msgid ""
+"If the search string is formatted in a non-default way, only find strings "
+"formatted like the search string in the checked respects"
+msgstr ""
+"Wenn der Sucheintrag in einer von den Grundeinstellungen abweichenden Art "
+"und Weise formatiert ist, dann werden nur Zeichenketten gefunden, die in den "
+"Aspekten, die hier ausgewählt sind, wie der Sucheintrag formatiert sind."
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
+msgid "Ad&here to search string formatting of"
+msgstr "Sucheintrags&formatierung beachten bzgl."
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
+msgid "Strike-through"
+msgstr "Durchstreichung"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:461
+msgid "Emph/noun"
+msgstr "Hervorh./Eigenname"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
+msgid "Deselect all"
+msgstr "Alles auswählen"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
+msgid "Sectioning markup"
+msgstr "Überschriftenformat"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:496
+msgid "Deletion (change)"
+msgstr "Löschung (Änderungen)"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:503
+msgid "Underlining"
+msgstr "Unterstreichung"
+
+#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
+msgid "Select all"
+msgstr "Alles auswählen"
+
#: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form"
@@ -5341,7 +5386,7 @@ msgstr "Ohne Präfix"
msgid "Find previous occurrence (Shift+Enter)"
msgstr "Vorhergehender Treffer (Umschalt+Eingabe)"
-#: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:642
+#: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:711
msgid "&< Find"
msgstr "&< Suchen"
@@ -31020,15 +31065,15 @@ msgstr ""
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
-#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358
-#: src/lyxfind.cpp:701 src/lyxfind.cpp:729
+#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
+#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&Yes"
msgstr "&Ja"
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
-#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358
-#: src/lyxfind.cpp:701 src/lyxfind.cpp:729
+#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
+#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&No"
msgstr "&Nein"
@@ -31237,8 +31282,8 @@ msgstr "Erweiterte Suche läuft (drücken Sie ESC, um \
abzubrechen) ..." msgid "Advanced search cancelled by user"
msgstr "Erweiterte Suche durch den Benutzer abgebrochen"
-#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:357
-#: src/lyxfind.cpp:700 src/lyxfind.cpp:728
+#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:364
+#: src/lyxfind.cpp:707 src/lyxfind.cpp:735
msgid "Wrap search?"
msgstr "Von vorne suchen?"
@@ -31246,24 +31291,24 @@ msgstr "Von vorne suchen?"
msgid "Nothing to search"
msgstr "Nichts zum suchen"
-#: src/frontends/qt/FindAndReplace.cpp:479
+#: src/frontends/qt/FindAndReplace.cpp:519
msgid "No open document(s) in which to search"
msgstr "Keine Dokumente geöffnet, in denen gesucht werden kann"
-#: src/frontends/qt/FindAndReplace.cpp:588
+#: src/frontends/qt/FindAndReplace.cpp:657
msgid "Advanced Find and Replace"
msgstr "Erweitertes Suchen und Ersetzen"
-#: src/frontends/qt/FindAndReplace.cpp:643
+#: src/frontends/qt/FindAndReplace.cpp:712
msgid "Find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr ""
"Suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: Eingabetaste)"
-#: src/frontends/qt/FindAndReplace.cpp:644
+#: src/frontends/qt/FindAndReplace.cpp:713
msgid "< Rep&lace"
msgstr "< Erse&tzen"
-#: src/frontends/qt/FindAndReplace.cpp:645
+#: src/frontends/qt/FindAndReplace.cpp:714
msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr ""
"Ersetze und suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: "
@@ -37090,15 +37135,15 @@ msgstr "Vorschau bereit"
msgid "Preview failed"
msgstr "Die Vorschau ist fehlgeschlagen"
-#: src/lyxfind.cpp:275
+#: src/lyxfind.cpp:282
msgid "Search error"
msgstr "Fehler beim Suchen"
-#: src/lyxfind.cpp:275
+#: src/lyxfind.cpp:282
msgid "Search string is empty"
msgstr "Die Such-Zeichenkette ist leer"
-#: src/lyxfind.cpp:307
+#: src/lyxfind.cpp:314
msgid ""
"The search string matches the selection, and search is limited to "
"selection.\n"
@@ -37108,11 +37153,11 @@ msgstr ""
"Suche ist auf die Auswahl begrenzt.\n"
"Außerhalb weitersuchen?"
-#: src/lyxfind.cpp:309 src/lyxfind.cpp:336
+#: src/lyxfind.cpp:316 src/lyxfind.cpp:343
msgid "Search outside selection?"
msgstr "Außerhalb der Auswahl suchen?"
-#: src/lyxfind.cpp:334
+#: src/lyxfind.cpp:341
msgid ""
"The search string was not found within the selection.\n"
"Continue search outside?"
@@ -37120,7 +37165,7 @@ msgstr ""
"Der gesuchte Ausdruck wurde innerhalb der Auswahl nicht gefunden.\n"
"Außerhalb weitersuchen?"
-#: src/lyxfind.cpp:352 src/lyxfind.cpp:698
+#: src/lyxfind.cpp:359 src/lyxfind.cpp:705
msgid ""
"End of file reached while searching forward.\n"
"Continue searching from the beginning?"
@@ -37128,7 +37173,7 @@ msgstr ""
"Das Ende des Dokuments wurde bei der Vorwärtssuche erreicht.\n"
"Suche am Anfang fortsetzen?"
-#: src/lyxfind.cpp:355 src/lyxfind.cpp:726
+#: src/lyxfind.cpp:362 src/lyxfind.cpp:733
msgid ""
"Beginning of file reached while searching backward.\n"
"Continue searching from the end?"
@@ -37136,62 +37181,62 @@ msgstr ""
"Der Anfang des Dokuments wurde bei der Rückwärtssuche erreicht.\n"
"Suche am Ende fortsetzen?"
-#: src/lyxfind.cpp:371
+#: src/lyxfind.cpp:378
msgid "Search reached end of document, continuing from beginning."
msgstr "Das Ende des Dokuments wurde erreicht, suche vom Anfang ab weiter."
-#: src/lyxfind.cpp:372
+#: src/lyxfind.cpp:379
msgid "Search reached beginning of document, continuing from end."
msgstr "Der Anfang des Dokuments wurde erreicht, suche vom Ende ab weiter."
-#: src/lyxfind.cpp:671
+#: src/lyxfind.cpp:678
msgid "String not found in selection."
msgstr "Der gesuchte Ausdruck wurde in der Auswahl nicht gefunden."
-#: src/lyxfind.cpp:673
+#: src/lyxfind.cpp:680
msgid "String not found."
msgstr "Die Zeichenkette wurde nicht gefunden."
-#: src/lyxfind.cpp:676
+#: src/lyxfind.cpp:683
msgid "String found."
msgstr "Zeichenkette gefunden."
-#: src/lyxfind.cpp:678
+#: src/lyxfind.cpp:685
msgid "String has been replaced."
msgstr "Die Zeichenkette wurde ersetzt."
-#: src/lyxfind.cpp:681
+#: src/lyxfind.cpp:688
#, c-format
msgid "%1$d strings have been replaced in the selection."
msgstr "%1$d Zeichenketten wurden in der Auswahl ersetzt."
-#: src/lyxfind.cpp:682
+#: src/lyxfind.cpp:689
#, c-format
msgid "%1$d strings have been replaced."
msgstr "%1$d Zeichenketten wurden ersetzt."
-#: src/lyxfind.cpp:4679
+#: src/lyxfind.cpp:4683
msgid "One match has been replaced."
msgstr "Ein Treffer wurde ersetzt."
-#: src/lyxfind.cpp:4682
+#: src/lyxfind.cpp:4686
msgid "Two matches have been replaced."
msgstr "Zwei Treffer wurden ersetzt."
-#: src/lyxfind.cpp:4685
+#: src/lyxfind.cpp:4689
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d Treffer wurden ersetzt."
-#: src/lyxfind.cpp:4691
+#: src/lyxfind.cpp:4695
msgid "Match not found."
msgstr "Die Zeichenkette wurde nicht gefunden!"
-#: src/lyxfind.cpp:4697
+#: src/lyxfind.cpp:4701
msgid "Match has been replaced."
msgstr "Die Zeichenkette wurde ersetzt."
-#: src/lyxfind.cpp:4699
+#: src/lyxfind.cpp:4703
msgid "Match found."
msgstr "Die Zeichenkette wurde gefunden!"
@@ -37793,6 +37838,16 @@ msgstr ""
msgid "Unknown user"
msgstr "Unbekannter Benutzer"
+#~ msgid ""
+#~ "If unchecked, the search will be limited to occurrences of the selected "
+#~ "text and paragraph style"
+#~ msgstr ""
+#~ "Wenn Sie dies deaktivieren, wird die Suche nur auf Vorkommen beschränkt, "
+#~ "die die den ausgewählten Text- und Absatzstil verwenden."
+
+#~ msgid "I&gnore format"
+#~ msgstr "Ignoriere For&mat"
+
#~ msgid "foot"
#~ msgstr "Fußnote"
@@ -39448,9 +39503,6 @@ msgstr "Unbekannter Benutzer"
#~ msgid " (version control)"
#~ msgstr " (Versionskontrolle)"
-#~ msgid " (changed)"
-#~ msgstr " (geändert)"
-
#~ msgid " (read only)"
#~ msgstr " (schreibgeschützt)"
commit c0a3d654ff1b5bfadb4195015fc82a7fefe000eb
Author: Juergen Spitzmueller <spitz@lyx.org>
Date: Sat Apr 30 14:23:54 2022 +0200
Add GUI for search-ignore
diff --git a/src/frontends/qt/FindAndReplace.cpp \
b/src/frontends/qt/FindAndReplace.cpp index ab61e1a..d72fa92 100644
--- a/src/frontends/qt/FindAndReplace.cpp
+++ b/src/frontends/qt/FindAndReplace.cpp
@@ -421,7 +421,7 @@ bool \
FindAndReplaceWidget::findAndReplaceScope(FindAndReplaceOptions & opt, bool /// \
Return true if a match was found bool FindAndReplaceWidget::findAndReplace(
bool casesensitive, bool matchword, bool backwards,
- bool expandmacros, bool ignoreformat, bool replace,
+ bool expandmacros, bool adhereformat, bool replace,
bool keep_case, bool replace_all)
{
Buffer & find_buf = find_work_area_->bufferView().buffer();
@@ -460,19 +460,59 @@ bool FindAndReplaceWidget::findAndReplace(
<< ", matchword=" << matchword
<< ", backwards=" << backwards
<< ", expandmacros=" << expandmacros
- << ", ignoreformat=" << ignoreformat
+ << ", adhereformat=" << adhereformat
<< ", repl_buf_name" << repl_buf_name
<< ", keep_case=" << keep_case
<< ", scope=" << scope
<< ", restr=" << restr);
FindAndReplaceOptions opt(find_buf_name, casesensitive, matchword,
- !backwards, expandmacros, ignoreformat,
+ !backwards, expandmacros, !adhereformat,
repl_buf_name, keep_case, scope, restr);
+
+ if (adhereformat) {
+ // Formats to adhere
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("language",
+ !adhereLanguageCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("color",
+ !adhereColorCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("family",
+ !adhereFFamilyCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("series",
+ !adhereFSeriesCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("shape",
+ !adhereFShapeCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("size",
+ !adhereFSizeCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("markup",
+ !adhereMarkupCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("underline",
+ !adhereUnderlineCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("strike",
+ !adhereStrikeCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("deleted",
+ !adhereDeletedCB->isChecked())));
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("sectioning",
+ !adhereSectioningCB->isChecked())));
+ }
+ lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("non-output-content",
+ ignoreNonOutputCB->isChecked())));
+
return findAndReplaceScope(opt, replace_all);
}
+docstring const FindAndReplaceWidget::checkState(string const s, bool const b)
+{
+ docstring res = from_ascii(s) + from_ascii(" ");
+ if (b)
+ res += from_ascii("true");
+ else
+ res += from_ascii("false");
+ return res;
+}
+
+
bool FindAndReplaceWidget::findAndReplace(bool backwards, bool replace, bool \
replace_all) {
if (! view_.currentMainWorkArea()) {
@@ -492,7 +532,7 @@ bool FindAndReplaceWidget::findAndReplace(bool backwards, bool \
replace, bool rep wordsCB->isChecked(),
backwards,
expandMacrosCB->isChecked(),
- ignoreFormatCB->isChecked(),
+ adhereFormatGB->isChecked(),
replace,
keepCaseCB->isChecked(),
replace_all);
@@ -532,6 +572,34 @@ void FindAndReplaceWidget::on_searchbackCB_clicked()
}
+void FindAndReplaceWidget::setFormatIgnores(bool const b)
+{
+ adhereLanguageCB->setChecked(b);
+ adhereColorCB->setChecked(b);
+ adhereFFamilyCB->setChecked(b);
+ adhereFSeriesCB->setChecked(b);
+ adhereFShapeCB->setChecked(b);
+ adhereFSizeCB->setChecked(b);
+ adhereMarkupCB->setChecked(b);
+ adhereUnderlineCB->setChecked(b);
+ adhereStrikeCB->setChecked(b);
+ adhereDeletedCB->setChecked(b);
+ adhereSectioningCB->setChecked(b);
+}
+
+
+void FindAndReplaceWidget::on_selectAllPB_clicked()
+{
+ setFormatIgnores(true);
+}
+
+
+void FindAndReplaceWidget::on_deselectAllPB_clicked()
+{
+ setFormatIgnores(false);
+}
+
+
// Copy selected elements from bv's BufferParams to the dest_bv's
static void copy_params(BufferView const & bv, BufferView & dest_bv) {
Buffer const & doc_buf = bv.buffer();
@@ -584,8 +652,9 @@ void FindAndReplace::updateView()
FindAndReplace::FindAndReplace(GuiView & parent,
- Qt::DockWidgetArea area, Qt::WindowFlags flags)
- : DockView(parent, "findreplaceadv", qt_("Advanced Find and Replace"),
+ Qt::DockWidgetArea area,
+ Qt::WindowFlags flags)
+ : DockView(parent, "findreplaceadv", qt_("Advanced Find and Replace"),
area, flags)
{
widget_ = new FindAndReplaceWidget(parent);
diff --git a/src/frontends/qt/FindAndReplace.h b/src/frontends/qt/FindAndReplace.h
index 0ffc39d..7ea70a9 100644
--- a/src/frontends/qt/FindAndReplace.h
+++ b/src/frontends/qt/FindAndReplace.h
@@ -16,6 +16,7 @@
// This is needed so that ui_FindAndReplaceUi.h can find qt_()
#include "qt_helpers.h"
#include "ui_FindAndReplaceUi.h"
+#include "support/docstring.h"
#include <string>
@@ -65,12 +66,18 @@ private:
void virtual hideEvent(QHideEvent *ev) override;
void hideDialog();
+
+ void setFormatIgnores(bool const b);
+
+ docstring const checkState(std::string const s, bool const b);
protected Q_SLOTS:
void on_findNextPB_clicked();
void on_replacePB_clicked();
void on_replaceallPB_clicked();
void on_searchbackCB_clicked();
+ void on_selectAllPB_clicked();
+ void on_deselectAllPB_clicked();
};
diff --git a/src/frontends/qt/ui/FindAndReplaceUi.ui \
b/src/frontends/qt/ui/FindAndReplaceUi.ui index 58a16eb..6713723 100644
--- a/src/frontends/qt/ui/FindAndReplaceUi.ui
+++ b/src/frontends/qt/ui/FindAndReplaceUi.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>374</width>
- <height>380</height>
+ <height>664</height>
</rect>
</property>
<property name="windowTitle">
@@ -263,7 +263,7 @@
<attribute name="title">
<string>Settin&gs</string>
</attribute>
- <layout class="QVBoxLayout" name="dynamicLayoutAdvanced_" stretch="0,0,1">
+ <layout class="QVBoxLayout" name="dynamicLayoutAdvanced_" stretch="0,0,0,1">
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="enabled">
@@ -365,42 +365,26 @@
<enum>QLayout::SetMinimumSize</enum>
</property>
<item row="3" column="0">
- <widget class="QCheckBox" name="OnlyMaths">
- <property name="toolTip">
- <string>Restrict search to math environments only</string>
- </property>
- <property name="text">
- <string>Search on&ly in maths</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="ignoreFormatCB">
+ <widget class="QCheckBox" name="expandMacrosCB">
<property name="enabled">
- <bool>true</bool>
- </property>
- <property name="toolTip">
- <string>If unchecked, the search will be limited to occurrences of the \
selected text and paragraph style</string> + <bool>false</bool>
</property>
<property name="text">
- <string>I&gnore format</string>
- </property>
- <property name="checked">
- <bool>true</bool>
+ <string>E&xpand macros</string>
</property>
</widget>
</item>
- <item row="4" column="0">
- <widget class="QCheckBox" name="expandMacrosCB">
- <property name="enabled">
- <bool>false</bool>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="OnlyMaths">
+ <property name="toolTip">
+ <string>Restrict search to math environments only</string>
</property>
<property name="text">
- <string>E&xpand macros</string>
+ <string>Search on&ly in maths</string>
</property>
</widget>
</item>
- <item row="2" column="0">
+ <item row="1" column="0">
<widget class="QCheckBox" name="keepCaseCB">
<property name="toolTip">
<string>Keep the case of the replacement's first letter as in each matching \
text first letter</string> @@ -423,9 +407,128 @@
</property>
</spacer>
</item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="ignoreNonOutputCB">
+ <property name="toolTip">
+ <string>Do not search in content that is not output (e.g., notes)</string>
+ </property>
+ <property name="text">
+ <string>Ignore &non-output content</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
<item>
+ <widget class="QGroupBox" name="adhereFormatGB">
+ <property name="toolTip">
+ <string>If the search string is formatted in a non-default way, only find \
strings formatted like the search string in the checked respects</string> + \
</property> + <property name="title">
+ <string>Ad&here to search string formatting of</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="adhereStrikeCB">
+ <property name="text">
+ <string>Strike-through</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="adhereFSeriesCB">
+ <property name="text">
+ <string>Font series</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="adhereColorCB">
+ <property name="text">
+ <string>Font color</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QCheckBox" name="adhereMarkupCB">
+ <property name="text">
+ <string>Emph/noun</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="QPushButton" name="deselectAllPB">
+ <property name="text">
+ <string>Deselect all</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="adhereFFamilyCB">
+ <property name="text">
+ <string>Font family</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="adhereLanguageCB">
+ <property name="text">
+ <string>Language</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QCheckBox" name="adhereSectioningCB">
+ <property name="text">
+ <string>Sectioning markup</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QCheckBox" name="adhereDeletedCB">
+ <property name="text">
+ <string>Deletion (change)</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="adhereUnderlineCB">
+ <property name="text">
+ <string>Underlining</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="adhereFShapeCB">
+ <property name="text">
+ <string>Font shape</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QPushButton" name="selectAllPB">
+ <property name="text">
+ <string>Select all</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QCheckBox" name="adhereFSizeCB">
+ <property name="text">
+ <string>Font size</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
commit cbe2f613969fe92d9c14231f48d19749674f8e26
Author: Kornel Benko <kornel@lyx.org>
Date: Sat Apr 30 09:30:15 2022 +0200
FindAdv: Re-add 'size' to the list of possible ignored formats
diff --git a/src/Font.cpp b/src/Font.cpp
index 514bf03..7b7585d 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -336,11 +336,18 @@ int Font::latexWriteStartChanges(otexstream & os, BufferParams \
const & bparams, p.reduce(prev.bits_);
if (f.size() != INHERIT_SIZE) {
- os << '{';
- ++count;
- os << '\\'
- << LaTeXSizeSwitchNames[f.size()] << termcmd;
- count += strlen(LaTeXSizeSwitchNames[f.size()]) + 1;
+ if (runparams.for_search == OutputParams::NoSearch) {
+ os << '{';
+ ++count;
+ os << '\\'
+ << LaTeXSizeSwitchNames[f.size()] << termcmd;
+ count += strlen(LaTeXSizeSwitchNames[f.size()]) + 1;
+ }
+ else {
+ os << '\\'
+ << LaTeXSizeSwitchNames[f.size()] << '{';
+ count += strlen(LaTeXSizeSwitchNames[f.size()]) + 2;
+ }
}
if (f.family() != INHERIT_FAMILY) {
if (non_inherit_inset) {
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index c0d8640..ee92523 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -88,6 +88,8 @@ class IgnoreFormats {
///
bool getShape() const { return ignoreShape_; }
///
+ bool getSize() const { return ignoreSize_; }
+ ///
bool getUnderline() const { return ignoreUnderline_; }
///
bool getMarkUp() const { return ignoreMarkUp_; }
@@ -118,6 +120,8 @@ private:
///
bool ignoreShape_ = false;
///
+ bool ignoreSize_ = true;
+ ///
bool ignoreUnderline_ = false;
///
bool ignoreMarkUp_ = false;
@@ -166,6 +170,9 @@ void IgnoreFormats::setIgnoreFormat(string const & type, bool \
value, bool fromUs else if (type == "shape") {
ignoreShape_ = value;
}
+ else if (type == "size") {
+ ignoreSize_ = value;
+ }
else if (type == "family") {
ignoreFamily_ = value;
}
@@ -2757,7 +2764,7 @@ void LatexInfo::buildKeys(bool isPatternString)
makeKey("textgreek|textcyrillic", KeyInfo(KeyInfo::isStandard, 1, true), false);
makeKey("parbox", KeyInfo(KeyInfo::doRemove, 1, true), isPatternString);
// like ('tiny{}' or '\tiny ' ... )
- makeKey("footnotesize|tiny|scriptsize|small|large|Large|LARGE|huge|Huge", \
KeyInfo(KeyInfo::isSize, 0, false), isPatternString); \
+ makeKey("footnotesize|tiny|scriptsize|small|large|Large|LARGE|huge|Huge", \
KeyInfo(KeyInfo::isSize, 0, ignoreFormats.getSize()), isPatternString);
// Survives, like known character
// makeKey("lyx|LyX|latex|LaTeX|latexe|LaTeXe|tex|TeX", KeyInfo(KeyInfo::isChar, 0, \
false), isPatternString);
commit a4663bc988a252f27e78c1a4a1e591acc94c7c54
Author: Scott Kostyshak <skostysh@lyx.org>
Date: Fri Apr 29 21:11:10 2022 -0400
ctests: categorize testfile for #6197 as resolved
The actual LyX bug was fixed a while ago. There was a remaining
missing symbols error, but that has been fixed in the latest
TeX Live 2022.
diff --git a/autotests/export/latex/lyxbugs/6197-polish-amssymb.lyx \
b/autotests/export/latex/lyxbugs-resolved/6197-polish-amssymb.lyx similarity index \
100% rename from autotests/export/latex/lyxbugs/6197-polish-amssymb.lyx
rename to autotests/export/latex/lyxbugs-resolved/6197-polish-amssymb.lyx
commit 301a17b0aa302c65d90f9b1f80ffe1002c65a6bd
Author: Scott Kostyshak <skostysh@lyx.org>
Date: Fri Apr 29 21:09:33 2022 -0400
ctests: update description for lyxbugs/6197
With an updated TeX Live 2022, LuaTeX no longer gives a missing
symbol for this test file (manual inspection confirms the symbols
are correctly displayed).
diff --git a/autotests/export/latex/lyxbugs/6197-polish-amssymb.lyx \
b/autotests/export/latex/lyxbugs/6197-polish-amssymb.lyx index 9ef2699..b152dc9 \
100644
--- a/autotests/export/latex/lyxbugs/6197-polish-amssymb.lyx
+++ b/autotests/export/latex/lyxbugs/6197-polish-amssymb.lyx
@@ -1,12 +1,12 @@
#LyX 2.4 created this file. For more info see https://www.lyx.org/
-\lyxformat 574
+\lyxformat 609
\begin_document
\begin_header
\save_transient_properties true
\origin unavailable
\textclass article
\use_default_options true
-\maintain_unincluded_children false
+\maintain_unincluded_children no
\language polish
\language_package default
\inputencoding auto-legacy
@@ -18,7 +18,9 @@
\font_default_family default
\use_non_tex_fonts false
\font_sc false
-\font_osf false
+\font_roman_osf false
+\font_sans_osf false
+\font_typewriter_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
\use_microtype false
@@ -55,6 +57,7 @@
\justification true
\use_refstyle 1
\use_minted 0
+\use_lineno 0
\index Index
\shortcut idx
\color #008000
@@ -73,9 +76,13 @@
\tablestyle default
\tracking_changes false
\output_changes false
+\change_bars false
+\postpone_fragile_content false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
+\docbook_table_output 0
+\docbook_mathml_prefix 1
\end_header
\begin_body
@@ -127,7 +134,7 @@ lll which becomes
\begin_inset Quotes prd
\end_inset
- with pdfTeX and a missing symbol with LuaTeX..
+.
\end_layout
\end_body
commit d54e400ee38d94fab5434a18984a7c23e9530438
Author: Scott Kostyshak <skostysh@lyx.org>
Date: Fri Apr 29 20:42:07 2022 -0400
ctests: adapt ignored warnings for lyx2lyx tests
This commit does the same as a8dd4db5 but for the explicit lyx2lyx
tests.
This commit amends ae31e169.
diff --git a/development/autotests/lyx2lyxtest.cmake \
b/development/autotests/lyx2lyxtest.cmake index 708cd50..4b01ecb 100755
--- a/development/autotests/lyx2lyxtest.cmake
+++ b/development/autotests/lyx2lyxtest.cmake
@@ -30,7 +30,7 @@ string(COMPARE NOTEQUAL ${_err} 0 _erg)
file(STRINGS ${errorfile} foundErrors)
if(foundErrors)
foreach(_l ${foundErrors})
- if (NOT _l MATCHES "Warning: No conversion needed:")
+ if (NOT _l MATCHES "lyx2lyx warning: No conversion needed:")
set(_erg 1)
message(STATUS "${_l}")
endif()
commit a8dd4db54f41ff68f26a669049aee99e73de6961
Author: Scott Kostyshak <skostysh@lyx.org>
Date: Fri Apr 29 19:01:27 2022 -0400
ctests: adapt ignored warnings to new messages
The change of the warning messages was introduced at ae31e169, which
broke several lyx2lyx tests. The tests are now fixed with this
commit.
diff --git a/development/autotests/filterCheckWarnings \
b/development/autotests/filterCheckWarnings index decb045..6873973 100644
--- a/development/autotests/filterCheckWarnings
+++ b/development/autotests/filterCheckWarnings
@@ -1,6 +1,6 @@
Cannot find translation for language
-Warning: Lyx2lyx knows nothing about (textclass|module)
-Warning: sfval: [0-9]+ [0-9]+
+lyx2lyx warning: Lyx2lyx knows nothing about (textclass|module)
+lyx2lyx warning: sfval: [0-9]+ [0-9]+
Warning: a buffer should not have two parents!
The master .* does not include this document. Ignoring the master assignment
Warning: Different textclasses
commit 48c069fa8aec72840dc55688e21c38c5dd321e66
Author: Kornel Benko <kornel@lyx.org>
Date: Fri Apr 29 19:56:12 2022 +0200
Amend a83159f0: Use logical operator ||.
Clang is not mocking here, but it looks more consistent.
diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 30944cc..ebca6f8 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -2532,7 +2532,7 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0)
// Notify left insets
if (cur != old) {
bool badcursor = old.fixIfBroken() || cur.fixIfBroken();
- badcursor |= notifyCursorLeavesOrEnters(old, cur);
+ badcursor = badcursor || notifyCursorLeavesOrEnters(old, cur);
if (badcursor)
cursor().fixIfBroken();
}
commit 531fed9543b07cb06d23ba8f7276691d8fd6b9d6
Author: Kornel Benko <kornel@lyx.org>
Date: Fri Apr 29 19:23:50 2022 +0200
FindAdv: Fix the length of leading string
We are removing leading values from the start of string, so
the size of removed data was wrong because s.find() could find
a position inside the leading part.
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index a4dd810..c0d8640 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -1091,7 +1091,7 @@ void MatchStringAdv::FillResults(MatchResult &found_mr)
static void setFindParams(OutputParams &runparams)
{
runparams.flavor = Flavor::XeTeX;
- runparams.use_polyglossia = true;
+ //runparams.use_polyglossia = true;
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
@@ -1226,7 +1226,7 @@ static size_t identifyLeading(string const & s)
|| regex_replace(t, t, "^\\\\begin\\{[a-zA-Z_]*\\*?\\}", ""))
;
LYXERR(Debug::FINDVERBOSE, " after removing leading $, \\[ , \\emph{, \\textbf{, \
etc.: '" << t << "'");
- return s.find(t);
+ return s.size() - t.size();
}
/*
commit a83159f05170733069a2baf2237e81c033f33916
Author: Scott Kostyshak <skostysh@lyx.org>
Date: Thu Apr 28 21:06:37 2022 -0400
Fix Clang 14 warning -Wbitwise-instead-of-logical
Use the boolean operator '||' with bools instead of the bitwise
operator '|'.
diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 32c890c..30944cc 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -2531,7 +2531,7 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0)
// Notify left insets
if (cur != old) {
- bool badcursor = old.fixIfBroken() | cur.fixIfBroken();
+ bool badcursor = old.fixIfBroken() || cur.fixIfBroken();
badcursor |= notifyCursorLeavesOrEnters(old, cur);
if (badcursor)
cursor().fixIfBroken();
commit e4416535e479fb23cf980e8a3cddd36338d7754a
Author: Jean-Marc Lasgouttes <lasgouttes@lyx.org>
Date: Thu Apr 28 14:36:11 2022 +0200
Fix configure with autoconf 2.71
This fixes two issues with autoconf 2.71
* a new version of eilseq.m4 from libiconv is required ;
* the AC_CHECK_HEADER last `-' argument is obsloleted, but I do not
think that we needed it in the first place.
diff --git a/config/qt.m4 b/config/qt.m4
index 05fa9ce..8c1a818 100644
--- a/config/qt.m4
+++ b/config/qt.m4
@@ -231,10 +231,10 @@ AC_DEFUN([QT_DO_IT_ALL],
CPPFLAGS="$save_CPPFLAGS $QT_CORE_INCLUDES"
AC_CHECK_HEADER(QtGui/qtgui-config.h,
[lyx_qt5_config=QtGui/qtgui-config.h],
- [lyx_qt5_config=qconfig.h],[-])
+ [lyx_qt5_config=qconfig.h])
AC_CHECK_HEADER(QtGui/private/qtgui-config_p.h,
[lyx_qt6_config=QtGui/private/qtgui-config_p.h],
- [lyx_qt6_config=qconfig.h],[-])
+ [lyx_qt6_config=qconfig.h])
AC_MSG_CHECKING([whether Qt uses the X Window system])
if test x$USE_QT6 = xyes ; then
dnl FIXME: Check whether defining QPA_XCB makes sense with Qt6
diff --git a/m4/eilseq.m4 b/m4/eilseq.m4
index 792d514..5f86ab3 100644
--- a/m4/eilseq.m4
+++ b/m4/eilseq.m4
@@ -1,6 +1,6 @@
-#serial 1
+#serial 2
-AC_PREREQ(2.50)
+AC_PREREQ([2.61])
# The EILSEQ errno value ought to be defined in <errno.h>, according to
# ISO C 99 and POSIX. But some systems (like SunOS 4) don't define it,
@@ -16,20 +16,20 @@ AC_DEFUN([AC_EILSEQ],
AC_REQUIRE([AC_PROG_CC])dnl
dnl Check for any extra headers that could define EILSEQ.
- AC_CHECK_HEADERS(wchar.h)
+ AC_CHECK_HEADERS([wchar.h])
- AC_CACHE_CHECK([for EILSEQ], ac_cv_decl_EILSEQ, [
- AC_EGREP_CPP(yes,[
+ AC_CACHE_CHECK([for EILSEQ], [ac_cv_decl_EILSEQ], [
+ AC_EGREP_CPP([yes],[
#include <errno.h>
#ifdef EILSEQ
yes
#endif
- ], have_eilseq=1)
+ ], [have_eilseq=1])
if test -n "$have_eilseq"; then
dnl EILSEQ exists in <errno.h>. Don't need to define EILSEQ ourselves.
ac_cv_decl_EILSEQ=yes
else
- AC_EGREP_CPP(yes,[
+ AC_EGREP_CPP([yes],[
#include <errno.h>
#if HAVE_WCHAR_H
#include <wchar.h>
@@ -37,11 +37,11 @@ yes
#ifdef EILSEQ
yes
#endif
- ], have_eilseq=1)
+ ], [have_eilseq=1])
if test -n "$have_eilseq"; then
dnl EILSEQ exists in some other system header.
dnl Define it to the same value.
- _AC_COMPUTE_INT([EILSEQ], ac_cv_decl_EILSEQ, [
+ AC_COMPUTE_INT([ac_cv_decl_EILSEQ], [EILSEQ], [
#include <errno.h>
#if HAVE_WCHAR_H
#include <wchar.h>
@@ -62,6 +62,6 @@ yes
AC_DEFINE_UNQUOTED([EILSEQ], [$ac_cv_decl_EILSEQ],
[Define as good substitute value for EILSEQ.])
EILSEQ="$ac_cv_decl_EILSEQ"
- AC_SUBST(EILSEQ)
+ AC_SUBST([EILSEQ])
fi
])
commit 769df229dc2a95c0511f3e5510c772c02376c7f3
Author: Kornel Benko <kornel@lyx.org>
Date: Wed Apr 27 15:57:24 2022 +0200
FindAdv: Avoid some duplicated code
Also handle (== ignore) \textgreek{} and \textcyrillic{} commands
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 825bee3..a4dd810 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -1088,6 +1088,15 @@ void MatchStringAdv::FillResults(MatchResult &found_mr)
valid_matches = 0;
}
+static void setFindParams(OutputParams &runparams)
+{
+ runparams.flavor = Flavor::XeTeX;
+ runparams.use_polyglossia = true;
+ runparams.linelen = 10000; //lyxrc.plaintext_linelen;
+ // No side effect of file copying and image conversion
+ runparams.dryrun = true;
+}
+
static docstring buffer_to_latex(Buffer & buffer)
{
//OutputParams runparams(&buffer.params().encoding());
@@ -1095,10 +1104,7 @@ static docstring buffer_to_latex(Buffer & buffer)
odocstringstream ods;
otexstream os(ods);
runparams.nice = true;
- runparams.flavor = Flavor::XeTeX;
- runparams.linelen = 10000; //lyxrc.plaintext_linelen;
- // No side effect of file copying and image conversion
- runparams.dryrun = true;
+ setFindParams(runparams);
if (ignoreFormats.getDeleted())
runparams.for_search = OutputParams::SearchWithoutDeleted;
else
@@ -1170,9 +1176,7 @@ static docstring stringifySearchBuffer(Buffer & buffer, \
FindAndReplaceOptions co // OutputParams runparams(&buffer.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = true;
- runparams.flavor = Flavor::XeTeX;
- runparams.linelen = 10000; //lyxrc.plaintext_linelen;
- runparams.dryrun = true;
+ setFindParams(runparams);
int option = AS_STR_INSETS |AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE;
@@ -2750,6 +2754,7 @@ void LatexInfo::buildKeys(bool isPatternString)
makeKey("triangleuppar|triangledownpar|droppar", KeyInfo(KeyInfo::isStandard, 1, \
true), isPatternString); makeKey("triangleleftpar|shapepar|dropuppar", \
KeyInfo(KeyInfo::isStandard, 1, true), isPatternString); \
makeKey("hphantom|vphantom|note|footnote|shortcut|include|includegraphics", \
KeyInfo(KeyInfo::isStandard, 1, true), isPatternString); \
+ makeKey("textgreek|textcyrillic", KeyInfo(KeyInfo::isStandard, 1, true), false); \
makeKey("parbox", KeyInfo(KeyInfo::doRemove, 1, true), isPatternString); // like \
('tiny{}' or '\tiny ' ... ) \
makeKey("footnotesize|tiny|scriptsize|small|large|Large|LARGE|huge|Huge", \
KeyInfo(KeyInfo::isSize, 0, false), isPatternString); @@ -3941,10 +3946,7 @@ \
docstring stringifyFromCursor(DocIterator const & cur, int len) // OutputParams \
runparams(&cur.buffer()->params().encoding()); OutputParams \
runparams(encodings.fromLyXName("utf8")); runparams.nice = true;
- runparams.flavor = Flavor::XeTeX;
- runparams.linelen = 10000; //lyxrc.plaintext_linelen;
- // No side effect of file copying and image conversion
- runparams.dryrun = true;
+ setFindParams(runparams);
int option = AS_STR_INSETS | AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE;
@@ -3999,10 +4001,7 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
//OutputParams runparams(&buf.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = false;
- runparams.flavor = Flavor::XeTeX;
- runparams.linelen = 8000; //lyxrc.plaintext_linelen;
- // No side effect of file copying and image conversion
- runparams.dryrun = true;
+ setFindParams(runparams);
if (ignoreFormats.getDeleted()) {
runparams.for_search = OutputParams::SearchWithoutDeleted;
}
@@ -4609,9 +4608,7 @@ static int findAdvReplace(BufferView * bv, \
FindAndReplaceOptions const & opt, Ma // OutputParams \
runparams(&repl_buffer.params().encoding()); OutputParams \
runparams(encodings.fromLyXName("utf8")); runparams.nice = false;
- runparams.flavor = Flavor::XeTeX;
- runparams.linelen = 8000; //lyxrc.plaintext_linelen;
- runparams.dryrun = true;
+ setFindParams(runparams);
TeXOnePar(repl_buffer, repl_buffer.text(), 0, os, runparams, string(), -1, -1, \
true); //repl_buffer.getSourceCode(ods, 0, repl_buffer.paragraphs().size(), false);
docstring repl_latex = ods.str();
-----------------------------------------------------------------------
Summary of changes:
.../6197-polish-amssymb.lyx | 15 +-
config/qt.m4 | 4 +-
development/autotests/filterCheckWarnings | 4 +-
development/autotests/findadv-05-in.txt | 2 +-
development/autotests/findadv-06-in.txt | 6 +-
development/autotests/findadv-07-in.txt | 4 +-
development/autotests/findadv-09-in.txt | 4 +-
development/autotests/findadv-10-in.txt | 4 +-
development/autotests/findadv-14-in.txt | 4 +-
development/autotests/findadv-15-in.txt | 4 +-
development/autotests/findadv-16-in.txt | 2 +-
development/autotests/findadv-17-in.txt | 2 +-
development/autotests/findadv-21-in.txt | 4 +-
development/autotests/findadv-22-in.txt | 4 +-
development/autotests/findadv-combined-in.txt | 2 +-
development/autotests/findadv-logo-in.txt | 2 +-
development/autotests/findadv-re-01-in.txt | 4 +-
development/autotests/findadv-re-02-in.txt | 6 +-
development/autotests/findadv-re-03-in.txt | 4 +-
development/autotests/findadv-re-04-in.txt | 8 +-
development/autotests/findadv-re-06-in.txt | 2 +-
development/autotests/lyx2lyxtest.cmake | 2 +-
development/batchtests/beamer_test.tex.orig | 4 +-
lib/doc/UserGuide.lyx | 149 +++++++++-
lib/ui/stdcontext.inc | 2 +-
m4/eilseq.m4 | 20 +-
po/de.gmo | Bin 624975 -> 625745 bytes
po/de.po | 222 +++++++++------
po/fr.gmo | Bin 628113 -> 629103 bytes
po/fr.po | 278 +++++++++++-------
po/sk.po | 95 +++++--
src/BufferView.cpp | 4 +-
src/Font.cpp | 17 +-
src/OutputParams.h | 9 +-
src/Paragraph.cpp | 37 ++-
src/Text2.cpp | 1 +
src/Text3.cpp | 20 +-
src/frontends/qt/FindAndReplace.cpp | 81 +++++-
src/frontends/qt/FindAndReplace.h | 7 +
src/frontends/qt/ui/FindAndReplaceUi.ui | 157 ++++++++--
src/frontends/qt/ui/PrefEditUi.ui | 9 +-
src/insets/InsetBibtex.cpp | 2 +-
src/insets/InsetBranch.cpp | 4 +-
src/insets/InsetInclude.cpp | 4 +-
src/insets/InsetIndex.cpp | 2 +-
src/insets/InsetNote.cpp | 14 +-
src/insets/InsetQuotes.cpp | 4 +-
src/insets/InsetSpace.cpp | 82 ++++--
src/lyxfind.cpp | 308 +++++++++++++++----
src/mathed/InsetMathHull.cpp | 6 +-
src/mathed/InsetMathNest.cpp | 2 +-
src/output_latex.cpp | 28 +-
52 files changed, 1199 insertions(+), 462 deletions(-)
rename autotests/export/latex/{lyxbugs => lyxbugs-resolved}/6197-polish-amssymb.lyx \
(91%)
hooks/post-receive
--
Repository for new features
--
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic