Patches to review
Yuriy Skalko
yuriy.skalko at gmail.com
Thu Nov 26 21:07:39 UTC 2020
Here are next 5 patches.
Yuriy
-------------- next part --------------
From bdf2a935f79f465e75bafdedc3e50a4a513e24ca Mon Sep 17 00:00:00 2001
From: Yuriy Skalko <yuriy.skalko at gmail.com>
Date: Thu, 26 Nov 2020 00:17:29 +0200
Subject: [PATCH 1/5] Use to_string function
---
src/client/client.cpp | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/src/client/client.cpp b/src/client/client.cpp
index dd69fe20f5..0a80107009 100644
--- a/src/client/client.cpp
+++ b/src/client/client.cpp
@@ -93,14 +93,6 @@ Messages const & getMessages(string const &)
namespace support {
-string itoa(unsigned int i)
-{
- char buf[20];
- sprintf(buf, "%d", i);
- return buf;
-}
-
-
/// Returns the absolute pathnames of all lyx local sockets in
/// file system encoding.
/// Parts stolen from lyx::support::DirList().
@@ -469,7 +461,7 @@ int h(vector<docstring> const &)
docstring clientName =
- from_ascii(itoa(::getppid()) + ">" + itoa(::getpid()));
+ from_ascii(to_string(::getppid()) + ">" + to_string(::getpid()));
int n(vector<docstring> const & arg)
{
--
2.28.0.windows.1
-------------- next part --------------
From 2af4904d7a947be564f74f005c2b8ff47859ca47 Mon Sep 17 00:00:00 2001
From: Yuriy Skalko <yuriy.skalko at gmail.com>
Date: Thu, 26 Nov 2020 01:11:07 +0200
Subject: [PATCH 2/5] Constify
---
src/Counters.cpp | 2 +-
src/Counters.h | 2 +-
src/Server.cpp | 2 +-
src/Server.h | 4 ++--
src/graphics/PreviewImage.cpp | 4 ++--
src/lyxfind.cpp | 28 ++++++++++++++--------------
src/tex2lyx/Parser.cpp | 2 +-
src/tex2lyx/Parser.h | 2 +-
8 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/Counters.cpp b/src/Counters.cpp
index 8477d5283a..139dc9bcd7 100644
--- a/src/Counters.cpp
+++ b/src/Counters.cpp
@@ -413,7 +413,7 @@ bool Counters::remove(docstring const & cnt)
}
-void Counters::copy(Counters const & from, Counters & to, docstring const & match)
+void Counters::copy(Counters const & from, Counters & to, docstring const & match) const
{
for (auto const & ctr : counterList_) {
if (ctr.first.find(match) != string::npos || match == "") {
diff --git a/src/Counters.h b/src/Counters.h
index 4708f5a331..e6554a284f 100644
--- a/src/Counters.h
+++ b/src/Counters.h
@@ -163,7 +163,7 @@ public:
/// Copy counters whose name matches match from the &from to
/// the &to array of counters. Empty string matches all.
void copy(Counters const & from, Counters & to,
- docstring const & match = docstring());
+ docstring const & match = docstring()) const;
/** returns the expanded string representation of counter \c
* c. The \c lang code is used to translate the string.
*/
diff --git a/src/Server.cpp b/src/Server.cpp
index fe503926de..79340492c6 100644
--- a/src/Server.cpp
+++ b/src/Server.cpp
@@ -1003,7 +1003,7 @@ struct Sleep : QThread
} // namespace
-bool LyXComm::loadFilesInOtherInstance()
+bool LyXComm::loadFilesInOtherInstance() const
{
int pipefd;
FileName const pipe(inPipeName());
diff --git a/src/Server.h b/src/Server.h
index 9257704b43..b277284ace 100644
--- a/src/Server.h
+++ b/src/Server.h
@@ -120,7 +120,7 @@ private:
void closeConnection();
/// Load files in another running instance of LyX
- bool loadFilesInOtherInstance();
+ bool loadFilesInOtherInstance() const;
#ifndef _WIN32
/// start a pipe
@@ -212,7 +212,7 @@ public:
///
void notifyClient(std::string const &);
///
- bool deferredLoadingToOtherInstance() { return pipes_.deferredLoading(); }
+ bool deferredLoadingToOtherInstance() const { return pipes_.deferredLoading(); }
/// whilst crashing etc.
void emergencyCleanup() { pipes_.emergencyCleanup(); }
diff --git a/src/graphics/PreviewImage.cpp b/src/graphics/PreviewImage.cpp
index b80bf9415b..062dd6e7bc 100644
--- a/src/graphics/PreviewImage.cpp
+++ b/src/graphics/PreviewImage.cpp
@@ -35,7 +35,7 @@ public:
///
~Impl();
///
- Image const * image();
+ Image const * image() const;
///
void statusChanged();
@@ -125,7 +125,7 @@ PreviewImage::Impl::~Impl()
}
-Image const * PreviewImage::Impl::image()
+Image const * PreviewImage::Impl::image() const
{
if (iloader_.status() == WaitingToLoad)
iloader_.startLoading();
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index c438052d2e..fc7b0b737a 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -1101,20 +1101,20 @@ public:
int depts[MAXOPENED];
int closes[MAXOPENED];
int actualdeptindex;
- int previousNotIgnored(int);
- int nextNotIgnored(int);
+ int previousNotIgnored(int) const;
+ int nextNotIgnored(int) const;
void handleOpenP(int i);
void handleCloseP(int i, bool closingAllowed);
void resetOpenedP(int openPos);
void addIntervall(int upper);
void addIntervall(int low, int upper); /* if explicit */
void removeAccents();
- void setForDefaultLang(KeyInfo const & defLang);
+ void setForDefaultLang(KeyInfo const & defLang) const;
int findclosing(int start, int end, char up, char down, int repeat);
void handleParentheses(int lastpos, bool closingAllowed);
bool hasTitle;
int langcount; // Number of disabled language specs up to current position in actual interval
- int isOpeningPar(int pos);
+ int isOpeningPar(int pos) const;
string titleValue;
void output(ostringstream &os, int lastpos);
// string show(int lastpos);
@@ -1122,7 +1122,7 @@ public:
vector<Border> Intervall::borders = vector<Border>(30);
-int Intervall::isOpeningPar(int pos)
+int Intervall::isOpeningPar(int pos) const
{
if ((pos < 0) || (size_t(pos) >= par.size()))
return 0;
@@ -1137,7 +1137,7 @@ int Intervall::isOpeningPar(int pos)
return 1;
}
-void Intervall::setForDefaultLang(KeyInfo const & defLang)
+void Intervall::setForDefaultLang(KeyInfo const & defLang) const
{
// Enable the use of first token again
if (ignoreidx >= 0) {
@@ -1418,7 +1418,7 @@ void Intervall::resetOpenedP(int openPos)
closes[1] = -1;
}
-int Intervall::previousNotIgnored(int start)
+int Intervall::previousNotIgnored(int start) const
{
int idx = 0; /* int intervalls */
for (idx = ignoreidx; idx >= 0; --idx) {
@@ -1430,7 +1430,7 @@ int Intervall::previousNotIgnored(int start)
return start;
}
-int Intervall::nextNotIgnored(int start)
+int Intervall::nextNotIgnored(int start) const
{
int idx = 0; /* int intervalls */
for (idx = 0; idx <= ignoreidx; idx++) {
@@ -1504,7 +1504,7 @@ class LatexInfo {
else
return false;
};
- int find(int start, KeyInfo::KeyType keytype) {
+ int find(int start, KeyInfo::KeyType keytype) const {
if (start < 0)
return -1;
int tmpIdx = start;
@@ -1526,7 +1526,7 @@ class LatexInfo {
else
return entries_[keyinfo];
};
- void setForDefaultLang(KeyInfo &defLang) {interval_.setForDefaultLang(defLang);};
+ void setForDefaultLang(KeyInfo const & defLang) {interval_.setForDefaultLang(defLang);};
void addIntervall(int low, int up) { interval_.addIntervall(low, up); };
};
@@ -1577,14 +1577,14 @@ class MathInfo {
m.mathSize = end - start;
entries_.push_back(m);
}
- bool empty() { return entries_.empty(); };
- size_t getEndPos() {
+ bool empty() const { return entries_.empty(); };
+ size_t getEndPos() const {
if (entries_.empty() || (actualIdx_ >= entries_.size())) {
return 0;
}
return entries_[actualIdx_].mathEnd;
}
- size_t getStartPos() {
+ size_t getStartPos() const {
if (entries_.empty() || (actualIdx_ >= entries_.size())) {
return 100000; /* definitely enough? */
}
@@ -1594,7 +1594,7 @@ class MathInfo {
actualIdx_ = 0;
return getStartPos();
}
- size_t getSize() {
+ size_t getSize() const {
if (entries_.empty() || (actualIdx_ >= entries_.size())) {
return size_t(0);
}
diff --git a/src/tex2lyx/Parser.cpp b/src/tex2lyx/Parser.cpp
index ee25db246d..67e0323c96 100644
--- a/src/tex2lyx/Parser.cpp
+++ b/src/tex2lyx/Parser.cpp
@@ -877,7 +877,7 @@ void Parser::dump() const
}
-void Parser::error(string const & msg)
+void Parser::error(string const & msg) const
{
cerr << "Line ~" << lineno_ << ": parse error: " << msg << endl;
dump();
diff --git a/src/tex2lyx/Parser.h b/src/tex2lyx/Parser.h
index 9f174c8a0b..d28036710e 100644
--- a/src/tex2lyx/Parser.h
+++ b/src/tex2lyx/Parser.h
@@ -310,7 +310,7 @@ public:
///
std::string verbatimOption();
///
- void error(std::string const & msg);
+ void error(std::string const & msg) const;
/// The previous token.
Token const prev_token() const;
/// The current token.
--
2.28.0.windows.1
-------------- next part --------------
From ad0511626d386c85611aefda7a5bfa00365314ea Mon Sep 17 00:00:00 2001
From: Yuriy Skalko <yuriy.skalko at gmail.com>
Date: Thu, 26 Nov 2020 22:10:45 +0200
Subject: [PATCH 3/5] Use iround function, amend c0ce79452f
---
src/Row.cpp | 5 +++--
src/Spacing.cpp | 5 +++--
src/graphics/PreviewImage.cpp | 3 ++-
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/Row.cpp b/src/Row.cpp
index 9ab7f11037..02923d1dd1 100644
--- a/src/Row.cpp
+++ b/src/Row.cpp
@@ -26,6 +26,7 @@
#include "support/debug.h"
#include "support/lassert.h"
#include "support/lstrings.h"
+#include "support/lyxlib.h"
#include <algorithm>
#include <ostream>
@@ -297,7 +298,7 @@ int Row::left_x() const
x += cit->full_width();
++cit;
}
- return int(x + 0.5);
+ return support::iround(x);
}
@@ -313,7 +314,7 @@ int Row::right_x() const
else
break;
}
- return int(x + 0.5);
+ return support::iround(x);
}
diff --git a/src/Spacing.cpp b/src/Spacing.cpp
index 9ac8345ab4..ce645398f8 100644
--- a/src/Spacing.cpp
+++ b/src/Spacing.cpp
@@ -12,8 +12,9 @@
#include <config.h>
#include "Spacing.h"
-#include "support/lstrings.h"
#include "support/convert.h"
+#include "support/lstrings.h"
+#include "support/lyxlib.h"
#include <ostream>
@@ -55,7 +56,7 @@ void Spacing::set(Spacing::Space sp, string const & val)
{
space = sp;
if (sp == Other) {
- switch (int(convert<double>(val) * 1000 + 0.5)) {
+ switch (support::iround(convert<double>(val) * 1000)) {
case 1000:
space = Single;
break;
diff --git a/src/graphics/PreviewImage.cpp b/src/graphics/PreviewImage.cpp
index 062dd6e7bc..b31af6fbd9 100644
--- a/src/graphics/PreviewImage.cpp
+++ b/src/graphics/PreviewImage.cpp
@@ -19,6 +19,7 @@
#include "PreviewLoader.h"
#include "support/FileName.h"
+#include "support/lyxlib.h"
using namespace std;
@@ -85,7 +86,7 @@ Dimension PreviewImage::dim() const
if (!image)
return dim;
- dim.asc = int(pimpl_->ascent_frac_ * double(image->height()) + 0.5);
+ dim.asc = support::iround(pimpl_->ascent_frac_ * double(image->height()));
dim.des = image->height() - dim.asc;
dim.wid = image->width();
return dim;
--
2.28.0.windows.1
-------------- next part --------------
From b3326101f4b96b27a97bed550c3ec6ef2e600ab0 Mon Sep 17 00:00:00 2001
From: Yuriy Skalko <yuriy.skalko at gmail.com>
Date: Thu, 26 Nov 2020 22:14:43 +0200
Subject: [PATCH 4/5] Replace ;;
---
src/insets/InsetNewpage.cpp | 2 +-
src/mathed/InsetMathGrid.cpp | 2 +-
src/mathed/InsetMathMacroTemplate.cpp | 2 +-
src/mathed/InsetMathSpecialChar.cpp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/insets/InsetNewpage.cpp b/src/insets/InsetNewpage.cpp
index 9f343ae2e2..897a946887 100644
--- a/src/insets/InsetNewpage.cpp
+++ b/src/insets/InsetNewpage.cpp
@@ -162,7 +162,7 @@ void InsetNewpage::draw(PainterInfo & pi, int x, int y) const
pi.pain.lines(xp, yp, 2, ColorName());
//mid-rule
- xp[0] = xp[1] = int(x + wid * 0.5);;
+ xp[0] = xp[1] = int(x + wid * 0.5);
yp[0] = int(y - 0.875 * asc * 0.75);
yp[1] = int(y - 0.125 * asc * 0.75);
pi.pain.lines(xp, yp, 2, ColorName());
diff --git a/src/mathed/InsetMathGrid.cpp b/src/mathed/InsetMathGrid.cpp
index ba3bda6d95..7158df2e43 100644
--- a/src/mathed/InsetMathGrid.cpp
+++ b/src/mathed/InsetMathGrid.cpp
@@ -483,7 +483,7 @@ void InsetMathGrid::metrics(MetricsInfo & mi, Dimension & dim) const
colinfo_[ncols()].width = 0;
// compute horizontal offsets
- colinfo_[0].offset = border() + colinfo_[0].lines * vlinesep();;
+ colinfo_[0].offset = border() + colinfo_[0].lines * vlinesep();
for (col_type col = 1; col <= ncols(); ++col) {
colinfo_[col].offset =
colinfo_[col - 1].offset +
diff --git a/src/mathed/InsetMathMacroTemplate.cpp b/src/mathed/InsetMathMacroTemplate.cpp
index 1152936ee2..7f43586513 100644
--- a/src/mathed/InsetMathMacroTemplate.cpp
+++ b/src/mathed/InsetMathMacroTemplate.cpp
@@ -573,7 +573,7 @@ void InsetMathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const
if (macro)
macro->unlock();
- dim.wid += leftOffset(mi.base.bv) + rightOffset(mi.base.bv);;
+ dim.wid += leftOffset(mi.base.bv) + rightOffset(mi.base.bv);
dim.des += bottomOffset(mi.base.bv);
dim.asc += topOffset(mi.base.bv);
}
diff --git a/src/mathed/InsetMathSpecialChar.cpp b/src/mathed/InsetMathSpecialChar.cpp
index 701bcc8686..f2a9a737f3 100644
--- a/src/mathed/InsetMathSpecialChar.cpp
+++ b/src/mathed/InsetMathSpecialChar.cpp
@@ -56,7 +56,7 @@ Inset * InsetMathSpecialChar::clone() const
void InsetMathSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
{
if (mi.base.fontname == "mathnormal") {
- Changer dummy = mi.base.font.changeShape(UP_SHAPE);;
+ Changer dummy = mi.base.font.changeShape(UP_SHAPE);
dim = theFontMetrics(mi.base.font).dimension(char_);
} else {
frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
--
2.28.0.windows.1
-------------- next part --------------
From c7b38c8be83047afa92d88ac8e1750073e997863 Mon Sep 17 00:00:00 2001
From: Yuriy Skalko <yuriy.skalko at gmail.com>
Date: Thu, 26 Nov 2020 23:01:18 +0200
Subject: [PATCH 5/5] Fix signed integer overflow on x = 0, detected by GCC
sanitizer
---
src/support/lstrings.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/support/lstrings.cpp b/src/support/lstrings.cpp
index f0e79b88b3..9aac66a754 100644
--- a/src/support/lstrings.cpp
+++ b/src/support/lstrings.cpp
@@ -1446,8 +1446,8 @@ std::string formatFPNumber(double x)
os << std::fixed;
// Prevent outputs of 23.4200000000000017 but output small numbers
// with at least 6 significant digits.
- double const logarithm = log10(fabs(x));
- os << std::setprecision(max(6 - iround(logarithm), 0)) << x;
+ int const precision = (x == 0.0) ? 0 : max(6 - iround(log10(fabs(x))), 0);
+ os << std::setprecision(precision) << x;
string result = os.str();
if (result.find('.') != string::npos) {
result = rtrim(result, "0");
--
2.28.0.windows.1
More information about the lyx-devel
mailing list