git: 9b33208481ce - main - games/khangman: runtime fixes.

From: Max Brazhnikov <makc_at_FreeBSD.org>
Date: Mon, 24 Feb 2025 21:16:32 UTC
The branch main has been updated by makc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9b33208481ce8b975e5e330791100ba30061f701

commit 9b33208481ce8b975e5e330791100ba30061f701
Author:     Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2025-02-24 21:14:20 +0000
Commit:     Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2025-02-24 21:14:20 +0000

    games/khangman: runtime fixes.
    
    Add patch to fix non-Latin scripts and bring support for Russian and Ukrainian languages.
    Add missing runtime dependence on data files.
    While here, amend website and comment, and refresh USES/USE_KDE.
---
 games/khangman/Makefile             |  16 ++--
 games/khangman/files/patch-nonLatin | 173 ++++++++++++++++++++++++++++++++++++
 games/khangman/pkg-plist            |   2 +
 3 files changed, 185 insertions(+), 6 deletions(-)

diff --git a/games/khangman/Makefile b/games/khangman/Makefile
index 6bb348108891..3f46582e67fe 100644
--- a/games/khangman/Makefile
+++ b/games/khangman/Makefile
@@ -1,19 +1,23 @@
 PORTNAME=	khangman
 DISTVERSION=	${KDE_APPLICATIONS_VERSION}
+PORTREVISION=	1
 CATEGORIES=	games kde kde-applications
 
 MAINTAINER=	kde@FreeBSD.org
-COMMENT=	Hangman game for KDE 4
-WWW=		https://edu.kde.org/khangman
+COMMENT=	Hangman game for KDE
+WWW=		https://apps.kde.org/khangman/
 
-USES=		cmake compiler:c++11-lang gettext kde:6 qt:6 tar:xz
-USE_KDE=	attica auth codecs completion config configwidgets coreaddons \
-		crash doctools i18n kdeclarative libkeduvocdocument newstuff \
-		notifications package service widgetsaddons xmlgui \
+RUN_DEPENDS=	kdeedu-data>=${KDE_APPLICATIONS_VERSION}:misc/kdeedu-data
+
+USES=		cmake compiler:c++17-lang gettext kde:6 qt:6 tar:xz
+USE_KDE=	completion config coreaddons crash i18n kio \
+		libkeduvocdocument newstuff notifications \
 		ecm:build
 USE_QT=		base declarative
 USE_LDCONFIG=	yes
 
+PATCH_STRIP=	-p1
+
 OPTIONS_DEFINE=	DOCS
 
 .include <bsd.port.mk>
diff --git a/games/khangman/files/patch-nonLatin b/games/khangman/files/patch-nonLatin
new file mode 100644
index 000000000000..16ee8888f032
--- /dev/null
+++ b/games/khangman/files/patch-nonLatin
@@ -0,0 +1,173 @@
+diff --git a/languages/CMakeLists.txt b/languages/CMakeLists.txt
+index 5543653..d2cee8b 100644
+--- a/languages/CMakeLists.txt
++++ b/languages/CMakeLists.txt
+@@ -16,6 +16,7 @@ add_subdirectory(nn)
+ add_subdirectory(pl)
+ add_subdirectory(pt)
+ add_subdirectory(pt_BR)
++add_subdirectory(ru)
+ add_subdirectory(sk)
+ add_subdirectory(sl)
+ add_subdirectory(sr@ijekavianlatin)
+@@ -23,3 +24,4 @@ add_subdirectory(sr@latin)
+ add_subdirectory(sv)
+ add_subdirectory(tg)
+ add_subdirectory(tr)
++add_subdirectory(uk)
+diff --git a/languages/ru/CMakeLists.txt b/languages/ru/CMakeLists.txt
+new file mode 100644
+index 0000000..15e506a
+--- /dev/null
++++ b/languages/ru/CMakeLists.txt
+@@ -0,0 +1 @@
++install(FILES ru.txt DESTINATION ${KDE_INSTALL_DATADIR}/khangman)
+diff --git a/languages/ru/ru.txt b/languages/ru/ru.txt
+new file mode 100644
+index 0000000..eec9993
+--- /dev/null
++++ b/languages/ru/ru.txt
+@@ -0,0 +1,33 @@
++а
++б
++в
++г
++д
++е
++ё
++ж
++з
++и
++й
++к
++л
++м
++н
++о
++п
++р
++с
++т
++у
++ф
++х
++ц
++ч
++ш
++щ
++ъ
++ы
++ь
++э
++ю
++я
+diff --git a/languages/uk/CMakeLists.txt b/languages/uk/CMakeLists.txt
+new file mode 100644
+index 0000000..d617e99
+--- /dev/null
++++ b/languages/uk/CMakeLists.txt
+@@ -0,0 +1 @@
++install(FILES uk.txt DESTINATION ${KDE_INSTALL_DATADIR}/khangman)
+diff --git a/languages/uk/uk.txt b/languages/uk/uk.txt
+new file mode 100644
+index 0000000..344dc8a
+--- /dev/null
++++ b/languages/uk/uk.txt
+@@ -0,0 +1,33 @@
++а
++б
++в
++г
++ґ
++д
++е
++є
++ж
++з
++и
++і
++ї
++й
++к
++л
++м
++н
++о
++п
++р
++с
++т
++у
++ф
++х
++ц
++ч
++ш
++щ
++ь
++ю
++я
+diff --git a/src/khangman.cpp b/src/khangman.cpp
+index dc1ab37..d778c21 100644
+--- a/src/khangman.cpp
++++ b/src/khangman.cpp
+@@ -368,8 +368,12 @@ QString KHangMan::getCurrentHint() const
+ QStringList KHangMan::alphabet() const
+ {
+     QStringList letterList;
+-    for (char c = 'A'; c <= 'Z'; ++c) {
+-        letterList.append(QChar::fromLatin1(c));
++
++    QString lang = Prefs::selectedLanguage();
++    if (LangUtils::isLatinAlphabet(lang)) {
++        for (char c = 'A'; c <= 'Z'; ++c) {
++            letterList.append(QChar::fromLatin1(c));
++        }
+     }
+ 
+     letterList.append(m_specialCharacters);
+diff --git a/src/langutils.cpp b/src/langutils.cpp
+index bef0369..820b14b 100644
+--- a/src/langutils.cpp
++++ b/src/langutils.cpp
+@@ -4,15 +4,26 @@
+ //project headers
+ #include "langutils.h"
+ 
++bool LangUtils::isLatinAlphabet(const QString& lang)
++{
++    if (lang == QLatin1String("ru")
++            || lang == QLatin1String("uk"))
++    {
++        return false;
++    }
++    return true;
++}
++
+ bool LangUtils::hasSpecialChars(const QString& lang)
+ {
++    if (!LangUtils::isLatinAlphabet(lang)) {
++        return true;
++    }
+     if (lang == QLatin1String("en")
+             || lang == QLatin1String("en_GB")
+             || lang == QLatin1String("it")
+             || lang == QLatin1String("nl")
+-            || lang == QLatin1String("ru")
+             || lang == QLatin1String("bg")
+-            || lang == QLatin1String("uk")
+             || lang == QLatin1String("el")
+             || lang == QLatin1String("ro"))
+     {
+diff --git a/src/langutils.h b/src/langutils.h
+index 2fbecca..3f76537 100644
+--- a/src/langutils.h
++++ b/src/langutils.h
+@@ -9,6 +9,7 @@
+ class LangUtils
+ {
+ public:
++    static bool isLatinAlphabet(const QString& lang);
+     static bool hasSpecialChars(const QString& lang);
+     static QFont fontForLanguage(const QString& lang);
+     static QString capitalize(const QString& str, const QString& lang);
diff --git a/games/khangman/pkg-plist b/games/khangman/pkg-plist
index fbc8b0aede8f..0357b43cda71 100644
--- a/games/khangman/pkg-plist
+++ b/games/khangman/pkg-plist
@@ -28,6 +28,7 @@ share/icons/hicolor/scalable/apps/khangman.svgz
 %%DATADIR%%/pl.txt
 %%DATADIR%%/pt.txt
 %%DATADIR%%/pt_BR.txt
+%%DATADIR%%/ru.txt
 %%DATADIR%%/sk.txt
 %%DATADIR%%/sl.txt
 %%DATADIR%%/sr@ijekavianlatin.txt
@@ -41,6 +42,7 @@ share/icons/hicolor/scalable/apps/khangman.svgz
 %%DATADIR%%/themes/khangman_winter.svg
 %%DATADIR%%/themes/standardthemes.xml
 %%DATADIR%%/tr.txt
+%%DATADIR%%/uk.txt
 share/knsrcfiles/khangman.knsrc
 share/locale/af/LC_MESSAGES/khangman.mo
 share/locale/ar/LC_MESSAGES/khangman.mo