Compare commits

...

5 Commits

Author SHA1 Message Date
e61b67df9f Bump Copyright year
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2026-01-05 11:52:28 +01:00
e6ea4a2742 Order blocks by Unicode location
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2025-12-03 12:49:19 +01:00
83e2022ef6 Pull translations from Transifex
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2025-12-02 11:31:03 +01:00
45b1b0eb58 Fork my mailbox to business and personal
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2025-11-21 03:33:12 +01:00
Simon Rozman
8119bb9271 Preset version to 2.7.2
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-21 03:27:21 +01:00
111 changed files with 382 additions and 322 deletions

Binary file not shown.

View File

@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# Copyright © 1991-2022 Amebis # Copyright © 1991-2026 Amebis
!INCLUDE "..\..\include\MSIBuildCfg.mak" !INCLUDE "..\..\include\MSIBuildCfg.mak"
!INCLUDE "..\MSIBuild\Makefile" !INCLUDE "..\MSIBuild\Makefile"

View File

@@ -1,6 +1,6 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2022 # Simon Rozman <simon.rozman@amebis.si>, 2022
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-17 13:32+0100\n" "POT-Creation-Date: 2022-02-17 13:32+0100\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n" "PO-Revision-Date: 2018-09-19 07:19+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2022\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2022\n"
"Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

View File

@@ -1,6 +1,6 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2022 # Simon Rozman <simon.rozman@amebis.si>, 2022
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-17 13:32+0100\n" "POT-Creation-Date: 2022-02-17 13:32+0100\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n" "PO-Revision-Date: 2018-09-19 07:19+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2022\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2022\n"
"Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n" "Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

View File

@@ -1,6 +1,6 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2022 # Simon Rozman <simon.rozman@amebis.si>, 2022
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-17 13:32+0100\n" "POT-Creation-Date: 2022-02-17 13:32+0100\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n" "PO-Revision-Date: 2018-09-19 07:19+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2022\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2022\n"
"Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

BIN
Makefile

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Submodule Updater updated: f457f62448...bf3805829f

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2021 # Simon Rozman <simon.rozman@amebis.si>, 2021
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2025-11-14 16:23+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2018-09-19 07:18+0000\n" "PO-Revision-Date: 2018-09-19 07:18+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2021\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2021\n"
"Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

View File

@@ -1,7 +1,7 @@
# #
# Translators: # Translators:
# Janoš Ježovnik, 2019 # Janoš Ježovnik, 2019
# Simon Rozman <simon@rozman.si>, 2021 # Simon Rozman <simon.rozman@amebis.si>, 2021
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2025-11-14 16:23+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2018-09-19 07:18+0000\n" "PO-Revision-Date: 2018-09-19 07:18+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2021\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2021\n"
"Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n" "Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

View File

@@ -1,6 +1,7 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2025 # Simon Rozman <simon.rozman@amebis.si>, 2025
# Janoš Ježovnik, 2025
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -8,7 +9,7 @@ msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2025-11-14 16:23+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2018-09-19 07:18+0000\n" "PO-Revision-Date: 2018-09-19 07:18+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2025\n" "Last-Translator: Janoš Ježovnik, 2025\n"
"Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -82,11 +83,11 @@ msgstr "▾ Možnosti iskanja"
#: zrcolafrm.cpp:76 #: zrcolafrm.cpp:76
msgid "No Translation" msgid "No Translation"
msgstr "Brez transliteracije" msgstr "Brez prečrkovanja"
#: zrcolafrm.cpp:89 #: zrcolafrm.cpp:89
msgid "Custom Translation..." msgid "Custom Translation..."
msgstr "Pretvorba po meri ..." msgstr "Prečrkovanje po meri ..."
#: zrcolafrm.cpp:209 #: zrcolafrm.cpp:209
msgid "" msgid ""
@@ -186,7 +187,7 @@ msgstr ""
#: zrcolagui.cpp:126 #: zrcolagui.cpp:126
msgid "Abort (De)composition" msgid "Abort (De)composition"
msgstr "Prekini raz/sestavljanje" msgstr "Prekini raz-/sestavljanje"
#: zrcolagui.cpp:126 #: zrcolagui.cpp:126
msgid "Abort composition and return focus to source window" msgid "Abort composition and return focus to source window"
@@ -222,7 +223,7 @@ msgstr "(Raz-)sestavljanje znakov Unicode"
#: zrcolagui.cpp:151 #: zrcolagui.cpp:151
msgid "Tra&nslation" msgid "Tra&nslation"
msgstr "Tra&nsliteracija" msgstr "Prečrkova&nje"
#: zrcolagui.cpp:156 #: zrcolagui.cpp:156
msgid "&PUA Warning" msgid "&PUA Warning"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"
@@ -204,8 +204,8 @@ wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
// Fill blocks. // Fill blocks.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
int idx = m_blocks->Insert(wxGetTranslation(wxString(cb.name(), cb.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i); int idx = m_blocks->Insert(wxGetTranslation(wxString(cb.name(), cb.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i);
m_blocks->Check(idx); m_blocks->Check(idx);
m_cbOrder.insert(std::make_pair(cb.id, idx)); m_cbOrder.insert(std::make_pair(cb.id, idx));
@@ -267,7 +267,7 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
{ {
// Update character block. // Update character block.
ZRCola::chrblk_db::indexChrId::size_type cb_start; ZRCola::chrblk_db::indexChrId::size_type cb_start;
if (app->m_cb_db.idxChrId.find(ZRCola::chrblk_db::chrcls(chr.blk), cb_start)) { if (app->m_cb_db.idxChrId.find(ZRCola::chrblk_db::chrblk(chr.blk), cb_start)) {
const auto &blk = app->m_cb_db.idxChrId[cb_start]; const auto &blk = app->m_cb_db.idxChrId[cb_start];
m_block->SetValue(wxGetTranslation(wxString(blk.name(), blk.name_len()), wxT("ZRCola-zrcdb"))); m_block->SetValue(wxGetTranslation(wxString(blk.name(), blk.name_len()), wxT("ZRCola-zrcdb")));
} else } else
@@ -341,8 +341,8 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_searchThread->m_search.assign(val.c_str(), val.Length()); m_searchThread->m_search.assign(val.c_str(), val.Length());
// Select blocks. // Select blocks.
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
if (m_blocks->IsChecked((unsigned int)i)) if (m_blocks->IsChecked((unsigned int)i))
m_searchThread->m_blks.insert(cb.id); m_searchThread->m_blks.insert(cb.id);
} }
@@ -389,7 +389,7 @@ void wxZRColaCharSelect::OnBlocksAll(wxHyperlinkEvent& event)
event.StopPropagation(); event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++)
m_blocks->Check((unsigned int)i, true); m_blocks->Check((unsigned int)i, true);
m_searchChanged = true; m_searchChanged = true;
@@ -401,7 +401,7 @@ void wxZRColaCharSelect::OnBlocksNone(wxHyperlinkEvent& event)
event.StopPropagation(); event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++)
m_blocks->Check((unsigned int)i, false); m_blocks->Check((unsigned int)i, false);
m_searchChanged = true; m_searchChanged = true;
@@ -413,7 +413,7 @@ void wxZRColaCharSelect::OnBlocksInvert(wxHyperlinkEvent& event)
event.StopPropagation(); event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++)
m_blocks->Check((unsigned int)i, !m_blocks->IsChecked((unsigned int)i)); m_blocks->Check((unsigned int)i, !m_blocks->IsChecked((unsigned int)i));
m_searchChanged = true; m_searchChanged = true;
@@ -820,8 +820,8 @@ void wxPersistentZRColaCharSelect::Save() const
SaveValue(wxT("recentChars" ), str ); // Save in legacy format for backward compatibility. SaveValue(wxT("recentChars" ), str ); // Save in legacy format for backward compatibility.
SaveValue(wxT("recentChars2"), str2); // Save in native format SaveValue(wxT("recentChars2"), str2); // Save in native format
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
SaveValue(wxString::Format(wxT("block%u"), cb.id), wnd->m_blocks->IsChecked((unsigned int)i)); SaveValue(wxString::Format(wxT("block%u"), cb.id), wnd->m_blocks->IsChecked((unsigned int)i));
} }
@@ -853,8 +853,8 @@ bool wxPersistentZRColaCharSelect::Restore()
wnd->m_gridRecent->SetCharacters(val); wnd->m_gridRecent->SetCharacters(val);
} }
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
bool val; bool val;
if (RestoreValue(wxString::Format(wxT("block%u"), cb.id), &val)) if (RestoreValue(wxString::Format(wxT("block%u"), cb.id), &val))
wnd->m_blocks->Check((unsigned int)i, val); wnd->m_blocks->Check((unsigned int)i, val);

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
/// ///

Binary file not shown.

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once
@@ -16,6 +16,7 @@
#include <WinStd/COM.h> #include <WinStd/COM.h>
#include <WinStd/Win.h> #include <WinStd/Win.h>
#include <stdex/string.hpp>
#include <wxex/common.h> #include <wxex/common.h>
#pragma warning(push) #pragma warning(push)
@@ -1019,11 +1020,21 @@ inline ZRCola::chrblk_db& operator<<(_Inout_ ZRCola::chrblk_db &db, _In_ const Z
uint32_t idx = db.data.size(); uint32_t idx = db.data.size();
db.data.push_back((uint16_t)rec.second.id); db.data.push_back((uint16_t)rec.second.id);
db.data.push_back((uint16_t)rec.second.rank); db.data.push_back((uint16_t)rec.second.rank);
std::wstring::size_type n = rec.second.name.length(); std::wstring::size_type n = rec.first >= 0x10000 ? 2 : 1;
db.data.push_back((uint16_t)n);
n += rec.second.name.length();
wxASSERT_MSG(n <= 0xffff, wxT("character block name overflow")); wxASSERT_MSG(n <= 0xffff, wxT("character block name overflow"));
db.data.push_back((uint16_t)n); db.data.push_back((uint16_t)n);
if (rec.first < 0x10000)
db.data.push_back((uint16_t)rec.first);
else {
stdex::utf16_t buf[2];
stdex::ucs4_to_surrogate_pair(buf, rec.first);
db.data.insert(db.data.end(), &buf[0], &buf[2]);
}
db.data.insert(db.data.end(), rec.second.name.cbegin(), rec.second.name.cend()); db.data.insert(db.data.end(), rec.second.name.cbegin(), rec.second.name.cend());
db.idxChrId.push_back(idx); db.idxChrId.push_back(idx);
db.idxFirst.push_back(idx);
db.idxRank .push_back(idx); db.idxRank .push_back(idx);
return db; return db;

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"
@@ -821,6 +821,7 @@ int _tmain(int argc, _TCHAR *argv[])
// Preallocate memory. // Preallocate memory.
db.idxChrId.reserve(chrs.idxChrBlk.size()); db.idxChrId.reserve(chrs.idxChrBlk.size());
db.idxFirst.reserve(chrs.idxChrBlk.size());
db.idxRank.reserve(chrs.idxChrBlk.size()); db.idxRank.reserve(chrs.idxChrBlk.size());
db.data.reserve(chrs.idxChrBlk.size() * 16); db.data.reserve(chrs.idxChrBlk.size() * 16);
@@ -841,6 +842,7 @@ int _tmain(int argc, _TCHAR *argv[])
// Write character blocks to file. // Write character blocks to file.
db.idxChrId.sort(); db.idxChrId.sort();
db.idxFirst.sort();
db.idxRank.sort(); db.idxRank.sort();
dst << ZRCola::chrblk_rec(db); dst << ZRCola::chrblk_rec(db);
} }

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2018-2022 Amebis Copyright © 2018-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2018-2022 Amebis Copyright © 2018-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

Binary file not shown.

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#include "appcomponent.hpp" #include "appcomponent.hpp"
@@ -132,7 +132,7 @@ int main(int argc, const char* argv[])
{ {
oatpp::base::CommandLineArguments cmdArgs(argc, argv); oatpp::base::CommandLineArguments cmdArgs(argc, argv);
if (cmdArgs.hasArgument("-?") || cmdArgs.hasArgument("--help")) { if (cmdArgs.hasArgument("-?") || cmdArgs.hasArgument("--help")) {
cerr << "ZRColaWS " << PRODUCT_VERSION_STR << " Copyright © 2022 Amebis" << endl; cerr << "ZRColaWS " << PRODUCT_VERSION_STR << " Copyright © 2022-2026 Amebis" << endl;
cerr << endl; cerr << endl;
cerr << argv[0] << " [--host <interface name>] [--port <port number>] [-4|-6]" << endl; cerr << argv[0] << " [--host <interface name>] [--port <port number>] [-4|-6]" << endl;
return 1; return 1;

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2017-2022 Amebis Copyright © 2017-2026 Amebis
--> -->
<package> <package>
<job id="CanoPerm"> <job id="CanoPerm">
<runtime> <runtime>
<description>Generates character index permutations - Amebis, Copyright © 2017-2022</description> <description>Generates character index permutations - Amebis, Copyright © 2017-2026</description>
<unnamed name="&lt;Pattern&gt;" required="true" helpstring="Cannonical form (X=unmoveable character; 0-9=moveable character, characters of the same number must preserve global order of appearance; maximum 10 characters)"/> <unnamed name="&lt;Pattern&gt;" required="true" helpstring="Cannonical form (X=unmoveable character; 0-9=moveable character, characters of the same number must preserve global order of appearance; maximum 10 characters)"/>
<example> <example>
Example: Example:

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<package> <package>
<job id="InstFont"> <job id="InstFont">
<runtime> <runtime>
<description>Installs font - Amebis, Copyright © 2016-2022</description> <description>Installs font - Amebis, Copyright © 2016-2026</description>
<unnamed name="&lt;Shortcut.lnk&gt;" required="true" helpstring="Shortcut file to create"/> <unnamed name="&lt;Shortcut.lnk&gt;" required="true" helpstring="Shortcut file to create"/>
<example> <example>
Example: Example:

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 1991-2022 Amebis Copyright © 1991-2026 Amebis
--> -->
<package> <package>
<job id="MkLnk"> <job id="MkLnk">
<runtime> <runtime>
<description>Creates shortcut to a program - Amebis, Copyright © 1991-2022</description> <description>Creates shortcut to a program - Amebis, Copyright © 1991-2026</description>
<unnamed name="&lt;Shortcut.lnk&gt;" required="true" helpstring="Shortcut file to create"/> <unnamed name="&lt;Shortcut.lnk&gt;" required="true" helpstring="Shortcut file to create"/>
<unnamed name="&lt;Target&gt;" required="true" helpstring="Target file the shortcut invokes"/> <unnamed name="&lt;Target&gt;" required="true" helpstring="Target file the shortcut invokes"/>
<named name="A" type="string" required="false" helpstring="Command line arguments"/> <named name="A" type="string" required="false" helpstring="Command line arguments"/>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<package> <package>
<job id="CharImport"> <job id="CharImport">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets"> <ImportGroup Label="PropertySheets">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" /> <ImportGroup Label="PropertySheets" />

Binary file not shown.

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" /> <ImportGroup Label="PropertySheets" />

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "version.h" #include "version.h"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets"> <ImportGroup Label="PropertySheets">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once
@@ -9,7 +9,7 @@
// Product version as a single DWORD // Product version as a single DWORD
// Note: Used for version comparison within C/C++ code. // Note: Used for version comparison within C/C++ code.
// //
#define PRODUCT_VERSION 0x02070100 #define PRODUCT_VERSION 0x02070200
// //
// Product version by components // Product version by components
@@ -19,26 +19,26 @@
// //
#define PRODUCT_VERSION_MAJ 2 #define PRODUCT_VERSION_MAJ 2
#define PRODUCT_VERSION_MIN 7 #define PRODUCT_VERSION_MIN 7
#define PRODUCT_VERSION_REV 1 #define PRODUCT_VERSION_REV 2
#define PRODUCT_VERSION_BUILD 0 #define PRODUCT_VERSION_BUILD 0
// //
// Human readable product version and build year for UI // Human readable product version and build year for UI
// //
#define PRODUCT_VERSION_STR "2.7.1" #define PRODUCT_VERSION_STR "2.7.2"
#define PRODUCT_BUILD_YEAR_STR "2025" #define PRODUCT_BUILD_YEAR_STR "2026"
// //
// Numerical version presentation for ProductVersion property in // Numerical version presentation for ProductVersion property in
// MSI packages (syntax: N.N[.N[.N]]) // MSI packages (syntax: N.N[.N[.N]])
// //
#define PRODUCT_VERSION_INST "2.7.1" #define PRODUCT_VERSION_INST "2.7.2"
// //
// The product code for ProductCode property in MSI packages // The product code for ProductCode property in MSI packages
// Replace with new on every version change, regardless how minor it is. // Replace with new on every version change, regardless how minor it is.
// //
#define PRODUCT_VERSION_GUID "{9423BEC3-3159-4130-8C3E-48D5DE24D48A}" #define PRODUCT_VERSION_GUID "{4B9FEEBE-280F-414D-BC8D-CB091F00C48F}"
// //
// The product vendor and application name for configuration keeping. // The product vendor and application name for configuration keeping.

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2016-2022 Amebis Copyright © 2016-2026 Amebis
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets"> <ImportGroup Label="PropertySheets">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 1991-2022 Amebis Copyright © 1991-2026 Amebis
--> -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(POCompileBeforeTargets)' == '' and '$(POCompileAfterTargets)' == '' and '$(ConfigurationType)' != 'Makefile'"> <PropertyGroup Condition="'$(POCompileBeforeTargets)' == '' and '$(POCompileAfterTargets)' == '' and '$(ConfigurationType)' != 'Makefile'">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 1991-2022 Amebis Copyright © 1991-2026 Amebis
--> -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 1991-2022 Amebis Copyright © 1991-2026 Amebis
--> -->
<ProjectSchemaDefinitions xmlns="clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:transformCallback="Microsoft.Cpp.Dev10.ConvertPropertyCallback"> <ProjectSchemaDefinitions xmlns="clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:transformCallback="Microsoft.Cpp.Dev10.ConvertPropertyCallback">
<Rule Name="POCompile" PageTemplate="tool" DisplayName="PO Compiler" SwitchPrefix="--" Order="200"> <Rule Name="POCompile" PageTemplate="tool" DisplayName="PO Compiler" SwitchPrefix="--" Order="200">

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once
@@ -289,62 +289,74 @@ namespace ZRCola {
/// ///
/// Character classification database template /// Character block database
/// ///
template <typename T_id> class chrblk_db {
class chrclass_db {
public: public:
#pragma pack(push) #pragma pack(push)
#pragma pack(2) #pragma pack(2)
/// ///
/// Character classification data /// Character block data
/// ///
struct chrcls { struct chrblk {
public: public:
T_id id; ///< Character classification ID chrblkid_t id; ///< Character block ID
uint16_t rank; ///< Character classification rank uint16_t rank; ///< Character block rank
protected: protected:
uint16_t name_to; ///< Character classification name end in \c data uint16_t first_to; ///< Character block first character end in \c data
char_t data[]; ///< Character classification name uint16_t name_to; ///< Character block name end in \c data
char_t data[]; ///< Character block name
private: private:
chrcls(_In_ const chrcls &other); chrblk(_In_ const chrblk &other);
chrcls& operator=(_In_ const chrcls &other); chrblk& operator=(_In_ const chrblk &other);
public: public:
/// ///
/// Constructs the character classification /// Constructs the character block
/// ///
/// \param[in] id Character classification ID /// \param[in] id Character block ID
/// \param[in] rank Character classification rank /// \param[in] rank Character block rank
/// \param[in] name Character classification name /// \param[in] first Character block first character
/// \param[in] name_len Number of UTF-16 characters in \p name /// \param[in] first_len Number of UTF-16 characters in \p first
/// \param[in] name Character block name
/// \param[in] name_len Number of UTF-16 characters in \p name
/// ///
chrcls( chrblk(
_In_opt_ T_id id = default, _In_opt_ chrblkid_t id = 0,
_In_opt_ uint16_t rank = 0, _In_opt_ uint16_t rank = 0,
_In_opt_z_count_(name_len) const char_t *name = NULL, _In_opt_z_count_(first_len) const char_t *first = NULL,
_In_opt_ size_t name_len = 0) _In_opt_ size_t first_len = 0,
_In_opt_z_count_(name_len) const char_t *name = NULL,
_In_opt_ size_t name_len = 0)
{ {
this->id = id; this->id = id;
this->rank = rank; this->rank = rank;
this->name_to = static_cast<uint16_t>(name_len); this->first_to = static_cast<uint16_t>(first_len);
if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len); if (first && first_len) memcpy(this->data, first, sizeof(char_t)*first_len);
this->name_to = static_cast<uint16_t>(this->first_to + name_len);
if (name && name_len) memcpy(this->data + this->first_to, name, sizeof(char_t)*name_len);
} }
const char_t* name () const { return data; }; const char_t* first () const { return data; };
char_t* name () { return data; }; char_t* first () { return data; };
const char_t* name_end() const { return data + name_to; }; const char_t* first_end() const { return data + first_to; };
char_t* name_end() { return data + name_to; }; char_t* first_end() { return data + first_to; };
uint16_t name_len() const { return name_to; }; uint16_t first_len() const { return first_to; };
const char_t* name () const { return data + first_to; };
char_t* name () { return data + first_to; };
const char_t* name_end() const { return data + name_to; };
char_t* name_end() { return data + name_to; };
uint16_t name_len() const { return name_to - first_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
/// ///
/// Character classification index /// Character block index
/// ///
class indexChrId : public index<uint16_t, uint32_t, chrcls> class indexChrId : public index<uint16_t, uint32_t, chrblk>
{ {
public: public:
/// ///
@@ -352,10 +364,10 @@ namespace ZRCola {
/// ///
/// \param[in] h Reference to vector holding the data /// \param[in] h Reference to vector holding the data
/// ///
indexChrId(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrcls>(h) {} indexChrId(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrblk>(h) {}
/// ///
/// Compares two character categories by ID (for searching) /// Compares two character blocks by ID (for searching)
/// ///
/// \param[in] a Pointer to first element /// \param[in] a Pointer to first element
/// \param[in] b Pointer to second element /// \param[in] b Pointer to second element
@@ -365,19 +377,19 @@ namespace ZRCola {
/// - =0 when a == b /// - =0 when a == b
/// - >0 when a > b /// - >0 when a > b
/// ///
virtual int compare(_In_ const chrcls &a, _In_ const chrcls &b) const virtual int compare(_In_ const chrblk &a, _In_ const chrblk &b) const
{ {
if (a.id < b.id) return -1; if (a.id < b.id) return -1;
if (a.id > b.id) return 1; if (a.id > b.id) return 1;
return 0; return 0;
} }
} idxChrId; ///< Character classification index } idxChrId; ///< Character block index
/// ///
/// Rank index /// First character index
/// ///
class indexRank : public index<uint16_t, uint32_t, chrcls> class indexFirst : public index<uint16_t, uint32_t, chrblk>
{ {
public: public:
/// ///
@@ -385,10 +397,10 @@ namespace ZRCola {
/// ///
/// \param[in] h Reference to vector holding the data /// \param[in] h Reference to vector holding the data
/// ///
indexRank(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrcls>(h) {} indexFirst(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrblk>(h) {}
/// ///
/// Compares two character categories by ID (for searching) /// Compares two character blocks by first character (for searching)
/// ///
/// \param[in] a Pointer to first element /// \param[in] a Pointer to first element
/// \param[in] b Pointer to second element /// \param[in] b Pointer to second element
@@ -398,7 +410,40 @@ namespace ZRCola {
/// - =0 when a == b /// - =0 when a == b
/// - >0 when a > b /// - >0 when a > b
/// ///
virtual int compare(_In_ const chrcls &a, _In_ const chrcls &b) const virtual int compare(_In_ const chrblk &a, _In_ const chrblk &b) const
{
int r = ZRCola::CompareString(a.first(), a.first_len(), b.first(), b.first_len());
if (r != 0) return r;
return 0;
}
} idxFirst; ///< First character index
///
/// Rank index
///
class indexRank : public index<uint16_t, uint32_t, chrblk>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexRank(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrblk>(h) {}
///
/// Compares two character blocks by ID (for searching)
///
/// \param[in] a Pointer to first element
/// \param[in] b Pointer to second element
///
/// \returns
/// - <0 when a < b
/// - =0 when a == b
/// - >0 when a > b
///
virtual int compare(_In_ const chrblk &a, _In_ const chrblk &b) const
{ {
if (a.rank < b.rank) return -1; if (a.rank < b.rank) return -1;
if (a.rank > b.rank) return +1; if (a.rank > b.rank) return +1;
@@ -407,17 +452,17 @@ namespace ZRCola {
} }
/// ///
/// Compares two character categories by rank (for sorting) /// Compares two character blocks by rank (for sorting)
/// ///
/// \param[in] a Pointer to character classification /// \param[in] a Pointer to character block
/// \param[in] b Pointer to second character classification /// \param[in] b Pointer to second character block
/// ///
/// \returns /// \returns
/// - <0 when a < b /// - <0 when a < b
/// - =0 when a == b /// - =0 when a == b
/// - >0 when a > b /// - >0 when a > b
/// ///
virtual int compare_sort(_In_ const chrcls &a, _In_ const chrcls &b) const virtual int compare_sort(_In_ const chrblk &a, _In_ const chrblk &b) const
{ {
if (a.rank < b.rank) return -1; if (a.rank < b.rank) return -1;
else if (a.rank > b.rank) return +1; else if (a.rank > b.rank) return +1;
@@ -427,13 +472,13 @@ namespace ZRCola {
} }
} idxRank; ///< Rank index } idxRank; ///< Rank index
std::vector<uint16_t> data; ///< Character classification data std::vector<uint16_t> data; ///< Character block data
public: public:
/// ///
/// Constructs the database /// Constructs the database
/// ///
chrclass_db() : idxChrId(data), idxRank(data) {} chrblk_db() : idxChrId(data), idxFirst(data), idxRank(data) {}
/// ///
/// Clears the database /// Clears the database
@@ -441,25 +486,30 @@ namespace ZRCola {
void clear() void clear()
{ {
idxChrId.clear(); idxChrId.clear();
idxFirst.clear();
idxRank .clear(); idxRank .clear();
data .clear(); data .clear();
} }
/// ///
/// Writes character classification database to a stream /// Writes character block database to a stream
/// ///
/// \param[in] stream Output stream /// \param[in] stream Output stream
/// \param[in] db Character classification database /// \param[in] db Character block database
/// ///
/// \returns The stream \p stream /// \returns The stream \p stream
/// ///
friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const chrclass_db<T_id>& db) friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const chrblk_db& db)
{ {
// Write character classification index. // Write character block index.
if (stream.fail()) return stream; if (stream.fail()) return stream;
stream << db.idxChrId; stream << db.idxChrId;
// Write first character index.
if (stream.fail()) return stream;
stream << db.idxFirst;
// Write rank index. // Write rank index.
if (stream.fail()) return stream; if (stream.fail()) return stream;
stream << db.idxRank; stream << db.idxRank;
@@ -486,19 +536,23 @@ namespace ZRCola {
/// ///
/// Reads character classification database from a stream /// Reads character block database from a stream
/// ///
/// \param[in ] stream Input stream /// \param[in ] stream Input stream
/// \param[out] db Character classification database /// \param[out] db Character block database
/// ///
/// \returns The stream \p stream /// \returns The stream \p stream
/// ///
friend std::istream& operator >>(_In_ std::istream& stream, _Out_ chrclass_db<T_id>& db) friend std::istream& operator >>(_In_ std::istream& stream, _Out_ chrblk_db& db)
{ {
// Read character classification index. // Read character block index.
stream >> db.idxChrId; stream >> db.idxChrId;
if (!stream.good()) return stream; if (!stream.good()) return stream;
// Read first character index.
stream >> db.idxFirst;
if (!stream.good()) return stream;
// Read rank index. // Read rank index.
stream >> db.idxRank; stream >> db.idxRank;
if (!stream.good()) return stream; if (!stream.good()) return stream;
@@ -519,11 +573,6 @@ namespace ZRCola {
return stream; return stream;
} }
}; };
///
/// Character block database
///
using chrblk_db = chrclass_db<chrblkid_t>;
}; };
#pragma warning(pop) #pragma warning(pop)

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2021-2022 Amebis Copyright © 2021-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2022 Amebis Copyright © 2022-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"
@@ -9,13 +9,7 @@
_Use_decl_annotations_ _Use_decl_annotations_
int ZRCola::CompareString(const char_t* str_a, size_t count_a, const char_t* str_b, size_t count_b) int ZRCola::CompareString(const char_t* str_a, size_t count_a, const char_t* str_b, size_t count_b)
{ {
for (size_t i = 0; ; i++) { return stdex::strncmp(str_a, count_a, str_b, count_b);
if (i >= count_a && i >= count_b) return 0;
else if (i >= count_a && i < count_b) return -1;
else if (i < count_a && i >= count_b) return +1;
else if (str_a[i] < str_b[i]) return -1;
else if (str_a[i] > str_b[i]) return +1;
}
} }

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2021-2022 Amebis Copyright © 2021-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#ifndef __PCH_H__ #ifndef __PCH_H__
@@ -14,6 +14,8 @@
#include "../include/zrcola/translate.h" #include "../include/zrcola/translate.h"
#include "../include/zrcola/tag.h" #include "../include/zrcola/tag.h"
#include <stdex/string.hpp>
#include <assert.h> #include <assert.h>
#include <algorithm> #include <algorithm>

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#include "pch.h" #include "pch.h"

View File

@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# Copyright © 1991-2022 Amebis # Copyright © 1991-2026 Amebis
!INCLUDE "..\..\..\include\MSIBuildCfg.mak" !INCLUDE "..\..\..\include\MSIBuildCfg.mak"

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
/* /*
SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis Copyright © 2015-2026 Amebis
*/ */
#pragma once #pragma once

View File

@@ -1,6 +1,6 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2018 # Simon Rozman <simon.rozman@amebis.si>, 2018
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: libZRColaUI\n" "Project-Id-Version: libZRColaUI\n"
"POT-Creation-Date: 2022-02-17 13:29+0100\n" "POT-Creation-Date: 2022-02-17 13:29+0100\n"
"PO-Revision-Date: 2018-09-19 07:21+0000\n" "PO-Revision-Date: 2018-09-19 07:21+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2018\n"
"Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

Some files were not shown because too many files have changed in this diff Show More