summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2024-08-09 23:12:58 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2024-08-10 09:56:44 +0200
commit5a59820eaa645944a7136c4d623da15364d6701f (patch)
tree96e4bfea0073dd1f647aef5d779eb51fcb4fbe9a /kde-misc
parentmedia-sound/easyeffects: drop 7.0.7 (diff)
downloadgentoo-5a59820eaa645944a7136c4d623da15364d6701f.tar.gz
gentoo-5a59820eaa645944a7136c4d623da15364d6701f.tar.bz2
gentoo-5a59820eaa645944a7136c4d623da15364d6701f.zip
kde-misc/kdiff3: Handle 0 height QWidget in getNofVisibleLines
Upstream commit 5965591080306c66a48e961d264f212989fdae94 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=487338 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-misc')
-rw-r--r--kde-misc/kdiff3/files/kdiff3-1.11.2-fix-fp-exception.patch55
-rw-r--r--kde-misc/kdiff3/kdiff3-1.11.2-r1.ebuild49
2 files changed, 104 insertions, 0 deletions
diff --git a/kde-misc/kdiff3/files/kdiff3-1.11.2-fix-fp-exception.patch b/kde-misc/kdiff3/files/kdiff3-1.11.2-fix-fp-exception.patch
new file mode 100644
index 000000000000..b735d659f928
--- /dev/null
+++ b/kde-misc/kdiff3/files/kdiff3-1.11.2-fix-fp-exception.patch
@@ -0,0 +1,55 @@
+From 5965591080306c66a48e961d264f212989fdae94 Mon Sep 17 00:00:00 2001
+From: Michael Reeves <reeves.87@gmail.com>
+Date: Thu, 4 Jul 2024 07:50:21 -0400
+Subject: [PATCH] Handle 0 height QWidget in getNofVisibleLines
+
+BUG:487338
+FIXED-IN:1.11.3
+---
+ src/difftextwindow.cpp | 8 +++++---
+ src/mergeresultwindow.cpp | 3 ++-
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/src/difftextwindow.cpp b/src/difftextwindow.cpp
+index 783d13a66..85c0419fd 100644
+--- a/src/difftextwindow.cpp
++++ b/src/difftextwindow.cpp
+@@ -574,7 +574,9 @@ LineRef DiffTextWindow::convertDiff3LineIdxToLine(const LineType d3lIdx) const
+ */
+ LineRef getBestFirstLine(LineRef line, LineType nofLines, LineRef firstLine, LineType visibleLines)
+ {
+- if(line < visibleLines) //well known result.
++ assert(visibleLines >= 0); // VisibleLines should not be < 0.
++
++ if(line < visibleLines || visibleLines == 0) //well known result.
+ return 0;
+
+ LineRef newFirstLine = firstLine;
+@@ -1412,8 +1414,8 @@ void DiffTextWindow::resizeEvent(QResizeEvent* e)
+ LineType DiffTextWindow::getNofVisibleLines() const
+ {
+ QFontMetrics fm = fontMetrics();
+-
+- return height() / fm.lineSpacing() - 1;
++ //QWidget::height() may return 0 with certian configurations with 0 length input files loaded.
++ return std::max((LineType)ceil(height() / fm.lineSpacing()) - 1, 0);
+ }
+
+ qint32 DiffTextWindow::getVisibleTextAreaWidth() const
+diff --git a/src/mergeresultwindow.cpp b/src/mergeresultwindow.cpp
+index b1100569d..46e50c945 100644
+--- a/src/mergeresultwindow.cpp
++++ b/src/mergeresultwindow.cpp
+@@ -471,7 +471,8 @@ qint32 MergeResultWindow::getVisibleTextAreaWidth() const
+ qint32 MergeResultWindow::getNofVisibleLines() const
+ {
+ QFontMetrics fm = fontMetrics();
+- return (height() - 3) / fm.lineSpacing() - 2;
++ //QWidget::height() may return 0 with certian configurations with 0 length input files loaded.
++ return std::max((qint32)ceil((height() - 3) / fm.lineSpacing()) - 2, 0);
+ }
+
+ qint32 MergeResultWindow::getTextXOffset() const
+--
+GitLab
+
diff --git a/kde-misc/kdiff3/kdiff3-1.11.2-r1.ebuild b/kde-misc/kdiff3/kdiff3-1.11.2-r1.ebuild
new file mode 100644
index 000000000000..35a32af7049c
--- /dev/null
+++ b/kde-misc/kdiff3/kdiff3-1.11.2-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="optional"
+KFMIN=6.3.0
+QTMIN=6.6.2
+inherit ecm kde.org
+
+DESCRIPTION="Frontend to diff3 based on KDE Frameworks"
+HOMEPAGE="https://apps.kde.org/kdiff3/ https://userbase.kde.org/KDiff3"
+SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE=""
+
+COMMON_DEPEND="
+ >=dev-qt/qt5compat-${QTMIN}:6
+ >=dev-qt/qtbase-${QTMIN}:6[gui,widgets]
+ >=kde-frameworks/kconfig-${KFMIN}:6
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/kcrash-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ >=kde-frameworks/kio-${KFMIN}:6
+ >=kde-frameworks/ktextwidgets-${KFMIN}:6
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+ >=kde-frameworks/kxmlgui-${KFMIN}:6
+"
+DEPEND="${COMMON_DEPEND}
+ >=dev-libs/boost-1.82
+"
+RDEPEND="${COMMON_DEPEND}
+ !${CATEGORY}/${PN}:5
+ sys-apps/diffutils
+"
+
+PATCHES=( "${FILESDIR}/${P}-fix-fp-exception.patch" ) # KDE-bug 487338
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_WITH_QT6=ON
+ # TODO: -DENABLE_GDBINDEX?
+ )
+ ecm_src_configure
+}