diff --git a/.gitignore b/.gitignore index 224e7f0..256af54 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.pc/ +/build* +CMakeLists.txt.user diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..f43df69 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +include: + - project: sysadmin/ci-utilities + file: + - /gitlab-templates/linux-qt6.yml + - /gitlab-templates/linux-qt6-next.yml + - /gitlab-templates/freebsd-qt6.yml + - /gitlab-templates/windows-qt6.yml diff --git a/.kde-ci.yml b/.kde-ci.yml new file mode 100644 index 0000000..36b6e0d --- /dev/null +++ b/.kde-ci.yml @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +Dependencies: +- 'on': ['@all'] + 'require': + 'frameworks/extra-cmake-modules': '@latest-kf6' + 'frameworks/kcoreaddons': '@latest-kf6' + 'frameworks/kconfig': '@latest-kf6' + 'frameworks/kxmlgui': '@latest-kf6' + 'frameworks/ki18n': '@latest-kf6' + 'frameworks/kio': '@latest-kf6' + +Options: + require-passing-tests-on: [ '@all' ] diff --git a/CMakeLists.txt b/CMakeLists.txt index eafb36a..5424693 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,9 @@ cmake_minimum_required(VERSION 3.16) -project(LibKompareDiff2 VERSION "5.2") +project(LibKompareDiff2 VERSION "6.0.0") -set(QT_MIN_VERSION "5.15.0") -set(KF_MIN_VERSION "5.80.0") +set(QT_MIN_VERSION "6.5.0") +set(KF_MIN_VERSION "6.0.0") find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) @@ -12,48 +12,40 @@ include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMQtDeclareLoggingCategory) +include(ECMSetupVersion) +include(ECMGenerateExportHeader) +include(ECMGenerateHeaders) +include(ECMDeprecationSettings) include(CMakePackageConfigHelpers) include(FeatureSummary) -include(GenerateExportHeader) + +set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") set(ADDITIONAL_REQUIRED_QT_COMPONENTS) if(BUILD_TESTING) list(APPEND ADDITIONAL_REQUIRED_QT_COMPONENTS Test) endif() -find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED +find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Widgets ${ADDITIONAL_REQUIRED_QT_COMPONENTS} ) -find_package(KF5 ${KF_MIN_VERSION} REQUIRED +find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS CoreAddons - Codecs Config XmlGui I18n KIO ) -add_definitions( - -DQT_DEPRECATED_WARNINGS - -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 - -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 - -DQT_USE_QSTRINGBUILDER - -DQT_NO_CAST_TO_ASCII - -DQT_NO_CAST_FROM_ASCII - -DQT_NO_CAST_FROM_BYTEARRAY - -DQT_NO_URL_CAST_FROM_STRING - -DQT_NO_KEYWORDS - -DQT_STRICT_ITERATORS - -DQT_NO_FOREACH - -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT - -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055000 - -DKF_DEPRECATED_WARNINGS_SINCE=0x060000 +ecm_set_disabled_deprecation_versions( + QT 6.5 + KF 6.0 ) add_subdirectory(src) diff --git a/debian/changelog b/debian/changelog index 382576d..83c880f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,99 @@ -libkomparediff2 (4:21.08.0-1deepin0) unstable; urgency=medium +libkomparediff2 (4:25.04.0-1) unstable; urgency=medium - * No source change upload against GCC 12. + [ Aurélien COUDERC ] + * New upstream release (25.04.0). + * Bump Standards-Version to 4.7.2, no change required. - -- Tianyu Chen Fri, 20 Sep 2024 14:12:40 +0800 + -- Aurélien COUDERC Thu, 17 Apr 2025 22:02:24 +0200 + +libkomparediff2 (4:24.12.3-1) unstable; urgency=medium + + * New upstream release + * Team upload + + -- Salvo 'LtWorf' Tomaselli Fri, 07 Mar 2025 15:58:23 +0100 + +libkomparediff2 (4:24.12.2-1) unstable; urgency=medium + + * New upstream release + * Team upload + + -- Salvo 'LtWorf' Tomaselli Sun, 02 Mar 2025 19:02:10 +0100 + +libkomparediff2 (4:24.12.1-1) unstable; urgency=medium + + * New upstream release + * Team upload + + -- Salvo 'LtWorf' Tomaselli Tue, 21 Jan 2025 08:30:42 +0100 + +libkomparediff2 (4:24.12.0-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (24.12.0). + * Update build-deps and deps with the info from cmake. + * Fix 'acc' autopkgtest: + - fix location of library headers + - set -std=c++17, needed when using Qt 6 + * Release to unstable. + + -- Aurélien COUDERC Sun, 22 Dec 2024 09:22:07 +0100 + +libkomparediff2 (4:24.08.2-1) experimental; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (24.08.2). + * Update build-deps and deps with the info from cmake. + * Package new libkomparediff2-6 library package following upstream + soname bump. + * Split architecture-independent data files into a separate package + to ease future transitions. + * Bump Standards-Version to 4.7.0, no change required. + * Review copyright information. + + -- Aurélien COUDERC Thu, 17 Oct 2024 00:10:56 +0200 + +libkomparediff2 (4:22.12.3-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (22.12.3). + * Update build-deps and deps with the info from cmake. + + -- Aurélien COUDERC Wed, 01 Mar 2023 11:58:04 +0100 + +libkomparediff2 (4:22.12.1-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (22.12.1). + * Bump Standards-Version to 4.6.2, no change required. + * Add Albert Astals Cid’s master key to upstream signing keys. + + -- Aurélien COUDERC Fri, 06 Jan 2023 23:40:32 +0100 + +libkomparediff2 (4:22.12.0-2) unstable; urgency=medium + + * Upload with a correctly released changelog. + + -- Aurélien COUDERC Sat, 10 Dec 2022 16:05:00 +0100 + +libkomparediff2 (4:22.12.0-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (22.08.3). + * Update build-deps and deps with the info from cmake. + * Bump Standards-Version to 4.6.1, no change required. + * New upstream release (22.11.90). + * New upstream release (22.12.0). + + -- Aurélien COUDERC Sat, 10 Dec 2022 00:13:08 +0100 + +libkomparediff2 (4:21.12.3-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (21.12.3). + * Bump Standards-Version to 4.6.0, no change required. + + -- Aurélien COUDERC Wed, 06 Apr 2022 23:00:16 +0200 libkomparediff2 (4:21.08.0-1) unstable; urgency=medium diff --git a/debian/control b/debian/control index f049c19..6204441 100644 --- a/debian/control +++ b/debian/control @@ -4,42 +4,57 @@ Priority: optional Maintainer: Debian Qt/KDE Maintainers Uploaders: Aurélien COUDERC , Norbert Preining , -Build-Depends: cmake (>= 3.0~), - debhelper-compat (= 13), - extra-cmake-modules (>= 5.80.0~), +Build-Depends: debhelper-compat (= 13), + cmake (>= 3.16~), + extra-cmake-modules (>= 6.0.0~), gettext, - libkf5codecs-dev (>= 5.80.0~), - libkf5config-dev (>= 5.80.0~), - libkf5coreaddons-dev (>= 5.80.0~), - libkf5i18n-dev (>= 5.80.0~), - libkf5kio-dev (>= 5.80.0~), - libkf5xmlgui-dev (>= 5.80.0~), - qtbase5-dev (>= 5.15.0~), + libkf6config-dev (>= 6.0.0~), + libkf6coreaddons-dev (>= 6.0.0~), + libkf6i18n-dev (>= 6.0.0~), + libkf6kio-dev (>= 6.0.0~), + libkf6xmlgui-dev (>= 6.0.0~), pkg-kde-tools (>= 0.12), -Standards-Version: 4.5.1 + qt6-base-dev (>= 6.5.0~), +Standards-Version: 4.7.2 Rules-Requires-Root: no Homepage: https://invent.kde.org/sdk/libkomparediff2 Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/libkomparediff2 Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/libkomparediff2.git -Package: libkomparediff2-5 +Package: libkomparediff2-6 Section: libs Architecture: any Multi-Arch: same -Depends: ${misc:Depends}, ${shlibs:Depends} +Depends: libkomparediff2-data (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, Description: library to compare files and strings This package contains a library used to compare files and strings, and is used in Kompare and KDevelop. . This package is part of the KDE Software Development Kit module. +Package: libkomparediff2-data +Section: libs +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends}, +Breaks: libkomparediff2-5, +Replaces: libkomparediff2-5, +Description: architecture-independent data files for libkomparediff2 + This package contains a library used to compare files and strings, and is + used in Kompare and KDevelop. + . + This package contains the architecture-independent data files for + libkomparediff2. + . + This package is part of the KDE Software Development Kit module. + Package: libkomparediff2-dev Section: libdevel Architecture: any -Depends: libkomparediff2-5 (= ${binary:Version}), - libkf5config-dev (>= 5.80.0~), - libkf5xmlgui-dev (>= 5.80.0~), - qtbase5-dev (>= 5.15.0~), +Depends: libkomparediff2-6 (= ${binary:Version}), + qt6-base-dev (>= 6.5.0~), ${misc:Depends}, Description: library to compare files and strings - development files This package contains a library used to compare files and strings, and is diff --git a/debian/copyright b/debian/copyright index 84280d4..04ff4e5 100644 --- a/debian/copyright +++ b/debian/copyright @@ -5,87 +5,130 @@ Source: https://invent.kde.org/sdk/libkomparediff2 Files: * Copyright: 2011, Dmitry Risenberg - 1989-1991, Free Software Foundation, Inc - 2012, Jean-Nicolas Artaud + 2012, Jean -Nicolas Artaud 2001-2003, John Firebaugh 2007-2010, Kevin Kofler 2001-2009, Otto Bruggeman 2003, Otto Bruggeman 2001-2009, Otto Bruggeman -License: GPL-2+ +License: GPL-2.0-or-later + +Files: po/he/libkomparediff2.po + po/hu/libkomparediff2.po +Copyright: 2024, Kristof Kiszel + 2024, Yaron Shahrabani +License: GPL-2.0-or-later + +Files: src/KompareDiff2Config.cmake.in +Copyright: 2008, Andreas Pakulat + 2013, Jeremy Whiting + 2010, Niko Sams +License: BSD-3-clause +Comment: Manually collected + +Files: .gitlab-ci.yml + .kde-ci.yml +Copyright: None +License: CC0-1.0 Files: src/differencestringpair.h src/marker.h src/stringlistpair.cpp src/stringlistpair.h - tests/* + tests/interactivedifftest.cpp + tests/interactivedifftest.h + tests/levenshteintest.cpp + tests/levenshteintest.h Copyright: 2011, Dmitry Risenberg -License: LGPL-2+ +License: LGPL-2.0-or-later -Files: src/LibKompareDiff2Config.cmake.in -Copyright: 2008, Andreas Pakulat - 2013, Jeremy Whiting - 2010, Niko Sams -License: BSD-3-clause +Files: debian/* +Copyright: 2024, Debian Qt/KDE Maintainers + 2014, Maximiliano Curia + 2013, Rohan Garg +License: GPL-2.0-or-later + +License: BSD-3-Clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . - 1. Redistributions of source code must retain the copyright + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. . - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. -Files: debian/* -Copyright: 2014, Maximiliano Curia - 2013, Rohan Garg -License: GPL-2+ +License: CC0-1.0 + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to the + public domain worldwide. This software is distributed without any + warranty. + . + You should have received a copy of the CC0 Public Domain Dedication + along with this software. If not, see + . + . + On Debian systems, the complete text of the CC0 Public Domain + Dedication can be found in `/usr/share/common-licenses/CC0-1.0’. -License: GPL-2+ - This package is free software; you can redistribute it and/or modify +License: GPL-2.0-or-later + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. . You should have received a copy of the GNU General Public License - along with this program. If not, see - -- - On Debian systems, the complete text of the GNU General Public License - version 2 can be found in `/usr/share/common-licenses/GPL-2’. + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. Also add information on how to contact you by + electronic and paper mail. + . + On Debian systems, the complete text of the GNU General Public + License version 2 can be found in + `/usr/share/common-licenses/GPL-2’. -License: LGPL-2+ - This program is free software; you can redistribute it and/or modify it under - the terms of the GNU Library General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) any - later version. - . - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for - more details. +License: LGPL-2.0-or-later + This library is free software; you can redistribute it and/or modify + it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. . - You should have received a copy of the GNU Library General Public License - along with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . - -- - On Debian systems, the complete text of the GNU Library General Public - License version 2 can be found in `/usr/share/common-licenses/LGPL-2’. + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + . + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301, USA. + . + On Debian systems, the complete text of the GNU Library General + Public License version 2 can be found in + `/usr/share/common-licenses/LGPL-2’. + diff --git a/debian/libkomparediff2-5.install b/debian/libkomparediff2-5.install deleted file mode 100644 index abbe5e6..0000000 --- a/debian/libkomparediff2-5.install +++ /dev/null @@ -1,4 +0,0 @@ -usr/lib/*/libkomparediff2.so.5 -usr/lib/*/libkomparediff2.so.5.* -usr/share/locale/ -usr/share/qlogging-categories5/ diff --git a/debian/libkomparediff2-5.symbols b/debian/libkomparediff2-5.symbols deleted file mode 100644 index 00de06d..0000000 --- a/debian/libkomparediff2-5.symbols +++ /dev/null @@ -1,189 +0,0 @@ -# SymbolsHelper-Confirmed: 4:20.04.3 amd64 -libkomparediff2.so.5 libkomparediff2-5 #MINVER# -* Build-Depends-Package: libkomparediff2-dev - _ZN12DiffSettings11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:14.12.50 - _ZN12DiffSettings11qt_metacastEPKc@Base 4:14.12.50 - _ZN12DiffSettings12loadSettingsEP7KConfig@Base 4:14.12.50 - _ZN12DiffSettings12saveSettingsEP7KConfig@Base 4:14.12.50 - _ZN12DiffSettings16staticMetaObjectE@Base 4:14.12.50 - _ZN12DiffSettingsC1EP7QWidget@Base 4:14.12.50 - _ZN12DiffSettingsC2EP7QWidget@Base 4:14.12.50 - _ZN12DiffSettingsD0Ev@Base 4:14.12.50 - _ZN12DiffSettingsD1Ev@Base 4:14.12.50 - _ZN12DiffSettingsD2Ev@Base 4:14.12.50 - _ZN12SettingsBase11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:14.12.50 - _ZN12SettingsBase11qt_metacastEPKc@Base 4:14.12.50 - _ZN12SettingsBase12loadSettingsEP7KConfig@Base 4:14.12.50 - _ZN12SettingsBase12saveSettingsEP7KConfig@Base 4:14.12.50 - _ZN12SettingsBase16staticMetaObjectE@Base 4:14.12.50 - _ZN12SettingsBaseC1EP7QWidget@Base 4:14.12.50 - _ZN12SettingsBaseC2EP7QWidget@Base 4:14.12.50 - _ZN12SettingsBaseD0Ev@Base 4:14.12.50 - _ZN12SettingsBaseD1Ev@Base 4:14.12.50 - _ZN12SettingsBaseD2Ev@Base 4:14.12.50 - _ZN5Diff210Difference11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:14.12.50 - _ZN5Diff210Difference11qt_metacastEPKc@Base 4:14.12.50 - _ZN5Diff210Difference12applyQuietlyEb@Base 4:14.12.50 - _ZN5Diff210Difference13addSourceLineE7QString@Base 4:14.12.50 - _ZN5Diff210Difference16staticMetaObjectE@Base 4:14.12.50 - _ZN5Diff210Difference17differenceAppliedEPS0_@Base 4:14.12.50 - _ZN5Diff210Difference18addDestinationLineE7QString@Base 4:14.12.50 - _ZN5Diff210Difference26determineInlineDifferencesEv@Base 4:14.12.50 - _ZN5Diff210Difference5applyEb@Base 4:14.12.50 - _ZN5Diff210DifferenceC1Eiii@Base 4:14.12.50 - _ZN5Diff210DifferenceC2Eiii@Base 4:14.12.50 - _ZN5Diff210DifferenceD0Ev@Base 4:14.12.50 - _ZN5Diff210DifferenceD1Ev@Base 4:14.12.50 - _ZN5Diff210DifferenceD2Ev@Base 4:14.12.50 - _ZN5Diff213DiffModelList4sortEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList10diffStringERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList10firstModelEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:14.12.50 - _ZN5Diff216KompareModelList11qt_metacastEPKc@Base 4:14.12.50 - _ZN5Diff216KompareModelList11setEncodingERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList12setReadWriteEb@Base 4:18.08.1 - _ZN5Diff216KompareModelList12setSelectionEPKNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff216KompareModelList12setSelectionEPKNS_9DiffModelEPKNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff216KompareModelList13modelsChangedEPKNS_13DiffModelListE@Base 4:14.12.50 - _ZN5Diff216KompareModelList13slotNextModelEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList13updateActionsEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList14openDirAndDiffEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList15applyDifferenceEPKNS_10DifferenceEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList15applyDifferenceEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList15openFileAndDiffEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList15parseDiffOutputERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList15saveDestinationEPNS_9DiffModelE@Base 4:14.12.50 - _ZN5Diff216KompareModelList15slotFileChangedERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList15slotKompareInfoEPN7Kompare4InfoE@Base 4:14.12.50 - _ZN5Diff216KompareModelList16parseAndOpenDiffERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList16setSelectedModelEPNS_9DiffModelE@Base 4:14.12.50 - _ZN5Diff216KompareModelList16staticMetaObjectE@Base 4:14.12.50 - _ZN5Diff216KompareModelList17slotPreviousModelEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList18setDepthAndAppliedEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList18slotNextDifferenceEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList19applyAllDifferencesEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList19slotApplyDifferenceEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList19slotSaveDestinationEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList19slotWriteDiffOutputEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList20slotDirectoryChangedERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList20slotSelectionChangedEPKNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff216KompareModelList20slotSelectionChangedEPKNS_9DiffModelEPKNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff216KompareModelList21setStatusBarModelInfoEiiiii@Base 4:14.12.50 - _ZN5Diff216KompareModelList22slotPreviousDifferenceEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList22updateModelListActionsEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList23slotApplyAllDifferencesEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList23slotDiffProcessFinishedEb@Base 4:14.12.50 - _ZN5Diff216KompareModelList25slotActionApplyDifferenceEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList26blendOriginalIntoModelListERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList27slotActionUnApplyDifferenceEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList29slotActionApplyAllDifferencesEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList31slotActionUnapplyAllDifferencesEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList4showEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList4swapEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList5clearEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList5errorE7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList5splitERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList6statusEN7Kompare6StatusE@Base 4:14.12.50 - _ZN5Diff216KompareModelList7compareEN7Kompare4ModeE@Base 4:14.12.50 - _ZN5Diff216KompareModelList7compareEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList7refreshEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList7saveAllEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList8openDiffERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList8readFileERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList8saveDiffERK7QStringS1_P12DiffSettings@Base 4:14.12.50 - _ZN5Diff216KompareModelList9blendFileEPNS_9DiffModelERK7QString@Base 4:14.12.50 - _ZN5Diff216KompareModelList9lastModelEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList9nextModelEv@Base 4:14.12.50 - _ZN5Diff216KompareModelList9prevModelEv@Base 4:14.12.50 - _ZN5Diff216KompareModelListC1EP12DiffSettingsP7QWidgetP7QObjectPKcb@Base 4:14.12.50 - _ZN5Diff216KompareModelListC2EP12DiffSettingsP7QWidgetP7QObjectPKcb@Base 4:14.12.50 - _ZN5Diff216KompareModelListD0Ev@Base 4:14.12.50 - _ZN5Diff216KompareModelListD1Ev@Base 4:14.12.50 - _ZN5Diff216KompareModelListD2Ev@Base 4:14.12.50 - _ZN5Diff29DiffModel11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:14.12.50 - _ZN5Diff29DiffModel11qt_metacastEPKc@Base 4:14.12.50 - _ZN5Diff29DiffModel12linesChangedERK11QStringListS3_i@Base 4:14.12.50 - _ZN5Diff29DiffModel13setSourceFileE7QString@Base 4:14.12.50 - _ZN5Diff29DiffModel14lastDifferenceEv@Base 4:14.12.50 - _ZN5Diff29DiffModel14nextDifferenceEv@Base 4:14.12.50 - _ZN5Diff29DiffModel14prevDifferenceEv@Base 4:14.12.50 - _ZN5Diff29DiffModel15applyDifferenceEb@Base 4:14.12.50 - _ZN5Diff29DiffModel15firstDifferenceEv@Base 4:14.12.50 - _ZN5Diff29DiffModel16computeDiffStatsEPNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff29DiffModel16staticMetaObjectE@Base 4:14.12.50 - _ZN5Diff29DiffModel17setSourceRevisionE7QString@Base 4:14.12.50 - _ZN5Diff29DiffModel18processStartMarkerEPNS_10DifferenceERK11QStringListRN5QListIPNS_6MarkerEE14const_iteratorERib@Base 4:14.12.50 - _ZN5Diff29DiffModel18setDestinationFileE7QString@Base 4:14.12.50 - _ZN5Diff29DiffModel18setSourceTimestampE7QString@Base 4:14.12.50 - _ZN5Diff29DiffModel19applyAllDifferencesEb@Base 4:14.12.50 - _ZN5Diff29DiffModel21setSelectedDifferenceEPNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff29DiffModel21slotDifferenceAppliedEPNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff29DiffModel22setDestinationRevisionE7QString@Base 4:14.12.50 - _ZN5Diff29DiffModel23setDestinationTimestampE7QString@Base 4:14.12.50 - _ZN5Diff29DiffModel24localeAwareCompareSourceERKS0_@Base 4:14.12.50 - _ZN5Diff29DiffModel28splitSourceInPathAndFileNameEv@Base 4:14.12.50 - _ZN5Diff29DiffModel33splitDestinationInPathAndFileNameEv@Base 4:14.12.50 - _ZN5Diff29DiffModel7addDiffEPNS_10DifferenceE@Base 4:14.12.50 - _ZN5Diff29DiffModel7addHunkEPNS_8DiffHunkE@Base 4:14.12.50 - _ZN5Diff29DiffModelC1ERK7QStringS3_@Base 4:14.12.50 - _ZN5Diff29DiffModelC1Ev@Base 4:14.12.50 - _ZN5Diff29DiffModelC2ERK7QStringS3_@Base 4:14.12.50 - _ZN5Diff29DiffModelC2Ev@Base 4:14.12.50 - _ZN5Diff29DiffModelD0Ev@Base 4:14.12.50 - _ZN5Diff29DiffModelD1Ev@Base 4:14.12.50 - _ZN5Diff29DiffModelD2Ev@Base 4:14.12.50 - _ZN5Diff29DiffModelaSERKS0_@Base 4:14.12.50 - _ZN5Diff29DiffModelltERKS0_@Base 4:14.12.50 - _ZN7Kompare4Info25swapSourceWithDestinationEv@Base 4:14.12.50 - _ZN7Kompare4InfoC1ENS_4ModeENS_8DiffModeENS_6FormatENS_9GeneratorE4QUrlS5_7QStringS6_P13QTemporaryDirS8_jb@Base 4:14.12.50 - _ZN7Kompare4InfoC2ENS_4ModeENS_8DiffModeENS_6FormatENS_9GeneratorE4QUrlS5_7QStringS6_P13QTemporaryDirS8_jb@Base 4:14.12.50 - _ZNK12DiffSettings10metaObjectEv@Base 4:14.12.50 - (optional=templinst)_ZNK12KConfigGroup9readEntryIbEET_PKcRKS1_@Base 4:14.12.50 - (optional=templinst)_ZNK12KConfigGroup9readEntryIiEET_PKcRKS1_@Base 4:14.12.50 - _ZNK12SettingsBase10metaObjectEv@Base 4:14.12.50 - _ZNK5Diff210Difference10metaObjectEv@Base 4:14.12.50 - _ZNK5Diff210Difference13sourceLineEndEv@Base 4:14.12.50 - _ZNK5Diff210Difference15sourceLineCountEv@Base 4:14.12.50 - _ZNK5Diff210Difference18destinationLineEndEv@Base 4:14.12.50 - _ZNK5Diff210Difference18recreateDifferenceEv@Base 4:14.12.50 - _ZNK5Diff210Difference20destinationLineCountEv@Base 4:14.12.50 - _ZNK5Diff210Difference26trackingDestinationLineEndEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList10metaObjectEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList10modelCountEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList11hasNextDiffEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList11hasPrevDiffEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList11isDirectoryERK7QString@Base 4:14.12.50 - _ZNK5Diff216KompareModelList11isReadWriteEv@Base 4:18.08.1 - _ZNK5Diff216KompareModelList12appliedCountEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList12hasNextModelEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList12hasPrevModelEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList12recreateDiffEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList15differenceCountEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList16actionCollectionEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList17hasUnsavedChangesEv@Base 4:14.12.50 - _ZNK5Diff216KompareModelList6isDiffERK7QString@Base 4:14.12.50 - _ZNK5Diff29DiffModel10metaObjectEv@Base 4:14.12.50 - _ZNK5Diff29DiffModel10sourceFileEv@Base 4:14.12.50 - _ZNK5Diff29DiffModel10sourcePathEv@Base 4:14.12.50 - _ZNK5Diff29DiffModel12recreateDiffEv@Base 4:14.12.50 - _ZNK5Diff29DiffModel15destinationFileEv@Base 4:14.12.50 - _ZNK5Diff29DiffModel15destinationPathEv@Base 4:14.12.50 - _ZNK5Diff29DiffModel17hasUnsavedChangesEv@Base 4:14.12.50 - _ZTI12DiffSettings@Base 4:14.12.50 - _ZTI12SettingsBase@Base 4:14.12.50 - _ZTIN5Diff210DifferenceE@Base 4:14.12.50 - _ZTIN5Diff213DiffModelListE@Base 4:14.12.50 - _ZTIN5Diff216KompareModelListE@Base 4:14.12.50 - _ZTIN5Diff29DiffModelE@Base 4:14.12.50 - _ZTS12DiffSettings@Base 4:14.12.50 - _ZTS12SettingsBase@Base 4:14.12.50 - _ZTSN5Diff210DifferenceE@Base 4:14.12.50 - _ZTSN5Diff213DiffModelListE@Base 4:14.12.50 - _ZTSN5Diff216KompareModelListE@Base 4:14.12.50 - _ZTSN5Diff29DiffModelE@Base 4:14.12.50 - _ZTV12DiffSettings@Base 4:14.12.50 - _ZTV12SettingsBase@Base 4:14.12.50 - _ZTVN5Diff210DifferenceE@Base 4:14.12.50 - _ZTVN5Diff213DiffModelListE@Base 4:14.12.50 - _ZTVN5Diff216KompareModelListE@Base 4:14.12.50 - _ZTVN5Diff29DiffModelE@Base 4:14.12.50 diff --git a/debian/libkomparediff2-5.acc.in b/debian/libkomparediff2-6.acc.in similarity index 83% rename from debian/libkomparediff2-5.acc.in rename to debian/libkomparediff2-6.acc.in index c0ae0cd..e8b39e9 100644 --- a/debian/libkomparediff2-5.acc.in +++ b/debian/libkomparediff2-6.acc.in @@ -6,7 +6,7 @@ - /usr/include/libkomparediff2 + /usr/include/KompareDiff2 @@ -15,7 +15,7 @@ -fPIC - -std=c++11 + -std=c++17 diff --git a/debian/libkomparediff2-6.install b/debian/libkomparediff2-6.install new file mode 100644 index 0000000..da16bd2 --- /dev/null +++ b/debian/libkomparediff2-6.install @@ -0,0 +1,3 @@ +usr/lib/*/libkomparediff2.so.6 +usr/lib/*/libkomparediff2.so.6.* +usr/share/qlogging-categories6/ diff --git a/debian/libkomparediff2-6.symbols b/debian/libkomparediff2-6.symbols new file mode 100644 index 0000000..ba7925d --- /dev/null +++ b/debian/libkomparediff2-6.symbols @@ -0,0 +1,221 @@ +# SymbolsHelper-Confirmed: 4:24.08.2 amd64 +libkomparediff2.so.6 libkomparediff2-6 #MINVER# +* Build-Depends-Package: libkomparediff2-dev + _ZN12KompareDiff210Difference10setUnsavedEb@Base 4:24.08.2 + _ZN12KompareDiff210Difference11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:24.08.2 + _ZN12KompareDiff210Difference11qt_metacastEPKc@Base 4:24.08.2 + _ZN12KompareDiff210Difference11setConflictEb@Base 4:24.08.2 + _ZN12KompareDiff210Difference12applyQuietlyEb@Base 4:24.08.2 + _ZN12KompareDiff210Difference13addSourceLineERK7QString@Base 4:24.08.2 + _ZN12KompareDiff210Difference16staticMetaObjectE@Base 4:24.08.2 + _ZN12KompareDiff210Difference17differenceAppliedEPS0_@Base 4:24.08.2 + _ZN12KompareDiff210Difference18addDestinationLineERK7QString@Base 4:24.08.2 + _ZN12KompareDiff210Difference26determineInlineDifferencesEv@Base 4:24.08.2 + _ZN12KompareDiff210Difference32setTrackingDestinationLineNumberEi@Base 4:24.08.2 + _ZN12KompareDiff210Difference5applyEb@Base 4:24.08.2 + _ZN12KompareDiff210Difference7setTypeEi@Base 4:24.08.2 + _ZN12KompareDiff210DifferenceC1Eiii@Base 4:24.08.2 + _ZN12KompareDiff210DifferenceC2Eiii@Base 4:24.08.2 + _ZN12KompareDiff210DifferenceD0Ev@Base 4:24.08.2 + _ZN12KompareDiff210DifferenceD1Ev@Base 4:24.08.2 + _ZN12KompareDiff210DifferenceD2Ev@Base 4:24.08.2 + _ZN12KompareDiff212DiffSettings12loadSettingsEP7KConfig@Base 4:24.08.2 + _ZN12KompareDiff212DiffSettings12saveSettingsEP7KConfig@Base 4:24.08.2 + _ZN12KompareDiff212DiffSettingsC1Ev@Base 4:24.08.2 + _ZN12KompareDiff212DiffSettingsC2Ev@Base 4:24.08.2 + _ZN12KompareDiff212DiffSettingsD1Ev@Base 4:24.08.2 + _ZN12KompareDiff212DiffSettingsD2Ev@Base 4:24.08.2 + _ZN12KompareDiff213DiffModelList4sortEv@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceString13setMarkerListERK5QListIPNS_6MarkerEE@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceString17setConflictStringERK7QString@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceString7prependEPNS_6MarkerE@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceString9setStringERK7QString@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringC1ERK7QStringRK5QListIPNS_6MarkerEE@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringC1ERKS0_@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringC1Ev@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringC2ERK7QStringRK5QListIPNS_6MarkerEE@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringC2ERKS0_@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringC2Ev@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringD1Ev@Base 4:24.08.2 + _ZN12KompareDiff216DifferenceStringD2Ev@Base 4:24.08.2 + _ZN12KompareDiff24Info25swapSourceWithDestinationEv@Base 4:24.08.2 + _ZN12KompareDiff24InfoC1ENS_4ModeENS_8DiffModeENS_6FormatENS_9GeneratorERK4QUrlS7_RK7QStringSA_P13QTemporaryDirSC_jb@Base 4:24.08.2 + _ZN12KompareDiff24InfoC2ENS_4ModeENS_8DiffModeENS_6FormatENS_9GeneratorERK4QUrlS7_RK7QStringSA_P13QTemporaryDirSC_jb@Base 4:24.08.2 + _ZN12KompareDiff28DiffHunk3addEPNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff28DiffHunk7setTypeENS0_4TypeE@Base 4:24.08.2 + _ZN12KompareDiff28DiffHunkC1EiiRK7QStringNS0_4TypeE@Base 4:24.08.2 + _ZN12KompareDiff28DiffHunkC2EiiRK7QStringNS0_4TypeE@Base 4:24.08.2 + _ZN12KompareDiff28DiffHunkD1Ev@Base 4:24.08.2 + _ZN12KompareDiff28DiffHunkD2Ev@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel10setBlendedEb@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel11differencesEv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel11qt_metacastEPKc@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel12differenceAtEi@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel12linesChangedERK5QListI7QStringES5_i@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel12setDiffIndexEi@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel13setSourceFileERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel14lastDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel14nextDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel14prevDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel15applyDifferenceEb@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel15firstDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel16staticMetaObjectE@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel17setSourceRevisionERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel18setDestinationFileERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel18setSourceTimestampERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel19applyAllDifferencesEb@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel21setSelectedDifferenceEPNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel21slotDifferenceAppliedEPNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel22setDestinationRevisionERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel23setDestinationTimestampERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel5hunksEv@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel6hunkAtEi@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel7addDiffEPNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29DiffModel7addHunkEPNS_8DiffHunkE@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelC1ERK7QStringS3_@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelC1Ev@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelC2ERK7QStringS3_@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelC2Ev@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelD0Ev@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelD1Ev@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelD2Ev@Base 4:24.08.2 + _ZN12KompareDiff29DiffModelaSERKS0_@Base 4:24.08.2 + _ZN12KompareDiff29ModelList10diffStringERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList11qt_metacastEPKc@Base 4:24.08.2 + _ZN12KompareDiff29ModelList11setEncodingERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList12setReadWriteEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList12setSelectionEPKNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList12setSelectionEPKNS_9DiffModelEPKNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList13modelsChangedEPKNS_13DiffModelListE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList13slotNextModelEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList13updateActionsEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList14openDirAndDiffEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList15applyDifferenceEPKNS_10DifferenceEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList15applyDifferenceEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList15openFileAndDiffEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList15parseDiffOutputERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList15saveDestinationEPNS_9DiffModelE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList15slotKompareInfoEPNS_4InfoE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList16parseAndOpenDiffERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList16staticMetaObjectE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList17slotPreviousModelEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList18slotNextDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList19applyAllDifferencesEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList19slotApplyDifferenceEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList19slotSaveDestinationEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList19slotWriteDiffOutputEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList20slotSelectionChangedEPKNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList20slotSelectionChangedEPKNS_9DiffModelEPKNS_10DifferenceE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList21setStatusBarModelInfoEiiiii@Base 4:24.08.2 + _ZN12KompareDiff29ModelList22slotPreviousDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList23slotApplyAllDifferencesEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList23slotDiffProcessFinishedEb@Base 4:24.08.2 + _ZN12KompareDiff29ModelList25slotActionApplyDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList26blendOriginalIntoModelListERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList27slotActionUnApplyDifferenceEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList29slotActionApplyAllDifferencesEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList31slotActionUnapplyAllDifferencesEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList4showEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList4swapEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList5clearEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList5errorERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList6statusENS_6StatusE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList7compareENS_4ModeE@Base 4:24.08.2 + _ZN12KompareDiff29ModelList7compareEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList7modelAtEi@Base 4:24.08.2 + _ZN12KompareDiff29ModelList7refreshEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList7saveAllEv@Base 4:24.08.2 + _ZN12KompareDiff29ModelList8openDiffERK7QString@Base 4:24.08.2 + _ZN12KompareDiff29ModelList8saveDiffERK7QStringS3_PNS_12DiffSettingsE@Base 4:24.08.2 + _ZN12KompareDiff29ModelListC1EPNS_12DiffSettingsEP7QObjectb@Base 4:24.08.2 + _ZN12KompareDiff29ModelListC2EPNS_12DiffSettingsEP7QObjectb@Base 4:24.08.2 + _ZN12KompareDiff29ModelListD0Ev@Base 4:24.08.2 + _ZN12KompareDiff29ModelListD1Ev@Base 4:24.08.2 + _ZN12KompareDiff29ModelListD2Ev@Base 4:24.08.2 + (optional=templinst)_ZNK12KConfigGroup9readEntryIbEET_PKcRKS1_@Base 4:24.08.2 + (optional=templinst)_ZNK12KConfigGroup9readEntryIiEET_PKcRKS1_@Base 4:24.08.2 + _ZNK12KompareDiff210Difference10metaObjectEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference11hasConflictEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference11sourceLinesEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference12sourceLineAtEi@Base 4:24.08.2 + _ZNK12KompareDiff210Difference13sourceLineEndEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference15sourceLineCountEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference16destinationLinesEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference16sourceLineNumberEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference17destinationLineAtEi@Base 4:24.08.2 + _ZNK12KompareDiff210Difference18destinationLineEndEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference18recreateDifferenceEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference20destinationLineCountEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference21destinationLineNumberEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference26trackingDestinationLineEndEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference29trackingDestinationLineNumberEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference4typeEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference7appliedEv@Base 4:24.08.2 + _ZNK12KompareDiff210Difference9isUnsavedEv@Base 4:24.08.2 + _ZNK12KompareDiff216DifferenceString10markerListEv@Base 4:24.08.2 + _ZNK12KompareDiff216DifferenceString14conflictStringEv@Base 4:24.08.2 + _ZNK12KompareDiff216DifferenceString6stringEv@Base 4:24.08.2 + _ZNK12KompareDiff216DifferenceStringeqERKS0_@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk11differencesEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk12recreateHunkEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk15sourceLineCountEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk16sourceLineNumberEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk20destinationLineCountEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk21destinationLineNumberEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk4typeEv@Base 4:24.08.2 + _ZNK12KompareDiff28DiffHunk8functionEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel10metaObjectEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel10sourceFileEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel10sourcePathEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel11destinationEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel11differencesEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel12appliedCountEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel12differenceAtEi@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel12recreateDiffEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel14findDifferenceEPNS_10DifferenceE@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel14sourceRevisionEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel15destinationFileEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel15destinationPathEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel15differenceCountEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel15sourceTimestampEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel17hasUnsavedChangesEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel19destinationRevisionEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel20destinationTimestampEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel24localeAwareCompareSourceERKS0_@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel5hunksEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel6sourceEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel9diffIndexEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel9hunkCountEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModel9isBlendedEv@Base 4:24.08.2 + _ZNK12KompareDiff29DiffModelltERKS0_@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList10metaObjectEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList10modelCountEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList11isReadWriteEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList12appliedCountEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList12currentModelEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList12recreateDiffEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList13selectedModelEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList15differenceCountEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList16actionCollectionEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList17currentDifferenceEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList17hasUnsavedChangesEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList18selectedDifferenceEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList4modeEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList6modelsEv@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList7modelAtEi@Base 4:24.08.2 + _ZNK12KompareDiff29ModelList9findModelEPNS_9DiffModelE@Base 4:24.08.2 + (optional=templinst)_ZNSt6vectorIjSaIjEE17_M_default_appendEm@Base 4:24.08.2 + _ZTIN12KompareDiff210DifferenceE@Base 4:24.08.2 + _ZTIN12KompareDiff213DiffModelListE@Base 4:24.08.2 + _ZTIN12KompareDiff29DiffModelE@Base 4:24.08.2 + _ZTIN12KompareDiff29ModelListE@Base 4:24.08.2 + _ZTSN12KompareDiff210DifferenceE@Base 4:24.08.2 + _ZTSN12KompareDiff213DiffModelListE@Base 4:24.08.2 + _ZTSN12KompareDiff29DiffModelE@Base 4:24.08.2 + _ZTSN12KompareDiff29ModelListE@Base 4:24.08.2 + _ZTVN12KompareDiff210DifferenceE@Base 4:24.08.2 + _ZTVN12KompareDiff213DiffModelListE@Base 4:24.08.2 + _ZTVN12KompareDiff29DiffModelE@Base 4:24.08.2 + _ZTVN12KompareDiff29ModelListE@Base 4:24.08.2 diff --git a/debian/libkomparediff2-data.install b/debian/libkomparediff2-data.install new file mode 100644 index 0000000..2568e1f --- /dev/null +++ b/debian/libkomparediff2-data.install @@ -0,0 +1 @@ +usr/share/locale/ diff --git a/debian/libkomparediff2-dev.install b/debian/libkomparediff2-dev.install index 3a43722..9fda5f8 100644 --- a/debian/libkomparediff2-dev.install +++ b/debian/libkomparediff2-dev.install @@ -1,3 +1,3 @@ -usr/include/libkomparediff2/ -usr/lib/*/cmake/LibKompareDiff2/ +usr/include/KompareDiff2/ +usr/lib/*/cmake/KompareDiff2/ usr/lib/*/libkomparediff2.so diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml index f71bdf3..2d4fe2c 100644 --- a/debian/salsa-ci.yml +++ b/debian/salsa-ci.yml @@ -2,6 +2,7 @@ include: - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml variables: + SALSA_CI_DISABLE_BLHC: 'no' SALSA_CI_DISABLE_MISSING_BREAKS: 'no' SALSA_CI_DISABLE_RC_BUGS: 'no' SALSA_CI_REPROTEST_ARGS: '--variations=-build-path' diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc index 57d0285..d5b8fdb 100644 --- a/debian/upstream/signing-key.asc +++ b/debian/upstream/signing-key.asc @@ -25,82 +25,199 @@ oTHJNMi7p964lHYTTPzPeQzLzV3ayiQjq+DHs6HFmYl73ukzlGGc7KDlyhugQjm6 AqNtqqXAVykaixnFj8jf2WtQGl1hqpm8GhDRBmZycqMqne4tZokujhtpdC6suRvc AB0S+lRZUwrY05k6Nc1A8J8k/lxXXa9KzXNaqKsqppgBZoqKN3zS4146uEjvuLsh CarZ/6uUidvP0LBTR7HKye5A9Qdbjlg9qvtR7YF3hqy4g1PRNZWRlsQ1pkCdCTfN -TA+HYUzK0ESVpY72lWvH49lNg+ufZ1bKvKI= -=MZJ5 ------END PGP PUBLIC KEY BLOCK----- ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFIoa28BEACX3sZB3hjIPlaXouQLMDX7yA5FeVccsyadoNnpJ6q04ZUSYbYW -XvXKkDEK9D8DsQ7cftWcafQqNxamfmqQ5fyXtbQsmWty0MrckcT4pA5OaZlGZIgb -gim4UDOtQF3EYCtw2Mwo4XnSrQtrWv8CWXY1sxCsVf4/txHm/VZ2s8pmT2b0+qVJ -gUeK342Y1sZFoVtADcMCMCtMRi1JwZ5ARthRsLB2y9l5GwsSX30FvIwfGzHOjWWc -5bzuaFIbPTrn8pyCD+FNWuS1Oth8LHDV76N/fbPkgoKk4Zqivb2/NfOlPiG2uPlh -CPUd0ZoSSO4BFxpW/dkAbin5fWDF14cW4tE/P8M2DpUmvLsfrg1LGyyqkzYi9ha+ -HQVHHUC2k8lI+OEIoX+P/4JMK23jrjJdjbtqCRsuEAUGFsXXTf4XTaMi6SQJCaIy -dVy9ehn9f68kCVt9FA/gv4h247wFkTR+RiHMxRZmzI6nNbN8pKAjsKlwh4TdzU7A -DXfPShzafC7cs4fS3nhbqEj8p31t+SYK/XsKl5CTMhZDvRXljPDVfTyLBtQNC1Qj -t8Uo+y9C7afB/W1rhAXb55CdJvvbRN+W+dMOfEpNnJcNCo1ov/dcDW4XhB4ax0Xd -6IR1XCIQ0uJHp9e2hrN2q9tErO7DeqHmnoL9TVBmsj7SAx64c5KLZMWvAwARAQAB -tB5IZWlrbyBCZWNrZXIgPGhlaWtvQHNocnV1Zi5kZT6JAjkEEwECACMFAlIoa28C -GyMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRC7RjNQ1u8x7301D/sGoym9 -VtnwmVis3fXeY0BwjvRSnJ2vGuf9wNjjQNxiSbh61Zx4gV4w1SGL1pttPEj/3Vub -LItXwsH8M2WDFl5gW4b5AGGFdBbBlPlHjcJMILCe9s1ayc0HpeMKf9VkuY93WcTM -2cHQj96oxDyLwWEiaSIoYRHib28X2mYPHctQ307mp8HF3GeFtY9936ZiAfEXLykW -F2f5iSKXKMK8t7P7dgDAUQ+C+IfyYpQLEcGUKMVpCk4ZoTItth56fe6xpwo1PllL -oXgzy6gYQXwrOnM/w3j/1hJQal2o/gUVJzLhrb/zKoEyIhxV+bvgFiSd/ChDkits -x1qf0FMbs3ACPgbCLYjbr8sFMHPQDTw2DmqGCLwEGAh/KEQ+Q2HVLS88glRwVLp2 -O16+26dm3f3DgiElmW3Qf4iMhj/+KGyWUf3eRldg/mTlBc0v8QKhJS8a+Pex6oPO -jIo9+yyuSl2BK8Vvm8MLi5FFM1uLrsMo1plkNdTKUPoNRTCELREAIvq0ICnLit2j -wDT4N5JWWcAZlhYAag7R0gnEOt3VAxCkGDSdS1mMgl5npgesu3T7k+khIEcvaU48 -g7II/q4kgYJvp8iWDwJew+n6PnYv0DjtmXoXISDIkmOESa1Py4M+K28omBu170es -e3CK3LerNbBJSnlZgoYUqQMPGuMFE0mCOb0+8rQjSGVpa28gQmVja2VyIDxoZWly -ZWNrYUBleGhlcmJvLm9yZz6JAjkEEwECACMFAlIobWYCGyMHCwkIBwMCAQYVCAIJ -CgsEFgIDAQIeAQIXgAAKCRC7RjNQ1u8x7+tDEACRF1c9DVGJnubyrF5Aqn9ChCCR -3GS4ynTxmf21xCoARpbbh8edBlzxJ7HNf1+t/0wEcmKGNdaRZUVIyXMCj2Uye6/C -KbmBz0ynHjoRkVSX+imJynJKmKjWsqctRqT67K9pnCB5KIiUK3c3GWrxd2u8dZUJ -pb5XhbWzIDwnR7AdvoT0ytuANbUA5gtwH0WriUQ2qsZK3tzmm0L4EJ07qGXB94WY -VaLrz4+26ja4O/v87Pm0yadGMGjIFkq7u8g7kiME1VPvzjkUwxk3XcDVcFt5Gjct -1beMX/SUt8WLYfL3XUyU8i/UKraf0hPG7TeWpPOvlmfjgMicmfgYDXMyTz3h54GR -G3AvIZA9oMbcsc9SX6+IayWCN4m7j3qZWBbzCtbkXTJU42dHKjnANTRj+5e8RVVa -DaI6WzWW4VCLfJrsVqEJvoJvCBrpfVClV64D/tqiCHNbBpBIcxBJd6i5QceS95EH -BRjCvqeSUNvyVeIFWTBOodycMZufEtCMgPBvzSyT0FUtjk1PtQowe1VA47PiyjIw -7CrcTzfC3KhOb0iXZLPVXZ8+A3Zbgq3iFt8MNj/Wvn+OnvZ6eFtoH5yfqmvrMisM -mRxwMH+sd9WDqIpEf/vQhC54mA9F99dYmqYFJdkfgAaECqdqR+LwbNl8unPs5/BF -gHGN+x6HNq5UXNx+pbQjSGVpa28gQmVja2VyIDxoZWlrby5iZWNrZXJAa2RlLm9y -Zz6JAk4EEwEIADgWIQTYHAyzjrcl72aRw4W7RjNQ1u8x7wUCX/JAkgIbIwULCQgH -AgYVCgkICwIEFgIDAQIeAQIXgAAKCRC7RjNQ1u8x729KD/0RYMAGjG9ph/n36e2F -f+gbMmT1ghnqc8/CU+pNjeNC1nG8McqbRx+lpHtmxmxrH1GKrW/GzOvUZbnmDppj -eWLXk/pR1Me018mOqio9WvG6V+q6C9FWofMrox2QrqhBvkfQXUZRllmudGEOVTe5 -015JjPWtQuuC4CZxth4O/K+5aU0n+WmoK5PLpnz2RmjxTFU5CZvCn2qMx+2e/0WI -WtarRro64H9aX37VKM53mk4K/RAQaCs/DbzszIRwNstf4OvZCB3Di/+LkDi8UFH7 -nDMCVK6sGYUgxqLc3aTu4b1Rjt+HLtnzX3MalSEueA2ndK2/dNu4SvWP+m/2fOaS -ziKux7kRrptHn2VsNk/3dmOdgn1n3sBULb+vKSFfpsOGCJSCh2EwGfCofS/yiQfz -1C8SHqHIt37T/8SbpaN03Fe4MX+5eHvFXuQ3Uh3H6z7PQkKW/qpCMpvJwqJBAaGS -otqUYVPDjq3P0VBw1zg4C+5hJv3srf6LfAEdVCQ8h8zPF9OxXPSG/womtWjtYUKT -tjFbkzoahy3y8pjX/GRbCUBKUTouRL0uxIr6gwxR1/506BHRo3dsXF84+VE8CGdR -ORlBNUUDex2q6roumAr+DaFoGSabsLQ1Cdfh1+5g8JEkK8glH48S9YFiETKiehvT -CrJ2odrIwu6pJO6u0/COREHBSrkCDQRSKGtvARAAoyoGg3MhkXhQkJqsEsKq+D5m -VWwaH4Ahh3YuujOk+sCdxOonSUPu3HMzQiZsxFrq/sT2QgrY+MIegB0ZtW0Bpiac -IkZPapgGxSaAaZv58ICBgvuX5N1CzqKQGjnyN01eyUvN+m1zbqB00iDeJ4MI5BJW -ipSls0ahFQqL5ZkFZ7bRDkPdxL7HrBJVs8Q/cs0eV2SaAsVxV4bz1DPdymsZbJnA -Xz9X/6TvFu+ANDD6XqhhYSsAzrCvkX8VVCBb+gdwFxHU9lrOYGqFL/bG0apNky2D -ILRCu8y/vHhtugRApJiTfvg4UToc9LkaU58gQbwnfP7t13Hz0iVKwyPuluFK+Slr -RHOoCmXchPwrhLiLWH9gCecxu/hm/uDj/ncNaxg0tU4myRoPBC2PC3c/bNHSLBrt -3QXwb/HU4ot4rV4AYwAgPSTcDMPr/SIs4FsMP2lfWinMsrUO9TkMDVno7PzFncFA -/ZCfp0+NMXbxCF2C8CyaQZHkApuHc1a2FZ3v3KrmqB+/h27UUZmNGHbGOYt0dm/N -VHn05NNlgcNCt1etSkjFLvo+pWCnfqDhTBB+mPm1kW1rm+3X9nzGHfCbMWcy32ya -9nDGQ9Y78z5Gupd7CtJwqjFDzR10HqTPiydDriKYXB0guYRiJ7rqea+5LM54l/C+ -NcfDYpu+KzMmvOUCH8UAEQEAAYkCHwQYAQIACQUCUihrbwIbDAAKCRC7RjNQ1u8x -7+X5D/46greky5mJmwRa2IqZpgk5PE5mN0EueCV3iH1K1jKjU8ZFwEkAG0XGDcPe -8nBgXxfNCnTMayF3xWNWMUrX1WcGD/tEylkWRD3CGVvBS4U0Xym5n7gNhXXOBfLn -853eySf90OF6HCp31TWq/jwmjFpG7nvzQSV4CpMWn+LH9WsJ20VsR/k2TxmHtplG -fv/zTiU4SWjSyjDS1v5JRd04Zxe44tnP1UfikHZCi/HetMV+4iDcp4s0M3/Y5aVt -SnAXozAx3uEXQmDchFFEzG+4myyobj+m/KV6ABGkzXpwH8Tx54U5wTxuhklj0bmL -ZwwN2xpVfljZWtJNc9ZglS8PRLulu3Z8bVQOTnnuoyZxP7+9R5XhDY/SA2vj7n/w -5F6lnqjyb8FsXr2qiEl2E0+xAa6UEku9zGgWPNTHZmmtiDKsqhlNW4eAphMvZFqC -+6i7vRVV9moZ+8ueD0rMrVdP53th/W/R9cQtf/swwtof79ERqObC9Ur3/yy/CCNP -I+Dj1qqMZsFEKALVipcexKbqGhQfKYwwaKgDSe8mVHc/JbTwof2rmPxbmBNQWVgH -wRVUGB63Jnn9afS3SYEBTAz/f4S6TAM30VL2To6H+vKtc4ZPtzRIQD5dU3SDWT4q -GMusAgSlrG55+BcCqtgEEF7/JbOUHbLUu8+g/F2rZpAbsr5V8g== -=PVLg +TA+HYUzK0ESVpY72lWvH49lNg+ufZ1bKvKKZAg0EUihrbwEQAJfexkHeGMg+Vpei +5AswNfvIDkV5VxyzJp2g2eknqrThlRJhthZe9cqQMQr0PwOxDtx+1Zxp9Co3FqZ+ +apDl/Je1tCyZa3LQytyRxPikDk5pmUZkiBuCKbhQM61AXcRgK3DYzCjhedKtC2ta +/wJZdjWzEKxV/j+3Eeb9VnazymZPZvT6pUmBR4rfjZjWxkWhW0ANwwIwK0xGLUnB +nkBG2FGwsHbL2XkbCxJffQW8jB8bMc6NZZzlvO5oUhs9OufynIIP4U1a5LU62Hws +cNXvo399s+SCgqThmqK9vb8186U+Iba4+WEI9R3RmhJI7gEXGlb92QBuKfl9YMXX +hxbi0T8/wzYOlSa8ux+uDUsbLKqTNiL2Fr4dBUcdQLaTyUj44Qihf4//gkwrbeOu +Ml2Nu2oJGy4QBQYWxddN/hdNoyLpJAkJojJ1XL16Gf1/ryQJW30UD+C/iHbjvAWR +NH5GIczFFmbMjqc1s3ykoCOwqXCHhN3NTsANd89KHNp8Ltyzh9LeeFuoSPynfW35 +Jgr9ewqXkJMyFkO9FeWM8NV9PIsG1A0LVCO3xSj7L0Ltp8H9bWuEBdvnkJ0m+9tE +35b50w58Sk2clw0KjWi/91wNbheEHhrHRd3ohHVcIhDS4ken17aGs3ar20Ss7sN6 +oeaegv1NUGayPtIDHrhzkotkxa8DABEBAAG0HkhlaWtvIEJlY2tlciA8aGVpa29A +c2hydXVmLmRlPokCOQQTAQIAIwUCUihrbwIbIwcLCQgHAwIBBhUIAgkKCwQWAgMB +Ah4BAheAAAoJELtGM1DW7zHvfTUP+wajKb1W2fCZWKzd9d5jQHCO9FKcna8a5/3A +2ONA3GJJuHrVnHiBXjDVIYvWm208SP/dW5ssi1fCwfwzZYMWXmBbhvkAYYV0FsGU ++UeNwkwgsJ72zVrJzQel4wp/1WS5j3dZxMzZwdCP3qjEPIvBYSJpIihhEeJvbxfa +Zg8dy1DfTuanwcXcZ4W1j33fpmIB8RcvKRYXZ/mJIpcowry3s/t2AMBRD4L4h/Ji +lAsRwZQoxWkKThmhMi22Hnp97rGnCjU+WUuheDPLqBhBfCs6cz/DeP/WElBqXaj+ +BRUnMuGtv/MqgTIiHFX5u+AWJJ38KEOSK2zHWp/QUxuzcAI+BsItiNuvywUwc9AN +PDYOaoYIvAQYCH8oRD5DYdUtLzyCVHBUunY7Xr7bp2bd/cOCISWZbdB/iIyGP/4o +bJZR/d5GV2D+ZOUFzS/xAqElLxr497Hqg86Mij37LK5KXYErxW+bwwuLkUUzW4uu +wyjWmWQ11MpQ+g1FMIQtEQAi+rQgKcuK3aPANPg3klZZwBmWFgBqDtHSCcQ63dUD +EKQYNJ1LWYyCXmemB6y7dPuT6SEgRy9pTjyDsgj+riSBgm+nyJYPAl7D6fo+di/Q +OO2ZehchIMiSY4RJrU/Lgz4rbyiYG7XvR6x7cIrct6s1sElKeVmChhSpAw8a4wUT +SYI5vT7ytCNIZWlrbyBCZWNrZXIgPGhlaXJlY2thQGV4aGVyYm8ub3JnPokCOQQT +AQIAIwUCUihtZgIbIwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJELtGM1DW +7zHv60MQAJEXVz0NUYme5vKsXkCqf0KEIJHcZLjKdPGZ/bXEKgBGltuHx50GXPEn +sc1/X63/TARyYoY11pFlRUjJcwKPZTJ7r8IpuYHPTKceOhGRVJf6KYnKckqYqNay +py1GpPrsr2mcIHkoiJQrdzcZavF3a7x1lQmlvleFtbMgPCdHsB2+hPTK24A1tQDm +C3AfRauJRDaqxkre3OabQvgQnTuoZcH3hZhVouvPj7bqNrg7+/zs+bTJp0YwaMgW +Sru7yDuSIwTVU+/OORTDGTddwNVwW3kaNy3Vt4xf9JS3xYth8vddTJTyL9Qqtp/S +E8btN5ak86+WZ+OAyJyZ+BgNczJPPeHngZEbcC8hkD2gxtyxz1Jfr4hrJYI3ibuP +eplYFvMK1uRdMlTjZ0cqOcA1NGP7l7xFVVoNojpbNZbhUIt8muxWoQm+gm8IGul9 +UKVXrgP+2qIIc1sGkEhzEEl3qLlBx5L3kQcFGMK+p5JQ2/JV4gVZME6h3Jwxm58S +0IyA8G/NLJPQVS2OTU+1CjB7VUDjs+LKMjDsKtxPN8LcqE5vSJdks9Vdnz4DdluC +reIW3ww2P9a+f46e9np4W2gfnJ+qa+syKwyZHHAwf6x31YOoikR/+9CELniYD0X3 +11iapgUl2R+ABoQKp2pH4vBs2Xy6c+zn8EWAcY37Hoc2rlRc3H6ltCNIZWlrbyBC +ZWNrZXIgPGhlaWtvLmJlY2tlckBrZGUub3JnPokCTgQTAQgAOBYhBNgcDLOOtyXv +ZpHDhbtGM1DW7zHvBQJf8kCSAhsjBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJ +ELtGM1DW7zHvb0oP/RFgwAaMb2mH+ffp7YV/6BsyZPWCGepzz8JT6k2N40LWcbwx +yptHH6Wke2bGbGsfUYqtb8bM69RlueYOmmN5YteT+lHUx7TXyY6qKj1a8bpX6roL +0Vah8yujHZCuqEG+R9BdRlGWWa50YQ5VN7nTXkmM9a1C64LgJnG2Hg78r7lpTSf5 +aagrk8umfPZGaPFMVTkJm8KfaozH7Z7/RYha1qtGujrgf1pfftUozneaTgr9EBBo +Kz8NvOzMhHA2y1/g69kIHcOL/4uQOLxQUfucMwJUrqwZhSDGotzdpO7hvVGO34cu +2fNfcxqVIS54Dad0rb9027hK9Y/6b/Z85pLOIq7HuRGum0efZWw2T/d2Y52CfWfe +wFQtv68pIV+mw4YIlIKHYTAZ8Kh9L/KJB/PULxIeoci3ftP/xJulo3TcV7gxf7l4 +e8Ve5DdSHcfrPs9CQpb+qkIym8nCokEBoZKi2pRhU8OOrc/RUHDXODgL7mEm/eyt +/ot8AR1UJDyHzM8X07Fc9Ib/Cia1aO1hQpO2MVuTOhqHLfLymNf8ZFsJQEpROi5E +vS7EivqDDFHX/nToEdGjd2xcXzj5UTwIZ1E5GUE1RQN7Harqui6YCv4NoWgZJpuw +tDUJ1+HX7mDwkSQryCUfjxL1gWIRMqJ6G9MKsnah2sjC7qkk7q7T8I5EQcFKuQIN +BFIoa28BEACjKgaDcyGReFCQmqwSwqr4PmZVbBofgCGHdi66M6T6wJ3E6idJQ+7c +czNCJmzEWur+xPZCCtj4wh6AHRm1bQGmJpwiRk9qmAbFJoBpm/nwgIGC+5fk3ULO +opAaOfI3TV7JS836bXNuoHTSIN4ngwjkElaKlKWzRqEVCovlmQVnttEOQ93Evses +ElWzxD9yzR5XZJoCxXFXhvPUM93KaxlsmcBfP1f/pO8W74A0MPpeqGFhKwDOsK+R +fxVUIFv6B3AXEdT2Ws5gaoUv9sbRqk2TLYMgtEK7zL+8eG26BECkmJN++DhROhz0 +uRpTnyBBvCd8/u3XcfPSJUrDI+6W4Ur5KWtEc6gKZdyE/CuEuItYf2AJ5zG7+Gb+ +4OP+dw1rGDS1TibJGg8ELY8Ldz9s0dIsGu3dBfBv8dTii3itXgBjACA9JNwMw+v9 +IizgWww/aV9aKcyytQ71OQwNWejs/MWdwUD9kJ+nT40xdvEIXYLwLJpBkeQCm4dz +VrYVne/cquaoH7+HbtRRmY0YdsY5i3R2b81UefTk02WBw0K3V61KSMUu+j6lYKd+ +oOFMEH6Y+bWRbWub7df2fMYd8JsxZzLfbJr2cMZD1jvzPka6l3sK0nCqMUPNHXQe +pM+LJ0OuIphcHSC5hGInuup5r7kszniX8L41x8Nim74rMya85QIfxQARAQABiQIf +BBgBAgAJBQJSKGtvAhsMAAoJELtGM1DW7zHv5fkP/jqCt6TLmYmbBFrYipmmCTk8 +TmY3QS54JXeIfUrWMqNTxkXASQAbRcYNw97ycGBfF80KdMxrIXfFY1YxStfVZwYP ++0TKWRZEPcIZW8FLhTRfKbmfuA2Fdc4F8ufznd7JJ/3Q4XocKnfVNar+PCaMWkbu +e/NBJXgKkxaf4sf1awnbRWxH+TZPGYe2mUZ+//NOJThJaNLKMNLW/klF3ThnF7ji +2c/VR+KQdkKL8d60xX7iINynizQzf9jlpW1KcBejMDHe4RdCYNyEUUTMb7ibLKhu +P6b8pXoAEaTNenAfxPHnhTnBPG6GSWPRuYtnDA3bGlV+WNla0k1z1mCVLw9Eu6W7 +dnxtVA5Oee6jJnE/v71HleENj9IDa+Puf/DkXqWeqPJvwWxevaqISXYTT7EBrpQS +S73MaBY81Mdmaa2IMqyqGU1bh4CmEy9kWoL7qLu9FVX2ahn7y54PSsytV0/ne2H9 +b9H1xC1/+zDC2h/v0RGo5sL1Svf/LL8II08j4OPWqoxmwUQoAtWKlx7EpuoaFB8p +jDBoqANJ7yZUdz8ltPCh/auY/FuYE1BZWAfBFVQYHrcmef1p9LdJgQFMDP9/hLpM +AzfRUvZOjof68q1zhk+3NEhAPl1TdINZPioYy6wCBKWsbnn4FwKq2AQQXv8ls5Qd +stS7z6D8XatmkBuyvlXymQINBFfNZD4BEACo0YKCUEhTY7v8VZVw3csAtnsRSFQ1 +8G8xfYIt7mJEBrtfiGG4g28EjNeWQfN8wGIaAeRGl5nb7s9RRpxXStUu719jGX1Z +9Sr8p/JOmBS5kdfAtYId9Cl3VsGRvf4Smg1ClrEv6tQ97j+d1FY8QfgW/GS46YBO +EeOFVQRtfi7Yv9lZkiBFrzP0Nr7JV9u1GkBsFgNkVuYs/3RDYULItBwGFerduOyQ +COt819QvHHSZkXqJWwNROA6lc8gW36lKbDHoZ1jSkDnDV0bW0cX1/6WJSzWYdcPi +ceA1vj/VDg0Kr23SVQ1PyPvBirT7ToirQm6KrIiKHWLSg156ht8/K2C1Dgypf+YM +seMbHQxVLrI2p4zpmxu3B2SrSj3ImM5FO0XGd1gxn/qywNVJDQBfcYnndksD2i/9 +/Es8I/F6OymBZl4HWBvx7ixm2JPXkmwVPEC/lJn3eCBb1fAaJSlroHtaAEteCWuE +5/Mg/uYEh1UeAstP47N3P0B3l1E4Ccw1ne2/O1BdsnXeUaI3YVYz9aZkVlL7ywda +3h/goRKxc1b18bmgu/EdQmcTEMj29B3szMpetWNt1ZbaMJzfDw+z+SiQ3toOTUiq +MuWq+l+JK0dVUzOvpGhGVHv5m9CtJFP671ivEc4it0hJRH5kdW9aNbeG0g9TxHQq +QMJIpeLvRq5WKwARAQABtCFBbGJlcnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9y +Zz6JAlQEEwEIAD4CGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AWIQTKJixsg95N +L7KKMyo6ak24Oeqm1wUCYv52/wUJDRPXIAAKCRA6ak24Oeqm1zksD/95HdsLbCMl +QWImftxAY0wUNVLTvt7+9rjpt/unyCqdtD9uS7J6Tfldmd2zPxIJFxpDx3AK5gJG +Al8hBuARBTG6mzDSyohy0ldLAroab2zKn/hGfnAlxZtsa8DGmNhKKb8zEyKraM2g +rdc2bCF/sQ5yKmC0THAQwMBjLHoszKYV+y/R34o1nZZaufPrNWMPd3hmiyCl5vzm +RDQJatmkDvueYyPMt3FfJovWtixWFHsdnQ72l2kelkhpNc51RpgZ6lCm9ghWWTLv +OEPhR5tpYQ+CykPatmzhLXUthnfTCphQNf6nX7jjllq7Sd4MaTAmnj0yfoTyHjdq +PAYv26dMbBlR2lAxXz2SoyQZVHgGQeEW4nll6Xej25d1yKnOXwO4g3RBt/dv4Q8I +QKHyDZY5hJotg2OrA1hL9zsb+6lKjMr0UEJa8lhhwSKhlVzD0fdrOaP7pJUfjyd0 +CrPrlrgdNoo4eV0bXV5kuFKfCgmwRHKWyJKDc1CmnJReFMJQGfFMiuOyvYhVhUxN +BzS7sV3IF28r1n1iKN9eGSgcBjAVW2LKaq0ThW1QXWcWT7vudcXjbq9kQuOTh7fB +EM47wHhyqhLP5TOIBBaIxW2x87Ag4i2HKUM2PsV+j6rzMwiCfzINUS+IEfUTX52M +c3JUKCqOrqVlNJ1d/4+mkshlzwQA2oFzEYkCVAQTAQgAPgIbAwULCQgHAgYVCAkK +CwIEFgIDAQIeAQIXgBYhBMomLGyD3k0vsoozKjpqTbg56qbXBQJhBmMPBQkLKgRR +AAoJEDpqTbg56qbXOZsP/2vBOM8ziCLOr3vCpFH8+kVXVQBjpKZTifXJyCG6KZrN +uuXHg9CkqapS5IBjjZ/0TgLzntcayQsNkohC5XOGf5DOJ68FWmb5Jxd6SQgDkwwY +SZal3jEhiwwxA1eZP51HiBmp5o+MAH5Lys4wTCUmmWrtwQgdfL/5iNH6BKiHVBRb +pKBzTrvJpOGR0c3WamLvn9cGmUf7Sxiu9Q5fdeorbJPhG0oq/l0nYEiYJ+t39adG +y9gzjy40oYLPqOi/x78tyXauZ5X20lB36k9td2NS3eZNAoTQz3EmaBfZoBR/b1Mh +OhuoE1mrh+RFohv9h6w2mgUEELVwDxFKhJQ6c38jxKCa4jIG+ns3gEsLdR7MpPFl +5G2B2b7rYtKAqMFqRN/TSCFyGM2aE9IfjCjLL5CU/xbEWtm+xYZzIkjUI1W2XU1V +/ukgMwsZ0ujG+H6I15Vs90xQKuLnr98TxuTlYuVXZL8zurI9l1RKIlPvYxtOrJeo +HJoXIgV3qzxvFyXkCCz8nw/Prx49iBZ60A+zkTAQRU2HXZgJL6yqKbLmAAlU2akw +2sb4ofVTII+yhWQEF6cpQzHEviAUiSHxkjqtUkABEfyiZbyhijJreXoKOaEHEe97 +DyXQrhc6PiGv3a9TwjNrWE29QDCfoQUUj1dZ+1zpXnpeaSjZAQ8zYbNjXuq/cQB0 +iQJUBBMBCAA+AhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAFiEEyiYsbIPeTS+y +ijMqOmpNuDnqptcFAl8gl8IFCQlJfwQACgkQOmpNuDnqptfIoQ//XsSEGsM2t+15 +9Y7Ic+egFTVfC1EP5GCmEYWiJR5GKu4kSFArON0ZaDytTN99koDkJmY62XwVQNhp +rcLjLxPcuCy6enBVLxMK+Z6V1EcGnxJ1pr7N90J0nXp2Dd1O71W/9lN2auKjwOdk +TlqlAmKY5a6ppXAFbZYg2neJOpSO7ZezxQjP83p6tauI1jTvFywjuy1xeybp7ZCi +YWfKLtZrZk193IfZURufi06G4nRL//Kt1+aU5ty5soki46QnTpM0aU73D5EZaj5y +VWCceTm+wjuxrwN1m9Lpfrud9nMW4cDWw8hV2ec1JCed+OQ0vCOXdLh7QwhQcdHy +07qfBAPQ80kRYe5IbQPwczcZH0Iw8HZluFbiz0m4r6OyE1c7hiAd3C2pxepQRPe1 +J10YkkGqbKA/vFUCL/i0V9CNvNwNkXAIcAWDfr0tWO8e3Bf7jgYknvcGOJIONJTQ +RB+FBp4c4urR2P0NFSUo04v+DKzFlqsCCdbbHlnUvvRrrLAXAmqxbG1PIhUrbsGj +cK94+QNTthgPLrDVNFO8LHwXGBOQJsbC+Tz1xNMLy6oW7yeRMxa8hgJYm8ZyIJRo +E1Tf1w0gR1RN4Rk9Jc1xhaW61J+f4U7wMS5iRACL5tChROvYV0gbqwdJWHT2Mka0 +aWMwQLbR94mMfCKHqnmHqbaEXeOTOK6JAlQEEwEIAD4CGwMFCwkIBwIGFQgJCgsC +BBYCAwECHgECF4AWIQTKJixsg95NL7KKMyo6ak24Oeqm1wUCXVO22wUJB2eGHQAK +CRA6ak24Oeqm176hD/9QGNeGm0UX/X8PY6OManUuC5tl/RI2xo5ZbckxgSlNKgdh +uE9hcrCOX74smdFKkk3EoxfXTa+YaarjXPq+ZfqgOiAk7TyUBjZiiRiqgg7rWvsU +a0ifxP++oN8aV9bTT8+WvkU2nXEPLtvaoSTXn/zE1bv7dIhB13u2Du3PIVoUQBfc +g9tyNkMQ+ifAQxjUghbPKeqsoql1bqY3v561SVg6D+IqeA5s3Q8xxve4wc8vFgwR +sWm4ugFTGRHdLhAFc3LlFxmFDhPMNvQguPh9MifBGthFcHBdF2lUTdXffhiKpCQ3 ++qUP/YP0rurL+Ke8aBNBXlU68+2l0JrCjySnDj3a5RKWOgWk2SSadUia06GGHRBa +TVs5AAOfL0vaIbeUMxSv7Itg8jkqH2/9PdoCDOFznNS1C6o+MxtPFmjZSGna5wSl +yUobCrcRGL1mD5w4r16MKFICSVQM5ns617bm0tWS0qyAARidNg3baLoStf64wyk5 +QUwfVj1huQzRmk7os3OOik44J+nF8BqloW0bAsJ3mFgJVqLW5U6GpbURaVsnxgnu +4VuRedHg/JC1gy7JqNASq3vlExmBJDsNZjgPWKlnUezyxM0+UP3OGb4AVPm7yVUZ +WB3XuPyk2565rOWEFyXy1/oOrHAgijD5d4FPGe4sxy0WH88Ez+nBNcht+1juV4kC +VAQTAQgAPgIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgBYhBMomLGyD3k0vsooz +KjpqTbg56qbXBQJbYMkyBQkFdJh0AAoJEDpqTbg56qbX+CcP/jT5ORZRnZAtN/+7 +eXAKjVFqCYbouDor12c3jONPthtPrRRRyOeM/zU8IIoFoBFXfc7PVE6bufMiejxQ +Fkn9cyt7DR8Jo3ayoCKdAmkNxiw8OPwpgvsu4GbnmpjXExl0FUdInfxqyPsvrN+P +63G8vitqgn51gGbbgrY/jHX0fImgsubOPiiifJqTsJ0I/33RLiVcDDabeji2KQ0S +N75jVhcCYn/jfPmkCkh/Iwtv6PtkLhBGuRW4lXgXjIziY54r91ZqXIzfFkfaSjTb +BIVmjG/2QaCI8QRMoMYP0AWiZCF/5xbq1gw/KaF8n886I1SkfyaQfDFTCFNuY7v4 +sN4go61A7d4ccq4wMBeBMiIli4ehkCfGgY8O8hRYXnIeUs+r4+ozUMXB3mti6UuF +IkDQFiqg8BysIuACQGjC5/wi63FinqobGaCnwyGYIACDy3sibHMILBBSgQXLXgU3 +dEsa8L2tloH2qrWWxfYaljIX9m3wdUP4LL9/rcmp1szBbGwNDcmQrmB3+tsy8sH8 +VyRbXb3Zj/HdDauN+zRhZlSp5bxyJs6/fvNmLBVelFhKjlzy1+DsangoY5UACZF0 +U4OnyQPY1xLpTOchrg7Z2a6o9QlLLCdY+JMtNNi3YdYqR6WzUwot+QAErph5y06j +kOxE6zeLhEqpNB0VfZR3eY+nviXOiQJUBBMBCAA+AhsDBQsJCAcCBhUICQoLAgQW +AgMBAh4BAheAFiEEyiYsbIPeTS+yijMqOmpNuDnqptcFAlr8uOYFCQWi3qgACgkQ +OmpNuDnqptemXQ//TtE5Q9B/Fx4NZXr9UH1HnKEW2sntkkL2JsyNPumjA3F8ZE06 +ggWxjN5YKzJpaXjmMoE4gDziIpglL7cocZmB+v3ibfH2wsVEVbwjk1qbNVaN1Gpq +i/6I2CpCkrEDXJFAoXr933wi1q7TfUnFffhsnACMC+3eA8c1ON4/XtansYLJ3Scw +5kyAaS0twKfauXT5lL76M3pCtDEg9xfYh+VsLLuDX5cnAv1zkeN3KfjuzN4AmpzR +d9nmgcR3a9KV2y0qA31r2HMhG9JLelu6W8iT+HpO5G3SolLlaOjIyh5YzQ2gP/P5 +Qt+lqPxw1xlG2ebVdsR/IROIbY/ViPceSEhU+aTH7K/CiqxSqZN/tcSFNsGOKrgE +L4exKL4jh/E1qE59Emh6A4PbUyCqrw40A9n5G7KDZYngm9p3s3EarKSzOMrWhof1 +eABB47g0KGMurM4GlKUJEHX6aXvosKJ9unb70GLTzLb7hYEaUAk8pOtdR8atFNu9 +vZyVpmYWMQ7Ir+Zh3JTt6jcPFkoE251ygbZlk/B5fW85U4eBJPr/C6S784qTbZ37 +4tJrEWhD6Tt3p6rtqSFyKQjmMbCxq/tDVlnc0HSMQJg2+47DbU59faf7+lB/+VD8 +rv4MmF1QZHziyBDX/VpLx2KiBvy2myMfC/qESM7TpFEg3aHcrQTZd16EjE2JAj0E +EwEIACcFAlfNZD4CGwMFCQPCZwAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ +OmpNuDnqptfE2w/8CdIZ2FOY2UCcdtEzAQCRL125ffU1l5E9nl60vjx/0c/kkNtt +77iVOl35waHQwYzzF90+PX9CDEODtfZowhEBIwQZxHfwmyp6dCqTDczyeL8QbUDN +E+RAKSaBesiPFLU+598QLwvTr0F7iePAAf4uLMN9u69NhJD+f1KystM9GiaB3T4x +qzv2cQ8NIX1Nf68NOxbG5C2CtrUbx/Meb0eFBAHkwWtU/sLFcksi5AEI2Q0ZPTdj +S3+rIUeSHKnk/gtzgq/PS2wSxlwtztA/xnS2u+wvwnX3zuSObPiz3UMlKv9lH/f4 +MBjCAqZiv6CiJLwaHggG+Z7eonlqACKQkZFDRrfSyiQ6yeyYDJErVy+LMu4Ea5mo +9tmo0cda/q9N7Rj/fpyVQW0/Fc1r3pB17/v1u2oeVwwkHqBPQUe5c/HUtzICWa0V +f0lxnsarOLVMnEemORRlOCgxcTDIiYqpUpfQ7iuQ6+Ydyid6JCaDn5ubOLvBjfc6 +MWylaNKkFZn7LgP2DSis8Ci3w+7OGtyDllJ9GvWdmhC6T4iWUds7vFudA4DKE0Ei +NFXjcdcMbXHNGmbWm/EBdGKsWtgABXHJowMn7IBlyp2hBmtVEXr7+pBA/fg3m1UH +2QqYQUyfGwIpVRDt67xEMg+V55raPzhNqOmeLB+ViD5XRzD7PvmZKrcVXSW5Ag0E +V81kPgEQAL17eQdH3CEDUgBg5ETli9+99/VP66bEPCKCzGD6f6/OUXbLVBXs03Gz +DJzBr6b8ysaWMR7c0WXCKFf7U5+3QI4s9TBlcsnHxq59343nJh2WsE5cc75WHlfK +wse77zT3tujds2MjSBj2324skw9RHSm4mkc7esbN8GCQRAM4gUjwEo76SXvVwuUK +YaStNLW8DKLaHBxNNclk3v/k7YVmVo07uf/u8vIGeUvql/l2XBlWWhxkgaG+UnRw +NcpMh0iuVkrJYn04FQtOV20EREVITG1tWHMQ4KznqdgdvbEWnFkkbHvj2c6rGylS +JShQba9pE1LAbNhF6hbEip2nq6uKsQT0Az2/ZWuP83GH4yDHbJCDoT8lf2xcawz+ +yfd2q9QF8QeIObLCNt09dJNceTbjU3h3BEAvD6gGdqzHDPPfmf0UVji1576PEmhe +Mu25/zbh1mvqnsV2YHZsGXVpbBB1PHzrKM1DH3PfqFTFQ5elrvkuxhgRrSKaiWBu +aGD7DWMiEIV2QKmYutxYS0FJ57lFRaKo0AiVvtDLVh0edjkLvkgufxs6oAPnLt5k +uo/na/tgWJjY20Eu63dQtIbpPYPrALm2+OMK8eAn3tOg7HsUMXQS5hAqRvH/8aMV +oW7qjMldgthk5EXTplylkNCCPz9dTqT/g8RBmKxelnRfgj3Cxy4dABEBAAGJAjwE +GAEIACYCGwwWIQTKJixsg95NL7KKMyo6ak24Oeqm1wUCXyCZSQUJCUmAiwAKCRA6 +ak24Oeqm10N+D/4mE/jEduST6bCpnCjNsMUynjHTCQJ7g+vDBXlkNcGf642wbtaM +qeP0l2MsKpmwrflAds6HHa+7Df2Zsp7fyt8t/Ruv9a9EmSDf3eRENbpEuuVSejKO +/ewADk5XlKSGVELPAU8gtcbKrzIOMqr3GBe4CH83shouNiZB/+fTtv61TJr6jyeA +OC7AGXeMVJDJyItZGV/c8CzH22CRgUy0rhvkpfStwbpFkRU80k/1dvE9k3g2QEtu +YiDTKtv0hJ2g8WPsYG2icWTtU+6yTQZi0ifMqosGjMJuPe/gYtNJ0TD5spfKZ7vG +mkJNcE287IAzZpMG5ovIbodjomzl2GZ7uY9FDC6cZJOSYiWOgyCb/6vY5QcveOJX +ck740CE5+BMN4n24tO3c+p+IiwKXYipoZ7zRsSxk3I/z3reI/2QByV543DlawZkO +BHbjIqcUXFcBRQGyc7MZs5tJxoUKH3bxkc4zkPLuEU+q8SFU9NPG8RifhNcpzk12 +r95jsyFvDprASRHSch8c9bl57OIZkswdW6V087gef2LMLoSBfzruU+h0zmCJ3PPs +D2ubiIZSh40H21t9N/Xz5SJXhlDysQqf4yvf/YV+wQ+IG7FLaucarmj8mf5C9ZMr +F9Q+8gGZQyQEZ0uF4+6RyBDUTGfIoI94VqeI56kYClHWmMRb83AkvIIZRQ== +=crW8 -----END PGP PUBLIC KEY BLOCK----- diff --git a/docs/Doxyfile.local b/docs/Doxyfile.local new file mode 100644 index 0000000..1b7a811 --- /dev/null +++ b/docs/Doxyfile.local @@ -0,0 +1,11 @@ +### KApiDox Project-specific Overrides File + +# define so that deprecated API is not skipped +PREDEFINED += \ + KOMPAREDIFF2_EXPORT= \ + "KOMPAREDIFF2_ENABLE_DEPRECATED_SINCE(x, y)=1" \ + "KOMPAREDIFF2_BUILD_DEPRECATED_SINCE(x, y)=1" \ + "KOMPAREDIFF2_DEPRECATED_VERSION(x, y, t)=" \ + "KOMPAREDIFF2_DEPRECATED_VERSION_BELATED(x, y, tx, ty, t)=" \ + "KOMPAREDIFF2_ENUMERATOR_DEPRECATED_VERSION(x, y, t)=" \ + "KOMPAREDIFF2_ENUMERATOR_DEPRECATED_VERSION_BELATED(x, y, tx, ty, t)=" diff --git a/metainfo.yaml b/metainfo.yaml index 7008ea5..8f9b330 100644 --- a/metainfo.yaml +++ b/metainfo.yaml @@ -11,4 +11,4 @@ platforms: release: true libraries: - cmake: "KompareDiff2" -cmakename: LibKompareDiff2 +cmakename: KompareDiff2 diff --git a/po/af/libkomparediff2.po b/po/af/libkomparediff2.po new file mode 100644 index 0000000..c048d6b --- /dev/null +++ b/po/af/libkomparediff2.po @@ -0,0 +1,608 @@ +# WEB-Translator generated file. UTF-8 test:äëïöü +# Copyright (C) 2001 Free Software Foundation, Inc. +# Frikkie Thirion , 2001,2002. +# +msgid "" +msgstr "" +"Project-Id-Version: kompare VERSION\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2002-11-07 11:40+0200\n" +"Last-Translator: WEB-Translator \n" +"Language-Team: AFRIKAANS \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "Wend aan Verskil" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Herstel Verskil" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "Wend aan Alle" + +#: modellist.cpp:61 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "Herstel Alle" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "Vorige Lêer" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "Volgende Lêer" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "Vorige Verskil" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "Volgende Verskil" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, fuzzy, kde-format +msgid "Could not open a temporary file." +msgstr "Kon nie open lêer." + +#: modellist.cpp:289 modellist.cpp:296 +#, fuzzy, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Kon nie skryf na lêer." + +#: modellist.cpp:324 +#, fuzzy, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "Kon nie skryf na lêer." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Kon nie lees diff uitset." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Die lêers word identies." + +#: modellist.cpp:550 +#, fuzzy, kde-format +msgid "Could not write to the temporary file." +msgstr "Kon nie skryf na lêer." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "WEB-Vertaler (http://kde.af.org.za)" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "frix@expertron.co.za" + +#, fuzzy +#~ msgid "Could not load our KompareViewPart." +#~ msgstr "Kon nie soek ons Deel!" + +#, fuzzy +#~ msgid "Could not load our KompareNavigationPart." +#~ msgstr "Kon nie soek ons Deel!" + +#~ msgid "&Compare Files..." +#~ msgstr "Vergelyk Lêers..." + +#, fuzzy +#~ msgid "Show T&ext View" +#~ msgstr "Vertoon Teks Besigtig" + +#~ msgid " 0 of 0 differences " +#~ msgstr " 0 van 0 verskille " + +#~ msgid " 0 of 0 files " +#~ msgstr " 0 van 0 lêers " + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] "%2 van %1 lêer " +#~ msgstr[1] " %2 van %1 lêers " + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] "%1 lêer " +#~ msgstr[1] " %1 lêers " + +#~ msgid " %2 of %1 difference, %3 applied " +#~ msgid_plural " %2 of %1 differences, %3 applied " +#~ msgstr[0] "%2 van %1 verskil, %3 aangewend " +#~ msgstr[1] " %2 van %1 verskille, %3 aangewend " + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] "%1 verskil " +#~ msgstr[1] " %1 verskille " + +#, fuzzy +#~ msgid "Diff Output" +#~ msgstr "Diff Opsies" + +#, fuzzy +#~ msgid "" +#~ "If you have entered a file or folder name and a file that contains diff " +#~ "output in the fields in this dialog then this button will be enabled and " +#~ "pressing it will open kompare's main view where the output of the entered " +#~ "file or files from the folder are mixed with the diff output so you can " +#~ "then apply the difference(s) to a file or to the files. " +#~ msgstr "" +#~ "As jy het ingevoerde 2 lêername van 2 gidse in die velde in hierdie " +#~ "dialoog dan word hierdie knoppie sal wees geaktiveer en gedruk dit sal " +#~ "begin 'n vergelyking van die ingevoerde lêers van gidse. " + +#, fuzzy +#~ msgid "Compare Files or Folders" +#~ msgstr "Vergelyk Lêers of Gidse" + +#~ msgid "Source" +#~ msgstr "Bron" + +#~ msgid "Destination" +#~ msgstr "Bestemming" + +#~ msgid "Compare" +#~ msgstr "Vergelyk" + +#, fuzzy +#~ msgid "Compare these files or folders" +#~ msgstr "Vergelyk hierdie lêers of gidse" + +#, fuzzy +#~ msgid "" +#~ "If you have entered 2 filenames or 2 folders in the fields in this dialog " +#~ "then this button will be enabled and pressing it will start a comparison " +#~ "of the entered files or folders. " +#~ msgstr "" +#~ "As jy het ingevoerde 2 lêername van 2 gidse in die velde in hierdie " +#~ "dialoog dan word hierdie knoppie sal wees geaktiveer en gedruk dit sal " +#~ "begin 'n vergelyking van die ingevoerde lêers van gidse. " + +#~ msgid "Text View" +#~ msgstr "Teks Besigtig" + +#, fuzzy +#~ msgid "Source Folder" +#~ msgstr "Bron Lêer" + +#, fuzzy +#~ msgid "Destination Folder" +#~ msgstr "Bestemming Lêer" + +#~ msgid "Source File" +#~ msgstr "Bron Lêer" + +#~ msgid "Destination File" +#~ msgstr "Bestemming Lêer" + +#~ msgid "Source Line" +#~ msgstr "Bron Lyn" + +#~ msgid "Destination Line" +#~ msgstr "Bestemming Lyn" + +#~ msgid "Difference" +#~ msgstr "Verskil" + +#, fuzzy +#~ msgid "Applied: Changes made to %1 line undone" +#~ msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgstr[0] "Het verander %1 lyn" +#~ msgstr[1] "Het verander %1 lyne" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "Het verander %1 lyn" +#~ msgstr[1] "Het verander %1 lyne" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "Ingesit %1 lyn" +#~ msgstr[1] "Ingesit %1 lyne" + +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "Uitgevee %1 lyn" +#~ msgstr[1] "Uitgevee %1 lyne" + +#~ msgid "Unknown" +#~ msgstr "Onbekende" + +#~ msgid "Save &All" +#~ msgstr "Stoor Alle" + +#, fuzzy +#~ msgid "Save &Diff..." +#~ msgstr "Stoor .diff" + +#~ msgid "Swap Source with Destination" +#~ msgstr "Uitruil Bron met Bestemming" + +#~ msgid "Show Statistics" +#~ msgstr "Vertoon Statistieke" + +#~ msgid "Diff Options" +#~ msgstr "Diff Opsies" + +#~ msgid "Save .diff" +#~ msgstr "Stoor .diff" + +#~ msgid "KomparePart" +#~ msgstr "K-vergelyk-deel" + +#~ msgid "Running diff..." +#~ msgstr "Wat loop diff..." + +#, fuzzy +#~ msgid "Parsing diff output..." +#~ msgstr "Verwerking diff..." + +#, fuzzy +#~ msgid "Comparing file %1 with file %2" +#~ msgstr "Vergelyk lêers in %1 met lêers in %2" + +#~ msgid "Comparing files in %1 with files in %2" +#~ msgstr "Vergelyk lêers in %1 met lêers in %2" + +#, fuzzy +#~ msgid "Viewing diff output from %1" +#~ msgstr "Verwerking diff..." + +#, fuzzy +#~ msgid "Blending diff output from %1 into folder %2" +#~ msgstr "Verwerking diff..." + +#, fuzzy +#~ msgid "" +#~ "You have made changes to the destination file(s).\n" +#~ "Would you like to save them?" +#~ msgstr "" +#~ "Jy het gemaak verander na die bestemming.\n" +#~ "Sal Jy hou van na stoor hulle?" + +#~ msgid "Save Changes?" +#~ msgstr "Stoor Verander?" + +#~ msgid "Unified" +#~ msgstr "Vereenselwig" + +#~ msgid "Context" +#~ msgstr "Konteks" + +#~ msgid "RCS" +#~ msgstr "Rcs" + +#~ msgid "Ed" +#~ msgstr "Ed" + +#~ msgid "Normal" +#~ msgstr "Normale" + +#~ msgid "" +#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " +#~ "available." +#~ msgstr "" +#~ "Nee diff lêer, of Nee 2 lêers het al gediff. Daarom Nee statistiek word " +#~ "beskikbaar." + +#~ msgid "Diff Statistics" +#~ msgstr "Diff Statistieke" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Old file: %1\n" +#~ "New file: %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Number of differences: %5" +#~ msgstr "" +#~ "Statistieke:\n" +#~ "\n" +#~ "Ou lêer: %1\n" +#~ "Nuwe lêer: %2\n" +#~ "\n" +#~ "Formaat: %3\n" +#~ "Nommer van hunks: %4\n" +#~ "Nommer van verskille: %5" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Number of files in diff file: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Current old file: %3\n" +#~ "Current new file: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Number of differences: %6" +#~ msgstr "" +#~ "Statistieke:\n" +#~ "\n" +#~ "Nommer van lêers in diff lêer: %1\n" +#~ "Formaat: %2\n" +#~ "\n" +#~ "Huidige ou lêer: %3\n" +#~ "Huidige nuwe lêer: %4\n" +#~ "\n" +#~ "Nommer van hunks: %5\n" +#~ "Nommer van verskille: %6" + +#, fuzzy +#~ msgid "&File" +#~ msgstr "Volgende Lêer" + +#~ msgid "&Difference" +#~ msgstr "Verskil" + +#, fuzzy +#~ msgid "&Settings" +#~ msgstr "Diff Instellings" + +#~ msgid "Preferences" +#~ msgstr "Voorkeure" + +#, fuzzy +#~ msgid "View" +#~ msgstr "Teks Besigtig" + +#, fuzzy +#~ msgid "View Settings" +#~ msgstr "Diff Instellings" + +#~ msgid "Diff" +#~ msgstr "Diff" + +#~ msgid "Diff Settings" +#~ msgstr "Diff Instellings" + +#~ msgid "Run Diff In" +#~ msgstr "Hardloop Diff In" + +#~ msgid "Command Line" +#~ msgstr "Opdrag Lyn" + +#~ msgid "cd dir && diff -udHprNa -- source destination" +#~ msgstr "cd gids && diff -udHprNa -- bron bestemming" + +#, fuzzy +#~ msgid "Options" +#~ msgstr "Opsies" + +#~ msgid "Look for smaller changes" +#~ msgstr "Kyk vir kleiner verander" + +#~ msgid "Optimize for large files" +#~ msgstr "Optimiseer vir groot lêers" + +#~ msgid "Ignore changes in case" +#~ msgstr "Ignoreer verander in kas" + +#~ msgid "Expand tabs to spaces" +#~ msgstr "Vergroot oortjies na spasies" + +#~ msgid "Ignore added or removed empty lines" +#~ msgstr "Ignoreer bygevoeg of verwyder leeg lyne" + +#~ msgid "Ignore changes in whitespace" +#~ msgstr "Ignoreer verander in spasie" + +#~ msgid "Show function names" +#~ msgstr "Vertoon funksie name" + +#, fuzzy +#~ msgid "Compare folders recursively" +#~ msgstr "Vergelyk gidse rekursief" + +#~ msgid "Treat new files as empty" +#~ msgstr "Behandel nuwe lêers as leeg" + +#~ msgid "Format" +#~ msgstr "Formaat" + +#~ msgid "Side-by-side" +#~ msgstr "Side-by-side" + +#~ msgid "Number of context lines:" +#~ msgstr "Nommer van konteks lyne:" + +#, fuzzy +#~ msgid "Files" +#~ msgstr "Volgende Lêer" + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "Voorkoms" + +#~ msgid "Output Format" +#~ msgstr "Uitset Formaat" + +#~ msgid "Lines of Context" +#~ msgstr "Lyne van Konteks" + +#~ msgid "General" +#~ msgstr "Algemeen" + +#, fuzzy +#~| msgid "Treat new files as empty" +#~ msgid "&Treat new files as empty" +#~ msgstr "Behandel nuwe lêers as leeg" + +#~ msgid "&Look for smaller changes" +#~ msgstr "Kyk vir kleiner verander" + +#~ msgid "O&ptimize for large files" +#~ msgstr "Optimiseer vir groot lêers" + +#~ msgid "&Ignore changes in case" +#~ msgstr "Ignoreer verander in kas" + +#~ msgid "Whitespace" +#~ msgstr "Spasie" + +#, fuzzy +#~ msgid "E&xpand tabs to spaces in output" +#~ msgstr "Vergroot oortjies na spasies in uitset" + +#~ msgid "I&gnore added or removed empty lines" +#~ msgstr "Ignoreer bygevoeg of verwyder leeg lyne" + +#~ msgid "Ig&nore changes in the amount of whitespace" +#~ msgstr "Ignoreer verander in die hoeveelheid van spasie" + +#, fuzzy +#~ msgid "Ign&ore all whitespace" +#~ msgstr "Ignoreer verander in spasie" + +#, fuzzy +#~ msgid "Igno&re changes due to tab expansion" +#~ msgstr "Ignoreer verander in spasie" + +#~ msgid "Colors" +#~ msgstr "Kleure" + +#~ msgid "Removed color:" +#~ msgstr "Verwyder kleur:" + +#~ msgid "Changed color:" +#~ msgstr "Het verander kleur:" + +#~ msgid "Added color:" +#~ msgstr "Bygevoeg kleur:" + +#~ msgid "Applied color:" +#~ msgstr "Aangewend kleur:" + +#~ msgid "Mouse Wheel" +#~ msgstr "Muis Wiel" + +#~ msgid "Number of lines:" +#~ msgstr "Nommer van lyne:" + +#, fuzzy +#~ msgid "Tabs to Spaces" +#~ msgstr "Vergroot oortjies na spasies" + +#, fuzzy +#~ msgid "Fonts" +#~ msgstr "Formaat" + +#, fuzzy +#~ msgid "" +#~ "A program to view the differences between files and optionally generate a " +#~ "diff" +#~ msgstr "" +#~ "'n program na besigtig die verskille tussen lêers en optioneel genereer " +#~ "'n diff." + +#~ msgid "Kompare" +#~ msgstr "K-vergelyk" + +#, fuzzy +#~ msgid "Kompare icon artist" +#~ msgstr "K-vergelyk-deel" + +#, fuzzy +#~ msgid "Compare these files or folder" +#~ msgstr "Vergelyk hierdie lêers of gidse" + +#, fuzzy +#~ msgid "Could not find our KompareViewPart." +#~ msgstr "Kon nie soek ons Deel!" + +#, fuzzy +#~ msgid "Could not find our KompareNavigationPart." +#~ msgstr "Kon nie soek ons Deel!" + +#~ msgid "A&ppearance" +#~ msgstr "Voorkoms" + +#, fuzzy +#~ msgid "&Diff" +#~ msgstr "Diff" + +#~ msgid "&Format" +#~ msgstr "Formaat" + +#~ msgid "O&ptions" +#~ msgstr "Opsies" + +#, fuzzy +#~ msgid "Hide T&ext View" +#~ msgstr "Teks Besigtig" diff --git a/po/ar/libkomparediff2.po b/po/ar/libkomparediff2.po index e401b59..8c1ff28 100644 --- a/po/ar/libkomparediff2.po +++ b/po/ar/libkomparediff2.po @@ -4,147 +4,146 @@ # Ahmad M. Zawawi , 2004. # Youssef Chahibi , 2007. # Abdalrahim Fakhouri , 2012. +# SPDX-FileCopyrightText: 2022, 2024 Zayed Al-Saidi msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2012-02-09 17:29+0200\n" -"Last-Translator: Abdalrahim Fakhouri \n" -"Language-Team: Arabic \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-12-19 07:29+0400\n" +"Last-Translator: Zayed Al-Saidi \n" +"Language-Team: ar\n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 23.08.5\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "تطبيق الاختلاف" +msgstr "&طبّق الاختلاف" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" -msgstr "إلغاء تطبيق الاختلاف" +msgstr "ألغ &تطبيق الاختلاف" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" -msgstr "تطبيق الكل" +msgstr "طبّق ال&كل" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" -msgstr "إ&لغ كل التطبيقات" +msgstr "أل&غ تطبيق الكل" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" -msgstr "الملف السابق" +msgstr "الملف ال&سابق" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "الملف التالي" +msgstr "الملف ال&تالي" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "التغيّر السابق" +msgstr "ال&تغيّر السابق" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "التغيّّر التالي" +msgstr "التغيّّر التال&ي" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 -#, fuzzy, kde-format +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." -msgstr " لا أو لا ملفّ هو ليس a سليم ملفّ" +msgstr "" +"لا يوجد نماذج أو اختلافات، هذا الملف: %1، ليس ملف اختلاف صالحًا." -#: komparemodellist.cpp:262 -#, fuzzy, kde-format +#: modellist.cpp:192 +#, kde-format msgid "" "There were problems applying the diff %1 to the file %2." -msgstr " هناك إلى ملفّ" +msgstr "" +"كانت هناك مشاكل أثناء تطبيق الاختلاف %1 على الملف %2." -#: komparemodellist.cpp:289 -#, fuzzy, kde-format +#: modellist.cpp:220 +#, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" -msgstr " هناك إلى مجلد" +msgstr "" +"كانت هناك مشاكل في تطبيق الاختلاف %1 على المجلد %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "فشل فتح ملف مؤقَت." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 -#, fuzzy, kde-format +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format msgid "Could not write to the temporary file %1, deleting it." -msgstr " يمكن أن ليس كتابة إلى مؤقت ملفّ الإيطالية" +msgstr "لم يتمكن من الكتابة إلى الملف المؤقت %1، لذا حُذف." -#: komparemodellist.cpp:407 -#, fuzzy, kde-format +#: modellist.cpp:324 +#, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." -msgstr " يمكن أن ليس إ_نشئ مقصد دليل ملفّ ليس" +msgstr "" +"لم يتمكن من إنشاء دليل الوجهة %1.\n" +"لم يحفظ الملف." -#: komparemodellist.cpp:434 -#, fuzzy, kde-format +#: modellist.cpp:350 +#, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." msgstr "" -" يمكن أن ليس ارفع مؤقت ملفّ إلى مقصد موقع الـ مؤقت ملفّ هو " -"متوفّر أنت يدويّاً نسخ الإيطالية إلى يمين" +"لم نتمكن من تحميل الملف المؤقت إلى موقع الوجهة %1. لا يزال الملف " +"المؤقت متاحًا ضمن: %2. يمكنك نسخه يدويًا إلى المكان الصحيح." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "فشل إعراب مخرجات الإختلافات." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "هذه الملفات متطابقة." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "فشل الكتابة إلى الملف المؤقَت." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." -msgstr "" +msgstr "تم تشويه الفرق. لم يتم تحليل بعض الأسطر ولن يتم عرضها في عرض الاختلاف." #~ msgctxt "NAME OF TRANSLATORS" #~ msgid "Your names" @@ -628,7 +627,7 @@ msgstr "" #~ "that is used most frequently because it is very readable. The KDE " #~ "developers like this format the best so use it for sending patches." #~ msgstr "" -#~ "انتقِ تنسيق من مخرجات أداء موحّد هو هو مُستخدَم الإيطالية هو مقروء الـ كدي " +#~ "انتقِ تنسيق من مخرجات أداء موحّد هو هو مُستخدَم الإيطالية هو مقروء الـ كِيدِي " #~ "مثل تنسيق استخدام الإيطالية لـ." #~ msgid "Output Format" diff --git a/po/be/libkomparediff2.po b/po/be/libkomparediff2.po index e8628ce..3b40e93 100644 --- a/po/be/libkomparediff2.po +++ b/po/be/libkomparediff2.po @@ -1,148 +1,156 @@ -# translation of kompare.po to Belarusian -# # Siarhei Liantsevich , 2007. # Darafei Praliaskouski , 2007. msgid "" msgstr "" -"Project-Id-Version: kompare\n" +"Project-Id-Version: fc57ad16a28d02dea100ceb1c60de14e\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2007-10-28 14:03+0200\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2025-01-08 21:32\n" "Last-Translator: Darafei Praliaskouski \n" -"Language-Team: Belarusian \n" +"Language-Team: Belarusian\n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: komparemodellist.cpp:58 -#, fuzzy, kde-format +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n" +"%100>=11 && n%100<=14 ? 2 : 3);\n" +"X-Crowdin-Project: fc57ad16a28d02dea100ceb1c60de14e\n" +"X-Crowdin-Project-ID: 136\n" +"X-Crowdin-Language: be\n" +"X-Crowdin-File: /main/KDE6/be/messages/libkomparediff2/libkomparediff2.po\n" +"X-Crowdin-File-ID: 19555\n" + +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "Ужыць адрозненні" +msgstr "&Ужыць адрозненне" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" -msgstr "Адмяніць адрозненні" +msgstr "Прыбр&аць адрозненне" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" -msgstr "Ужыць усё" +msgstr "Ужы&ць усё" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" -msgstr "Адмяніць усё" +msgstr "&Прыбраць усё" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" -msgstr "Папярэдні файл" +msgstr "&Папярэдні файл" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "Наступны файл" +msgstr "&Наступны файл" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "Папярэдняе адрозненне" +msgstr "П&апярэдняе адрозненне" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "Наступнае адрозненне" +msgstr "На&ступнае адрозненне" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 -#, fuzzy, kde-format +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -"Няма макетаў або адрозненняў. Файл %1 не з'яўляецца файлам " -"фармату diff." +"Няма мадэляў або адрозненняў. Файл %1 не ёсць сапраўдным файлам " +"адрозненняў." -#: komparemodellist.cpp:262 -#, fuzzy, kde-format +#: modellist.cpp:192 +#, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -"Паўсталі праблемы падчас ужывання diff %1 да файла %2." +"Пры ўжыванні адрознення %1 да файла %2 паўсталі праблемы." -#: komparemodellist.cpp:289 -#, fuzzy, kde-format +#: modellist.cpp:220 +#, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -"Паўсталі праблемы падчас ужывання diff %1 да тэчкі %2." +"Пры ўжыванні адрознення %1 да каталога %2 паўсталі " +"праблемы." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 -#, fuzzy, kde-format +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format msgid "Could not open a temporary file." -msgstr "Не атрымліваецца адкрыць часовы файл." +msgstr "Не ўдалося адкрыць часовы файл." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 -#, fuzzy, kde-format +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -"Не атрымліваецца запісаць у часовы файл %1, выдаляемы яго." +"Немагчыма запісаць у часовы файл %1, файл будзе выдалены." -#: komparemodellist.cpp:407 -#, fuzzy, kde-format +#: modellist.cpp:324 +#, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -"Не атрымалася стварыць канчатковую тэчку %1.\n" -"Файл не захаваны." +"Не ўдалося стварыць мэтавы каталог %1.\n" +" Файл не быў захаваны." -#: komparemodellist.cpp:434 -#, fuzzy, kde-format +#: modellist.cpp:350 +#, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." msgstr "" -"Не атрымліваецца загрузіць часовы файл у кропку прызначэння %1. " -"Часовы файл усё яшчэ даступны пад імем %2. Вы можаце ўручную " -"скапіраваць яго ў патрэбнае месца." +"Не ўдалося запампаваць часовы файл у мэтавае размяшчэнне %1. " +"часовы файл усё яшчэ даступны: %2. Вы можаце ўласнаручна скапіяваць " +"яго ў патрэбнае размяшчэнне." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 -#, fuzzy, kde-format +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format msgid "Could not parse diff output." -msgstr "Не атрымліваецца апрацаваць выснову diff." +msgstr "Не ўдалося прааналізаваць вывад адрознення." -#: komparemodellist.cpp:529 -#, fuzzy, kde-format +#: modellist.cpp:440 +#, kde-format msgid "The files are identical." -msgstr "Усе файлы ідэнтычныя." +msgstr "Файлы аднолькавыя." -#: komparemodellist.cpp:711 -#, fuzzy, kde-format +#: modellist.cpp:550 +#, kde-format msgid "Could not write to the temporary file." -msgstr "Не атрымліваецца запісаць у часовы файл." +msgstr "Не ўдалося запісаць у часовы файл." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" +"Адрозненне няправільнае. Некаторыя радкі не ўдалося прааналізаваць, яны не " +"будуць паказвацца пры праглядзе." #, fuzzy #~ msgid "Could not load our KompareViewPart." diff --git a/po/bg/libkomparediff2.po b/po/bg/libkomparediff2.po index e87a2c1..8bc3497 100644 --- a/po/bg/libkomparediff2.po +++ b/po/bg/libkomparediff2.po @@ -3,78 +3,71 @@ # # Zlatko Popov , 2006, 2008. # Yasen Pramatarov , 2009. +# Mincho Kondarev , 2022. msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2009-09-17 22:29+0300\n" -"Last-Translator: Yasen Pramatarov \n" -"Language-Team: Bulgarian \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2022-06-19 17:59+0200\n" +"Last-Translator: Mincho Kondarev \n" +"Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 22.04.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Прилагане на разликите" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Отмяна прилагането на разликите" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "&Прилагане на всички" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Отмяна на прилагане на всички" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" msgstr "П&редишен файл" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Следващ файл" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Предишна разлика" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Следваща разлика" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -82,7 +75,7 @@ msgid "" msgstr "" "Няма модели или разлики. Файлът: %1 не е валиден diff файл." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Има проблеми при прилагането на разлика %1 към файл %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -100,18 +93,18 @@ msgstr "" "Има проблеми при прилагането на разлика %1 към папка %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Временният файл не може да бъде творен." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Записът във временният файл %1 е невъзможен. Ще бъде изтрит." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -120,7 +113,7 @@ msgstr "" "Не може да бъде създадена отправна директория %1.\n" "Файлът не е записан." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Можете ръчно да го копирате в " "подходящото място.." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Данните за разликите не могат да бъдат обработени." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Файловете са същите." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Записът във временния файл е невъзможен." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" - -#~ msgctxt "NAME OF TRANSLATORS" -#~ msgid "Your names" -#~ msgstr "Ясен Праматаров,Златко Попов" - -#~ msgctxt "EMAIL OF TRANSLATORS" -#~ msgid "Your emails" -#~ msgstr "yasen@lindeas.com,zlatkopopov@fsa-bg.org" - -#~ msgid "Could not load our KompareViewPart." -#~ msgstr "KompareViewPart не може да бъде заредена." - -#~ msgid "Navigation" -#~ msgstr "Навигация" - -#~ msgid "Could not load our KompareNavigationPart." -#~ msgstr "KompareViewPart не може да бъде заредена." - -#~ msgid "&Open Diff..." -#~ msgstr "&Отваряне на разлики..." - -#~ msgid "&Compare Files..." -#~ msgstr "&Сравняване на файлове..." - -#~ msgid "&Blend URL with Diff..." -#~ msgstr "&Смесване на URL с разлики..." - -#~ msgid "Show T&ext View" -#~ msgstr "Показване на изглед \"&текст\"" - -#~ msgid " 0 of 0 differences " -#~ msgstr " 0 oт 0 разлики" - -#~ msgid " 0 of 0 files " -#~ msgstr " 0 от 0 файла" - -#~ msgid " %2 of %1 file " -#~ msgid_plural " %2 of %1 files " -#~ msgstr[0] " %2 от %1 файл " -#~ msgstr[1] " %2 от %1 файла " - -#~ msgid " %1 file " -#~ msgid_plural " %1 files " -#~ msgstr[0] " %1 файл " -#~ msgstr[1] " %1 файла " - -#~ msgid " %2 of %1 difference, %3 applied " -#~ msgid_plural " %2 of %1 differences, %3 applied " -#~ msgstr[0] " %2 от %1 разлика, %3 приложена " -#~ msgstr[1] " %2 от %1 разлики, %3 приложени " - -#~ msgid " %1 difference " -#~ msgid_plural " %1 differences " -#~ msgstr[0] " %1 разлика " -#~ msgstr[1] " %1 разлики " - -#~ msgid "Blend File/Folder with diff Output" -#~ msgstr "Смесване на файл/папка с изходни данни" - -#~ msgid "File/Folder" -#~ msgstr "Файл/Директория" - -#~ msgid "Diff Output" -#~ msgstr "Данни за разлика" - -#~ msgid "Blend" -#~ msgstr "Смесване" - -#~ msgid "Blend this file or folder with the diff output" -#~ msgstr "Смесване на тази директория или папка с изходните данни за разлика" - -#~ msgid "" -#~ "If you have entered a file or folder name and a file that contains diff " -#~ "output in the fields in this dialog then this button will be enabled and " -#~ "pressing it will open kompare's main view where the output of the entered " -#~ "file or files from the folder are mixed with the diff output so you can " -#~ "then apply the difference(s) to a file or to the files. " -#~ msgstr "" -#~ "Ако сте въвели име на файл или папка, а също така и файла с изходните " -#~ "данни, тогава бутонът ще бъде активен. Когато го натиснете, ще се покаже " -#~ "прозорец, където се смесват изходните данни, така че после можете да " -#~ "приложите разликата(е) към файл(ове). " - -#~ msgid "Compare Files or Folders" -#~ msgstr "Сравняване на файлове и папки" - -#~ msgid "Source" -#~ msgstr "Източник" - -#~ msgid "Destination" -#~ msgstr "Цел" - -#~ msgid "Compare" -#~ msgstr "Сравняване" - -#~ msgid "Compare these files or folders" -#~ msgstr "Сравняване на тези файлове или папки" - -#~ msgid "" -#~ "If you have entered 2 filenames or 2 folders in the fields in this dialog " -#~ "then this button will be enabled and pressing it will start a comparison " -#~ "of the entered files or folders. " -#~ msgstr "" -#~ "Ако в полетата сте въвели 2 имена на файлове или 2 папки, тогава този " -#~ "бутон ще бъде включен, а при натискането му ще започне сравняване на " -#~ "въведените файлове или папки. " - -#~ msgid "Text View" -#~ msgstr "Изглед \"текст\"" - -#~ msgid "Source Folder" -#~ msgstr "Директория източник" - -#~ msgid "Destination Folder" -#~ msgstr "Отправна директория" - -#~ msgid "Source File" -#~ msgstr "Файл източник" - -#~ msgid "Destination File" -#~ msgstr "Целеви файл" - -#~ msgid "Source Line" -#~ msgstr "Ред източник" - -#~ msgid "Destination Line" -#~ msgstr "Целеви ред" - -#~ msgid "Difference" -#~ msgstr "Разлика" - -#, fuzzy -#~| msgid "Applied: Changes made to %1 line undone" -#~| msgid_plural "Applied: Changes made to %1 lines undone" -#~ msgid "Applied: Changes made to %1 line undone" -#~ msgid_plural "Applied: Changes made to %1 lines undone" -#~ msgstr[0] "Приложено: Промените в %1 ред са отменени" -#~ msgstr[1] "Приложено: Промените в %1 реда са отменени" - -#~ msgid "Changed %1 line" -#~ msgid_plural "Changed %1 lines" -#~ msgstr[0] "Променен %1 ред" -#~ msgstr[1] "Променени %1 реда" - -#~ msgid "Applied: Insertion of %1 line undone" -#~ msgid_plural "Applied: Insertion of %1 lines undone" -#~ msgstr[0] "Приложено: Вмъкването на %1 ред е отменено" -#~ msgstr[1] "Приложено: Вмъкването на %1 реда е отменено" - -#~ msgid "Inserted %1 line" -#~ msgid_plural "Inserted %1 lines" -#~ msgstr[0] "Вмъкнат %1 ред" -#~ msgstr[1] "Вмъкнати %1 реда" - -#~ msgid "Applied: Deletion of %1 line undone" -#~ msgid_plural "Applied: Deletion of %1 lines undone" -#~ msgstr[0] "Приложено: Изтриването на %1 ред е отменено" -#~ msgstr[1] "Приложено: Изтриването на %1 реда е отменено" - -#~ msgid "Deleted %1 line" -#~ msgid_plural "Deleted %1 lines" -#~ msgstr[0] "Изтрит %1 ред" -#~ msgstr[1] "Изтрити %1 реда" - -#~ msgid "Unknown" -#~ msgstr "Неизвестен" - -#~ msgid "KompareNavTreePart" -#~ msgstr "KompareNavTreePart" - -#~ msgid "John Firebaugh" -#~ msgstr "John Firebaugh" - -#~ msgid "Author" -#~ msgstr "Автор" - -#~ msgid "Otto Bruggeman" -#~ msgstr "Otto Bruggeman" - -#~ msgid "Save &All" -#~ msgstr "Запис на &всичко" - -#~ msgid "Save &Diff..." -#~ msgstr "Запис на &разликите..." - -#~ msgid "Swap Source with Destination" -#~ msgstr "Запомняне на източника и направлението" - -#~ msgid "Show Statistics" -#~ msgstr "Показване на статистика" - -#~ msgid "Refresh Diff" -#~ msgstr "Обновяване на разликата" - -#~ msgid "The URL %1 cannot be downloaded." -#~ msgstr "Адресът (URL) %1 не може да бъде зареден." - -#~ msgid "The URL %1 does not exist on your system." -#~ msgstr "Адресът (URL) %1 не съществува на компютъра." - -#~ msgid "Diff Options" -#~ msgstr "Опции за разлики" - -#~ msgid "*.diff *.dif *.patch|Patch Files" -#~ msgstr "*.diff *.dif *.patch|Кръпки" - -#~ msgid "Save .diff" -#~ msgstr "Запис на .diff" - -#~ msgid "The file exists or is write-protected; do you want to overwrite it?" -#~ msgstr "" -#~ "Файлът съществува или е защитен от запис. Искате ли да бъде презаписан?" - -#~ msgid "File Exists" -#~ msgstr "Файлът съществува" - -#~ msgid "Overwrite" -#~ msgstr "Презапис" - -#~ msgid "Do Not Overwrite" -#~ msgstr "Без презапис" - -#~ msgid "KomparePart" -#~ msgstr "KomparePart" - -#~ msgid "Kevin Kofler" -#~ msgstr "Kevin Kofler" - -#~ msgid "Running diff..." -#~ msgstr "Проверка за разлики..." - -#~ msgid "Parsing diff output..." -#~ msgstr "Обработка на данните за разликите..." - -#~ msgid "Comparing file %1 with file %2" -#~ msgstr "Сравняване на файл %1 с файл %2" - -#~ msgid "Comparing files in %1 with files in %2" -#~ msgstr "Сравняване на файлове в %1 с файлове в %2" - -#~ msgid "Viewing diff output from %1" -#~ msgstr "Преглед на разликите от %1" - -#~ msgid "Blending diff output from %1 into file %2" -#~ msgstr "Смесване на разликите за%1 във файл %2" - -#~ msgid "Blending diff output from %1 into folder %2" -#~ msgstr "Смесване на разликите за%1 във папка %2" - -#~ msgid "" -#~ "You have made changes to the destination file(s).\n" -#~ "Would you like to save them?" -#~ msgstr "" -#~ "Направихте промени в целевия файл(ове).\n" -#~ "Искате ли да ги запишете?" - -#~ msgid "Save Changes?" -#~ msgstr "Запис на промените?" - -#~ msgid "Unified" -#~ msgstr "Unified" - -#~ msgid "Context" -#~ msgstr "Контекст" - -#~ msgid "RCS" -#~ msgstr "RCS" - -#~ msgid "Ed" -#~ msgstr "Ed" - -#~ msgid "Normal" -#~ msgstr "Нормален" - -#~ msgid "" -#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " -#~ "available." -#~ msgstr "" -#~ "Или няма файл с разлики, или не са сравнени два файла. Следователно няма " -#~ "статистика." - -#~ msgid "Diff Statistics" -#~ msgstr "Статистика за разлики" - -#~ msgid "" -#~ "Statistics:\n" -#~ "\n" -#~ "Old file: %1\n" -#~ "New file: %2\n" -#~ "\n" -#~ "Format: %3\n" -#~ "Number of hunks: %4\n" -#~ "Number of differences: %5" -#~ msgstr "" -#~ "Статистика:\n" -#~ "\n" -#~ "Стар файл: %1\n" -#~ "Нов файл: %2\n" -#~ "\n" -#~ "Формат: %3\n" -#~ "Брой парчета: %4\n" -#~ "Брой разлики: %5" - -#~ msgid "" -#~ "Statistics:\n" -#~ "\n" -#~ "Number of files in diff file: %1\n" -#~ "Format: %2\n" -#~ "\n" -#~ "Current old file: %3\n" -#~ "Current new file: %4\n" -#~ "\n" -#~ "Number of hunks: %5\n" -#~ "Number of differences: %6" -#~ msgstr "" -#~ "Статистика:\n" -#~ "\n" -#~ "Брой файлове във файла за разлики: %1\n" -#~ "Format: %2\n" -#~ "\n" -#~ "Текущ стар файл: %3\n" -#~ "Текущ нов файл: %4\n" -#~ "\n" -#~ "Брой парчета: %5\n" -#~ "Брой разлики: %6" - -#~ msgid "&File" -#~ msgstr "&Файл" - -#~ msgid "&Difference" -#~ msgstr "&Разлика" - -#~ msgid "&Settings" -#~ msgstr "&Настройки" - -#~ msgid "Preferences" -#~ msgstr "Настройки" - -#~ msgid "View" -#~ msgstr "Изглед" - -#~ msgid "View Settings" -#~ msgstr "Настройки на изглед" - -#~ msgid "Diff" -#~ msgstr "Разлики" - -#~ msgid "Diff Settings" -#~ msgstr "Настройки на разлики" - -#~ msgid "Run Diff In" -#~ msgstr "Изпълнение на Diff в" - -#~ msgid "Command Line" -#~ msgstr "Команден ред" - -#~ msgid "cd dir && diff -udHprNa -- source destination" -#~ msgstr "cd dir && diff -udHprNa -- целеви източник" - -#~ msgid "Options" -#~ msgstr "Настройки" - -#~ msgid "Look for smaller changes" -#~ msgstr "Търсене на малки промени" - -#~ msgid "Optimize for large files" -#~ msgstr "Оптимизиране за големи файлове" - -#~ msgid "Ignore changes in case" -#~ msgstr "Игнориране на промените в регистъра" - -#~ msgid "Expand tabs to spaces" -#~ msgstr "Разширение на подпрозорците до интервалите" - -#~ msgid "Ignore added or removed empty lines" -#~ msgstr "Игнориране на добавени или премахнатите празни редове" - -#~ msgid "Ignore changes in whitespace" -#~ msgstr "Игнориране на промените в интервала" - -#~ msgid "Show function names" -#~ msgstr "Показване имената на функциите" - -#~ msgid "Compare folders recursively" -#~ msgstr "Сравняване на директориите рекурсивно" - -#~ msgid "Treat new files as empty" -#~ msgstr "Третиране на файловете като празни" - -#~ msgid "Format" -#~ msgstr "Формат" - -#~ msgid "Side-by-side" -#~ msgstr "Страна по страна" - -#~ msgid "Number of context lines:" -#~ msgstr "Брой редове контекст:" - -#~ msgid "Main Toolbar" -#~ msgstr "Главна лента с инструменти" - -#~ msgid "Files" -#~ msgstr "Файлове" - -#~ msgid "Here you can enter the files you want to compare." -#~ msgstr "Тук въведете файловете, които искате да сравните" - -#~ msgid "Here you can change the options for comparing the files." -#~ msgstr "Тук можете да промените опциите за сравняване на файлове" - -#~ msgid "Appearance" -#~ msgstr "Изглед" - -#~ msgid "Here you can change the options for the view." -#~ msgstr "Тук можете да промените опциите за изгледа" - -#~ msgid "Diff Program" -#~ msgstr "Програма за разлики" - -#~ msgid "" -#~ "You can select a different diff program here. On Solaris the standard " -#~ "diff program does not support all the options that the GNU version does. " -#~ "This way you can select that version." -#~ msgstr "" -#~ "Тук можете да изберете различна програма за разлики. В Solaris " -#~ "стандартната такава не поддържа всички опции като GNU версията. По този " -#~ "начин можете да изберете версията." - -#~ msgid "" -#~ "Select the format of the output generated by diff. Unified is the one " -#~ "that is used most frequently because it is very readable. The KDE " -#~ "developers like this format the best so use it for sending patches." -#~ msgstr "" -#~ "Изберете формата на изходните данни за разликите. Unified е сред най-" -#~ "често използваните, защото е четим. Разработчиците на KDE най-много го " -#~ "харесват за изпращане на кръпки." - -#~ msgid "Output Format" -#~ msgstr "Формат на изходните данни" - -#~ msgid "Lines of Context" -#~ msgstr "Редове контекст" - -#~ msgid "" -#~ "The number of context lines is normally 2 or 3. This makes the diff " -#~ "readable and applicable in most cases. More than 3 lines will only bloat " -#~ "the diff unnecessarily." -#~ msgstr "" -#~ "Броят редове контекст обикновено е 2 или 3. Това прави разликите четими и " -#~ "приложими в повечето случаи. Повече от 3 реда само ще излишно ще раздуят " -#~ "разликите." - -#~ msgid "General" -#~ msgstr "Общи" - -#~ msgid "&Treat new files as empty" -#~ msgstr "&Третиране на новите файловете като празни" - -#~ msgid "This option corresponds to the -N diff option." -#~ msgstr "Това съответства на опцията -N на diff." - -#~ msgid "&Look for smaller changes" -#~ msgstr "&Търсене на малки промени" - -#~ msgid "This corresponds to the -d diff option." -#~ msgstr "Това съответства на опцията -d на diff." - -#~ msgid "O&ptimize for large files" -#~ msgstr "&Оптимизиране за големи файлове" - -#~ msgid "This corresponds to the -H diff option." -#~ msgstr "Това съответства на опцията -H на diff." - -#~ msgid "&Ignore changes in case" -#~ msgstr "&Игнориране на промяната в регистъра" - -#~ msgid "This corresponds to the -i diff option." -#~ msgstr "Това съответства на опцията -i на diff." - -#~ msgid "Ignore regexp:" -#~ msgstr "Игнориране на рег. изрази:" - -#~ msgid "This option corresponds to the -I diff option." -#~ msgstr "Това съответства на опцията -I на diff." - -#~ msgid "" -#~ "Add the regular expression here that you want to use\n" -#~ "to ignore lines that match it." -#~ msgstr "" -#~ "Тук добавете регулярния израз и редовете,\n" -#~ "които съвпадат с него, ще бъдат игнорирани." - -#~ msgid "&Edit..." -#~ msgstr "&Редактиране..." - -#~ msgid "" -#~ "Clicking this will open a regular expression dialog where\n" -#~ "you can graphically create regular expressions." -#~ msgstr "" -#~ "Включването на тази отметка ще отвори прозорец за\n" -#~ "рег. израз, където можете да създавате такива графично." - -#~ msgid "Whitespace" -#~ msgstr "Интервал" - -#~ msgid "E&xpand tabs to spaces in output" -#~ msgstr "&Разширение на подпрозорците до интервали" - -#~ msgid "This option corresponds to the -t diff option." -#~ msgstr "Това съответства на опцията -t на diff." - -#~ msgid "I&gnore added or removed empty lines" -#~ msgstr "&Игнориране на празните редове" - -#~ msgid "This option corresponds to the -B diff option." -#~ msgstr "Това съответства на опцията -B на diff." - -#~ msgid "Ig&nore changes in the amount of whitespace" -#~ msgstr "&Игнориране на промените в броя интервали" - -#~ msgid "This option corresponds to the -b diff option." -#~ msgstr "Това съответства на опцията -b на diff." - -#~ msgid "Ign&ore all whitespace" -#~ msgstr "&Игнориране на всички интервали" - -#~ msgid "This option corresponds to the -w diff option." -#~ msgstr "Това съответства на опцията -w на diff." - -#~ msgid "Igno&re changes due to tab expansion" -#~ msgstr "Игнорира&не на промените от разширението на подпрозореца" - -#~ msgid "This option corresponds to the -E diff option." -#~ msgstr "Това съответства на опцията -E на dif." - -#~ msgid "File Pattern to Exclude" -#~ msgstr "Изключение - шаблон на файл" - -#~ msgid "" -#~ "If this is checked you can enter a shell pattern in the text box on the " -#~ "right or select entries from the list." -#~ msgstr "" -#~ "Ако е включена тази отметка, можете да въведете шаблон на шел вдясно или " -#~ "да изберете елементи от списъка." - -#~ msgid "" -#~ "Here you can enter or remove a shell pattern or select one or more " -#~ "entries from the list." -#~ msgstr "" -#~ "Тук можете да въведете или премахнете шаблон на шел или да изберете " -#~ "елементи от списъка." - -#~ msgid "File with Filenames to Exclude" -#~ msgstr "Изключение - файл с имена" - -#, fuzzy -#~| msgid "" -#~| "If this is checked you can enter a filename in the combo box on the " -#~| "right." -#~ msgid "If this is checked you can enter a filename in the combo box below." -#~ msgstr "" -#~ "Ако е включена тази отметка, можете да въведете име на файл в полето " -#~ "вдясно." - -#~ msgid "" -#~ "Here you can enter the URL of a file with shell patterns to ignore during " -#~ "the comparison of the folders." -#~ msgstr "" -#~ "Тук можете да въведете адрес на файл със шаблони на шелове, които да " -#~ "бъдат игнорирани по време на сравняването на папките." - -#~ msgid "" -#~ "Any file you select in the dialog that pops up when you click it will be " -#~ "put in the dialog to the left of this button." -#~ msgstr "" -#~ "Всеки файл, който маркирате в изскачащия прозорец, ще бъде поставен " -#~ "отдясно на бутона." - -#~ msgid "Exclude" -#~ msgstr "Изключване" - -#~ msgid "Encoding" -#~ msgstr "Кодова таблица" - -#~ msgid "Colors" -#~ msgstr "Цветове" - -#~ msgid "Removed color:" -#~ msgstr "Цвят за премахнато:" - -#~ msgid "Changed color:" -#~ msgstr "Цвят за променено:" - -#~ msgid "Added color:" -#~ msgstr "Цвят за добавено:" - -#~ msgid "Applied color:" -#~ msgstr "Цвят за приложено:" - -#~ msgid "Mouse Wheel" -#~ msgstr "Колелце на мишката" - -#~ msgid "Number of lines:" -#~ msgstr "Брой редове:" - -#~ msgid "Tabs to Spaces" -#~ msgstr "Подпрозорци в интервали" - -#~ msgid "Number of spaces to convert a tab character to:" -#~ msgstr "Брой интервали в които да бъде конвертиран един подпрозорец:" - -#~ msgid "Text Font" -#~ msgstr "Шрифт на текст" - -#~ msgid "Font:" -#~ msgstr "Шрифт:" - -#~ msgid "Size:" -#~ msgstr "Размер:" - -#~ msgid "Fonts" -#~ msgstr "Шрифтове" - -#~ msgid "" -#~ "A program to view the differences between files and optionally generate a " -#~ "diff" -#~ msgstr "" -#~ "Програма за намиране на разлики между файлове и за генериране на разлики" - -#~ msgid "Kompare" -#~ msgstr "Сравняване" - -#, fuzzy -#~| msgid "" -#~| "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " -#~| "2004-2005 Jeff Snyder, (c) 2007-2008 Kevin Kofler" -#~ msgid "" -#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " -#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" -#~ msgstr "" -#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " -#~ "2004-2005 Jeff Snyder, (c) 2007-2008 Kevin Kofler" - -#~ msgid "Jeff Snyder" -#~ msgstr "Jeff Snyder" - -#~ msgid "Developer" -#~ msgstr "Разработчик" - -#~ msgid "Maintainer" -#~ msgstr "Поддръжка" - -#~ msgid "Chris Luetchford" -#~ msgstr "Chris Luetchford" - -#~ msgid "Kompare icon artist" -#~ msgstr "Автор на иконите на Kompare" - -#~ msgid "Malte Starostik" -#~ msgstr "Malte Starostik" - -#~ msgid "A lot of good advice" -#~ msgstr "Много добри съвети" - -#~ msgid "Bernd Gehrmann" -#~ msgstr "Bernd Gehrmann" - -#~ msgid "Cervisia diff viewer" -#~ msgstr "Разлики във Cervisia" - -#~ msgid "This will compare URL1 with URL2" -#~ msgstr "Това ще сравни URL1 и URL2" - -#~ msgid "" -#~ "This will open URL1 and expect it to be diff output. URL1 can also be a " -#~ "'-' and then it will read from standard input. Can be used for instance " -#~ "for cvs diff | kompare -o -. Kompare will do a check to see if it can " -#~ "find the original file(s) and then blend the original file(s) into the " -#~ "diffoutput and show that in the viewer. -n disables the check." -#~ msgstr "" -#~ "Това ще отвори URL1 и ще очаква да са данни за разликите. URL1 може също " -#~ "така да бъде \"-\" и тогава ще бъде прочетен от позицията на стандартните " -#~ "входни данни. Например може да бъде използвано за cvs diff | kompare -o " -#~ "-. Ще бъдат проверени, за да види дали може да намери оригиналния " -#~ "файл(ове), да ги смеси и да покаже резултата. -n изключва проверката." - -#~ msgid "" -#~ "This will blend URL2 into URL1, URL2 is expected to be diff output and " -#~ "URL1 the file or folder that the diffoutput needs to be blended into. " -#~ msgstr "" -#~ "Това ще смеси URL2 с URL1. URL2 се очаква да бъде данните за разлики, а " -#~ "URL1 - файлът или директорията, където да бъде смесването. " - -#~ msgid "" -#~ "Disables the check for automatically finding the original file(s) when " -#~ "using '-' as URL with the -o option." -#~ msgstr "" -#~ "Изключете отметката, ако искате автоматично да откривате оригиналния " -#~ "файл(ове) като използвате \"-\" като URL с опция -o." - -#~ msgid "" -#~ "Use this to specify the encoding when calling it from the command line. " -#~ "It will default to the local encoding if not specified." -#~ msgstr "" -#~ "Използвайте това за да зададете кодовата таблица при извикване с команден " -#~ "ред. Ако не е посочите, ще бъде използвана тази по подразбиране." - -#~ msgid "Compare these files or folder" -#~ msgstr "Сравняване на тези файлове и папки" - -#~ msgid "Could not find our KompareViewPart." -#~ msgstr "KompareViewPart не може да бъде намерена." - -#~ msgid "Could not find our KompareNavigationPart." -#~ msgstr "KompareViewPart не може да бъде намерена." +"Отчетът за разликите е неправилно оформен. Някои редове не могат да се " +"анализират и няма да се показват в изгледа на разликите." diff --git a/po/br/libkomparediff2.po b/po/br/libkomparediff2.po new file mode 100644 index 0000000..ba6ba90 --- /dev/null +++ b/po/br/libkomparediff2.po @@ -0,0 +1,405 @@ +# KDE breton translation +# Copyright (C) YEAR Free Software Foundation, Inc. +# Thierry Vignaud , 2004-2005 +# +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2002-07-02 08:32+200\n" +"Last-Translator: Thierry Vignaud \n" +"Language-Team: Brezhoneg \n" +"Language: br\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Difereñs" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "&Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "&Difereñs" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "Restr dia&raok" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "Restr a h&eul" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&Difereñs" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "&Difereñs" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "N'hellan ket digeriñ ur restr padennek." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "" +"Ne m'eus ket gallet skrivañ d'ar restr padennek %1, emaon o lemel " +"anezhañ." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "" + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Heñvel eo ar restroù." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "Ne m'eus ket skrivañ d'ar restr padennek." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Thierry Vignaud, Jañ-Mai Drapier" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "tvignaud@mandriva.com, jdrapier@club-internet.fr" + +#~ msgid "Navigation" +#~ msgstr "Merdeadurezh" + +#~ msgid "Show T&ext View" +#~ msgstr "Diskouez ar gwell skr&id" + +#~ msgid " 0 of 0 files " +#~ msgstr " 0 diwar 0 restr " + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] "%2 diwar %1 restroù" + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] " %1 restr " + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] " %1 diforzh " + +#~ msgid "File/Folder" +#~ msgstr "Restr/Renkell" + +#~ msgid "Source" +#~ msgstr "Tarzh" + +#~ msgid "Destination" +#~ msgstr "Dehaezadur" + +#~ msgid "Text View" +#~ msgstr "Gwel ar skrid" + +#~ msgid "Source Folder" +#~ msgstr "Renkell tarzh" + +#~ msgid "Destination Folder" +#~ msgstr "Renkell dehaezadur" + +#~ msgid "Source File" +#~ msgstr "Restr an tarzh" + +#~ msgid "Destination File" +#~ msgstr "Restr dehaezadur" + +#~ msgid "Source Line" +#~ msgstr "Linenn tarzh" + +#~ msgid "Destination Line" +#~ msgstr "Linenn dehaezadur" + +#~ msgid "Difference" +#~ msgstr "Difereñs" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "%1 linenn cheñchet" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "%1 linenn enlakaet" + +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "%1 linenn lemet" + +#~ msgid "Unknown" +#~ msgstr "Dianav" + +#~ msgid "KompareNavTreePart" +#~ msgstr "KompareNavTreePart" + +#~ msgid "Author" +#~ msgstr "Oberour" + +#~ msgid "Save &All" +#~ msgstr "Enrol&lañ an holl re" + +#, fuzzy +#~| msgid "Save .diff" +#~ msgid "Save &Diff..." +#~ msgstr "Enrollañ .diff" + +#~ msgid "Show Statistics" +#~ msgstr "Diskouez ar stadegoù" + +#~ msgid "The URL %1 cannot be downloaded." +#~ msgstr "N'em eus ket enkargañ an URL %1." + +#~ msgid "The URL %1 does not exist on your system." +#~ msgstr "N'eo ket endeo an URL %1 e-barzh ho reizhiad." + +#~ msgid "Diff Options" +#~ msgstr "Dibaboù diff" + +#~ msgid "*.diff *.dif *.patch|Patch Files" +#~ msgstr "*.diff *.dif *.patch|Restroù Patch" + +#~ msgid "Save .diff" +#~ msgstr "Enrollañ .diff" + +#~ msgid "File Exists" +#~ msgstr "Ar restr a zo endeo" + +#~ msgid "Overwrite" +#~ msgstr "Rasklañ" + +#~ msgid "Do Not Overwrite" +#~ msgstr "Ne rasklit ket" + +#~ msgid "KomparePart" +#~ msgstr "KomparePart" + +#~ msgid "Running diff..." +#~ msgstr "Emaon o seveniñ diff ..." + +#~ msgid "Save Changes?" +#~ msgstr "Enrollañ ar c'hemmoù ?" + +#~ msgid "RCS" +#~ msgstr "RCS" + +#~ msgid "Normal" +#~ msgstr "Boas" + +#~ msgid "&File" +#~ msgstr "&Restr" + +#~ msgid "&Settings" +#~ msgstr "&Kefluniadur" + +#~ msgid "Preferences" +#~ msgstr "Dibaboù" + +#~ msgid "View" +#~ msgstr "Gwel" + +#~ msgid "View Settings" +#~ msgstr "Sell ouzh an dibarzhoù" + +#~ msgid "Diff" +#~ msgstr "Diff" + +#~ msgid "Command Line" +#~ msgstr "Linenn urzhiañ" + +#~ msgid "Options" +#~ msgstr "Dibarzhoù" + +#~ msgid "Format" +#~ msgstr "Furmadiñ" + +#~ msgid "Main Toolbar" +#~ msgstr "Barrenn kentañ an ostilhoù" + +#, fuzzy +#~| msgid "&File" +#~ msgid "Files" +#~ msgstr "&Restr" + +#, fuzzy +#~| msgid "Here you can change the options for the view." +#~ msgid "Here you can enter the files you want to compare." +#~ msgstr "Amañ e c'hellit kemmañ dibarzhoù ar gwell." + +#, fuzzy +#~| msgid "Here you can change the options for the view." +#~ msgid "Here you can change the options for comparing the files." +#~ msgstr "Amañ e c'hellit kemmañ dibarzhoù ar gwell." + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "&Neuziadur" + +#~ msgid "Here you can change the options for the view." +#~ msgstr "Amañ e c'hellit kemmañ dibarzhoù ar gwell." + +#~ msgid "Diff Program" +#~ msgstr "Goulev Diff" + +#~ msgid "Output Format" +#~ msgstr "Furmad ezkas" + +#~ msgid "General" +#~ msgstr "Pennañ" + +#~ msgid "&Edit..." +#~ msgstr "&Aozañ ..." + +#~ msgid "Whitespace" +#~ msgstr "Egor" + +#~ msgid "Encoding" +#~ msgstr "Kodadur" + +#~ msgid "Colors" +#~ msgstr "Livioù" + +#~ msgid "Removed color:" +#~ msgstr "Liv dilemet :" + +#~ msgid "Changed color:" +#~ msgstr "Liv kemmet :" + +#~ msgid "Added color:" +#~ msgstr "Liv ouzhpennet :" + +#~ msgid "Applied color:" +#~ msgstr "Liv arloet :" + +#~ msgid "Mouse Wheel" +#~ msgstr "Logodenn gant ur rodell" + +#~ msgid "Number of lines:" +#~ msgstr "Niver a linennoù :" + +#~ msgid "Text Font" +#~ msgstr "Nodrezh ar skrid" + +#~ msgid "Font:" +#~ msgstr "Nodrezh :" + +#~ msgid "Size:" +#~ msgstr "Ment :" + +#, fuzzy +#~| msgid "&Fonts" +#~ msgid "Fonts" +#~ msgstr "&Nodrezhoù" + +#~ msgid "Kompare" +#~ msgstr "Kompare" + +#, fuzzy +#~| msgid "(c) 2001-2004, John Firebaugh and Otto Bruggeman" +#~ msgid "" +#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " +#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" +#~ msgstr "(c) 2001-2004, John Firebaugh hag Otto Bruggeman" + +#~ msgid "A&ppearance" +#~ msgstr "&Neuziadur" + +#~ msgid "&Diff" +#~ msgstr "&Diff" + +#~ msgid "&Format" +#~ msgstr "&Furmadiñ" + +#~ msgid "O&ptions" +#~ msgstr "&Dibaboù" + +#~ msgid "Hide T&ext View" +#~ msgstr "Kuzhat ar gwell skr&id" diff --git a/po/bs/libkomparediff2.po b/po/bs/libkomparediff2.po index a324926..fe6321d 100644 --- a/po/bs/libkomparediff2.po +++ b/po/bs/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kdesdk\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2014-10-20 19:39+0000\n" "Last-Translator: Samir Ribić \n" "Language-Team: Bosnian \n" @@ -20,63 +20,63 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "&Primijeni razliku" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "&Poništi primijenjenu razliku" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "Primj&eni sve" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "&Poništi sve primijenjeno" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "P&rethodna datoteka" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "S&ljedeća datoteka" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "&Prethodna razlika" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "&Sljedeća razlika" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -85,7 +85,7 @@ msgstr "" "Nema modela ili nema razlika, ova datoteka: %1, nije ispravana " "datoteka razlike" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Došlo je do problema prilikom primjene razlike %1 na datoteku " "%2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -103,18 +103,18 @@ msgstr "" "Došlo je do problema prilikom primjene razlike %1 na direktorij " "%2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Nisam mogao otvoriti privremenu datoteku." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Nisam mogao da pišem u privremenu datoteku %1, brišem je." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -123,7 +123,7 @@ msgstr "" "Nisam mogao da napravim odredišni direktorij %1.\n" "Datoteka nije snimljena." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. Privremena datoteka je još uvijek dostupana pod: %2. Možete je " "ručno iskopirati na pravo mjesto." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Nisam mogao da analiziram izlaz razlike." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Datoteke su identične." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Nisam mogao da pišem u privremenu datoteku." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ca/libkomparediff2.po b/po/ca/libkomparediff2.po index f25f9d6..e53f444 100644 --- a/po/ca/libkomparediff2.po +++ b/po/ca/libkomparediff2.po @@ -1,86 +1,86 @@ # Translation of libkomparediff2.po to Catalan -# Copyright (C) 2002-2020 This_file_is_part_of_KDE +# Copyright (C) 2002-2024 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Albert Astals Cid , 2002, 2003, 2004, 2005. # Antoni Bella Pérez , 2003, 2006, 2012, 2020. -# Josep Ma. Ferrer , 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2020. +# Josep M. Ferrer , 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2020, 2024. # Manuel Tortosa , 2009, 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2020-07-28 13:45+0200\n" -"Last-Translator: Antoni Bella Pérez \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-01-30 10:18+0100\n" +"Last-Translator: Josep M. Ferrer \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.04.3\n" +"X-Generator: Lokalize 22.12.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplica la diferència" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "De&sfés la diferència" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&lica-ho tot" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "D&esaplica-ho tot" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fitxer p&revi" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Fitxer s&egüent" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Di&ferència anterior" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Diferència següe&nt" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -"Sense models o diferencies, el fitxer %1 no és cap fitxer «diff» " +"Sense models o diferències, el fitxer %1 no és cap fitxer «diff» " "vàlid." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.S'han produït problemes durant l'aplicació del «diff» %1 al " "fitxer %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -98,18 +98,18 @@ msgstr "" "S'han produït problemes durant l'aplicació del «diff» %1 a la " "carpeta %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "No s'ha pogut obrir un fitxer temporal." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "No s'ha pogut escriure al fitxer temporal %1, se suprimeix." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -118,7 +118,7 @@ msgstr "" "No s'ha pogut crear el directori de destinació %1.\n" "El fitxer no ha estat desat." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. El fitxer temporal encara està disponible sota: %2. Podeu " "copiar-lo manualment al lloc correcte." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "No s'ha pogut analitzar la sortida del «diff»." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Els fitxers són idèntics." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "No s'ha pogut escriure al fitxer temporal." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ca@valencia/libkomparediff2.po b/po/ca@valencia/libkomparediff2.po index fcc60ed..e07fad0 100644 --- a/po/ca@valencia/libkomparediff2.po +++ b/po/ca@valencia/libkomparediff2.po @@ -1,124 +1,124 @@ # Translation of libkomparediff2.po to Catalan (Valencian) -# Copyright (C) 2002-2020 This_file_is_part_of_KDE +# Copyright (C) 2002-2024 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Albert Astals Cid , 2002, 2003, 2004, 2005. # Antoni Bella Pérez , 2003, 2006, 2012, 2020. -# Josep Ma. Ferrer , 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2020. +# Josep M. Ferrer , 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2020, 2024. # Manuel Tortosa , 2009, 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2020-07-28 13:45+0200\n" -"Last-Translator: Antoni Bella Pérez \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-01-30 10:18+0100\n" +"Last-Translator: Josep M. Ferrer \n" "Language-Team: Catalan \n" "Language: ca@valencia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.04.3\n" +"X-Generator: Lokalize 22.12.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplica la diferència" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "De&sfés la diferència" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&lica-ho tot" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "D&esaplica-ho tot" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fitxer p&revi" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Fitxer s&egüent" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Di&ferència anterior" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Diferència següe&nt" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -"Sense models o diferencies, el fitxer %1 no és cap fitxer «diff» " +"Sense models o diferències, el fitxer %1 no és cap fitxer «diff» " "vàlid." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -"S'han produït problemes durant l'aplicació del «diff» %1 al " +"S'han produït problemes durant l'aplicació de «diff» %1 en el " "fitxer %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -"S'han produït problemes durant l'aplicació del «diff» %1 a la " +"S'han produït problemes durant l'aplicació de «diff» %1 a la " "carpeta %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "No s'ha pogut obrir un fitxer temporal." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -"No s'ha pogut escriure al fitxer temporal %1, se suprimeix." +"No s'ha pogut escriure en el fitxer temporal %1, se suprimix." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" "No s'ha pogut crear el directori de destinació %1.\n" -"El fitxer no ha estat guardat." +"El fitxer no ha sigut guardat." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" "No s'ha pogut pujar el fitxer temporal a la ubicació de destinació " -"%1. El fitxer temporal encara està disponible sota: %2. Podeu " +"%1. El fitxer temporal encara està disponible davall: %2. Podeu " "copiar-lo manualment al lloc correcte." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." -msgstr "No s'ha pogut analitzar l'eixida del «diff»." +msgstr "No s'ha pogut analitzar l'eixida de «diff»." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Els fitxers són idèntics." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." -msgstr "No s'ha pogut escriure al fitxer temporal." +msgstr "No s'ha pogut escriure en el fitxer temporal." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" -"El «diff» està mal format. Algunes línies no es poden analitzar i no es " -"mostraran a la vista de diferències." +"«diff» està mal format. Algunes línies no es poden analitzar i no es " +"mostraran en la vista de diferències." diff --git a/po/cs/libkomparediff2.po b/po/cs/libkomparediff2.po index 80acf93..3ef51d5 100644 --- a/po/cs/libkomparediff2.po +++ b/po/cs/libkomparediff2.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-25 22:00+0200\n" "Last-Translator: Vit Pelcak \n" "Language-Team: Czech \n" @@ -17,55 +17,55 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 20.04.0\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplikovat rozdíl" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Vrátit rozdíl" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&likovat všechny" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Vrátit vš&e" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Předchozí soubo&r" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Násl&edující soubor" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Předchozí rozdíl" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Následující rozdíl" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -74,7 +74,7 @@ msgstr "" "Žádné modely ani rozdíly v souboru: %1, není to platný rozdílový " "soubor." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Nastaly problémy při aplikování rozdílů %1 do souboru %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -92,17 +92,17 @@ msgstr "" "Nastaly problémy při aplikování rozdílů %1 do složky %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Nelze otevřít dočasný soubor." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "Selhal zápis do dočasného souboru %1, probíhá mazání." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -111,7 +111,7 @@ msgstr "" "Nelze vytvořit cílovou složku %1.\n" "Soubor nebyl uložen." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Můžete jej na správné místo zkopírovat ručně." "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Nelze zpracovat výstup z diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Soubory jsou stejné." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Selhal zápis do dočasného souboru." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/cy/libkomparediff2.po b/po/cy/libkomparediff2.po new file mode 100644 index 0000000..163fbba --- /dev/null +++ b/po/cy/libkomparediff2.po @@ -0,0 +1,259 @@ +msgid "" +msgstr "" +"Project-Id-Version: ../cy/messages//kdesdk/kompare.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2004-09-20 15:44+0200\n" +"Last-Translator: Thierry Vignaud \n" +"Language-Team: cy \n" +"Language: cy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: modellist.cpp:49 +#, kde-format +msgctxt "@action" +msgid "&Apply Difference" +msgstr "" + +#: modellist.cpp:53 +#, kde-format +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "" + +#: modellist.cpp:75 +#, fuzzy, kde-format +msgctxt "@action" +msgid "N&ext File" +msgstr "&Ffeiliau" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "Preferences" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "Hoffterau" + +#: modellist.cpp:83 +#, kde-format +msgctxt "@action" +msgid "&Next Difference" +msgstr "" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "" + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "" + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "" + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "" + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "KD wrth KGyfieithu" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "kyfieithu@dotmon.com" + +#~ msgid "Source" +#~ msgstr "Tarddiad" + +#~ msgid "Destination" +#~ msgstr "Cyrchfan" + +#~ msgid "Text View" +#~ msgstr "Golwg Testun" + +#~ msgid "Source File" +#~ msgstr "Ffeil Tarddiad" + +#~ msgid "Unknown" +#~ msgstr "Anhysbys" + +#~ msgid "KompareNavTreePart" +#~ msgstr "KompareNavTreePart" + +#~ msgid "Author" +#~ msgstr "Awdur" + +#~ msgid "Save &All" +#~ msgstr "Cadw &Popeth" + +#~ msgid "Show Statistics" +#~ msgstr "Dangos Ystadegau" + +#~ msgid "File Exists" +#~ msgstr "Ffeil yn Bodoli" + +#~ msgid "Overwrite" +#~ msgstr "Trosysgrifo" + +#~ msgid "Do Not Overwrite" +#~ msgstr "Peidio â Throsysgrifo" + +#~ msgid "KomparePart" +#~ msgstr "KomparePart" + +#~ msgid "Save Changes?" +#~ msgstr "Cadw Newidiadau?" + +#~ msgid "Normal" +#~ msgstr "Arferol" + +#, fuzzy +#~ msgid "&Settings" +#~ msgstr "Gweld Gosodiadau" + +#, fuzzy +#~ msgid "View" +#~ msgstr "Golwg Testun" + +#~ msgid "View Settings" +#~ msgstr "Gweld Gosodiadau" + +#~ msgid "Diff" +#~ msgstr "Diff" + +#~ msgid "Command Line" +#~ msgstr "Llinell orchymyn" + +#, fuzzy +#~ msgid "Options" +#~ msgstr "De&wisiadau" + +#~ msgid "Format" +#~ msgstr "Fformat" + +#, fuzzy +#~ msgid "Files" +#~ msgstr "&Ffeiliau" + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "&Golwg" + +#~ msgid "General" +#~ msgstr "Cyffredinol" + +#~ msgid "&Edit..." +#~ msgstr "&Golygu..." + +#~ msgid "Encoding" +#~ msgstr "Amgodiad" + +#~ msgid "Colors" +#~ msgstr "Lliwiau" + +#~ msgid "Number of lines:" +#~ msgstr "Nifel llinellau:" + +#~ msgid "Text Font" +#~ msgstr "Wynebfath y testun" + +#~ msgid "Font:" +#~ msgstr "Wynebfath:" + +#~ msgid "Size:" +#~ msgstr "Maint:" + +#, fuzzy +#~ msgid "Fonts" +#~ msgstr "Wynebfath:" + +#~ msgid "Kompare" +#~ msgstr "Kompare" + +#~ msgid "A&ppearance" +#~ msgstr "&Golwg" + +#~ msgid "&Diff" +#~ msgstr "&Diff" + +#~ msgid "&Format" +#~ msgstr "&Fformat" + +#~ msgid "O&ptions" +#~ msgstr "De&wisiadau" diff --git a/po/da/libkomparediff2.po b/po/da/libkomparediff2.po index 1921303..261e73e 100644 --- a/po/da/libkomparediff2.po +++ b/po/da/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-08-02 17:00+0200\n" "Last-Translator: Martin Schlander \n" "Language-Team: Danish \n" @@ -20,55 +20,55 @@ msgstr "" "X-Generator: Lokalize 20.04.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Anvend forskel" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Fjern anvendelse af forskel" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "An&vend alt" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Fjern anvendelse af alt" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "&Forrige fil" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Næ&ste fil" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Forrige forskel" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Næste forskel" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "Ingen modeller eller ingen forskelle, denne fil: %1, er ikke en " "gyldig diff-fil" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Der var problemer med at anvende diff %1 på filen %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -93,18 +93,18 @@ msgid "" msgstr "" "Der var problemer med at anvende diff %1 på mappen %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Kunne ikke åbne en midlertidig fil." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Kunne ikke skrive til en midlertidig fil.%1, sletter den." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -113,7 +113,7 @@ msgstr "" "Kunne ikke skrive til en midlertidig mappe.%1.\n" "Filen er ikke blevet gemt." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Du kan kopiere den " "manuelt til det rigtige sted." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Kunne ikke fortolke diff-uddata." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Filerne er identiske." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Kunne ikke skrive til en midlertidig fil." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/de/libkomparediff2.po b/po/de/libkomparediff2.po index bad1a81..54139bd 100644 --- a/po/de/libkomparediff2.po +++ b/po/de/libkomparediff2.po @@ -9,9 +9,9 @@ # Panagiotis Papadopoulos , 2011. msgid "" msgstr "" -"Project-Id-Version: kompare\n" +"Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-09-17 09:43+0200\n" "Last-Translator: Burkhard Lück \n" "Language-Team: German \n" @@ -19,57 +19,57 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "Abweichung &annehmen" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Annahme rückgängig" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "A&lle annehmen" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Alle Änderungen &zurücknehmen" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Vo&rige Datei" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Nächst&e Datei" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Vorherige Abweichung" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Nächste Ab&weichung" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -78,7 +78,7 @@ msgstr "" "Keine Modelle oder keine Unterschiede vorhanden. Die Datei %1 ist " "keine gültige diff-Datei." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Es sind Probleme beim Einfügen des diff %1 in die Datei %2 " "aufgetreten." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -96,19 +96,19 @@ msgstr "" "Es sind Probleme beim Einfügen des diff %1 in den Ordner %2 aufgetreten." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Eine temporäre Datei kann nicht geöffnet werden." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "In die temporäre Datei %1 kann nicht geschrieben werden. Sie wird " "gelöscht." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -117,7 +117,7 @@ msgstr "" "Der Zielordner %1 kann nicht angelegt werden.\n" "Die Datei wurde nicht gespeichert." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Sie können diese Datei " "manuell an die richtige Stelle kopieren." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Die Diff-Ausgabe lässt sich nicht einlesen." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Die Dateien sind identisch." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Eine temporäre Datei kann nicht gespeichert werden." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/el/libkomparediff2.po b/po/el/libkomparediff2.po index 5ba17a0..be10a27 100644 --- a/po/el/libkomparediff2.po +++ b/po/el/libkomparediff2.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-09-01 11:02+0300\n" "Last-Translator: Stelios \n" "Language-Team: Greek \n" @@ -20,58 +20,58 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.04.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 20.04.2\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Εφαρμογή διαφοράς" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Αν&αίρεση εφαρμογής διαφοράς" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ε&φαρμογή όλων" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Α&ναίρεση εφαρμογής όλων" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Π&ροηγούμενο αρχείο" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Ε&πόμενο αρχείο" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Πρ&οηγούμενη διαφορά" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Επό&μενη διαφορά" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -80,7 +80,7 @@ msgstr "" "Χωρίς μοντέλα ή χωρίς διαφορές, το αρχείο: %1, δεν είναι ένα " "έγκυρο αρχείο διαφορών." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Υπήρξαν προβλήματα εφαρμογής του diff %1 στο αρχείο %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -98,18 +98,18 @@ msgstr "" "Υπήρξαν προβλήματα εφαρμογής του diff %1 στο φάκελο %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Αδύνατο το άνοιγμα ενός προσωρινού αρχείου." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Αδύνατη η εγγραφή στο προσωρινό αρχείο %1, το διαγράφω." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -118,7 +118,7 @@ msgstr "" "Αδύνατη η δημιουργία του καταλόγου προορισμού %1.\n" "Το αρχείο δεν αποθηκεύτηκε." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. Το προσωρινό αρχείο είναι ακόμη διαθέσιμο κάτω από το: %2. " "Μπορείτε να το αντιγράψετε χειροκίνητα στη σωστή θέση." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Δεν ήταν δυνατή η επεξεργασία της εξόδου του diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Τα αρχεία είναι όμοια." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Αδύνατο η εγγραφή στο προσωρινό αρχείο." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/en_GB/libkomparediff2.po b/po/en_GB/libkomparediff2.po index 2ef26d7..c54113d 100644 --- a/po/en_GB/libkomparediff2.po +++ b/po/en_GB/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-06-06 14:37+0100\n" "Last-Translator: Steve Allewell \n" "Language-Team: British English \n" @@ -20,55 +20,55 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 20.04.1\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Apply Difference" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Un&apply Difference" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "App&ly All" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Unapply All" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "P&revious File" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "N&ext File" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Previous Difference" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Next Difference" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "No models or no differences, this file: %1, is not a valid diff " "file." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.There were problems applying the diff %1 to the file %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,17 +95,17 @@ msgstr "" "There were problems applying the diff %1 to the folder %2." "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Could not open a temporary file." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "Could not write to the temporary file %1, deleting it." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -114,7 +114,7 @@ msgstr "" "Could not create destination directory %1.\n" "The file has not been saved." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Could not parse diff output." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "The files are identical." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Could not write to the temporary file." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/eo/libkomparediff2.po b/po/eo/libkomparediff2.po index d8d1f82..455b1e0 100644 --- a/po/eo/libkomparediff2.po +++ b/po/eo/libkomparediff2.po @@ -1,13 +1,16 @@ -# Translation of kompare into esperanto. +# Translation of libkomparediff2.pot to esperanto. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libkomparediff2 package. # Axel Rousseau , 2009. +# Oliver Kellogg , 2023. # msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2009-11-15 12:06+0100\n" -"Last-Translator: Axel Rousseau \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2023-11-16 20:31+0100\n" +"Last-Translator: Oliver Kellogg \n" "Language-Team: esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" @@ -16,263 +19,130 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: pology\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "" +msgstr "&Apliki Diferencon" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" -msgstr "" +msgstr "Mal&apliki Diferencon" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" -msgstr "" +msgstr "Ap&liki Ĉiujn" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" -msgstr "" +msgstr "Malapliki Ĉi&ujn" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" -msgstr "" +msgstr "Antaŭa Dosie&ro" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "&File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "&Dosiero" +msgstr "S&ekva Dosiero" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "Preferences" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "Preferaĵoj" +msgstr "&Antaŭa Diferenco" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "" +msgstr "Sekva Difere&nco" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" +"Neniuj modeloj aŭ neniuj diferencoj, ĉi tiu dosiero: %1, ne estas " +"valida diff-dosiero." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" +"Estis problemoj apliki la diff-on %1 al la dosiero %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" +"Estis problemoj apliki la diff-on %1 al la dosierujo %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." -msgstr "" +msgstr "Ne eblis malfermi dumtempan dosieron." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." -msgstr "" +msgstr "Ne eblis skribi al dumtempa dosiero %1, forigante ĝin." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" +"Ne eblis krei celdosierujon %1.\n" +"La dosiero ne estis konservita" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." msgstr "" +"Ne eblis alŝuti la provizoran dosieron al la celloko %1. La " +"dumtempa dosiero ankoraŭ disponeblas sub: %2. Vi povas permane kopii " +"ĝin al la ĝusta loko." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." -msgstr "" +msgstr "Ne eblis analizi diff-eligon." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." -msgstr "" +msgstr "La dosieroj estas identaj." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." -msgstr "" +msgstr "Ne eblis skribi al provizora dosiero." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" - -#~ msgctxt "NAME OF TRANSLATORS" -#~ msgid "Your names" -#~ msgstr "Axel Rousseau" - -#~ msgctxt "EMAIL OF TRANSLATORS" -#~ msgid "Your emails" -#~ msgstr "axel@esperanto-jeunes.org" - -#~ msgid "Navigation" -#~ msgstr "Navigado" - -#~ msgid "Diff Output" -#~ msgstr "Eligo de diff" - -#~ msgid "Source" -#~ msgstr "Fonto" - -#~ msgid "Destination" -#~ msgstr "Celo" - -#~ msgid "Source File" -#~ msgstr "Fontdosiero" - -#~ msgid "Unknown" -#~ msgstr "Nekonata" - -#~ msgid "John Firebaugh" -#~ msgstr "John Firebaugh" - -#~ msgid "Author" -#~ msgstr "Aŭtoro" - -#~ msgid "Otto Bruggeman" -#~ msgstr "Otto Bruggeman" - -#~ msgid "Show Statistics" -#~ msgstr "Montri la statistikojn" - -#~ msgid "File Exists" -#~ msgstr "La dosiero ekzistas" - -#~ msgid "Overwrite" -#~ msgstr "Anstataŭigu" - -#~ msgid "Kevin Kofler" -#~ msgstr "Kevin Kofler" - -#~ msgid "Unified" -#~ msgstr "Unuigita" - -#~ msgid "Context" -#~ msgstr "Kunteksto" - -#~ msgid "RCS" -#~ msgstr "RCS" - -#~ msgid "Ed" -#~ msgstr "Ed" - -#~ msgid "Normal" -#~ msgstr "Normala" - -#~ msgid "&Settings" -#~ msgstr "A&gordo" - -#~ msgid "View" -#~ msgstr "Vido" - -#~ msgid "View Settings" -#~ msgstr "Vida agordo" - -#~ msgid "Options" -#~ msgstr "Opcioj" - -#~ msgid "Ignore changes in case" -#~ msgstr "Ignori ŝanĝojn de uskleco" - -#~ msgid "Ignore added or removed empty lines" -#~ msgstr "Ignori aldonitajn aŭ forigitajn malplenajn liniojn" - -#~ msgid "Format" -#~ msgstr "Formato" - -#~ msgid "Main Toolbar" -#~ msgstr "Ĉefa ilobreto" - -#~ msgid "Files" -#~ msgstr "Dosieroj" - -#~ msgid "Appearance" -#~ msgstr "Aspekto" - -#~ msgid "Output Format" -#~ msgstr "Eligoformato" - -#~ msgid "General" -#~ msgstr "Ĝeneralo" - -#~ msgid "&Edit..." -#~ msgstr "&Redakto" - -#~ msgid "Exclude" -#~ msgstr "Eskludi" - -#~ msgid "Encoding" -#~ msgstr "Kodoprezento" - -#~ msgid "Colors" -#~ msgstr "Koloroj" - -#~ msgid "Number of lines:" -#~ msgstr "Nombro de linioj:" - -#~ msgid "Font:" -#~ msgstr "Tiparo:" - -#~ msgid "Size:" -#~ msgstr "Grandeco:" - -#~ msgid "Fonts" -#~ msgstr "Tiparoj" - -#~ msgid "Kompare" -#~ msgstr "Kompare" - -#~ msgid "Jeff Snyder" -#~ msgstr "Jeff Snyder" - -#~ msgid "Developer" -#~ msgstr "Kreinto" - -#~ msgid "Maintainer" -#~ msgstr "Prizorganto" - -#~ msgid "Chris Luetchford" -#~ msgstr "Chris Luetchford" - -#~ msgid "Malte Starostik" -#~ msgstr "Malte Starostik" - -#~ msgid "Bernd Gehrmann" -#~ msgstr "Bernd Gehrmann" +"La diferenco estas misformita. Kelkaj linioj ne povis esti analizitaj kaj ne " +"estos montrataj en la diff-vido." diff --git a/po/es/libkomparediff2.po b/po/es/libkomparediff2.po index ef76855..acaa2cb 100644 --- a/po/es/libkomparediff2.po +++ b/po/es/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-04 11:33+0200\n" "Last-Translator: Eloy Cuadra \n" "Language-Team: Spanish \n" @@ -20,55 +20,55 @@ msgstr "" "X-Generator: Lokalize 20.04.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplicar diferencia" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Desh&acer diferencia" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&licar todo" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Deshacer todo" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "A&rchivo anterior" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Archivo sigui&ente" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Di&ferencia anterior" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Difere&ncia siguiente" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "No hay modelos o diferencias, este archivo: %1, no es un archivo " "diff válido." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Se produjeron problemas aplicando el diff %1 al archivo %2." "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,18 +95,18 @@ msgstr "" "Se produjeron problemas aplicando el diff %1 a la carpeta%2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "No se pudo abrir un archivo temporal." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Imposible escribir en el archivo temporal %1, borrándolo." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -115,7 +115,7 @@ msgstr "" "Imposible crear directorio de destino%1.\n" "El archivo no ha sido guardado." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. El archivo temporal está todavía disponible en: %2. Puede " "copiarlo manualmente al lugar correcto." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "No fue posible analizar la salida de diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Los archivos son idénticos." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "No se pudo escribir al archivo temporal." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/et/libkomparediff2.po b/po/et/libkomparediff2.po index 6ed0cc4..936d8d8 100644 --- a/po/et/libkomparediff2.po +++ b/po/et/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-04 11:07+0300\n" "Last-Translator: Marek Laane \n" "Language-Team: Estonian \n" @@ -18,55 +18,55 @@ msgstr "" "X-Generator: Lokalize 19.12.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Rakenda erinevus" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Eemalda erinevus" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "&Rakenda kõik" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Tü&hista kõigi rakendamine" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "&Eelmine fail" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Järgmine fail" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Ee&lmine erinevus" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Jär&gmine erinevus" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -75,7 +75,7 @@ msgstr "" "Ei ole mudelit ega erinevusi, sest fail %1 ei ole mitte korralik " "diff-fail." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Diff-faili %1 rakendamisel failile %2 tekkis probleeme." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -93,18 +93,18 @@ msgstr "" "Diff-faili %1 rakendamisel kataloogile %2 tekkis probleeme." "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Ajutise faili avamine nurjus." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Ajutisse faili %1 kirjutamine nurjus, see kustutatakse." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -113,7 +113,7 @@ msgstr "" "Sihtkataloogi %1 loomine nurjus.\n" "Faili ei salvestatud." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2). Kui soovid, võid selle käsitsi õigesse " "kohta kopeerida." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Võrdlemise väljundi parsimine nurjus." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Failid on identsed." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Ajutisse faili kirjutamine nurjus." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/eu/libkomparediff2.po b/po/eu/libkomparediff2.po index bc4bedc..3c9cce5 100644 --- a/po/eu/libkomparediff2.po +++ b/po/eu/libkomparediff2.po @@ -1,82 +1,78 @@ -# translation of kompare.po to Euskara +# Translation for libkomparediff2.po to Euskara/Basque (eu). # Copyright (C) 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2010-2021, This file is copyright: +# This file is distributed under the same license as the libkomparediff2 package. +# KDE euskaratzeko proiektuko arduraduna . # +# Translators: # Marcos , 2003, 2005. # Ion Gaztañaga , 2005. # Ion Gaztañaga , 2005. -# Iñigo Salvador Azurmendi , 2009, 2011. +# Iñigo Salvador Azurmendi , 2009, 2011, 2021. msgid "" msgstr "" -"Project-Id-Version: kompare\n" +"Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2011-10-14 23:11+0200\n" -"Last-Translator: Iñigo Salvador Azurmendi \n" -"Language-Team: Basque \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2021-08-12 00:06+0200\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 21.04.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "&Aplikatu desberdintasunak" +msgstr "&Aplikatu ezberdintasuna" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" -msgstr "Desberdintasunaren &aplikazioa desegin" +msgstr "Ezberdintasuna &aplikatzea desegin" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&likatu dena" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" -msgstr "&Desegin dena" +msgstr "&Desegin dena aplikatzea" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Au&rreko fitxategia" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Hurr&engo fitxategia" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "A&urreko desberdintasuna" +msgstr "A&urreko ezberdintasuna" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "Hurre&ngo desberdintasuna" +msgstr "Hurre&ngo ezberdintasuna" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -85,7 +81,7 @@ msgstr "" "Ez dago eredu edo desberdintasunik, fitxategi hau: %1, ez da " "baliozko diff fitxategia." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Arazoak %1 diff fitxategia %2 fitxategiari aplikatzean." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "Arazoak %1 diff-a %2 direktorioari aplikatzean." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Ezin izan da behin-behineko fitxategirik ireki." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Ezin izan da %1 behin behineko fitxategian idatzi, ezabatzen." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -121,7 +117,7 @@ msgstr "" "Ezin izan da %1 helburu direktorioa sortu.\n" "Fitxategia ez da gorde." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Eskuz kopia dezakezu kokaleku zuzenera." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Ezin izan da diff irteera analizatu." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Fitxategiak berdinak dira." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Ezin izan da behin behineko fitxategian idatzi." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/fa/libkomparediff2.po b/po/fa/libkomparediff2.po index dffbbe7..013010b 100644 --- a/po/fa/libkomparediff2.po +++ b/po/fa/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2007-06-30 17:00+0330\n" "Last-Translator: Nazanin Kazemi \n" "Language-Team: Persian \n" @@ -16,65 +16,65 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "&اعمال تفاوت‌" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "تفاوت &اعمال نشود‌" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "&اعمال همه‌" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "همه &اعمال نشود‌" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "پرونده &قبلی‌" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "پرونده &بعدی‌" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "تفاوت &قبلی‌" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "تفاوت &بعدی‌" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,31 +83,31 @@ msgstr "" "هیچ مدل یا تفاوتی وجود ندارد، این پرونده %1،یک پرونده تفاوت معتبر " "نیست." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "مسائلی در اعمال تفاوت وجود دارد%1به پرونده%2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "مسائلی در اعمال تفاوت وجود دارد %1به پوشه%2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "نتوانست پرونده موقت را باز کند." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "نتوانست در پرونده موقت بنویسد %1، حذف آن." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -116,7 +116,7 @@ msgstr "" "نتوانست فهرست راهنمای مقصد را ایجاد کند%1.\n" "این پرونده ذخیره نشده است." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. می‌توانید به طور دستی آن را در مکان درست " "رونوشت کنید. " -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "نتوانست خروجی تفاوت را تجزیه کند." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "پرونده‌ها یکسانند." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "نتوانست در پرونده موقت بنویسد." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/fi/libkomparediff2.po b/po/fi/libkomparediff2.po index 632a723..def802c 100644 --- a/po/fi/libkomparediff2.po +++ b/po/fi/libkomparediff2.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-06-18 18:16+0300\n" "Last-Translator: Tommi Nieminen \n" "Language-Team: Finnish \n" @@ -23,58 +23,56 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-POT-Import-Date: 2012-12-01 22:25:32+0000\n" -"X-Generator: Lokalize 20.04.2\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Ota käyttöön muutokset" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Kumoa muutokset" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "O&ta käyttöön kaikki" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "K&umoa kaikki" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "&Edellinen tiedosto" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Seuraava tiedosto" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "E&dellinen ero" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Seu&raava ero" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,7 +81,7 @@ msgstr "" "Ei malleja tai ei eroja, tässä tiedostossa: %1, ei ole " "kelvollinen diff-tiedosto." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Diff-tiedoston %1 muutosten yhdistämisessä tiedostoon %2 " "oli ongelmia." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -101,18 +99,18 @@ msgstr "" "Diff-tiedoston %1 muutosten yhdistämisessä kansioon %2 oli " "ongelmia." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Väliaikaistiedostoa ei voi avata." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Väliaikaistiedostoon %1 ei voitu kirjoittaa. Poistetaan se." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -121,7 +119,7 @@ msgstr "" "Ei voitu luoda kohdekansiota %1.\n" "Tiedostoa ei ole talletettu." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Voit kopioida sen " "oikeaan paikkaan käsin." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Diff-tulostetta ei voi jäsentää." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Tiedostot ovat identtisiä." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Väliaikaistiedostoon ei voi kirjoittaa." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/fr/libkomparediff2.po b/po/fr/libkomparediff2.po index ea53608..d0305e5 100644 --- a/po/fr/libkomparediff2.po +++ b/po/fr/libkomparediff2.po @@ -1,12 +1,12 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. -# xavier , 2013, 2020. +# Xavier Besnard , 2013, 2020. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-13 07:48+0200\n" "Last-Translator: Xavier Besnard \n" "Language-Team: French \n" @@ -20,55 +20,55 @@ msgstr "" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Appliquer une différence" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Annuler une différence" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Tout &appliquer" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Tout ann&uler" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fichier p&récèdent" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Fichi&er suivant" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Différence &précédente" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Différe&nce suivante" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "Aucun modèle ou aucune différence. Ce fichier : %1 n'est pas un " "fichier « diff » valable." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Des problèmes ont été rencontrés lors de l'application du « diff »%1 sur le fichier %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,19 +95,19 @@ msgstr "" "Des problèmes ont été rencontrés lors de l'application du « diff » " "%1 pour le dossier %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Impossible d'ouvrir un fichier temporaire." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Impossible d'écrire dans le fichier temporaire %1. Suppression de " "celui-ci." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -116,7 +116,7 @@ msgstr "" "Impossible de créer un dossier cible %1.\n" "Le fichier n'a pu être enregistré." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%1. Le fichier temporaire est toujours disponible dans " "%2. Vous pouvez le copier manuellement vers son emplacement correct." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Impossible d'analyser la sortie du « diff »." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Les fichiers sont identiques." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Impossible d'écrire dans le fichier temporaire." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ga/libkomparediff2.po b/po/ga/libkomparediff2.po index 6c8b301..280ff77 100644 --- a/po/ga/libkomparediff2.po +++ b/po/ga/libkomparediff2.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: kdesdk/kompare.po\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2004-12-03 14:52-0500\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" @@ -17,101 +17,101 @@ msgstr "" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " "3 : 4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "Cuir Difríocht i bh&Feidhm" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "Cuir Difríocht i bh&Feidhm" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "&Cuir Gach Ceann i bhFeidhm" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "&Unapply All" msgstr "&Cuir Gach Ceann i bhFeidhm" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "An Comhad &Roimhe Seo" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "An Chéad Chomhad &Eile" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "An Difríocht Roimhe &Seo" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "An &Chéad Difríocht Eile" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Ní féidir comhad sealadach a oscailt." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Ní féidir an t-aschur diff a pharsáil." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Is ionann iad na comhaid seo." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Níorbh fhéidir scríobh sa chomhad sealadach." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/gl/libkomparediff2.po b/po/gl/libkomparediff2.po index 3238375..af8dc93 100644 --- a/po/gl/libkomparediff2.po +++ b/po/gl/libkomparediff2.po @@ -1,5 +1,6 @@ # translation of kompare.po to galician # +# SPDX-FileCopyrightText: 2024, 2025 Adrián Chaves (Gallaecio) # mvillarino , 2007, 2008, 2009. # Marce Villarino , 2009, 2013. # Adrian Chaves Fernandez , 2013. @@ -7,73 +8,66 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2013-03-17 12:32+0100\n" -"Last-Translator: Marce Villarino \n" -"Language-Team: Galician \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2025-01-12 15:44+0100\n" +"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 24.12.0\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplicar a diferenza" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Anular a aplicación da diferenza" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&licar todo" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Anular t&odas as aplicacións" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fichei&ro anterior" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Seguinte ficheiro" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Diferenza &anterior" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Seguinte diferenza" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -82,7 +76,7 @@ msgstr "" "Non existen modelos nin diferenzas, este ficheiro: %1, non é un " "ficheiro de «diff» correcto." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Ocorreron problemas ao aplicar as diferenzas %1 ao ficheiro " "%2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -100,18 +94,18 @@ msgstr "" "Ocorreron problemas ao aplicar as diferenzas %1 ao cartafol " "%2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." -msgstr "Non se puido acceder a un ficheiro temporal." +msgstr "Non foi posíbel abrir un ficheiro temporal." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Non se puido gardar no ficheiro temporal %1, a eliminalo." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -120,40 +114,40 @@ msgstr "" "Non se puido crear o directorio de destino %1.\n" "O ficheiro non se gardou." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." msgstr "" -"Non se puido enviar o ficheiro temporal para a localización de destino " -"%1. O ficheiro temporal aínda está dispoñíbel en: %2. Pode " +"Non se puido subir o ficheiro temporal para a localización de destino " +"%1. O ficheiro temporal aínda está dispoñíbel en: %2. Pode " "copialo manualmente para o lugar correcta." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." -msgstr "Non se puido procesar a saída de diff." +msgstr "Non foi posíbel procesar a saída de diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Os ficheiros son idénticos." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." -msgstr "Non se puido escribir no ficheiro temporal." +msgstr "Non foi posíbel escribir no ficheiro temporal." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" -"O formato do ficheiro de diferenza é incorrecto. Algunhas das liñas non " -"puideron analizarse, e non se mostrarán na vista das diferenzas." +"O formato da diferenza é incorrecto. Algunhas das liñas non puideron " +"analizarse, e non se amosarán na vista das diferenzas." #~ msgctxt "NAME OF TRANSLATORS" #~ msgid "Your names" diff --git a/po/he/libkomparediff2.po b/po/he/libkomparediff2.po new file mode 100644 index 0000000..57f665b --- /dev/null +++ b/po/he/libkomparediff2.po @@ -0,0 +1,143 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the libkomparediff2 package. +# +# SPDX-FileCopyrightText: 2024 Yaron Shahrabani +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-07-26 10:45+0300\n" +"Last-Translator: Yaron Shahrabani \n" +"Language-Team: צוות התרגום של KDE ישראל\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " +"n % 10 == 0) ? 2 : 3));\n" +"X-Generator: Lokalize 24.05.2\n" + +#: modellist.cpp:49 +#, kde-format +msgctxt "@action" +msgid "&Apply Difference" +msgstr "החלת ההבד&ל" + +#: modellist.cpp:53 +#, kde-format +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "ה&סגת ההבדל" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "החלה של ה&כול" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "הס&גה של הכול" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "הקובץ הקו&דם" + +#: modellist.cpp:75 +#, kde-format +msgctxt "@action" +msgid "N&ext File" +msgstr "הקובץ הב&א" + +#: modellist.cpp:79 +#, kde-format +msgctxt "@action" +msgid "&Previous Difference" +msgstr "ההבדל ה&קודם" + +#: modellist.cpp:83 +#, kde-format +msgctxt "@action" +msgid "&Next Difference" +msgstr "ההבדל ה&בא" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"אין דגמים או שאין הבדלים, הקובץ הזה: %1, אינו קובץ הבדלים תקף." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "אירעו תקלות בהחלת ההבדלים %1 לקובץ %2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "אירוע תקלות בהחלת ההבדלים %1 לתיקייה %2." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "לא ניתן לפתוח קובץ זמני." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "לא ניתן לכתוב לקובץ הזמני %1, הוא יימחק." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"לא ניתן ליצור את תיקיית היעד %1.\n" +"הקובץ לא נשמר." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "לא ניתן לפענח את פלט ההבדלים." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "הקבצים זהים." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "לא ניתן לכתוב לקובץ הזמני." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"תיעוד ההבדלים פגום. פענוח חלק מהשורות נכשל והם לא יוצגו בתצוגת ההבדלים." diff --git a/po/hi/libkomparediff2.po b/po/hi/libkomparediff2.po index e8e7667..33542fb 100644 --- a/po/hi/libkomparediff2.po +++ b/po/hi/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2021-06-29 20:38+0530\n" "Last-Translator: Raghavendra Kamath \n" "Language-Team: kde-hindi\n" @@ -20,55 +20,55 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Lokalize 21.04.2\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "भिन्नताएँ लागू करें (&A)" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "भिन्नताएँ लागू न करें (&a)" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "सभी लागू करें (&l)" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "सभी लागू न करें (&U)" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "पिछली फ़ाइल (&r)" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "अगली फ़ाइल (&e)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "पिछली भिन्नता (&P)" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "अगली भिन्नता (&N)" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,31 +77,31 @@ msgstr "" "कोई मॉडल नहीं या कोई भिन्नता नहीं, यह फ़ाइल:%1, एक वैध डिफ़ फ़ाइल नहीं है।" "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "डिफ़ %1 को फ़ाइल %2 में लागू करने में समस्याएँ हैं।" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "डिफ़ %1 को फ़ोल्डर %2 में लागू करने में कुछ समस्याएँ हैं।" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "अस्थायी फ़ाइल खोल नहीं सके।" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "अस्थाई फ़ाइल %1 पर लिखा नहीं जा सका, इसे मिटाया जा रहा है।" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -110,7 +110,7 @@ msgstr "" "इष्ट डायरेक्ट्री का सृजन नहीं हो सका%1।\n" "फ़ाइल सहेजी नहीं गयी।" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1अस्थायी फ़ाइल को ठिकाने तक नहीं पहूंचा पाए %1। अस्थायी फ़ाइल अभी भी " "%2 में है। आप उसकी प्रतिलिपि स्वयं सही स्थान पर पहुँचा सकते हैं।" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "डिफ़ आउटपुट पार्स नहीं कर सका।" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "फ़ाइलें एक समान हैं।" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "अस्थायी फ़ाइल पर लिख नहीं सका।" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/hne/libkomparediff2.po b/po/hne/libkomparediff2.po new file mode 100644 index 0000000..459d319 --- /dev/null +++ b/po/hne/libkomparediff2.po @@ -0,0 +1,717 @@ +# translation of kompare.po to Hindi +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Ravishankar Shrivastava , 2008. +# Ravishankar Shrivastava , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2009-03-01 11:17+0530\n" +"Last-Translator: Ravishankar Shrivastava \n" +"Language-Team: Hindi \n" +"Language: hne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 0.3\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "भिन्नता लगाव (&A)" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "भिन्नता लागू नइ करव (&a)" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "सब्बो लगाव (&l)" + +#: modellist.cpp:61 +#, fuzzy, kde-format +#| msgid "&Unapply All" +msgctxt "@action" +msgid "&Unapply All" +msgstr "सब्बो लागू नइ करव (&U)" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "पिछला फाइल (&r)" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "अगला फाइल (&e)" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "पिछला भिन्नता (&P)" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "अगला भिन्नता (&N)" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"कोई माडल नइ या कोनो भिन्नता नइ, ए फाइल:%1, एक वैध डिफ फाइल नइ हे." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "डिफ %1 ल फाइल %2 मं लागू करे मं समस्या हे." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "डिफ %1 ल फोल्डर %2 मं लागू करे मं कुछ समस्या हे." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "अस्थायी फाइल खोल नइ सकहू." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "अस्थाई फाइल %1 मं लिख नइ सकिस, एला मिटात हे." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "डिफ आउटपुट पार्से नइ कर सकिस." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "फाइल मन ल एक जैसी हे." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "अस्थायी फाइल मं लिख नइ सकिस." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "रविसंकर सिरीवास्तव, जी. करूनाकर" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "raviratlami@aol.in" + +#~ msgid "Could not load our KompareViewPart." +#~ msgstr "अपन काम्पेयर-व्यू-पार्ट लोड नइ कर सकिस." + +#~ msgid "Navigation" +#~ msgstr "नेविगेसन" + +#~ msgid "Could not load our KompareNavigationPart." +#~ msgstr "अपन काम्पेयर-नेविगेसन-पार्ट लोड नइ कर सकिस." + +#~ msgid "&Open Diff..." +#~ msgstr "डिफ खोलव... (&O)" + +#~ msgid "&Compare Files..." +#~ msgstr "फाइल मन के तुलना करव... (&C)" + +#~ msgid "&Blend URL with Diff..." +#~ msgstr "डिफ के साथ यूआरएल ब्लैंड करव... (&B)" + +#~ msgid "Show T&ext View" +#~ msgstr "पाठ दृस्य देखाव (&e)" + +#~ msgid " 0 of 0 differences " +#~ msgstr " 0 मं से 0 भिन्नताव" + +#~ msgid " 0 of 0 files " +#~ msgstr " 0 मं से 0 फाइल मन ल" + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] " %2 मं से %1 फाइल" +#~ msgstr[1] " %2 मं से %1 फाइल" + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] "%1 फाइल" +#~ msgstr[1] " %1 फाइल " + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] "%1 भिन्नता" +#~ msgstr[1] "%1 भिन्नता" + +#~ msgid "Blend File/Folder with diff Output" +#~ msgstr "डिफ आउटपुट के साथ फाइल/फोल्डर ब्लैंड करव" + +#~ msgid "File/Folder" +#~ msgstr "फाइल/फोल्डर" + +#~ msgid "Diff Output" +#~ msgstr "डिफ आउटपुट" + +#~ msgid "Blend" +#~ msgstr "ब्लेंड" + +#~ msgid "Blend this file or folder with the diff output" +#~ msgstr "ए फाइल या फोल्डर ल डिफ आउटपुट के साथ ब्लैंड करव" + +#~ msgid "Compare Files or Folders" +#~ msgstr "फाइल मन या फोल्डर मं तुलना करव" + +#~ msgid "Source" +#~ msgstr "स्रोत" + +#~ msgid "Destination" +#~ msgstr "गंतव्य" + +#~ msgid "Compare" +#~ msgstr "तुलना करव" + +#~ msgid "Compare these files or folders" +#~ msgstr "ए फाइल मन ल या फोल्डर के तुलना करव" + +#~ msgid "Text View" +#~ msgstr "पाठ दृस्य" + +#~ msgid "Source Folder" +#~ msgstr "स्रोत फोल्डर" + +#~ msgid "Destination Folder" +#~ msgstr "गंतव्य फोल्डर" + +#~ msgid "Source File" +#~ msgstr "स्रोत फाइल" + +#~ msgid "Destination File" +#~ msgstr "गंतव्य फाइल" + +#~ msgid "Source Line" +#~ msgstr "स्रोत पंक्ति" + +#~ msgid "Destination Line" +#~ msgstr "गंतव्य पंक्ति" + +#~ msgid "Difference" +#~ msgstr "भिन्नता" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "बदला %1 पंक्ति" +#~ msgstr[1] "बदलिस %1 पंक्ति" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "भरिस %1 लाइन" +#~ msgstr[1] "भरिस %1 लाइन" + +#, fuzzy +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "मेटाइस %1 पंक्ति" +#~ msgstr[1] "" + +#~ msgid "Unknown" +#~ msgstr "अग्यात" + +#~ msgid "KompareNavTreePart" +#~ msgstr "काम्पेयर-नेव-ट्री-पार्ट" + +#~ msgid "John Firebaugh" +#~ msgstr "जान फायरबाग" + +#~ msgid "Author" +#~ msgstr "लेखक" + +#~ msgid "Otto Bruggeman" +#~ msgstr "ओटो ब्रगमेन" + +#~ msgid "Save &All" +#~ msgstr "सब्बो सहेजव (&A)" + +#, fuzzy +#~| msgid "Save .&diff..." +#~ msgid "Save &Diff..." +#~ msgstr "सहेजव .&diff..." + +#~ msgid "Swap Source with Destination" +#~ msgstr "स्रोत अउ गंतव्य अदला-बदली करव" + +#~ msgid "Show Statistics" +#~ msgstr "आंकड़ा देखाव" + +#~ msgid "Refresh Diff" +#~ msgstr "डिफ ताजा करव" + +#~ msgid "The URL %1 cannot be downloaded." +#~ msgstr "यूआरएल %1 डाउनलोड नइ कर सकिस.." + +#~ msgid "The URL %1 does not exist on your system." +#~ msgstr "यूआरएल %1 आप मन के तंत्र मं मौजूद नइ हे.." + +#~ msgid "Diff Options" +#~ msgstr "डिफ विकल्प" + +#~ msgid "*.diff *.dif *.patch|Patch Files" +#~ msgstr "*.diff *.dif *.patch|पैच फाइल मन ल" + +#~ msgid "Save .diff" +#~ msgstr "सहेजव .diff" + +#~ msgid "The file exists or is write-protected; do you want to overwrite it?" +#~ msgstr "फाइल मौजूद हे या लिखे से संरक्छित हे, का आप मन एला मेटाय के लिखना चाहथो ?" + +#~ msgid "File Exists" +#~ msgstr "फाइल अस्तित्व मं हे" + +#~ msgid "Overwrite" +#~ msgstr "मेटाय के लिखव" + +#~ msgid "Do Not Overwrite" +#~ msgstr "मेटाय के नइ लिखव" + +#~ msgid "KomparePart" +#~ msgstr "काम्पेयर-पार्ट" + +#~ msgid "Kevin Kofler" +#~ msgstr "केविन कोफ्लर" + +#~ msgid "Running diff..." +#~ msgstr "डिफ चला रहे..." + +#~ msgid "Parsing diff output..." +#~ msgstr "डिफ आउटपुट पारसिंग कर रहे..." + +#~ msgid "Comparing file %1 with file %2" +#~ msgstr "फाइल %1 ल फाइल %2 से तुलना करत हे" + +#~ msgid "Comparing files in %1 with files in %2" +#~ msgstr "फाइल मन ल %1 मं से %2 के फाइल मन ल तुलना करत हे" + +#~ msgid "Viewing diff output from %1" +#~ msgstr "%1 से डिफ आउटपुट देख रहे" + +#~ msgid "Blending diff output from %1 into file %2" +#~ msgstr "डिफ आउटपुट %1 से फाइल %2 मं ब्लैंड करत हे" + +#~ msgid "Blending diff output from %1 into folder %2" +#~ msgstr "डिफ आउटपुट %1 से फोल्डर %2 मं ब्लैंड करत हे" + +#~ msgid "" +#~ "You have made changes to the destination file(s).\n" +#~ "Would you like to save them?" +#~ msgstr "" +#~ "आप मन गंतव्य फाइल मन बदलाव करे हो.\n" +#~ "का आप मन एला सहेजना चाहथो ?" + +#~ msgid "Save Changes?" +#~ msgstr "बदलाव सहेजव?" + +#~ msgid "Unified" +#~ msgstr "एकीकृत" + +#~ msgid "Context" +#~ msgstr "कान्टेक्स्ट" + +#~ msgid "RCS" +#~ msgstr "आरसीएस" + +#~ msgid "Ed" +#~ msgstr "ईडी" + +#~ msgid "Normal" +#~ msgstr "सामान्य" + +#~ msgid "" +#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " +#~ "available." +#~ msgstr "" +#~ "कोई डिफ फाइल नइ, या कोनो 2 फाइल मन ल डिफ्ड नइ. जेखर सेती कोनो आंकड़ा नइ मिलत." + +#~ msgid "Diff Statistics" +#~ msgstr "डिफ आंकड़ा" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Old file: %1\n" +#~ "New file: %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Number of differences: %5" +#~ msgstr "" +#~ "आंकड़ा:\n" +#~ "\n" +#~ "जुन्ना फाइल: %1\n" +#~ "नवा फाइल: %2\n" +#~ "\n" +#~ "फार्मेट: %3\n" +#~ "हंक्स के संख्या: %4\n" +#~ "भिन्नताओं के संख्या: %5" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Number of files in diff file: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Current old file: %3\n" +#~ "Current new file: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Number of differences: %6" +#~ msgstr "" +#~ "आंकड़ा:\n" +#~ "\n" +#~ "डिफ फाइल मं फाइल मन के संख्या: %1\n" +#~ "फार्मेट: %2\n" +#~ "\n" +#~ "अभी हाल के जुन्ना फाइल: %3\n" +#~ "अभी हाल के नवा फाइल: %4\n" +#~ "\n" +#~ "हंक्स के संख्या: %5\n" +#~ "भिन्नताओं के संख्या: %6" + +#~ msgid "&File" +#~ msgstr "फाइल (&F)" + +#~ msgid "&Difference" +#~ msgstr "भिन्नता (&D)" + +#~ msgid "&Settings" +#~ msgstr "सेटिंग (&S)" + +#~ msgid "Preferences" +#~ msgstr "प्राथमिकता" + +#~ msgid "View" +#~ msgstr "दृस्य" + +#~ msgid "View Settings" +#~ msgstr "दृस्य सेटिंग" + +#~ msgid "Diff" +#~ msgstr "डिफ" + +#~ msgid "Diff Settings" +#~ msgstr "डिफ सेटिंग" + +#~ msgid "Run Diff In" +#~ msgstr "डिफ ये मां चलाव" + +#~ msgid "Command Line" +#~ msgstr "कमांड लाइन" + +#~ msgid "cd dir && diff -udHprNa -- source destination" +#~ msgstr "cd dir && diff -udHprNa -- स्रोत गंतव्य" + +#~ msgid "Options" +#~ msgstr "विकल्प" + +#~ msgid "Look for smaller changes" +#~ msgstr "छोटे बदलाव मन बर देखव" + +#~ msgid "Optimize for large files" +#~ msgstr "विसाल फाइल मन बर ओप्टीमाइज करव" + +#~ msgid "Ignore changes in case" +#~ msgstr "केस मं बदलाव मन ल अनदेखा करव" + +#~ msgid "Expand tabs to spaces" +#~ msgstr "टैब्स ल स्पेसेस के रूप मं एक्सपांड करव" + +#~ msgid "Ignore added or removed empty lines" +#~ msgstr "जोड़ी गे या मिटाय गे खाली पंक्तियोँ ल अनदेखा करव" + +#~ msgid "Ignore changes in whitespace" +#~ msgstr "सफेदजगह मं बदलाव मन ल अनदेखा करव" + +#~ msgid "Show function names" +#~ msgstr "फंक्सन नाम देखाव" + +#~ msgid "Compare folders recursively" +#~ msgstr "फोल्डर रीकर्सिवली तुलना करव" + +#~ msgid "Treat new files as empty" +#~ msgstr "नवा फाइल मन ल खाली समझव" + +#~ msgid "Format" +#~ msgstr "फार्मेट" + +#~ msgid "Side-by-side" +#~ msgstr "अगल-बगल में" + +#~ msgid "Number of context lines:" +#~ msgstr "कान्टेक्स्ट पंक्तियोँ के संख्याः" + +#~ msgid "Main Toolbar" +#~ msgstr "मुख्य औजार पट्टी" + +#~ msgid "Files" +#~ msgstr "फाइल" + +#~ msgid "Here you can enter the files you want to compare." +#~ msgstr "इहां आप मन ओखर फाइल मन ल भर सकथो जऊन ल आप मन तुलना करना चाहथो ." + +#~ msgid "Here you can change the options for comparing the files." +#~ msgstr "इहां आप मन फाइल मन के तुलना करे के विकल्प मन ल बदल सकथो ." + +#~ msgid "Appearance" +#~ msgstr "रूप" + +#~ msgid "Here you can change the options for the view." +#~ msgstr "इहां आप मन दृस्य के विकल्प मन ल बदल सकथो ." + +#~ msgid "Diff Program" +#~ msgstr "डिफ प्रोग्राम" + +#~ msgid "Output Format" +#~ msgstr "आउटपुट फार्मेट" + +#~ msgid "Lines of Context" +#~ msgstr "कान्टेक्स्ट के पंक्तियाँ" + +#~ msgid "General" +#~ msgstr "सामान्य" + +#, fuzzy +#~ msgid "&Treat new files as empty" +#~ msgstr "नवा फाइल मन ल खाली समझव" + +#, fuzzy +#~ msgid "This option corresponds to the -N diff option." +#~ msgstr "ये विकल्प -I diff से संबंधित हे." + +#~ msgid "&Look for smaller changes" +#~ msgstr "छोटे बदलाव मन बर देखव (&L)" + +#~ msgid "This corresponds to the -d diff option." +#~ msgstr "ये विकल्प -d diff से संबंधित हे." + +#~ msgid "O&ptimize for large files" +#~ msgstr "बड़ी फाइल मन बर ओप्टीमाइज करव (&p)" + +#~ msgid "This corresponds to the -H diff option." +#~ msgstr "ये विकल्प -H diff से संबंधित हे." + +#~ msgid "&Ignore changes in case" +#~ msgstr "केस मं बदलाव मन ल अनदेखा करव (&I)" + +#~ msgid "This corresponds to the -i diff option." +#~ msgstr "ये विकल्प -i diff से संबंधित हे." + +#~ msgid "Ignore regexp:" +#~ msgstr "रेगएक्सपी अनदेखा करव:" + +#~ msgid "This option corresponds to the -I diff option." +#~ msgstr "ये विकल्प -I diff से संबंधित हे." + +#~ msgid "&Edit..." +#~ msgstr "संपादन... (&E)" + +#~ msgid "Whitespace" +#~ msgstr "व्हाइट-स्पेस" + +#~ msgid "E&xpand tabs to spaces in output" +#~ msgstr "आउटपुट मं टैब्स ल स्पेसेस के रूप मं एक्सपांड करव (&x)" + +#~ msgid "This option corresponds to the -t diff option." +#~ msgstr "ये विकल्प -t diff से संबंधित हे." + +#~ msgid "I&gnore added or removed empty lines" +#~ msgstr "जोड़ी गे या मिटाय गे खाली पंक्तियोँ ल अनदेखा करव (&g)" + +#~ msgid "This option corresponds to the -B diff option." +#~ msgstr "ये विकल्प -B diff से संबंधित हे." + +#~ msgid "Ig&nore changes in the amount of whitespace" +#~ msgstr "बदलाव मन ल सफेदजगह के मात्रा मं अनदेखा करव (&n)" + +#~ msgid "This option corresponds to the -b diff option." +#~ msgstr "ये विकल्प -b diff से संबंधित हे." + +#~ msgid "Ign&ore all whitespace" +#~ msgstr "सब्बो सफेदजगह ल अनदेखा करव (&o)" + +#~ msgid "This option corresponds to the -w diff option." +#~ msgstr "ये विकल्प -w diff से संबंधित हे." + +#~ msgid "Igno&re changes due to tab expansion" +#~ msgstr "सफेदजगह मं बदलाव मन ल अनदेखा करव (&r)" + +#~ msgid "This option corresponds to the -E diff option." +#~ msgstr "ये विकल्प -E diff से संबंधित हे." + +#~ msgid "File Pattern to Exclude" +#~ msgstr "एक्सक्लूड करे बर फाइल पैटर्न" + +#~ msgid "File with Filenames to Exclude" +#~ msgstr "फाइलनाम सहित फाइल मन ल जऊन ल अलग रखना हे" + +#~ msgid "Exclude" +#~ msgstr "एक्सक्लूड " + +#~ msgid "Encoding" +#~ msgstr "एनकोडिंग" + +#~ msgid "Colors" +#~ msgstr "रंग" + +#~ msgid "Removed color:" +#~ msgstr "मेटाइस रंगः" + +#~ msgid "Changed color:" +#~ msgstr "बदला रंगः" + +#~ msgid "Added color:" +#~ msgstr "जोड़ा रंगः" + +#~ msgid "Applied color:" +#~ msgstr "लागू करिस रंगः" + +#~ msgid "Mouse Wheel" +#~ msgstr "मुसुवा चकरी" + +#~ msgid "Number of lines:" +#~ msgstr "पंक्तियों के संख्याः" + +#~ msgid "Tabs to Spaces" +#~ msgstr "स्पेसेस मं टैब्स" + +#~ msgid "Number of spaces to convert a tab character to:" +#~ msgstr "स्पेसेस के संख्या जऊन ल टैब कैरेक्टर मं बदलना हेः" + +#~ msgid "Text Font" +#~ msgstr "पाठ फोंट" + +#~ msgid "Font:" +#~ msgstr "फोंटः" + +#~ msgid "Size:" +#~ msgstr "आकारः" + +#~ msgid "Fonts" +#~ msgstr "फोंट" + +#~ msgid "" +#~ "A program to view the differences between files and optionally generate a " +#~ "diff" +#~ msgstr "" +#~ "एक प्रोग्राम जऊन फाइल मन के बीच भिन्नताओं ल देखथे अउ वैकल्पिक रूप से डिफ तैयार करथे " + +#~ msgid "Kompare" +#~ msgstr "काम्पेयर" + +#, fuzzy +#~ msgid "" +#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " +#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" +#~ msgstr "" +#~ "(c) 2001-2004, जान फायरबाग अउ ओटो ब्रगमेन, (c) 2004-2005 जेफ सिंडर, (c) " +#~ "2007-2008 केविन कोफ्लर" + +#~ msgid "Jeff Snyder" +#~ msgstr "जेफ सिंडर" + +#~ msgid "Developer" +#~ msgstr "डेवलपर" + +#~ msgid "Maintainer" +#~ msgstr "मेंटेनर" + +#~ msgid "Chris Luetchford" +#~ msgstr "क्रिस लुएचफोर्ड" + +#~ msgid "Kompare icon artist" +#~ msgstr "काम्पेयर चिनहा कलाकार" + +#~ msgid "Malte Starostik" +#~ msgstr "माल्ते स्टारोस्टिक" + +#~ msgid "A lot of good advice" +#~ msgstr "बहुत से अच्छे परामर्स" + +#~ msgid "Bernd Gehrmann" +#~ msgstr "बर्नद गेहमन" + +#~ msgid "Cervisia diff viewer" +#~ msgstr "सर्विसिया डिफ प्रदर्सक" + +#~ msgid "This will compare URL1 with URL2" +#~ msgstr "ये यूआरएल1 ल यूआरएल2 के साथ तुलना करथे " + +#~ msgid "Compare these files or folder" +#~ msgstr "ए फाइल मन ल या फोल्डर मं तुलना करव" + +#~ msgid "Could not find our KompareViewPart." +#~ msgstr "अपन काम्पेयर-व्यू-पार्ट खोज नइ सकिस." + +#~ msgid "Could not find our KompareNavigationPart." +#~ msgstr "अपन काम्पेयर-नेविगेसन-पार्ट खोज नइ सकिस." + +#~ msgid "A&ppearance" +#~ msgstr "सक्ल-सूरत (&p)" + +#~ msgid "&Diff" +#~ msgstr "डिफ (&D)" + +#~ msgid "&Format" +#~ msgstr "फार्मेट (&F)" + +#~ msgid "O&ptions" +#~ msgstr "विकल्प (&p)" diff --git a/po/hr/libkomparediff2.po b/po/hr/libkomparediff2.po index d0a59a6..e46e736 100644 --- a/po/hr/libkomparediff2.po +++ b/po/hr/libkomparediff2.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare 0\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2004-04-20 13:26+CEST\n" "Last-Translator: auto\n" "Language-Team: Croatian \n" @@ -20,93 +20,93 @@ msgstr "" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Priizbornik razliku" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Poništi primenjenu razliku" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Prime&ni sve" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Poništi sve primenjeno" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format msgctxt "@action" msgid "P&revious File" msgstr "P&rethodni datoteka" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format msgctxt "@action" msgid "N&ext File" msgstr "S&ledeći datoteka" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Prethodna razlika" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Sljedeća razlika" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, fuzzy, kde-format msgid "Could not open a temporary file." msgstr "Nisam mogao otvoriti privreizbornik datoteka." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, fuzzy, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "Nisam mogao da pišem u privreizbornik datoteka." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, fuzzy, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "Nisam mogao da pišem u privreizbornik datoteka." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, fuzzy, kde-format msgid "Could not parse diff output." msgstr "Nisam mogao da analiziram diff izlaz." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, fuzzy, kde-format msgid "The files are identical." msgstr "Datoteke su identični." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, fuzzy, kde-format msgid "Could not write to the temporary file." msgstr "Nisam mogao da pišem u privreizbornik datoteka." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/hu/libkomparediff2.po b/po/hu/libkomparediff2.po index dbe9070..74fd6ed 100644 --- a/po/hu/libkomparediff2.po +++ b/po/hu/libkomparediff2.po @@ -3,78 +3,71 @@ # Tamas Krutki, 2011. # Kristóf Kiszel , 2011. # Balázs Úr , 2012, 2013. +# SPDX-FileCopyrightText: 2024 Kristof Kiszel msgid "" msgstr "" "Project-Id-Version: KDE 4.2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2013-04-09 23:49+0200\n" -"Last-Translator: Balázs Úr \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-07-31 21:28+0200\n" +"Last-Translator: Kristof Kiszel \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 24.05.2\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "Az eltérés al&kalmazása" +msgstr "Eltérés al&kalmazása" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Eltérés alkalmazásának v&isszavonása" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" -msgstr "Alkalma&zás (teljes)" +msgstr "Összes a&lkalmazása" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" -msgstr "Az alkalmazások &visszavonása" +msgstr "Alkalmazások &visszavonása" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" -msgstr "Az &előző fájl" +msgstr "&Előző fájl" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "A következő &fájl" +msgstr "Következő &fájl" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "Az e&lőző eltérés" +msgstr "E&lőző eltérés" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "A köve&tkező eltérés" +msgstr "Köve&tkező eltérés" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -82,7 +75,7 @@ msgid "" msgstr "" "Nincs modell vagy különbség, a(z) %1 fájl nem diff-fájl." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Nem sikerült alkalmazni a(z) %1 diff-fájlt a(z) %2 fájlra." "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -100,19 +93,19 @@ msgstr "" "Nem sikerült alkalmazni a(z) %1 diff-kimenetet a(z) %2 " "mappára." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." -msgstr "Az egyik ideiglenes fájlt nem sikerült megnyitni." +msgstr "Nem sikerült megnyitni egy ideiglenes fájlt." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Nem sikerült írni a(z) %1 ideiglenes fájlba, ezért le lesz " "törölve." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -121,7 +114,7 @@ msgstr "" "Nem sikerült létrehozni a célmappát: %1.\n" "A fájl nem lett elmentve." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Próbálja meg átmásolni a " "fájlt a megfelelő helyre." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "A diff kimenet feldolgozása nem sikerült." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "A fájlok teljesen egyformák." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Nem sikerült írni egy ideiglenes fájlba." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ia/libkomparediff2.po b/po/ia/libkomparediff2.po new file mode 100644 index 0000000..bacfeab --- /dev/null +++ b/po/ia/libkomparediff2.po @@ -0,0 +1,146 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the libkomparediff2 package. +# +# SPDX-FileCopyrightText: 2024 giovanni +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-07-22 11:25+0200\n" +"Last-Translator: giovanni \n" +"Language-Team: Interlingua \n" +"Language: ia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.5\n" + +#: modellist.cpp:49 +#, kde-format +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Applica Differentia" + +#: modellist.cpp:53 +#, kde-format +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Dis&applica Differentia" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "App&lica Omne" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "&Disapplica Omne" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "P&revie File" + +#: modellist.cpp:75 +#, kde-format +msgctxt "@action" +msgid "N&ext File" +msgstr "Proxim&e File" + +#: modellist.cpp:79 +#, kde-format +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&Previe Differentia" + +#: modellist.cpp:83 +#, kde-format +msgctxt "@action" +msgid "&Next Difference" +msgstr "Pro&xime Differentia" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"Nulle modellos o nulle differentias, iste file: %1, non es un " +"valide file de diff." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" +"Il habeva problemas a applicar le diff %1 al file %2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" +"Il habeva problemas a applicar le diff %1 al dossier %2. " +"" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "Il non pote aperir un file temporanee." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Non pote scriber in file temporanee %1, on dele illo." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"Non poteva crear directorio de destination %1.\n" +"Le file non ha essite salveguardate." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"Non poteva incargar le file temporanee al location de destination %1. Le file temporanee es ancora disponibile sub: %2. Tu pote copiar " +"lo manualmente in le loco correcte." + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Non poteva analysar le exito de diff." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Le files es identic." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "Non poteva scriber in le file temporanee." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"Le diff es mal formate. Alcun lineas non pote esser analysate e non essera " +"monstrate in le vista de diff." diff --git a/po/is/libkomparediff2.po b/po/is/libkomparediff2.po index 0e18b30..fbf491b 100644 --- a/po/is/libkomparediff2.po +++ b/po/is/libkomparediff2.po @@ -1,148 +1,151 @@ # translation of kompare.po to Icelandic # Björgvin Ragnarsson , 2004. -# Sveinn í Felli , 2009. +# Sveinn í Felli , 2009, 2023. msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2009-07-28 20:22+0000\n" -"Last-Translator: Sveinn í Felli \n" -"Language-Team: Icelandic \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2023-02-13 17:45+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic\n" "Language: is\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 21.12.3\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" "\n" "\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "&Virkja mismun" +msgstr "Virkj&a mismun" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Afvirkja mismun" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Virkja a&llt" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "A&fvirkja allt" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fy&rri skrá" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "&Næsta skrá" +msgstr "Næsta s&krá" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "Fyrra &mismunur" +msgstr "Fyrri &mismunur" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "Næsti m&ismunur" +msgstr "&Næsti mismunur" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 -#, fuzzy, kde-format +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." -msgstr "Enginn mismunur, Þessi skrá: %1, er ekki gild diff skrá." +msgstr "" +"Engin líkön eða mismunur, þessi skrá: %1, er ekki gild diff-skrá." +"" -#: komparemodellist.cpp:262 -#, fuzzy, kde-format +#: modellist.cpp:192 +#, kde-format msgid "" "There were problems applying the diff %1 to the file %2." -msgstr "Það komu upp vandamál við að virkja diff (%1) í skrána (%2)." +msgstr "" +"Það komu upp vandamál við að virkja mismuninn %1 í skrána %2." -#: komparemodellist.cpp:289 -#, fuzzy, kde-format +#: modellist.cpp:220 +#, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" -msgstr "Það komu upp vandamál við að virkja diff (%1) í möppuna (%2)." +msgstr "" +"Það komu upp vandamál við að virkja mismuninn %1 í möppuna %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." -msgstr "Gat ekki opnað vinnuskrá." +msgstr "Get ekki opnað bráðabirgðaskrá." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 -#, fuzzy, kde-format +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format msgid "Could not write to the temporary file %1, deleting it." -msgstr "Gat ekki skrifað í vinnuskrána." +msgstr "Gat ekki skrifað í bráðabirgðaskrána %1, eyði henni." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" +"Gat ekki búið til móttökumöppu %1.\n" +"Ekki var hægt að vista skrána." -#: komparemodellist.cpp:434 -#, fuzzy, kde-format +#: modellist.cpp:350 +#, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." msgstr "" -"Gat ekki sent vinnuskrána á áfangastaðinn %2. Vinnuskráin er enn tiltæk í: " -"%1. Þú getur afritað hana handvirkt á rétta staðinn." +"Gat ekki sent bráðabirgðaskrána á áfangastaðinn %1. " +"Bráðabirgðaskráin er enn tiltæk í: %2. Þú getur afritað hana " +"handvirkt á rétta staðinn." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." -msgstr "Gat ekki þáttað diff úttak." +msgstr "Gat ekki þáttað diff-mismunaúttak." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Skrárnar eru eins." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." -msgstr "Gat ekki skrifað í vinnuskrána." +msgstr "Gat ekki skrifað í bráðabirgðaskrána." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" +"Mismunurinn er rangt formaður. Sumar línur var ekki hægt að þátta og verða " +"því ekki birtar í mismunasýninni." #~ msgctxt "NAME OF TRANSLATORS" #~ msgid "Your names" diff --git a/po/it/libkomparediff2.po b/po/it/libkomparediff2.po index 0f9aafe..d895446 100644 --- a/po/it/libkomparediff2.po +++ b/po/it/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-10 01:05+0200\n" "Last-Translator: Luigi Toscano \n" "Language-Team: Italian \n" @@ -20,55 +20,55 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 19.12.0\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Applica differenza" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Annulla differenza" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "App&lica tutto" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "A&nnulla tutto" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "File p&recedente" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "File succ&essivo" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Differenza &precedente" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Differenza succes&siva" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "Nessun modello o differenza, questo file: %1, non è un file di " "confronto valido." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Ci sono stati problemi nell'applicazione dei cambiamenti %1 al " "file %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,18 +95,18 @@ msgstr "" "Ci sono stati problemi nell'applicazione dei cambiamenti %1 alla " "cartella %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Impossibile aprire il file temporaneo." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Impossibile scrivere sul file temporaneo %1, sarà eliminato." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -115,7 +115,7 @@ msgstr "" "Impossibile creare la cartella di destinazione %1.\n" "Il file non è stato salvato." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. Il file temporaneo è ancora disponibile a: %2. Puoi copiarlo " "manualmente nel posto giusto." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Impossibile analizzare l'output di confronto." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "I file sono identici." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Impossibile scrivere sul file temporaneo." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ja/libkomparediff2.po b/po/ja/libkomparediff2.po index febae71..2b61db3 100644 --- a/po/ja/libkomparediff2.po +++ b/po/ja/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2009-07-20 23:29+0900\n" "Last-Translator: Yukiko Bando \n" "Language-Team: Japanese \n" @@ -17,67 +17,67 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" +"Plural-Forms: nplurals=1; plural=0;\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "パッチを適用(&A)" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "パッチを戻す(&A)" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "すべてのパッチを適用(&L)" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "すべてのパッチを戻す(&U)" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "前のファイル(&R)" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "次のファイル(&E)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "前の差異(&P)" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "次の差異(&N)" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -86,14 +86,14 @@ msgstr "" "このファイルはモデルではないか、差分がありません。%1 は有効な差分" "ファイルではありません。" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "差分 %1 をファイル ‘%2’ に適用中に問題が発生しました。" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -101,17 +101,17 @@ msgid "" msgstr "" "差分 %1 をフォルダ %2 に適用中に問題が発生しました。" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "一時ファイルを開けませんでした。" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "一時ファイル ‘%1’ へ書き込めませんでした。削除します。" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -120,7 +120,7 @@ msgstr "" "適用先ディレクトリ %1 を作成できませんでした。\n" "ファイルは保存されていません。" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2 手作業でそれを適切な場所にコピーすることができま" "す。" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "diff 出力を解析できません。" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "これらファイルは同じです。" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "一時ファイルに書き込めませんでした。" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ka/libkomparediff2.po b/po/ka/libkomparediff2.po new file mode 100644 index 0000000..fc6be1d --- /dev/null +++ b/po/ka/libkomparediff2.po @@ -0,0 +1,143 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the libkomparediff2 package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2022-05-22 05:37+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: modellist.cpp:49 +#, kde-format +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&სხვაობის გადატარება" + +#: modellist.cpp:53 +#, kde-format +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "&სხვაობის გადატარების გაუქმება" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "&ყველას გადატარება" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "&ყველას გადატარების გაუქმება" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "&წინა ფაილი" + +#: modellist.cpp:75 +#, kde-format +msgctxt "@action" +msgid "N&ext File" +msgstr "&შემდეგი ფაილი" + +#: modellist.cpp:79 +#, kde-format +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&წინა სხვაობა" + +#: modellist.cpp:83 +#, kde-format +msgctxt "@action" +msgid "&Next Difference" +msgstr "&შემდეგი სხვაობა" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"მოდელის ან სხვაობის გარეშე. ფაილი: %1, სწორი diff ფაილი არაა." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "diff-ის %1 გადატარების შეცდომა ფაილზე%2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "diff-ის %1 გადატარების შეცდომა საქაღალდეზე%2." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "დროებითი ფაილის გახსნის შეცდომა." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "დროებით ფაილში %1 ჩაწერის შეცდომა. ფაილი წაიშლება." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"სამიზნე საქაღალდის შექმნის შეცდომა: %1.\n" +"ფაილი შენახული არაა." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"დროებითი ფაილის სამიზნე საქაღალდეში ატვირთვა შეუძლებელია %1. " +"დროებითი ფაილი ჯერ კიდევ ხელმისაწვდომია: %2. შეგიძლიათ ის ხელით " +"დააკოპიროთ." + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Diff-ის გამოტანის დამუშავების შეცდომა." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "ფაილები ერთნაირია." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "დროებით ფაილში ჩაწერის შეცდომა." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"Diff ფაილი არასწორია. ზოგიერთი ხაზის დამუშავება შეუძლებელია და ისინი არ " +"გამოჩნდება." diff --git a/po/kk/libkomparediff2.po b/po/kk/libkomparediff2.po index 8bc28a5..190fcc7 100644 --- a/po/kk/libkomparediff2.po +++ b/po/kk/libkomparediff2.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2013-06-27 04:14+0600\n" "Last-Translator: Sairan Kikkarin \n" "Language-Team: Kazakh \n" @@ -17,63 +17,63 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 1.2\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "&Айырмашылығын толықтыру" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "Айырмашылықты толықтырудан &айну" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "Барлығын қос&у" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "Бүкіл т&олықтырулардан айну" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "Ал&дыңғы файл" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "&Келесі файл" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "А&лдыңғы айырмашылық" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "К&елесі айырмашылық" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -82,7 +82,7 @@ msgstr "" "Үлгісі не айырмашылығы жоқ. Бұл %1 файлы жарамды diff файлы емес." "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.diff %1 айырмашылық файлымен %2 деген файлды толықтырғанда " "мәселелер туды." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -100,17 +100,17 @@ msgstr "" "diff %1 айырмашылық файлымен %2 деген қапшықтағыны " "толықтырғанда мәселелер туды." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Уақытша файлы ашылмады." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "%1 деген уақытша файлға жазу болмады, ол өшіріледі." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -119,7 +119,7 @@ msgstr "" "%1 деген мақсаттаған қапшық құрылмады.\n" "Файл сақталған жоқ." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1Уақытша файл мақсатталған %1 деген орынына жүктелмеді. %2 " "деген уақытша файл әлі бар. Өзіңіз керек жерге көшіріп көріңіз." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "diff шығысы талдауға келмеді." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Файлдар бірдей." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Уақытша файл жазылмады." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/km/libkomparediff2.po b/po/km/libkomparediff2.po index 32ad40c..cb7c5b4 100644 --- a/po/km/libkomparediff2.po +++ b/po/km/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2008-12-19 10:22+0700\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" @@ -20,93 +20,93 @@ msgstr "" "\n" "X-Generator: KBabel 1.11.4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "ផលដក" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "ផលដក" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format msgctxt "@action" msgid "N&ext File" msgstr "ឯកសារ" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "ផលដក" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "ផលដក" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ko/libkomparediff2.po b/po/ko/libkomparediff2.po index 2c019ea..566299e 100644 --- a/po/ko/libkomparediff2.po +++ b/po/ko/libkomparediff2.po @@ -1,13 +1,13 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. -# Shinjo Park , 2008, 2010, 2014, 2020. +# Shinjo Park , 2008, 2010, 2014, 2020, 2022. # msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2020-06-15 19:43+0200\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2022-05-07 02:15+0200\n" "Last-Translator: Shinjo Park \n" "Language-Team: Korean \n" "Language: ko\n" @@ -15,57 +15,57 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Lokalize 19.12.3\n" +"X-Generator: Lokalize 21.12.3\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "차이점 적용(&A)" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "차이점 적용 취소(&A)" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "모두 적용(&L)" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "모두 적용 취소(&U)" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "이전 파일(&R)" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "다음 파일(&E)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "이전 차이점(&P)" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "다음 차이점(&N)" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -74,7 +74,7 @@ msgstr "" "모델이나 차이점이 없습니다. 파일 %1이(가) 올바른 차이점 파일이 아" "닙니다." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.파일 %2에 차이점 %1을(를) 적용하는 중 오류가 발생했습니다." "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -92,17 +92,17 @@ msgstr "" "폴더 %2에 차이점 %1을(를) 적용하는 중 오류가 발생했습니다." "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "임시 파일을 열 수 없습니다." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "임시 파일 %1에 쓸 수 없어서 삭제합니다." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -111,7 +111,7 @@ msgstr "" "대상 디렉터리 %1을(를) 만들 수 없습니다.\n" "파일이 저장되지 않았습니다." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1임시 파일을 대상 위치 %1에 업로드할 수 없습니다. 임시 파일은 다음 " "위치에 저장되어 있습니다: %2. 직접 업로드할 수 있습니다." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." -msgstr "diff 출력을 처리할 수 없습니다." +msgstr "diff 출력을 해석할 수 없습니다." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "파일이 같습니다." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "임시 파일에 쓸 수 없습니다." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" -"차이점 파일이 올바르지 않습니다. 일부 줄을 처리할 수 없어서 표시되지 않습니" +"차이점 파일이 올바르지 않습니다. 일부 줄을 해석할 수 없어서 표시되지 않습니" "다." #~ msgctxt "NAME OF TRANSLATORS" diff --git a/po/lt/libkomparediff2.po b/po/lt/libkomparediff2.po index 0964bb4..534b498 100644 --- a/po/lt/libkomparediff2.po +++ b/po/lt/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2013-05-03 19:16+0300\n" "Last-Translator: Liudas Ališauskas \n" "Language-Team: Lithuanian \n" @@ -20,101 +20,101 @@ msgstr "" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" "X-Generator: Lokalize 1.5\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "Prit&aikyti skirtumą" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "Pa&naikinti skirtumo pritaikymą" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "Pritaik&yti viską" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "&Panaikinti visko pritaikymą" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "&Ankstesnis failas" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "K&itas failas" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "A&nkstesnis skirtumas" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "&Kitas skirtumas" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Negalima atidaryti laikino failo." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Negalima išnagrinėti diff išvesties." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Failai yra identiški." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Negalima įrašyti į laikiną failą." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/lv/libkomparediff2.po b/po/lv/libkomparediff2.po index 66c3be0..ee523ed 100644 --- a/po/lv/libkomparediff2.po +++ b/po/lv/libkomparediff2.po @@ -3,154 +3,149 @@ # # Viesturs Zarins , 2007, 2008. # Viesturs Zariņš , 2009. +# SPDX-FileCopyrightText: 2024 Toms Trasūns msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2009-06-04 12:04+0300\n" -"Last-Translator: Viesturs Zariņš \n" -"Language-Team: Latvian \n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-10-02 11:38+0300\n" +"Last-Translator: Toms Trasūns \n" +"Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" +"X-Generator: Lokalize 24.08.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Pielietot atšķirību" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Atcelt atšķirību" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Pie&lietot visas" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "A&tcelt visas" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" -msgstr "Iep&riekšējais fails" +msgstr "Iep&riekšējā datne" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "Nā&kamais fails" +msgstr "Nā&kamā datne" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Iepriekšējā atšķirība" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Nākamā atšķirība" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -"Šajā failā nav ne modeļu ne atšķirību: %1, nav derīgs diff fails." -"" +"Šajā datnē nav ne modeļu ne atšķirību: %1, tā nav derīga „diff“ " +"datne." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -"Gadījās problēmas diff %1 pielietošanāto uz failu %2." +"Radās problēmas ar „diff“ %1 pielietošanu datnei %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -"Gadījās problēmas diff %1 pielietošanā uz mapi %2." +"Radās problēmas ar „diff“ %1 pielietošanu mapei %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." -msgstr "Neizdevās atvērt pagaidu failu." +msgstr "Neizdevās atvērt pagaidu datni." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." -msgstr "Neizdevas rakstīt pagaidu failā %1, izdzēš to." +msgstr "Neizdevās rakstīt pagaidu datnē %1, to dzēš." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" "Neizdevās izveidot mērķa mapi %1.\n" -"Fails netika saglabāts." +"Datne nav saglabāta." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " "copy it to the right place." msgstr "" -"Neizdevās saglabāt pagaidu failu mērķa vietā %1. Pagaidu fails " -"joprojām atrodas iekš: %2. Jūs varat to pārkopēt pats uz pareizo " -"vietu." +"Neizdevās saglabāt pagaidu datni mērķa vietā %1. Pagaidu datne " +"joprojām atrodas: %2. Jūs varat to pārkopēt pats uz pareizo vietu." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." -msgstr "Neizdevās analizēt diff izvadu." +msgstr "Neizdevās parsēt „diff“ izvadi." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." -msgstr "Faili ir identiski." +msgstr "Datnes ir identiskas." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." -msgstr "Neizdevās rakstīt pagaidu failā." +msgstr "Neizdevās rakstīt pagaidu datnē." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" +"„diff“ ir nepareizi formatēts. Atsevišķas rindas nevar parsēt un " +"neparādīsies atšķirību skatā." #~ msgctxt "NAME OF TRANSLATORS" #~ msgid "Your names" diff --git a/po/mai/libkomparediff2.po b/po/mai/libkomparediff2.po new file mode 100644 index 0000000..27d18d2 --- /dev/null +++ b/po/mai/libkomparediff2.po @@ -0,0 +1,263 @@ +# translation of kompare.po to Maithili +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Rajesh Ranjan , 2010. +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2010-09-24 20:23+0530\n" +"Last-Translator: Rajesh Ranjan \n" +"Language-Team: Maithili \n" +"Language: mai\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "भिन्नता" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "भिन्नता" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "&File" +msgctxt "@action" +msgid "N&ext File" +msgstr "फाइल (&F)" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "भिन्नता" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "भिन्नता" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "" + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "" + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "" + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "" + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "संगीता कुमारी" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "sangeeta09@gmail.com" + +#~ msgid "Navigation" +#~ msgstr "नेविगेशन" + +#~ msgid "Diff Output" +#~ msgstr "डिफ आउटपुट" + +#~ msgid "Blend" +#~ msgstr "मिलाबू" + +#~ msgid "Source" +#~ msgstr "श्रोत" + +#~ msgid "Destination" +#~ msgstr "गंतव्य" + +#~ msgid "Compare" +#~ msgstr "तुलना करू" + +#~ msgid "Text View" +#~ msgstr "पाठ दृश्य" + +#~ msgid "Destination Folder" +#~ msgstr "गंतव्य फोल्डर" + +#~ msgid "Source File" +#~ msgstr "स्रोत फाइल" + +#~ msgid "Unknown" +#~ msgstr "अज्ञात" + +#~ msgid "John Firebaugh" +#~ msgstr "जान फायरबाग" + +#~ msgid "Author" +#~ msgstr "लेखक" + +#~ msgid "Overwrite" +#~ msgstr "एकरासँ उप्पर लिखू" + +#~ msgid "Context" +#~ msgstr "संदर्भ" + +#~ msgid "Normal" +#~ msgstr "सामान्य" + +#~ msgid "&Settings" +#~ msgstr "जमावट (&S)" + +#~ msgid "Preferences" +#~ msgstr "वरीयतासभ" + +#~ msgid "View" +#~ msgstr "दृश्य" + +#~ msgid "Diff" +#~ msgstr "Diff" + +#~ msgid "Command Line" +#~ msgstr "कमांड लाइन" + +#~ msgid "Options" +#~ msgstr "विकल्प" + +#~ msgid "Format" +#~ msgstr "प्रारूप" + +#~ msgid "Main Toolbar" +#~ msgstr "मुख्य अओजार पट्टी" + +#~ msgid "Files" +#~ msgstr "फाइल" + +#~ msgid "Appearance" +#~ msgstr "प्रकटन" + +#~ msgid "General" +#~ msgstr "सामान्य" + +#~ msgid "&Edit..." +#~ msgstr "संपादित करु (&E)..." + +#~ msgid "Exclude" +#~ msgstr "निकालू" + +#~ msgid "Encoding" +#~ msgstr "एनकोडिंग" + +#~ msgid "Colors" +#~ msgstr "रँग" + +#~ msgid "Mouse Wheel" +#~ msgstr "माउस ह्वील" + +#~ msgid "Number of lines:" +#~ msgstr "पंक्तिसभक संख्याः" + +#~ msgid "Font:" +#~ msgstr "फान्टः" + +#~ msgid "Size:" +#~ msgstr "आकार:" + +#~ msgid "Fonts" +#~ msgstr "फान्ट" + +#~ msgid "Developer" +#~ msgstr "डेवलपर" + +#~ msgid "Maintainer" +#~ msgstr "अनुरक्षक" + +#~ msgid "Bernd Gehrmann" +#~ msgstr "बेर्न्द गेहर्मन" diff --git a/po/mk/libkomparediff2.po b/po/mk/libkomparediff2.po new file mode 100644 index 0000000..edd1168 --- /dev/null +++ b/po/mk/libkomparediff2.po @@ -0,0 +1,566 @@ +# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# translation of kompare.po to Macedonian +# +# Bozidar Proevski , 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2006-01-26 23:14+0100\n" +"Last-Translator: Bozidar Proevski \n" +"Language-Team: Macedonian \n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=n%10==1 ? 0 : n%10==2 ? 1 : " +"2;\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Разлика" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "&Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "&Разлика" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "П&ретходна датотека" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "Сл&една датотека" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&Претходна разлика" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "След&на разлика" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"Нема модели или нема разлики, оваа датотека: %1 не е валидна " +"датотека со разлики." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" +"Имаше проблеми при применувањето на разликата %1 на датотеката " +"%2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" +"Имаше проблеми при применувањето на разликата %1 на папката " +"%2." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "Не можев да отворам привремена датотека." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "" +"Не можев да запишам во привремената датотека %1, ја бришам." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"Не можев да ја креирам одредишната папка %1.\n" +"Датотеката не беше зачувана." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Не можев да го анализирам излезот на diff." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Датотеките се идентични." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "Не можев да запишам во привремената датотека." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Божидар Проевски" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "bobibobi@freemail.com.mk" + +#~ msgid "&Open Diff..." +#~ msgstr "&Отвори разлика..." + +#~ msgid "&Compare Files..." +#~ msgstr "&Спореди датотеки..." + +#~ msgid " 0 of 0 differences " +#~ msgstr " 0 од 0 разлики " + +#~ msgid " 0 of 0 files " +#~ msgstr " 0 од 0 датотеки " + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] " %2 од %1 датотека " +#~ msgstr[1] " %2 од %1 датотеки " +#~ msgstr[2] " %2 од %1 датотеки " + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] " %1 датотека " +#~ msgstr[1] " %1 датотеки " +#~ msgstr[2] " %1 датотеки " + +#~ msgid " %2 of %1 difference, %3 applied " +#~ msgid_plural " %2 of %1 differences, %3 applied " +#~ msgstr[0] " %2 од %1 разлика, %3 применети " +#~ msgstr[1] " %2 од %1 разлики, %3 применети " +#~ msgstr[2] " %2 од %1 разлики, %3 применети " + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] " %1 разлика " +#~ msgstr[1] " %1 разлики " +#~ msgstr[2] " %1 разлики " + +#~ msgid "File/Folder" +#~ msgstr "Датотека/папка" + +#~ msgid "Compare Files or Folders" +#~ msgstr "Споредете датотеки или папки" + +#~ msgid "Source" +#~ msgstr "Извор" + +#~ msgid "Destination" +#~ msgstr "Одредиште" + +#~ msgid "Source Folder" +#~ msgstr "Изворишна папка" + +#~ msgid "Destination Folder" +#~ msgstr "Одредишна папка" + +#~ msgid "Source File" +#~ msgstr "Изворишна датотека" + +#~ msgid "Destination File" +#~ msgstr "Одредишна датотека" + +#~ msgid "Source Line" +#~ msgstr "Изворишна линија" + +#~ msgid "Destination Line" +#~ msgstr "Одредишна линија" + +#~ msgid "Difference" +#~ msgstr "Разлика" + +#, fuzzy +#~| msgid "Applied: Changes made to %1 line undone" +#~| msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgid "Applied: Changes made to %1 line undone" +#~ msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgstr[0] "Применето: Измените на %1 линија се вратени назад" +#~ msgstr[1] "Применето: Измените на %1 линии се вратени назад" +#~ msgstr[2] "Применето: Измените на %1 линии се вратени назад" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "Изменета е %1 линија" +#~ msgstr[1] "Изменети се %1 линии" +#~ msgstr[2] "Изменети се %1 линии" + +#~ msgid "Applied: Insertion of %1 line undone" +#~ msgid_plural "Applied: Insertion of %1 lines undone" +#~ msgstr[0] "Применето: Вметнувањето на %1 линија е вратено назад" +#~ msgstr[1] "Применето: Вметнувањето на %1 линии е вратено назад" +#~ msgstr[2] "Применето: Вметнувањето на %1 линии е вратено назад" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "Вметната е %1 линија" +#~ msgstr[1] "Вметнати се %1 линии" +#~ msgstr[2] "Вметнати се %1 линии" + +#~ msgid "Applied: Deletion of %1 line undone" +#~ msgid_plural "Applied: Deletion of %1 lines undone" +#~ msgstr[0] "Применето: Бришењето на %1 линија е вратено назад" +#~ msgstr[1] "Применето: Бришењето на %1 линии е вратено назад" +#~ msgstr[2] "Применето: Бришењето на %1 линии е вратено назад" + +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "Избришана е %1 линија" +#~ msgstr[1] "Избришани се %1 линии" +#~ msgstr[2] "Избришани се %1 линии" + +#~ msgid "Unknown" +#~ msgstr "Непознат" + +#~ msgid "Author" +#~ msgstr "Автор" + +#~ msgid "Save &All" +#~ msgstr "З&ачувај ги сите" + +#, fuzzy +#~| msgid "Save .&diff..." +#~ msgid "Save &Diff..." +#~ msgstr "Зачу&вај .diff..." + +#~ msgid "Swap Source with Destination" +#~ msgstr "Размени извор со одредиште" + +#~ msgid "Show Statistics" +#~ msgstr "Прикажи статистика" + +#~ msgid "The URL %1 cannot be downloaded." +#~ msgstr "URL %1 не може да биде симнато." + +#~ msgid "The URL %1 does not exist on your system." +#~ msgstr "URL %1 не постои на вашиот систем." + +#~ msgid "Diff Options" +#~ msgstr "Опции за разлики" + +#~ msgid "*.diff *.dif *.patch|Patch Files" +#~ msgstr "*.diff *.dif *.patch|Датотеки со закрпи" + +#~ msgid "Save .diff" +#~ msgstr "Зачувајте .diff" + +#~ msgid "The file exists or is write-protected; do you want to overwrite it?" +#~ msgstr "" +#~ "Датотеката постои или е заштитена од запис. Дали сакате да запишете врз " +#~ "неа?" + +#~ msgid "File Exists" +#~ msgstr "Датотеката постои" + +#~ msgid "Overwrite" +#~ msgstr "Запиши" + +#~ msgid "Do Not Overwrite" +#~ msgstr "Не запишувај" + +#~ msgid "KomparePart" +#~ msgstr "KomparePart" + +#~ msgid "Running diff..." +#~ msgstr "Извршувам diff..." + +#~ msgid "Parsing diff output..." +#~ msgstr "Анализирам излез од diff..." + +#~ msgid "Comparing file %1 with file %2" +#~ msgstr "Ја споредувам датотеката %1 со датотеката %2" + +#~ msgid "Comparing files in %1 with files in %2" +#~ msgstr "Ги споредувам датотеките во %1 со датотеките во %2" + +#~ msgid "Viewing diff output from %1" +#~ msgstr "Прегледувам излез на diff од %1" + +#~ msgid "" +#~ "You have made changes to the destination file(s).\n" +#~ "Would you like to save them?" +#~ msgstr "" +#~ "Направивте измени во одредишните датотеки.\n" +#~ "Дали сакате да ги зачувате?" + +#~ msgid "Save Changes?" +#~ msgstr "Зачувувате промени" + +#~ msgid "Unified" +#~ msgstr "Унифициран" + +#~ msgid "Context" +#~ msgstr "Контекстуален" + +#~ msgid "RCS" +#~ msgstr "RCS" + +#~ msgid "Ed" +#~ msgstr "Ed" + +#~ msgid "Normal" +#~ msgstr "Нормален" + +#~ msgid "" +#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " +#~ "available." +#~ msgstr "" +#~ "Нема diff-датотека или не биле споредени 2 датотеки. Поради тоа нема " +#~ "достапна статистика." + +#~ msgid "Diff Statistics" +#~ msgstr "Статистика за разликите" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Old file: %1\n" +#~ "New file: %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Number of differences: %5" +#~ msgstr "" +#~ "Статистика:\n" +#~ "\n" +#~ "Стара датотека: %1\n" +#~ "Нова датотека: %2\n" +#~ "\n" +#~ "Формат: %3\n" +#~ "Број на парчиња: %4\n" +#~ "Број на разлики: %5" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Number of files in diff file: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Current old file: %3\n" +#~ "Current new file: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Number of differences: %6" +#~ msgstr "" +#~ "Статистика:\n" +#~ "\n" +#~ "Број на линии во дат. со разлика: %1\n" +#~ "Формат: %2\n" +#~ "\n" +#~ "Тековна стара датотека: %3\n" +#~ "Тековна нова датотека: %4\n" +#~ "\n" +#~ "Број на парчиња: %5\n" +#~ "Број на разлики: %6" + +#, fuzzy +#~ msgid "&File" +#~ msgstr "&Датотеки" + +#, fuzzy +#~ msgid "&Settings" +#~ msgstr "Поставувања за преглед" + +#~ msgid "Preferences" +#~ msgstr "Параметри" + +#~ msgid "View Settings" +#~ msgstr "Поставувања за преглед" + +#~ msgid "Diff" +#~ msgstr "Разлика" + +#~ msgid "Diff Settings" +#~ msgstr "Поставувања за разлика" + +#, fuzzy +#~ msgid "Options" +#~ msgstr "О&пции" + +#~ msgid "Compare folders recursively" +#~ msgstr "Спореди ги папките рекурзивно" + +#~ msgid "Format" +#~ msgstr "Формат" + +#~ msgid "Number of context lines:" +#~ msgstr "Број на контекстни линии:" + +#, fuzzy +#~ msgid "Files" +#~ msgstr "&Датотеки" + +#~ msgid "Here you can enter the files you want to compare." +#~ msgstr "Тука може да ги внесете датотеките што сакате да ги споредите." + +#~ msgid "Here you can change the options for comparing the files." +#~ msgstr "Тука може да ги смените опциите за споредбата на датотеките." + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "&Изглед" + +#~ msgid "Here you can change the options for the view." +#~ msgstr "Тука може да ги смените опциите за прегледот." + +#~ msgid "Diff Program" +#~ msgstr "Програма за разлики" + +#~ msgid "" +#~ "You can select a different diff program here. On Solaris the standard " +#~ "diff program does not support all the options that the GNU version does. " +#~ "This way you can select that version." +#~ msgstr "" +#~ "Тука може да изберете друга програма за правење разлики. Стандардната " +#~ "програма diff на Соларис не ги поддржува сите опции што ги има верзијата " +#~ "на ГНУ." + +#~ msgid "Output Format" +#~ msgstr "Излезен формат" + +#~ msgid "Lines of Context" +#~ msgstr "Контекстни линии" + +#~ msgid "General" +#~ msgstr "Општо" + +#~ msgid "&Edit..." +#~ msgstr "Ур&еди..." + +#~ msgid "Whitespace" +#~ msgstr "Празни места" + +#~ msgid "Encoding" +#~ msgstr "Кодирање" + +#~ msgid "Colors" +#~ msgstr "Бои" + +#~ msgid "Removed color:" +#~ msgstr "Боја за избришано:" + +#~ msgid "Changed color:" +#~ msgstr "Боја за изменето:" + +#~ msgid "Added color:" +#~ msgstr "Боја за додадено:" + +#~ msgid "Applied color:" +#~ msgstr "Боја за применето:" + +#~ msgid "Mouse Wheel" +#~ msgstr "Тркалце на глушецот" + +#~ msgid "Number of lines:" +#~ msgstr "Број на линии:" + +#~ msgid "Tabs to Spaces" +#~ msgstr "Табулатори во празни места" + +#~ msgid "Number of spaces to convert a tab character to:" +#~ msgstr "Број на празни места за претворање на знак за табулатор:" + +#~ msgid "Text Font" +#~ msgstr "Фонт за текст" + +#~ msgid "Font:" +#~ msgstr "Фонт:" + +#~ msgid "Size:" +#~ msgstr "Големина:" + +#, fuzzy +#~ msgid "Fonts" +#~ msgstr "Фонт:" + +#~ msgid "" +#~ "A program to view the differences between files and optionally generate a " +#~ "diff" +#~ msgstr "" +#~ "Програма за прегледување на разликите меѓу датотеки и евентуално " +#~ "генерирање на разлика" + +#, fuzzy +#~| msgid "(c) 2001-2004, John Firebaugh and Otto Bruggeman" +#~ msgid "" +#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " +#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" +#~ msgstr "(c) 2001-2004, John Firebaugh и Otto Bruggeman" + +#~ msgid "Kompare icon artist" +#~ msgstr "Уметникот што ја изработи иконата на Kompare" + +#~ msgid "A lot of good advice" +#~ msgstr "Многу добри совети" + +#~ msgid "This will compare URL1 with URL2" +#~ msgstr "Ова ќе го спореди URL1 со URL2" + +#~ msgid "A&ppearance" +#~ msgstr "&Изглед" + +#~ msgid "&Diff" +#~ msgstr "&Разлика" + +#~ msgid "&Format" +#~ msgstr "&Формат" + +#~ msgid "O&ptions" +#~ msgstr "О&пции" diff --git a/po/mr/libkomparediff2.po b/po/mr/libkomparediff2.po index 4687bcd..cd23729 100644 --- a/po/mr/libkomparediff2.po +++ b/po/mr/libkomparediff2.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2013-03-28 14:37+0530\n" "Last-Translator: Chetan Khona \n" "Language-Team: Marathi \n" @@ -17,93 +17,93 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Lokalize 1.5\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "फरक" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "फरक" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format msgctxt "@action" msgid "N&ext File" msgstr "फाईल (&F)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "फरक" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "फरक" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, fuzzy, kde-format msgid "Could not open a temporary file." msgstr "तात्पुरती फाईल उघडता आली नाही." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ms/libkomparediff2.po b/po/ms/libkomparediff2.po new file mode 100644 index 0000000..6186b7e --- /dev/null +++ b/po/ms/libkomparediff2.po @@ -0,0 +1,725 @@ +# Copyright (C) +# Muhammad Najmi bin Ahmad Zabidi +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2006-12-03 15:38+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 0.9.6\n" +"Plural-Forms: nplurals=2; plural=1;\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "Ter&ap Perubahan" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Nyah Ter&ap Perbezaan" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "Tera&p Semua" + +#: modellist.cpp:61 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "Semua Pakej" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "Fail Te&rdahulu" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "Fail S&eterusnya" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&Perbezaan Terdahulu" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "Perbezaan Seterus&nya" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, fuzzy, kde-format +msgid "Could not open a temporary file." +msgstr "tidak dapat membuka fail tetapan `%s': %s" + +#: modellist.cpp:289 modellist.cpp:296 +#, fuzzy, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Tidak dapat tulis kepada fail." + +#: modellist.cpp:324 +#, fuzzy, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "Tidak dapat tulis kepada fail." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Tidak dapat huraikan diff output." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Fail adalah sama." + +#: modellist.cpp:550 +#, fuzzy, kde-format +msgid "Could not write to the temporary file." +msgstr "" +"Tidak dapat menulis ke fail %1:\n" +"\"%2\" adalah huraian terperinci ralat." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Muhammad Najmi bin Ahmad Zabidi" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "mnajem@linuxmail.org" + +#, fuzzy +#~ msgid "Could not load our KompareViewPart." +#~ msgstr "[gagal muat modul appletalk]\n" + +#, fuzzy +#~ msgid "Could not load our KompareNavigationPart." +#~ msgstr "[gagal muat modul appletalk]\n" + +#, fuzzy +#~ msgid "&Open Diff..." +#~ msgstr "%s: diff gagal: " + +#~ msgid "&Compare Files..." +#~ msgstr "Bandin&g Fail..." + +#, fuzzy +#~ msgid "Show T&ext View" +#~ msgstr "Lihat status faks" + +#~ msgid " 0 of 0 differences " +#~ msgstr " 0 dari 0 perbezaan" + +#~ msgid " 0 of 0 files " +#~ msgstr " 0 dari 0 fail" + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] " %2 dari %1 fail " +#~ msgstr[1] " %2 dari %1 fail-fail" + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] " %1 fail " +#~ msgstr[1] " %1 fail-fail" + +#~ msgid " %2 of %1 difference, %3 applied " +#~ msgid_plural " %2 of %1 differences, %3 applied " +#~ msgstr[0] " %2 dari %1 perbezaan, %3 telah diterapkan " +#~ msgstr[1] " %2 dari %1 perbezaan, %3 telah diterapkan" + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] "%1 perbezaan " +#~ msgstr[1] " %1 perbezaan" + +#, fuzzy +#~ msgid "File/Folder" +#~ msgstr "Tambah _direktori" + +#, fuzzy +#~ msgid "Diff Output" +#~ msgstr "--normal Keluarkan diff normal." + +#, fuzzy +#~ msgid "Blend" +#~ msgstr "Name=Smooth Blend" + +#, fuzzy +#~ msgid "" +#~ "If you have entered a file or folder name and a file that contains diff " +#~ "output in the fields in this dialog then this button will be enabled and " +#~ "pressing it will open kompare's main view where the output of the entered " +#~ "file or files from the folder are mixed with the diff output so you can " +#~ "then apply the difference(s) to a file or to the files. " +#~ msgstr "" +#~ "Jika anda telah memasukkan 2 nama fail atau 2 direktori di dalam ruangan " +#~ "pada dialog ini, butang ini akan dihidupkan, dan jika ditekan " +#~ "perbandingan di antara fail atau direktori dimasukkan akan dimulakan." + +#, fuzzy +#~ msgid "Compare Files or Folders" +#~ msgstr "Padam fail atau tidak?" + +#~ msgid "Source" +#~ msgstr "Sumber" + +#~ msgid "Destination" +#~ msgstr "Destinasi" + +#~ msgid "Compare" +#~ msgstr "Banding" + +#, fuzzy +#~ msgid "Compare these files or folders" +#~ msgstr "Bandingkan fail atau direktori ini" + +#, fuzzy +#~ msgid "" +#~ "If you have entered 2 filenames or 2 folders in the fields in this dialog " +#~ "then this button will be enabled and pressing it will start a comparison " +#~ "of the entered files or folders. " +#~ msgstr "" +#~ "Jika anda telah memasukkan 2 nama fail atau 2 direktori di dalam ruangan " +#~ "pada dialog ini, butang ini akan dihidupkan, dan jika ditekan " +#~ "perbandingan di antara fail atau direktori dimasukkan akan dimulakan." + +#~ msgid "Text View" +#~ msgstr "Lihat Teks" + +#, fuzzy +#~ msgid "Source Folder" +#~ msgstr "Tambah _direktori" + +#, fuzzy +#~ msgid "Destination Folder" +#~ msgstr "Tambah _direktori" + +#~ msgid "Source File" +#~ msgstr "Fail Sumber" + +#~ msgid "Destination File" +#~ msgstr "Fail Destinasi" + +#~ msgid "Source Line" +#~ msgstr "Baris Sumber" + +#~ msgid "Destination Line" +#~ msgstr "Baris Destinasi" + +#~ msgid "Difference" +#~ msgstr "Perbezaan" + +#, fuzzy +#~ msgid "Applied: Changes made to %1 line undone" +#~ msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgstr[0] "Telah tukar %1 baris" +#~ msgstr[1] "Telah tukar %1 baris-baris" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "Telah tukar %1 baris" +#~ msgstr[1] "Telah tukar %1 baris-baris" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "Telah masukkan %1 baris" +#~ msgstr[1] "Telah masukkan %1 baris-baris" + +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "Telah padam %1 baris" +#~ msgstr[1] "Telah padam %1 baris-baris" + +#~ msgid "Unknown" +#~ msgstr "Tidak Diketahui" + +#~ msgid "KompareNavTreePart" +#~ msgstr "KompareNavTreePart" + +#~ msgid "Author" +#~ msgstr "Penulis" + +#~ msgid "Save &All" +#~ msgstr "Simp&an Semua" + +#, fuzzy +#~ msgid "Save &Diff..." +#~ msgstr "%s: diff gagal: " + +#~ msgid "Swap Source with Destination" +#~ msgstr "Swap Sumber dengan Destinasi" + +#~ msgid "Show Statistics" +#~ msgstr "Papar Statistik" + +#~ msgid "Diff Options" +#~ msgstr "Pilihan Diff" + +#, fuzzy +#~ msgid "*.diff *.dif *.patch|Patch Files" +#~ msgstr "--diff-program=PROGRAM Guna PROGRAM untuk membanding fail." + +#~ msgid "Save .diff" +#~ msgstr "Simpan .diff" + +#~ msgid "File Exists" +#~ msgstr "Fail Wujud" + +#~ msgid "Overwrite" +#~ msgstr "Tindih" + +#, fuzzy +#~ msgid "Do Not Overwrite" +#~ msgstr "_Jangan Format" + +#~ msgid "KomparePart" +#~ msgstr "KomparePart" + +#~ msgid "Running diff..." +#~ msgstr "Laksana diff..." + +#, fuzzy +#~ msgid "Parsing diff output..." +#~ msgstr "--normal Keluarkan diff normal." + +#, fuzzy +#~ msgid "Comparing file %1 with file %2" +#~ msgstr "%s: tidak sepadan dengan fail gmon pertama\n" + +#~ msgid "Comparing files in %1 with files in %2" +#~ msgstr "Membandingkan fail dalam %1 dengan fail dalam %2" + +#, fuzzy +#~ msgid "Viewing diff output from %1" +#~ msgstr "-n --rcs Keluarkan diff format RCS." + +#, fuzzy +#~ msgid "" +#~ "You have made changes to the destination file(s).\n" +#~ "Would you like to save them?" +#~ msgstr "" +#~ "Anda telah membuat perubahan pada destinasi.\n" +#~ "Anda mahu simpan perubahan?" + +#~ msgid "Save Changes?" +#~ msgstr "Simpan Perubahan?" + +#~ msgid "Unified" +#~ msgstr "Disatukan" + +#~ msgid "Context" +#~ msgstr "Konteks" + +#~ msgid "RCS" +#~ msgstr "RCS" + +#~ msgid "Ed" +#~ msgstr "Ed" + +#~ msgid "Normal" +#~ msgstr "Normal" + +#~ msgid "" +#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " +#~ "available." +#~ msgstr "" +#~ "Tiada fail diff, atau tiada 2 fail yang telah dibandingkan. Oleh itu, " +#~ "tiada stat dapatditunjukkan." + +#~ msgid "Diff Statistics" +#~ msgstr "Statistik Diff" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Old file: %1\n" +#~ "New file: %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Number of differences: %5" +#~ msgstr "" +#~ "Statistik:\n" +#~ "\n" +#~ "Fail lama %1\n" +#~ "Fail baru %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Jumlah perbezaan: %5" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Number of files in diff file: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Current old file: %3\n" +#~ "Current new file: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Number of differences: %6" +#~ msgstr "" +#~ "Statistik:\n" +#~ "\n" +#~ "Jumlah fail dalam fail diff: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Fail lama semasa: %3\n" +#~ "Fail baru semasa: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Jumlah perbezaan: %6" + +#, fuzzy +#~ msgid "&File" +#~ msgstr "Fail" + +#~ msgid "&Difference" +#~ msgstr "Per&bezaaan" + +#, fuzzy +#~ msgid "&Settings" +#~ msgstr "Tetapan Lain-lain" + +#~ msgid "Preferences" +#~ msgstr "Keutamaan" + +#, fuzzy +#~ msgid "View" +#~ msgstr "Lihat Teks" + +#, fuzzy +#~ msgid "View Settings" +#~ msgstr "Tetapan Lain-lain" + +#~ msgid "Diff" +#~ msgstr "Diff" + +#~ msgid "Diff Settings" +#~ msgstr "Tetapan Diff" + +#~ msgid "Run Diff In" +#~ msgstr "Laksana Diff Dalam" + +#~ msgid "Command Line" +#~ msgstr "Baris Arahan" + +#~ msgid "cd dir && diff -udHprNa -- source destination" +#~ msgstr "cd dir && diff -udHprNa -- destinasi sumber" + +#, fuzzy +#~ msgid "Options" +#~ msgstr "Pili&han" + +#~ msgid "Look for smaller changes" +#~ msgstr "Lihat kepada perubahan kecil" + +#~ msgid "Optimize for large files" +#~ msgstr "Optimumkan untuk fail besar" + +#~ msgid "Ignore changes in case" +#~ msgstr "Abaikan perubahan pada 'case'" + +#~ msgid "Expand tabs to spaces" +#~ msgstr "Lebarkan tab kepada senggang" + +#~ msgid "Ignore added or removed empty lines" +#~ msgstr "Abaikan tambahan atau pemadaman baris kosong" + +#~ msgid "Ignore changes in whitespace" +#~ msgstr "Abaikan perubahan di dalam ruang kosong" + +#~ msgid "Show function names" +#~ msgstr "Paparkan nama fungsi" + +#, fuzzy +#~ msgid "Compare folders recursively" +#~ msgstr "Patutkah saya buat secara rekursif ?" + +#~ msgid "Treat new files as empty" +#~ msgstr "Layan fail sebagai kosong" + +#~ msgid "Format" +#~ msgstr "Format" + +#~ msgid "Side-by-side" +#~ msgstr "Sebelah-sebelah" + +#~ msgid "Number of context lines:" +#~ msgstr "Nombor dari baris konteks:" + +#, fuzzy +#~ msgid "Files" +#~ msgstr "Fail" + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "&Paparan" + +#, fuzzy +#~ msgid "Diff Program" +#~ msgstr "Keluar program" + +#~ msgid "Output Format" +#~ msgstr "Format Keluaran" + +#~ msgid "Lines of Context" +#~ msgstr "Baris Konteks" + +#~ msgid "General" +#~ msgstr "Umum" + +#, fuzzy +#~| msgid "Treat new files as empty" +#~ msgid "&Treat new files as empty" +#~ msgstr "Layan fail sebagai kosong" + +#, fuzzy +#~ msgid "This option corresponds to the -N diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#~ msgid "&Look for smaller changes" +#~ msgstr "&Lihat pada perubahan kecil" + +#, fuzzy +#~ msgid "This corresponds to the -d diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#~ msgid "O&ptimize for large files" +#~ msgstr "O&ptimumkan untuk fail besar" + +#, fuzzy +#~ msgid "This corresponds to the -H diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#~ msgid "&Ignore changes in case" +#~ msgstr "Aba&ikan perubahan" + +#, fuzzy +#~ msgid "This corresponds to the -i diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#, fuzzy +#~ msgid "Ignore regexp:" +#~ msgstr "Pencarian Regexp %s%s" + +#, fuzzy +#~ msgid "This option corresponds to the -I diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#~ msgid "&Edit..." +#~ msgstr "&Sunting..." + +#~ msgid "Whitespace" +#~ msgstr "Selang" + +#, fuzzy +#~ msgid "E&xpand tabs to spaces in output" +#~ msgstr "-t --expand-tabs Kembang tab kepada ruang dalam keluaran." + +#, fuzzy +#~ msgid "This option corresponds to the -t diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#~ msgid "I&gnore added or removed empty lines" +#~ msgstr "Abaikan tambahan atau buang baris koson&g" + +#, fuzzy +#~ msgid "This option corresponds to the -B diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#~ msgid "Ig&nore changes in the amount of whitespace" +#~ msgstr "Abaika&n perubahan di dalam ruang kosong" + +#, fuzzy +#~ msgid "This option corresponds to the -b diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#, fuzzy +#~ msgid "Ign&ore all whitespace" +#~ msgstr "Abaikan perubahan di dalam ruang kosong" + +#, fuzzy +#~ msgid "This option corresponds to the -w diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#, fuzzy +#~ msgid "Igno&re changes due to tab expansion" +#~ msgstr "Abaikan perubahan di dalam ruang kosong" + +#, fuzzy +#~ msgid "This option corresponds to the -E diff option." +#~ msgstr "Pilihan %s %s tidak dapat ditambah ke %s ini: %s." + +#, fuzzy +#~ msgid "File Pattern to Exclude" +#~ msgstr "gagal untuk glob corak %s: %s\n" + +#, fuzzy +#~ msgid "Exclude" +#~ msgstr "Laluan untuk diabaikan" + +#, fuzzy +#~ msgid "Encoding" +#~ msgstr "pengekodan tidak diketahui `%s'" + +#~ msgid "Colors" +#~ msgstr "Warna" + +#~ msgid "Removed color:" +#~ msgstr "Warna dibuang" + +#~ msgid "Changed color:" +#~ msgstr "Warna diubah:" + +#~ msgid "Added color:" +#~ msgstr "Warna ditambah:" + +#~ msgid "Applied color:" +#~ msgstr "Warna diterap:" + +#~ msgid "Mouse Wheel" +#~ msgstr "Roda Tetikus" + +#~ msgid "Number of lines:" +#~ msgstr "Nombor dari baris:" + +#, fuzzy +#~ msgid "Tabs to Spaces" +#~ msgstr "Penukaran tab ditaip kepada ruang" + +#, fuzzy +#~ msgid "Text Font" +#~ msgstr "Tetap Font" + +#~ msgid "Font:" +#~ msgstr "Font:" + +#~ msgid "Size:" +#~ msgstr "Saiz:" + +#, fuzzy +#~ msgid "Fonts" +#~ msgstr "Font:" + +#, fuzzy +#~ msgid "" +#~ "A program to view the differences between files and optionally generate a " +#~ "diff" +#~ msgstr "" +#~ "Program untuk melihat perbezaan di antara fail dan menjana diff jika " +#~ "dipilih." + +#~ msgid "Kompare" +#~ msgstr "Kompare" + +#, fuzzy +#~| msgid "(c) 2001-2004, John Firebaugh and Otto Bruggeman" +#~ msgid "" +#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " +#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" +#~ msgstr "(c) 2001-2004, John Firebaugh and Otto Bruggeman" + +#, fuzzy +#~ msgid "Kompare icon artist" +#~ msgstr "KomparePart" + +#, fuzzy +#~ msgid "A lot of good advice" +#~ msgstr "Selamat berjaya dengan Mandriva Linux!" + +#~ msgid "Cervisia diff viewer" +#~ msgstr "Peninjau diff Cervisia" + +#, fuzzy +#~ msgid "Compare these files or folder" +#~ msgstr "Bandingkan fail atau direktori ini" + +#, fuzzy +#~ msgid "Could not find our KompareViewPart." +#~ msgstr "Tidak dapat menjumpai konfigurasi X" + +#, fuzzy +#~ msgid "Could not find our KompareNavigationPart." +#~ msgstr "Tidak dapat menjumpai konfigurasi X" + +#~ msgid "A&ppearance" +#~ msgstr "&Paparan" + +#, fuzzy +#~ msgid "&Diff" +#~ msgstr "%s: diff gagal: " + +#~ msgid "&Format" +#~ msgstr "&Format" + +#~ msgid "O&ptions" +#~ msgstr "Pili&han" + +#, fuzzy +#~ msgid "Hide T&ext View" +#~ msgstr "Lihat status faks" diff --git a/po/nb/libkomparediff2.po b/po/nb/libkomparediff2.po index 4b59699..5243a61 100644 --- a/po/nb/libkomparediff2.po +++ b/po/nb/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2013-04-08 21:44+0200\n" "Last-Translator: Bjørn Steensrud \n" "Language-Team: Norwegian Bokmål \n" @@ -22,55 +22,55 @@ msgstr "" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -79,7 +79,7 @@ msgstr "" "Ingen modeller eller ingen forskjeller, denne fila: %1, er ikke " "en gyldig diff-fil." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Det var problemer med å legge på diff %1 på fila %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,18 +95,18 @@ msgid "" msgstr "" "Det var problemer med å legge på diff %1 på mappa %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Klarte ikke åpne en midlertidig fil." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Klarte ikke skrive til den midlertidige fila %1, sletter den." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -115,7 +115,7 @@ msgstr "" "Kunne ikke opprette målmappa %1.\n" "Fila ble ikke lagret." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Du kan kopiere den manuelt til det " "riktige stedet." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Klarte ikke tolke utdata fra diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Filene er identiske." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Klarte ikke skrive til den midlertidige fila." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/nds/libkomparediff2.po b/po/nds/libkomparediff2.po index 53cc2f7..8db71fe 100644 --- a/po/nds/libkomparediff2.po +++ b/po/nds/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2011-09-05 22:49+0200\n" "Last-Translator: Manfred Wiese \n" "Language-Team: Low Saxon \n" @@ -19,63 +19,63 @@ msgstr "" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "Verscheel &anwennen" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "Verscheel &torüchnehmen" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "All a&nwennen" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "All Ännern &torüchnehmen" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "&Verleden Datei" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "&Nakamen Datei" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "&Verleden Verscheel" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "&Nakamen Verscheel" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -84,7 +84,7 @@ msgstr "" "Keen Modellen oder keen Verschelen. De Datei %1 is keen gellen " "Verscheeldatei." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Bi't Anwennen vun den Verscheel %1 op de Datei %2 hett dat " "Problemen geven." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -102,19 +102,19 @@ msgstr "" "Bi't Anwennen vun den Verscheel %1 na den Orner %2 hett " "dat Problemen geven." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Temporeerdatei lett sik nich opmaken." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Nich mööglich, na de Temporeerdatei %1 to schrieven. Se warrt " "wegdaan." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -123,7 +123,7 @@ msgstr "" "De Teelorner %1 lett sik nich opstellen.\n" "De Datei wöör nich sekert." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Du kannst ehr vun Hand na " "de richtige Steed koperen." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Diff-Utgaav lett sik nich inlesen." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "De Dateien sünd liek." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Nich mööglich, na de Temporeerdatei to schrieven." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ne/libkomparediff2.po b/po/ne/libkomparediff2.po new file mode 100644 index 0000000..76d22ae --- /dev/null +++ b/po/ne/libkomparediff2.po @@ -0,0 +1,841 @@ +# translation of kompare.po to Nepali +# shyam krishna bal , 2007. +# Nabin Gautam , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2007-08-20 13:09+0545\n" +"Last-Translator: Nabin Gautam \n" +"Language-Team: Nepali \n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n !=1\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "भिन्नता लागू गर्नुहोस्" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "भिन्नता लागू नगर्नुहोस्" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "सबै लागू गर्नुहोस्" + +#: modellist.cpp:61 +#, fuzzy, kde-format +#| msgid "&Unapply All" +msgctxt "@action" +msgid "&Unapply All" +msgstr "सबै लागू नगर्नुहोस्" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "अघिल्लो फाइल" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "पछिल्लो फाइल" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "अघिल्लो फरक" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "पछिल्लो फरक" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "कुनै नमूना वा भिन्नता छैन, यो फाइल: %1, वैध भिन्न फाइल होइन ।" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" +"त्यहाँ फाइल %2 मा भिन्नता %1 लागू गर्दा समस्याहरू थियो ।" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" +"त्यहाँ फोल्डर %2 मा भिन्नता %1 लागू गर्दा समस्याहरू थियो ।" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "अस्थायी फाइल खोल्न सकेन ।" + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr " यसलाई मेटेर, अस्थायी फाइल%1 मा हेर्न सकेन ।" + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"गन्तब्य डाइरेक्टरी %1 सिर्जना गर्न सकेन ।\n" +"फाइल बचत गरिएको छैन ।" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"गन्तब्य स्थान %1 मा अस्थायी फाइल अपलोड गर्न सकेन । अस्थायी फाइल अझै: " +"%2 अन्तर्गत उपलब्ध छ । तपाईँ यसलाई म्यानुअल तरिकाले दायाँपट्टि प्रतिलिपि गर्न " +"सक्नुहुन्छ ।" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "फरक निर्गात पद वर्णन गर्न सकेन ।" + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "फाइलहरू समान छन् ।" + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "अस्थायी फाइलमा लेख्न सकेन ।" + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "श्यामकृष्ण बल" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "shyamkrishna_bal@yahoo.com" + +#~ msgid "Could not load our KompareViewPart." +#~ msgstr "हाम्रो तुलना दृश्य भाग लोड गर्न सकेन ।" + +#~ msgid "Could not load our KompareNavigationPart." +#~ msgstr "हाम्रो तुलना नेभिगेसन भाग लोड गर्न सकेन ।" + +#~ msgid "&Open Diff..." +#~ msgstr "फरक खोल्नुहोस्..." + +#~ msgid "&Compare Files..." +#~ msgstr "फाइलहरू तुलना गर्नुहोस्..." + +#~ msgid "&Blend URL with Diff..." +#~ msgstr "फरक रूपमा यूआरएल मिसाउँनुहोस्..." + +#~ msgid "Show T&ext View" +#~ msgstr "पाठ दृश्य देखाउनुहोस्" + +#~ msgid " 0 of 0 differences " +#~ msgstr "० को ० फरकहरू" + +#~ msgid " 0 of 0 files " +#~ msgstr "० को ० फाइलहरू" + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] " %2 को %1 फाइल " +#~ msgstr[1] " %2 को %1 फाइलहरू " + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] " %1 फाइल " +#~ msgstr[1] " %1 फाइलहरू " + +#~ msgid " %2 of %1 difference, %3 applied " +#~ msgid_plural " %2 of %1 differences, %3 applied " +#~ msgstr[0] " %2 को %1 भिन्नता, %3 लागू गरियो " +#~ msgstr[1] " %2 को %1 भिन्नताहरू, %3 लागू गरियो " + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] " %1 भिन्नता " +#~ msgstr[1] " %1 भिन्नताहरू" + +#~ msgid "Blend File/Folder with diff Output" +#~ msgstr "फरक निर्गातसँग फाइल/फोल्डर मिसाउँनुहोस्" + +#~ msgid "File/Folder" +#~ msgstr "फाइल/फोल्डर" + +#~ msgid "Diff Output" +#~ msgstr "फरक निर्गत" + +#~ msgid "Blend" +#~ msgstr "मिसाउनुहोस्" + +#~ msgid "Blend this file or folder with the diff output" +#~ msgstr "फरक निर्गातसँग यो फाइल वा फोल्डर मिसाउँनुहोस्" + +#~ msgid "" +#~ "If you have entered a file or folder name and a file that contains diff " +#~ "output in the fields in this dialog then this button will be enabled and " +#~ "pressing it will open kompare's main view where the output of the entered " +#~ "file or files from the folder are mixed with the diff output so you can " +#~ "then apply the difference(s) to a file or to the files. " +#~ msgstr "" +#~ "यदि तपाईँले फाइल वा फोल्डर प्रविष्ट गर्नुभयो जसले यो संवाद भित्र फाँटहरूमा फरक निर्गात " +#~ "समाविष्ट गर्दछ भने यो बटन सक्षम पारिनेछ र यसलाई थिच्नाले तुलनाको मुख्य दृश्य खुल्नेछ जहाँ " +#~ "फोल्डरबाट प्रविष्ट गरेको फाइल वा फाइलहरूको निर्गात विभिन्न निर्गातसँग मिश्रित " +#~ "गरिएको हुन्छ त्यसैले तपाईँले त्यसपछि फाटइलहरूमा वा फाइलमा भिन्नताहरू लागू गर्न सक्नुहुन्छ ।" + +#~ msgid "Compare Files or Folders" +#~ msgstr "फाइल वा फोल्डर तुलना गर्नुहोस्" + +#~ msgid "Source" +#~ msgstr "स्रोत" + +#~ msgid "Destination" +#~ msgstr "गन्तब्य" + +#~ msgid "Compare" +#~ msgstr "तुलना गर्नुहोस्" + +#~ msgid "Compare these files or folders" +#~ msgstr "यी फाइलहरू वा फोल्डरहरू तुलना गर्नुहोस्" + +#~ msgid "" +#~ "If you have entered 2 filenames or 2 folders in the fields in this dialog " +#~ "then this button will be enabled and pressing it will start a comparison " +#~ "of the entered files or folders. " +#~ msgstr "" +#~ "यदि तपाईँले यो संवादमा फाँट भित्र २ फाइलनाम वा २ फोल्डरहरू प्रविष्ट गर्नुभयो भने " +#~ "त्यसपछि यो बटन सक्षम पारिनेछ र यसलाई थिच्नाले प्रविष्ट भएको फाइलहरू वा फोल्डरहरूको " +#~ "तुलना सुरु गर्नेछ ।" + +#~ msgid "Text View" +#~ msgstr "पाठ दृश्य" + +#~ msgid "Source Folder" +#~ msgstr "स्रोत फोल्डर" + +#~ msgid "Destination Folder" +#~ msgstr "गन्तब्य फोल्डर" + +#~ msgid "Source File" +#~ msgstr "स्रोत फाइल" + +#~ msgid "Destination File" +#~ msgstr "गन्तब्य फाइल" + +#~ msgid "Source Line" +#~ msgstr "स्रोत रेखा" + +#~ msgid "Destination Line" +#~ msgstr "गन्तब्य रेखा" + +#~ msgid "Difference" +#~ msgstr "फरक" + +#, fuzzy +#~| msgid "Applied: Changes made to %1 line undone" +#~| msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgid "Applied: Changes made to %1 line undone" +#~ msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgstr[0] "लागू गरिएको: %1 रेखामा परिवर्तनहरू भएन" +#~ msgstr[1] "लागू गरिएको: %1 रेखाहरूमा परिवर्तनहरू भएन" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "परिवर्तन गरिएको %1 रेखा" +#~ msgstr[1] "परिवर्तन गरिएको %1 रेखाहरू" + +#~ msgid "Applied: Insertion of %1 line undone" +#~ msgid_plural "Applied: Insertion of %1 lines undone" +#~ msgstr[0] "लागू गरिएको: %1 रेखाको घुसाइ भएन" +#~ msgstr[1] "लागू गरिएको: %1 रेखाहरूको घुसाई भएन" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "घुसाइएको %1 रेखा" +#~ msgstr[1] "घुसाइएको %1 रेखाहरू" + +#~ msgid "Applied: Deletion of %1 line undone" +#~ msgid_plural "Applied: Deletion of %1 lines undone" +#~ msgstr[0] "लागू गरिएको: %1 रेखा मेटिएन" +#~ msgstr[1] "लागू गरिएको: %1 रेखाहरू मेटिएन" + +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "मेटिएको %1 रेखा" +#~ msgstr[1] "मेटिएको %1 रेखाहरू" + +#~ msgid "Unknown" +#~ msgstr "अज्ञात" + +#~ msgid "KompareNavTreePart" +#~ msgstr "KompareNavTreePart" + +#~ msgid "Author" +#~ msgstr "लेखक" + +#~ msgid "Save &All" +#~ msgstr "सबै बचत गर्नुहोस्" + +#, fuzzy +#~| msgid "Save .&diff..." +#~ msgid "Save &Diff..." +#~ msgstr " .&diff बचत गर्नुहोस्..." + +#~ msgid "Swap Source with Destination" +#~ msgstr "गन्तब्यसँग स्रोत स्वाप गर्नुहोस्" + +#~ msgid "Show Statistics" +#~ msgstr "तथ्याङ्क देखाउनुहोस्" + +#~ msgid "The URL %1 cannot be downloaded." +#~ msgstr "यूआरएल %1 डाउनलोड गर्न सकिँदैन ।" + +#~ msgid "The URL %1 does not exist on your system." +#~ msgstr "यूआरएल %1 तपाईँको प्रणालीमा अवस्थित छैन ।" + +#~ msgid "Diff Options" +#~ msgstr "फरक विकल्प" + +#~ msgid "*.diff *.dif *.patch|Patch Files" +#~ msgstr "*.diff *.dif *.patch|प्याच फाइल" + +#~ msgid "Save .diff" +#~ msgstr ".diff बचत गर्नुहोस्" + +#~ msgid "The file exists or is write-protected; do you want to overwrite it?" +#~ msgstr "फाइल अवस्थित छ वा सुरक्षित लेखिएको छ; तपाईँ यसलाई अधिलेखन गर्नुहुन्छ ?" + +#~ msgid "File Exists" +#~ msgstr "फाइल अवस्थित छ" + +#~ msgid "Overwrite" +#~ msgstr "अधिलेखन गर्नुहोस्" + +#~ msgid "Do Not Overwrite" +#~ msgstr "अधिलेखन नगर्नुहोस्" + +#~ msgid "KomparePart" +#~ msgstr "तुलना भाग" + +#~ msgid "Running diff..." +#~ msgstr "फरक चलिरहेको छ..." + +#~ msgid "Parsing diff output..." +#~ msgstr "फरक निर्गात पद वर्णन हुँदैछ..." + +#~ msgid "Comparing file %1 with file %2" +#~ msgstr "फाइल %1 फाइल %2 सँग तुलना गर्दै" + +#~ msgid "Comparing files in %1 with files in %2" +#~ msgstr "फाइल %2 भित्र %1 मा फाइलहरू तुलना गर्दै" + +#~ msgid "Viewing diff output from %1" +#~ msgstr "%1 बाट फरक निर्गात हेर्दै" + +#~ msgid "Blending diff output from %1 into file %2" +#~ msgstr "फाइल %2 मा %1 बाट फरक निर्गात मिलाउँदै" + +#~ msgid "Blending diff output from %1 into folder %2" +#~ msgstr "फोल्डर %2 भित्र %1 बाट फरक निर्गात मिसाउँदै" + +#~ msgid "" +#~ "You have made changes to the destination file(s).\n" +#~ "Would you like to save them?" +#~ msgstr "" +#~ "तपाईँले गन्तब्य फाइलहरूमा परिवर्तनहरू बनाउनुपर्छ ।\n" +#~ "तपाईँ तिनीहरूलाई बचत गर्न चाहनुहुन्छ ?" + +#~ msgid "Save Changes?" +#~ msgstr "परिवर्तनहरू बचत गर्नुहुन्छ ?" + +#~ msgid "Unified" +#~ msgstr "एकीकृत" + +#~ msgid "Context" +#~ msgstr "प्रसङ्ग" + +#~ msgid "RCS" +#~ msgstr "आरसीएस" + +#~ msgid "Ed" +#~ msgstr "ईडी" + +#~ msgid "Normal" +#~ msgstr "सामान्य" + +#~ msgid "" +#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " +#~ "available." +#~ msgstr "फरक फाइल छैन, वा २ फाइलहरू फरक छैनन् । त्यसैले कुनै तथ्याङ्क उपलब्ध छैन ।" + +#~ msgid "Diff Statistics" +#~ msgstr "फरक तथ्याङ्क" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Old file: %1\n" +#~ "New file: %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Number of differences: %5" +#~ msgstr "" +#~ "तथ्याङ्क:\n" +#~ "\n" +#~ "पुरानो फाइल: %1\n" +#~ "नयाँ फाइल: %2\n" +#~ "\n" +#~ "ढाँचा: %3\n" +#~ "टुक्राहरूको सङ्ख्या: %4\n" +#~ "फरकहरूको सङ्ख्या: %5" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Number of files in diff file: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Current old file: %3\n" +#~ "Current new file: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Number of differences: %6" +#~ msgstr "" +#~ "तथ्याङ्क:\n" +#~ "\n" +#~ "फरक फाइलमा फाइलहरूको सङ्ख्या: %1\n" +#~ "ढाँचा: %2\n" +#~ "\n" +#~ "हालको पुरानो फाइल: %3\n" +#~ "हालको नयाँ फाइल: %4\n" +#~ "\n" +#~ "टुक्राहरूको सङ्ख्या: %5\n" +#~ "फरकहरूको सङ्ख्या: %6" + +#, fuzzy +#~ msgid "&File" +#~ msgstr "फाइल" + +#~ msgid "&Difference" +#~ msgstr "फरक" + +#, fuzzy +#~ msgid "&Settings" +#~ msgstr "सेटिङ हेर्नुहोस्" + +#~ msgid "Preferences" +#~ msgstr "प्राथमिकता" + +#, fuzzy +#~ msgid "View" +#~ msgstr "पाठ दृश्य" + +#~ msgid "View Settings" +#~ msgstr "सेटिङ हेर्नुहोस्" + +#~ msgid "Diff" +#~ msgstr "फरक" + +#~ msgid "Diff Settings" +#~ msgstr "फरक सेटिङ" + +#~ msgid "Run Diff In" +#~ msgstr "फरक बीच चलाउँनुहोस्" + +#~ msgid "Command Line" +#~ msgstr "आदेश रेखा" + +#~ msgid "cd dir && diff -udHprNa -- source destination" +#~ msgstr "cd dir && diff -udHprNa -- स्रोत गन्तव्य" + +#, fuzzy +#~ msgid "Options" +#~ msgstr "विकल्प" + +#~ msgid "Look for smaller changes" +#~ msgstr "साना परिवर्तनका लागि हेर्नुहोस्" + +#~ msgid "Optimize for large files" +#~ msgstr "ठूला फाइलहरूका लागि अधिक्तम गर्नुहोस्" + +#~ msgid "Ignore changes in case" +#~ msgstr "यदि यसो हो भने परिवर्तनहरू उपेक्षा गर्नुहोस्" + +#~ msgid "Expand tabs to spaces" +#~ msgstr "खाली स्थानहरूमा ट्याबहरू विस्तार गर्नुहोस्" + +#~ msgid "Ignore added or removed empty lines" +#~ msgstr "थपिएको वा हटाइएको खाली रेखाहरू उपेक्षा गर्नुहोस्" + +#~ msgid "Ignore changes in whitespace" +#~ msgstr "सेतो खाली स्थानमा परिवर्तनहरू उपेक्षा गर्नुहोस्" + +#~ msgid "Show function names" +#~ msgstr "प्रकार्य नाम देखाउनुहोस्" + +#~ msgid "Compare folders recursively" +#~ msgstr "पुनरावृत्तिक रूपमा फोल्डरहरू तुलना गर्नुहोस्" + +#~ msgid "Treat new files as empty" +#~ msgstr "नयाँ फाइलहरूलाई खाली सम्झनुहोस्" + +#~ msgid "Format" +#~ msgstr "ढाँचा" + +#~ msgid "Side-by-side" +#~ msgstr "सँगसँगै" + +#~ msgid "Number of context lines:" +#~ msgstr "रेखा प्रसङ्गको सङ्ख्या:" + +#, fuzzy +#~ msgid "Files" +#~ msgstr "फाइल" + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "देखावट" + +#~ msgid "Diff Program" +#~ msgstr "फरक कार्यक्रम" + +#~ msgid "" +#~ "You can select a different diff program here. On Solaris the standard " +#~ "diff program does not support all the options that the GNU version does. " +#~ "This way you can select that version." +#~ msgstr "" +#~ "तपाईँले यहाँ विभिन्न फरक देखाउने (diff) कार्यक्रम चयन गर्न सक्नुहुन्छ । सोलारिसमा मानक " +#~ "फरक कार्यक्रमले जीएनयू संस्करणले जस्तो सबै विकल्प समर्थन गर्दैन । यो तरीकाले तपाईँले त्यो " +#~ "संस्करण चयन गर्न सक्नुहुन्छ ।" + +#~ msgid "" +#~ "Select the format of the output generated by diff. Unified is the one " +#~ "that is used most frequently because it is very readable. The KDE " +#~ "developers like this format the best so use it for sending patches." +#~ msgstr "" +#~ "फरक रूपमा सिर्जना गरिएका निर्गातको ढाँचा चयन गर्नुहोस् । प्रायजसो धेरै प्रयोग गरिने " +#~ "एकीकृत हो किनभने यो धेरै पढ्न मिल्ने हुन्छ । केडीई विकासकर्ताहरूले सबैभन्दा बढी मन परायो " +#~ "त्यसैले टुक्राहरू पठाउन यो प्रयोग गर्नुहोस् ।" + +#~ msgid "Output Format" +#~ msgstr "निर्गत ढाँचा" + +#~ msgid "Lines of Context" +#~ msgstr "रेखा प्रसङ्ग" + +#~ msgid "" +#~ "The number of context lines is normally 2 or 3. This makes the diff " +#~ "readable and applicable in most cases. More than 3 lines will only bloat " +#~ "the diff unnecessarily." +#~ msgstr "" +#~ "रेखा प्रसङ्गको सङ्ख्या सामन्यतया २ वा ३ हुन्छ । यसले धेरै जसो केसहरूमा फरक रूपमा पढ्ने र " +#~ "लागू गर्ने बनाउँदछ । ३ भन्दा बढी रेखाहरूले अनावश्यक रूपमा फरक तरीकाले फुलाउँनेछ ।" + +#~ msgid "General" +#~ msgstr "सामन्य" + +#, fuzzy +#~| msgid "Treat new files as empty" +#~ msgid "&Treat new files as empty" +#~ msgstr "नयाँ फाइलहरूलाई खाली सम्झनुहोस्" + +#, fuzzy +#~| msgid "This option corresponds to the -I diff option." +#~ msgid "This option corresponds to the -N diff option." +#~ msgstr "यो विकल्पले -I diff विकल्पलाई देखाउँछ ।" + +#~ msgid "&Look for smaller changes" +#~ msgstr "साना परिवर्तनहरूका लागि हेर्नुहोस्" + +#~ msgid "This corresponds to the -d diff option." +#~ msgstr "यसले -d diff विकल्पलाई देखाउँछ ।" + +#~ msgid "O&ptimize for large files" +#~ msgstr "ठूला फाइलहरूका लागि अधिक्तम गर्नुहोस्" + +#~ msgid "This corresponds to the -H diff option." +#~ msgstr "यसले -H diff विकल्पलाई देखाउँछ ।" + +#~ msgid "&Ignore changes in case" +#~ msgstr "यी केसमा परिवर्तनहरू उपेक्षा गर्नुहोस्" + +#~ msgid "This corresponds to the -i diff option." +#~ msgstr "यसले -i diff विकल्पलाई देखाउँछ ।" + +#~ msgid "Ignore regexp:" +#~ msgstr "regexp उपेक्षा गर्नुहोस्:" + +#~ msgid "This option corresponds to the -I diff option." +#~ msgstr "यो विकल्पले -I diff विकल्पलाई देखाउँछ ।" + +#~ msgid "" +#~ "Add the regular expression here that you want to use\n" +#~ "to ignore lines that match it." +#~ msgstr "" +#~ "यहाँ तपाईँले नियमित अभिव्यक्ति थप्नुहोस् जुन तपाईँले यससँग मिल्ने\n" +#~ "रेखाहरू उपेक्षा गर्न प्रयोग गर्न चाहनुहुन्छ ।" + +#~ msgid "&Edit..." +#~ msgstr "सम्पादन गर्नुहोस्..." + +#~ msgid "" +#~ "Clicking this will open a regular expression dialog where\n" +#~ "you can graphically create regular expressions." +#~ msgstr "" +#~ "यो क्लिक गर्नाले नियमित अभिव्यक्ति संवाद खोल्नेछ जहाँ\n" +#~ "तपाईँ ग्राफिकल रूपमा नियमित अभिव्यक्तिहरू सिर्जना गर्न सक्नुहुन्छ ।" + +#~ msgid "Whitespace" +#~ msgstr "सेतो खाली स्थान" + +#~ msgid "E&xpand tabs to spaces in output" +#~ msgstr "निर्गात भित्र खाली स्थानहरूमा ट्याबहरू विस्तार गर्नुहोस्" + +#~ msgid "This option corresponds to the -t diff option." +#~ msgstr "यो विकल्पले -t diff विकल्पलाई देखाउँछ ।" + +#~ msgid "I&gnore added or removed empty lines" +#~ msgstr "थपिएका वा हटाइएका खाली रेखाहरू उपेक्षा गर्नुहोस्" + +#~ msgid "This option corresponds to the -B diff option." +#~ msgstr "यो विकल्पले -B diff विकल्पलाई देखाउँछ ।" + +#~ msgid "Ig&nore changes in the amount of whitespace" +#~ msgstr "सेतो स्थानको मात्रामा परिवर्तनहरू उपेक्षा गर्नुहोस्" + +#~ msgid "This option corresponds to the -b diff option." +#~ msgstr "यो विकल्पले -b diff विकल्पलाई देखाउँछ ।" + +#~ msgid "Ign&ore all whitespace" +#~ msgstr "सबै खाली स्थान उपेक्षा गर्नुहोस्" + +#~ msgid "This option corresponds to the -w diff option." +#~ msgstr "यो विकल्पले -w diff विकल्पलाई देखाउँछ ।" + +#~ msgid "Igno&re changes due to tab expansion" +#~ msgstr "ट्याब विस्तारको कारणले परिवर्तनहरू उपेक्षा गर्नुहोस्" + +#~ msgid "This option corresponds to the -E diff option." +#~ msgstr "यो विकल्पले -E diff विकल्पलाई देखाउँछ ।" + +#~ msgid "File Pattern to Exclude" +#~ msgstr "हटाउनुपर्ने फाइल बाँन्की" + +#~ msgid "" +#~ "If this is checked you can enter a shell pattern in the text box on the " +#~ "right or select entries from the list." +#~ msgstr "" +#~ "यदि यो जाँच गरियो भने तपाईँले दायाँपट्टि पाठ बाकसमा शेल बाँन्की प्रविष्ट गर्न सक्नुहुन्छ " +#~ "वा सूचीबाट प्रविष्टिहरू चयन गर्नुहोस् ।" + +#~ msgid "" +#~ "Here you can enter or remove a shell pattern or select one or more " +#~ "entries from the list." +#~ msgstr "" +#~ "यहाँ तपाईँ शेल बाँन्की प्रविष्ट गर्न वा हटाउन सक्नुहुन्छ वा सूचीबाट एउटा वा धेरै " +#~ "प्रविष्टिहरू चयन गर्नुहोस् ।" + +#~ msgid "File with Filenames to Exclude" +#~ msgstr "हटाउनुपर्ने फाइलनामसँग फाइल" + +#, fuzzy +#~| msgid "" +#~| "If this is checked you can enter a filename in the combo box on the " +#~| "right." +#~ msgid "If this is checked you can enter a filename in the combo box below." +#~ msgstr "" +#~ "यदि यो जाँच गरियो भने तपाईँ दायाँपट्टि कम्बो बाकसमा फाइलनाम प्रविष्ट गर्न सक्नुहुन्छ ।" + +#~ msgid "" +#~ "Here you can enter the URL of a file with shell patterns to ignore during " +#~ "the comparison of the folders." +#~ msgstr "" +#~ "फोल्डरहरूको तुलना गर्दा उपेक्षा गर्न यहाँ तपाईँ शेल बाँन्कीसँग फाइलको यूआरएल प्रविष्ट गर्न " +#~ "सक्नुहुन्छ ।" + +#~ msgid "" +#~ "Any file you select in the dialog that pops up when you click it will be " +#~ "put in the dialog to the left of this button." +#~ msgstr "" +#~ "क्लिक गर्दा पपअप हुने संवादमा तपाईँले चयन गर्नु भएको कुनै फाइललाई यो बटनको बायाँपट्टि " +#~ "संवादमा राखिनेछ ।" + +#, fuzzy +#~| msgid "&Exclude" +#~ msgid "Exclude" +#~ msgstr "हटाउनुहोस्" + +#~ msgid "Encoding" +#~ msgstr "सङ्केतन" + +#~ msgid "Colors" +#~ msgstr "रङ" + +#~ msgid "Removed color:" +#~ msgstr "हटाइएको रङ:" + +#~ msgid "Changed color:" +#~ msgstr "परिवर्तित रङ:" + +#~ msgid "Added color:" +#~ msgstr "थपिएको रङ:" + +#~ msgid "Applied color:" +#~ msgstr "लागू गरिएको रङ:" + +#~ msgid "Mouse Wheel" +#~ msgstr "माउस ह्वील" + +#~ msgid "Number of lines:" +#~ msgstr "रेखाको सङख्या:" + +#~ msgid "Tabs to Spaces" +#~ msgstr "खाली स्थानहरूमा ट्याब" + +#~ msgid "Number of spaces to convert a tab character to:" +#~ msgstr "यसमा ट्याब क्यारेक्टर रूपान्तरण गर्न खाली स्थानहरूको सङ्ख्या:" + +#~ msgid "Text Font" +#~ msgstr "पाठ फन्ट" + +#~ msgid "Font:" +#~ msgstr "फन्ट:" + +#~ msgid "Size:" +#~ msgstr "साइज:" + +#, fuzzy +#~ msgid "Fonts" +#~ msgstr "फन्ट:" + +#~ msgid "" +#~ "A program to view the differences between files and optionally generate a " +#~ "diff" +#~ msgstr "फाइलहरू र वैकल्पिक रूपमा सिर्जना गरेको फरक बीच भिन्नता हेर्ने कार्यक्रम" + +#~ msgid "Kompare" +#~ msgstr "तुलना गर्नुहोस्" + +#, fuzzy +#~| msgid "(c) 2001-2004, John Firebaugh and Otto Bruggeman" +#~ msgid "" +#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " +#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" +#~ msgstr "(c) 2001-2004, जोन फायरबह र ओटो ब्रुगम्यान" + +#~ msgid "Kompare icon artist" +#~ msgstr "प्रतिमा कलाकार तुलना गर्नुहोस्" + +#~ msgid "A lot of good advice" +#~ msgstr "अधिक मात्रामा सही सुझाव" + +#~ msgid "Cervisia diff viewer" +#~ msgstr "सर्भिसिया फरक द्रष्टा" + +#~ msgid "This will compare URL1 with URL2" +#~ msgstr "यसले यूआरएल१ लाई यूआरएल२ सँग तुलना गर्नेछ" + +#~ msgid "" +#~ "This will open URL1 and expect it to be diff output. URL1 can also be a " +#~ "'-' and then it will read from standard input. Can be used for instance " +#~ "for cvs diff | kompare -o -. Kompare will do a check to see if it can " +#~ "find the original file(s) and then blend the original file(s) into the " +#~ "diffoutput and show that in the viewer. -n disables the check." +#~ msgstr "" +#~ "यसले यूआरएल१ खोल्नेछ र फरक निर्गतको रूपमा अपेक्षा गर्दछ । यूआरएल१ '-' पनि हुन सक्छ र " +#~ "त्यसपछि यो मानक निर्गातबाट पढनेछ । सीभीएसdiff | kompare -o - का लागि " +#~ "उदाहरणको रूपमा प्रयोग गर्न सकिन्छ । Kompare ले यसले मौलिक फाइलहरू फेला पार्यो या " +#~ "पारेन जाँच गर्नेछ र फरक निर्गातमा मौलिक फाइलहरू मिसाउँदछ र त्यसलाई द्रष्टामा " +#~ "देखाउँनुहोस् । -n ले जाँच अक्षम पार्दछ ।" + +#~ msgid "" +#~ "This will blend URL2 into URL1, URL2 is expected to be diff output and " +#~ "URL1 the file or folder that the diffoutput needs to be blended into. " +#~ msgstr "" +#~ "यसले यूआरएल२ लाई यूआरएल१ मा मिसाउँदछ, यूआरएल२ लाई फरक निर्गातको रूपमा अपेक्षा " +#~ "गरिन्छ र यूआरएल१ लाई फाइल वा फोल्डरको रूपमा अपेक्षा गरिन्छ जहाँ फरक निर्गात एक " +#~ "आपसमा मिसाइन्छ ।" + +#~ msgid "" +#~ "Disables the check for automatically finding the original file(s) when " +#~ "using '-' as URL with the -o option." +#~ msgstr "" +#~ "-o विकल्पसँग यूआरएलको रूपमा '-' प्रयोग गर्दा स्वाचलित रूपमा मौलिक फाइलहरू फेला " +#~ "पार्नका लागि जाँच अक्षम गर्दछ ।" + +#~ msgid "" +#~ "Use this to specify the encoding when calling it from the command line. " +#~ "It will default to the local encoding if not specified." +#~ msgstr "" +#~ "आदेश रेखाबाट यसलाई बोलाउँदा सङ्केतन निर्दिष्ट गर्न यो प्रयोग गर्नुहोस् । यदि निर्दिष्ट " +#~ "गरिएको छैन भने यसले स्थानिय सङ्केतनमा पूर्वनिर्धारित गर्नेछ ।" + +#~ msgid "Compare these files or folder" +#~ msgstr "यी फाइलहरू वा फोल्डर तुलना गर्नुहोस्" + +#~ msgid "Could not find our KompareViewPart." +#~ msgstr "हाम्रो तुलना दृश्य भाग फेला पार्न सकेन ।" + +#~ msgid "Could not find our KompareNavigationPart." +#~ msgstr "हाम्रो तुलना नेभिगेसन भाग फेला पार्न सकेन ।" + +#~ msgid "A&ppearance" +#~ msgstr "देखावट" + +#~ msgid "&Diff" +#~ msgstr "फरक" + +#~ msgid "&Format" +#~ msgstr "ढाँचा" + +#~ msgid "O&ptions" +#~ msgstr "विकल्प" + +#~ msgid "Hide T&ext View" +#~ msgstr "पाठ दृश्य लुकाउनुहोस्" diff --git a/po/nl/libkomparediff2.po b/po/nl/libkomparediff2.po index 426cb93..0b742e7 100644 --- a/po/nl/libkomparediff2.po +++ b/po/nl/libkomparediff2.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-04 12:27+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" @@ -17,55 +17,55 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 20.04.0\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "Verschil toep&assen" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Toegep&ast verschil ongedaan maken" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "A&lles toepassen" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Alle toepassi&ngen ongedaan maken" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Vo&rig bestand" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Volgend b&estand" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Vorig verschil" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Volge&nd verschil" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -74,7 +74,7 @@ msgstr "" "Geen modellen of verschillen gevonden, het bestand %1 is geen " "geldig diff-bestand." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Er zijn problemen opgetreden tijdens het toepassen van de diff %1 " "op bestand %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -92,19 +92,19 @@ msgstr "" "Er zijn problemen opgetreden tijdens het toepassen van diff %1 op " "map %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Kon geen tijdelijk bestand openen." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Kon niet naar het tijdelijke bestand %1schrijven. Het wordt " "verwijderd." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -113,7 +113,7 @@ msgstr "" "Kan de doelmap %1 niet aanmaken.\n" "Het bestand is niet opgeslagen." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. U kunt het " "eventueel handmatig verplaatsen naar de juiste locatie." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Kon de diff-uitvoer niet ontleden." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "De bestanden zijn identiek." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Kon niet naar het tijdelijke bestand schrijven." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/nn/libkomparediff2.po b/po/nn/libkomparediff2.po index 3145b30..750bffe 100644 --- a/po/nn/libkomparediff2.po +++ b/po/nn/libkomparediff2.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-11 20:43+0200\n" "Last-Translator: Karl Ove Hufthammer \n" "Language-Team: Norwegian Nynorsk \n" @@ -20,55 +20,55 @@ msgstr "" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Legg over skilnaden" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "T&a vekk skilnaden" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Legg &over alle" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Ta &vekk alle" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fø&rre fil" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "N&este fil" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Førre skilnad" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Neste skilnad" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "Ingen modellar eller ingen skilnadar. Fila %1 er ikkje ei gyldig " "diff-fil." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Det var problem med å leggja over diffen %1 på fila %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,19 +95,19 @@ msgstr "" "Det var problem med å leggja over diffen %1 på mappa %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Klarte ikkje opna mellombelsfil." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Klarte ikkje skriva til den mellombelse fila %1. Ho vert derfor " "sletta." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -116,7 +116,7 @@ msgstr "" "Klarte ikkje oppretta målmappa %1.\n" "Fila vart ikkje lagra." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Du kan kopiera ho manuelt til den " "rette staden." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Klarte ikkje tolka utdata frå diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Filene er like." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Klarte ikkje skriva til den mellombelse fila." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/oc/libkomparediff2.po b/po/oc/libkomparediff2.po new file mode 100644 index 0000000..8051dc7 --- /dev/null +++ b/po/oc/libkomparediff2.po @@ -0,0 +1,243 @@ +# translation of kompare.po to Occitan (lengadocian) +# Copyright (C) 2008 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Yannig Marchegay (Kokoyaya) , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2008-08-05 22:28+0200\n" +"Last-Translator: Yannig Marchegay (Kokoyaya) \n" +"Language-Team: Occitan (lengadocian) \n" +"Language: oc\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "Diferéncia" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Diferéncia" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "&File" +msgctxt "@action" +msgid "N&ext File" +msgstr "&Fichièr" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "Diferéncia" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "Diferéncia" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "" + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "" + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "" + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "" + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Yannig Marchegay (Kokoyaya)" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "yannig@marchegay.org" + +#~ msgid "Navigation" +#~ msgstr "Navigacion" + +#~ msgid "Source" +#~ msgstr "Sorga" + +#~ msgid "Destination" +#~ msgstr "Destinacion" + +#~ msgid "Compare" +#~ msgstr "Comparar" + +#~ msgid "Text View" +#~ msgstr "Visualizacion de tèxt" + +#~ msgid "Destination Folder" +#~ msgstr "Dorsièr de destinacion" + +#~ msgid "Source File" +#~ msgstr "Fichièr font" + +#~ msgid "Unknown" +#~ msgstr "Desconegut" + +#~ msgid "Author" +#~ msgstr "Autor" + +#~ msgid "File Exists" +#~ msgstr "Lo fichièr existís" + +#~ msgid "Overwrite" +#~ msgstr "Remplaçar" + +#~ msgid "Context" +#~ msgstr "Contèxte" + +#~ msgid "Normal" +#~ msgstr "Normal" + +#~ msgid "&Settings" +#~ msgstr "&Paramètres" + +#~ msgid "Preferences" +#~ msgstr "Preferéncias" + +#~ msgid "View" +#~ msgstr "Visualizacion" + +#~ msgid "Command Line" +#~ msgstr "Linha de comanda" + +#~ msgid "Options" +#~ msgstr "Opcions" + +#~ msgid "Format" +#~ msgstr "Format" + +#~ msgid "Main Toolbar" +#~ msgstr "Barra d'espleches principala" + +#~ msgid "Files" +#~ msgstr "Fichièrs" + +#~ msgid "Appearance" +#~ msgstr "Aparéncia" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "&Edit..." +#~ msgstr "&Edicion..." + +#~ msgid "Encoding" +#~ msgstr "Encodatge" + +#~ msgid "Colors" +#~ msgstr "Colors" + +#~ msgid "Font:" +#~ msgstr "Poliça :" + +#~ msgid "Size:" +#~ msgstr "Talha :" + +#, fuzzy +#~| msgid "Font:" +#~ msgid "Fonts" +#~ msgstr "Poliças" + +#~ msgid "Developer" +#~ msgstr "Desvolopaire" + +#~ msgid "Maintainer" +#~ msgstr "Manteneire" diff --git a/po/pa/libkomparediff2.po b/po/pa/libkomparediff2.po index 6ac3068..783dfb8 100644 --- a/po/pa/libkomparediff2.po +++ b/po/pa/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2012-07-05 07:33+0530\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" @@ -18,101 +18,101 @@ msgstr "" "X-Generator: Lokalize 1.4\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "ਅੰਤਰ ਲਾਗੂ(&A)" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "ਅੰਤਰ ਲਾਗੂ ਕਰਨਾ ਵਾਪਸ(&a)" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "ਸਭ ਲਾਗੂ(&l)" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "ਸਭ ਲਾਗੂ ਵਾਪਸ(&U)" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "ਪਿੱਛੇ ਫਾਇਲ(&r)" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "ਅੱਗੇ ਫਾਇਲ(&e)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "ਪਿੱਛੇ ਅੰਤਰ(&P)" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "ਅੱਗੇ ਅੰਤਰ(&N)" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "ਇੱਕ ਆਰਜ਼ੀ ਫਾਇਲ ਖੋਲੀ ਨਹੀਂ ਜਾ ਸਕੀ ਹੈ।" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "ਅੰਤਰ ਆਉਟਪੁੱਟ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "ਫਾਇਲਾਂ ਇੱਕੋ ਜਿਹੀਆਂ ਹੀ ਹਨ।" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "ਫਾਰਮੈਟਫਾਇਲ ਲਿਖੀ ਨਹੀਂ ਜਾ ਸਕੀ ਹੈ।" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/pl/libkomparediff2.po b/po/pl/libkomparediff2.po index d88a857..9534b74 100644 --- a/po/pl/libkomparediff2.po +++ b/po/pl/libkomparediff2.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2021-01-02 11:33+0100\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" @@ -22,59 +22,58 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.08.1\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "Z&astosuj różnicę" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "C&ofnij różnicę" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Z&astosuj wszystkie" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Cofnij wszystkie" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Pop&rzedni plik" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Następny plik" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Poprzednia różnica" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Następna różnica" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,7 +82,7 @@ msgstr "" "Brak modeli lub brak różnic. Ten plik: %1 nie jest poprawnym " "plikiem różnic." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Podczas nakładania poprawki %1 na plik %2 wystąpiły " "problemy." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -101,18 +100,18 @@ msgstr "" "Podczas nakładania poprawki %1 na katalog %2 wystąpiły " "problemy." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Nie można otworzyć pliku tymczasowego." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Nie można zapisać pliku tymczasowego %1, zostanie usunięty." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -121,7 +120,7 @@ msgstr "" "Nie można utworzyć katalogu docelowego %1.\n" "Plik nie został zapisany." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Można go ręcznie skopiować " "we właściwe miejsce." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Nie można przetworzyć wyników diffa." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Pliki są identyczne." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Nie można zapisać do pliku tymczasowego." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/pt/libkomparediff2.po b/po/pt/libkomparediff2.po index 40d3063..991bc7c 100644 --- a/po/pt/libkomparediff2.po +++ b/po/pt/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-04 18:02+0100\n" "Last-Translator: José Nuno Coelho Pires \n" "Language-Team: Portuguese \n" @@ -18,55 +18,55 @@ msgstr "" "X-POFile-SpellExtra: diff\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplicar a Diferença" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Ign&orar a Diferença" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&licar Tudo" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Ignorar T&udo" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fichei&ro Anterior" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Ficheiro Segui&nte" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Diferença &Anterior" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Diferença Segui&nte" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -75,7 +75,7 @@ msgstr "" "Não existem modelos ou diferenças, este ficheiro: %1 não é um " "ficheiro de 'diff' válido." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Ocorreram problemas ao aplicar o 'diff' %1 ao ficheiro %2." "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -92,18 +92,18 @@ msgid "" msgstr "" "Ocorreram problemas ao aplicar o 'diff' %1 à pasta %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Não foi possível aceder a um ficheiro temporário." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Não foi possível gravar no ficheiro temporário %1, a apagar." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -112,7 +112,7 @@ msgstr "" "Não foi possível criar a pasta de destino %1.\n" "O ficheiro não foi gravado." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%1. O ficheiro temporário mantém-se à mesma em %2. " "Você poderá copiá-lo manualmente para o local correcto." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Não consigo analisar o resultado do diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Os ficheiros são idênticos." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Não foi possível gravar no ficheiro temporário." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/pt_BR/libkomparediff2.po b/po/pt_BR/libkomparediff2.po index cb80ea6..65c9b5b 100644 --- a/po/pt_BR/libkomparediff2.po +++ b/po/pt_BR/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-09-10 18:47-0300\n" "Last-Translator: Luiz Fernando Ranghetti \n" "Language-Team: Brazilian Portuguese \n" @@ -19,55 +19,55 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 20.04.3\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Aplicar a diferença" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Ign&orar diferença" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Ap&licar tudo" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Não &aplicar tudo" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "A&rquivo anterior" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Próximo arquivo" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Diferença &anterior" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Próxima diferença" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -76,7 +76,7 @@ msgstr "" "Não existem modelos ou diferenças, este arquivo: %1 não é um " "arquivo diff válido." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Ocorreram problemas ao aplicar o diff %1 à pasta %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -92,18 +92,18 @@ msgid "" msgstr "" "Ocorreram problemas ao aplicar o diff %1 à pasta %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Não foi possível abrir um arquivo temporário." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Não foi possível gravar o arquivo temporário %1, excluindo-o." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -112,7 +112,7 @@ msgstr "" "Não foi possível criar a pasta destino %1.\n" "O arquivo não foi salvo." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%1. O arquivo temporário ainda se mantém em %2. Você " "poderá copiá-lo manualmente para o local correto." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Não foi possível analisar o resultado do diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Os arquivos são idênticos." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Não foi possível gravar o arquivo temporário." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ro/libkomparediff2.po b/po/ro/libkomparediff2.po index 0609877..acc3e31 100644 --- a/po/ro/libkomparediff2.po +++ b/po/ro/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2012-12-22 11:55+0200\n" "Last-Translator: Sergiu Bivol \n" "Language-Team: Romanian \n" @@ -19,95 +19,95 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "&File" msgctxt "@action" msgid "N&ext File" msgstr "&Fișier" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "Preferences" msgctxt "@action" msgid "&Previous Difference" msgstr "Preferințe" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ru/libkomparediff2.po b/po/ru/libkomparediff2.po index 9dc2782..03cd26f 100644 --- a/po/ru/libkomparediff2.po +++ b/po/ru/libkomparediff2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-06-14 13:34+0300\n" "Last-Translator: Alexander Yavorsky \n" "Language-Team: Russian \n" @@ -26,55 +26,55 @@ msgstr "" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Применить различия" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Отменить различия" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Применить &все" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Отменить все" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "П&редыдущий файл" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Следующий файл" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Пр&едыдущее различие" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "С&ледующее различие" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,7 +83,7 @@ msgstr "" "Нет макетов или различий. Файл %1 не является файлом формата " "diff." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Возникли проблемы при применении различий %1 к файлу %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -101,17 +101,17 @@ msgstr "" "Возникли проблемы при применении различий %1 к каталогу %2." "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Не удалось открыть временный файл." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "Не удалось записать %1 во временный файл, файл удалён." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -120,7 +120,7 @@ msgstr "" "Не удалось создать сравниваемый каталог %1.\n" "Файл не был сохранён." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Вы можете вручную " "скопировать его в нужное место." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Не удалось обработать результаты различий." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Файлы идентичны." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Не удалось записать во временный файл." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/sa/libkomparediff2.po b/po/sa/libkomparediff2.po new file mode 100644 index 0000000..b04b31d --- /dev/null +++ b/po/sa/libkomparediff2.po @@ -0,0 +1,140 @@ +# Sanskrit translations for libkomparediff2 package. +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the libkomparediff2 package. +# Kali , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-12-13 19:10+0530\n" +"Last-Translator: Kali \n" +"Language-Team: Sanskrit \n" +"Language: sa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n>2);\n" + +#: modellist.cpp:49 +#, kde-format +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&अंतरं प्रयोजयन्तु" + +#: modellist.cpp:53 +#, kde-format +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Un&apply भेदः" + +#: modellist.cpp:57 +#, kde-format +msgctxt "@action" +msgid "App&ly All" +msgstr "App&ly All" + +#: modellist.cpp:61 +#, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "&अप्रयोगः सर्वः" + +#: modellist.cpp:71 +#, kde-format +msgctxt "@action" +msgid "P&revious File" +msgstr "P&revious सञ्चिका" + +#: modellist.cpp:75 +#, kde-format +msgctxt "@action" +msgid "N&ext File" +msgstr "N&ext सञ्चिका" + +#: modellist.cpp:79 +#, kde-format +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&पूर्व भेद" + +#: modellist.cpp:83 +#, kde-format +msgctxt "@action" +msgid "&Next Difference" +msgstr "&अनन्तरं भेदः" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"न मॉडल् अथवा कोऽपि भेदः नास्ति, एषा सञ्चिका: %1 , वैधः diff सञ्चिका " +"नास्ति ।" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "%2 सञ्चिकायां diff %1 प्रयोक्तुं समस्याः आसन् ।" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "%2 पुटस्य मध्ये diff %1 प्रयोक्तुं समस्याः आसन् ।" + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "अस्थायीसञ्चिकां उद्घाटयितुं न शक्तवान् ।" + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "अस्थायी सञ्चिकायां %1 लिखितुं न शक्तवान्, तत् विलोपयन् ।" + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "गन्तव्यनिर्देशिका %1 निर्मातुं न शक्यते । सञ्चिका न रक्षिता ।" + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"अस्थायीसञ्चिकां गन्तव्यस्थाने %1 अपलोड् कर्तुं न शक्यते । अस्थायी सञ्चिका अद्यापि " +"अत्र उपलभ्यते: %2 . भवान् स्वहस्तेन तस्य प्रतिलिपिं सम्यक् स्थाने कर्तुं शक्नोति ।" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "diff output इत्यस्य विश्लेषणं कर्तुं न शक्तवान् ।" + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "सञ्चिकाः समानाः सन्ति ।" + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "अस्थायीसञ्चिकायां लिखितुं न शक्तवान् ।" + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"विभेदः विकृतः अस्ति। काश्चन पङ्क्तयः विश्लेषणं कर्तुं न शक्यन्ते, ते च diff दृश्ये न प्रदर्शिताः " +"भविष्यन्ति ।" diff --git a/po/se/libkomparediff2.po b/po/se/libkomparediff2.po index b33d419..4caddc6 100644 --- a/po/se/libkomparediff2.po +++ b/po/se/libkomparediff2.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2007-09-11 22:44+0200\n" "Last-Translator: Northern Sami translation team \n" @@ -19,93 +19,93 @@ msgstr "" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/sk/libkomparediff2.po b/po/sk/libkomparediff2.po index 62dbb86..1dbedbf 100644 --- a/po/sk/libkomparediff2.po +++ b/po/sk/libkomparediff2.po @@ -2,79 +2,71 @@ # Stanislav Visnovsky , 2001,2002. # Stanislav Visnovsky , 2004. # Jozef Říha , 2006. -# Roman Paholík , 2012, 2013. +# Roman Paholík , 2012, 2013, 2022. msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2013-02-24 12:58+0100\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2022-04-09 19:27+0200\n" "Last-Translator: Roman Paholik \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 21.12.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Použiť rozdiel" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Vrátiť rozdiel" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "P&oužiť všetky" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Vrá&tiť všetky zmeny" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" -msgstr "P&redchádzajúci súbor" +msgstr "&Predošlý súbor" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" -msgstr "&Nasledujúci súbor" +msgstr "&Ďalší súbor" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Predchádzajúci rozdiel" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Nasledujúci rozdiel" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,7 +75,7 @@ msgstr "" "Žiadne modely ani rozdiely v súbore: %1. Nie je to platný súbor " "diff." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Nastali problémy pri použití rozdielu %1 na súbor %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -100,18 +92,18 @@ msgstr "" "Nastali problémy pri použití rozdielu %1 na priečinok %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Nepodarilo sa otvoriť dočasný súbor." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Nepodaril sa zápis do dočasného súboru %1, súbor bol zmazaný." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -120,7 +112,7 @@ msgstr "" "Nepodarilo sa vytvoriť cieľový adresár %1.\n" "Súbor nebol uložený." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Môžete ho na správne miesto " "skopírovať ručne." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Nepodarilo sa spracovať výstup diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Súbory sú rovnaké." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Nepodaril sa zápis do dočasného súboru." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/sl/libkomparediff2.po b/po/sl/libkomparediff2.po index fecd593..08e742f 100644 --- a/po/sl/libkomparediff2.po +++ b/po/sl/libkomparediff2.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-06-04 10:01+0200\n" "Last-Translator: Matjaž Jeran \n" "Language-Team: Slovenian \n" @@ -26,55 +26,55 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "Uveljavi razliko" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Razvelj&avi razliko" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Uve&ljavi vse" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Razveljavi vse" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "P&redhodna datoteka" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Nasl&ednja datoteka" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Predhodna razlika" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "&Naslednja razlika" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,7 +83,7 @@ msgstr "" "Ni modelov ali ni razlik. Ta datoteka, %1, ni veljavna datoteka " "diff." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Prišlo je do težav med uveljavljanjem diff %1 v datoteki %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -101,19 +101,19 @@ msgstr "" "Prišlo je do težav med uveljavljanjem diff %1 v mapi %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Ni bilo mogoče odpreti začasne datoteke." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Ni bilo mogoče pisati v začasno datoteko %1, zato bo izbrisana." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -122,7 +122,7 @@ msgstr "" "Ni bilo mogoče ustvariti ciljne mape %1.\n" "Datoteka ni bila shranjena." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Lahko jo ročno kopirate " "na pravo mesto." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Ni bilo mogoče razčleniti izhoda diffa." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Datoteki sta enaki." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Ni bilo mogoče pisati v začasno datoteko." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/sq/libkomparediff2.po b/po/sq/libkomparediff2.po index 89a7c93..8cc5b37 100644 --- a/po/sq/libkomparediff2.po +++ b/po/sq/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kdesdk\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2009-06-05 03:59+0000\n" "Last-Translator: Vilson Gjeci \n" "Language-Team: Albanian \n" @@ -19,98 +19,98 @@ msgstr "" "X-Launchpad-Export-Date: 2011-04-22 09:06+0000\n" "X-Generator: Launchpad (build 12883)\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "&Diferenca" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "&Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "&Diferenca" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "&File" msgctxt "@action" msgid "N&ext File" msgstr "&Skedar" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "&Diferenca" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Difference" msgctxt "@action" msgid "&Next Difference" msgstr "&Diferenca" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/sr/libkomparediff2.po b/po/sr/libkomparediff2.po index 5f39561..bf7af45 100644 --- a/po/sr/libkomparediff2.po +++ b/po/sr/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2020-06-08 02:17+0200\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2017-09-28 18:00+0200\n" "Last-Translator: Chusslove Illich \n" "Language-Team: Serbian \n" @@ -22,63 +22,63 @@ msgstr "" "X-Text-Markup: kde4\n" "X-Environment: kde\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "&Примени разлику" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "По&ништи примену разлике" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "Примени &све" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "Поништи с&ве примене" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "П&ретходни фајл" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "С&ледећи фајл" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "Пре&тходна разлика" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "След&ећа разлика" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -87,7 +87,7 @@ msgstr "" "Нема модела или нема разлика, фајл %1 није добар фајл разлике." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Проблем при примењивању разлике %1 на фајл %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -103,17 +103,17 @@ msgid "" msgstr "" "Проблем при примењивању разлике %1 на фасциклу %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:671 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Не могу да отворим привремени фајл." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "Не могу да пишем у привремени фајл %1, бришем га." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -122,7 +122,7 @@ msgstr "" "Не могу да направим одредишну фасциклу %1. Фајл није сачуван." -#: komparemodellist.cpp:426 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2, тако да се може ручно " "копирати на право место." -#: komparemodellist.cpp:505 komparemodellist.cpp:618 komparemodellist.cpp:638 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Не могу да рашчланим излаз разлике." -#: komparemodellist.cpp:521 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Фајлови су истоветни." -#: komparemodellist.cpp:703 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Не могу да пишем у привремени фајл." -#: komparemodellist.cpp:977 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/sr@ijekavian/libkomparediff2.po b/po/sr@ijekavian/libkomparediff2.po new file mode 100644 index 0000000..8473f37 --- /dev/null +++ b/po/sr@ijekavian/libkomparediff2.po @@ -0,0 +1,159 @@ +# Translation of libkomparediff2.po into Serbian. +# Bojan Bozovic , 2003, 2004. +# Toplica Tanaskovic , 2003. +# Chusslove Illich , 2004, 2005, 2009, 2010, 2012, 2013, 2017. +# Slobodan Simic , 2005. +# Dalibor Djuric , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2017-09-28 18:00+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Примијени разлику" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "По&ништи примјену разлике" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "Примијени &све" + +#: modellist.cpp:61 +#, fuzzy, kde-format +#| msgid "&Unapply All" +msgctxt "@action" +msgid "&Unapply All" +msgstr "Поништи с&ве примјене" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "П&ретходни фајл" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "С&љедећи фајл" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "Пре&тходна разлика" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "Сљед&ећа разлика" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"Нема модела или нема разлика, фајл %1 није добар фајл разлике." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" +"Проблем при примјењивању разлике %1 на фајл %2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" +"Проблем при примјењивању разлике %1 на фасциклу %2." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "Не могу да отворим привремени фајл." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Не могу да пишем у привремени фајл %1, бришем га." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"Не могу да направим одредишну фасциклу %1. Фајл није сачуван." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"Не могу да отпремим привремени фајл на одредишну локацију %1. " +"Привремени фајл је још увијек доступан као %2, тако да се може " +"ручно копирати на право мјесто." + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Не могу да рашчланим излаз разлике." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Фајлови су истоветни." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "Не могу да пишем у привремени фајл." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"Разлика је неправилна. Неки редови нису могли бити рашчлањени и неће се " +"видјети у приказу разлике." diff --git a/po/sr@ijekavianlatin/libkomparediff2.po b/po/sr@ijekavianlatin/libkomparediff2.po new file mode 100644 index 0000000..ff2daf7 --- /dev/null +++ b/po/sr@ijekavianlatin/libkomparediff2.po @@ -0,0 +1,159 @@ +# Translation of libkomparediff2.po into Serbian. +# Bojan Bozovic , 2003, 2004. +# Toplica Tanaskovic , 2003. +# Chusslove Illich , 2004, 2005, 2009, 2010, 2012, 2013, 2017. +# Slobodan Simic , 2005. +# Dalibor Djuric , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2017-09-28 18:00+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavianlatin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Primijeni razliku" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Po&ništi primjenu razlike" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "Primijeni &sve" + +#: modellist.cpp:61 +#, fuzzy, kde-format +#| msgid "&Unapply All" +msgctxt "@action" +msgid "&Unapply All" +msgstr "Poništi s&ve primjene" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "P&rethodni fajl" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "S&ljedeći fajl" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "Pre&thodna razlika" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "Sljed&eća razlika" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"Nema modela ili nema razlika, fajl %1 nije dobar fajl razlike." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" +"Problem pri primjenjivanju razlike %1 na fajl %2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" +"Problem pri primjenjivanju razlike %1 na fasciklu %2." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "Ne mogu da otvorim privremeni fajl." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Ne mogu da pišem u privremeni fajl %1, brišem ga." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"Ne mogu da napravim odredišnu fasciklu %1. Fajl nije sačuvan." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"Ne mogu da otpremim privremeni fajl na odredišnu lokaciju %1. " +"Privremeni fajl je još uvijek dostupan kao %2, tako da se može " +"ručno kopirati na pravo mjesto." + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Ne mogu da raščlanim izlaz razlike." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Fajlovi su istovetni." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "Ne mogu da pišem u privremeni fajl." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"Razlika je nepravilna. Neki redovi nisu mogli biti raščlanjeni i neće se " +"vidjeti u prikazu razlike." diff --git a/po/sr@latin/libkomparediff2.po b/po/sr@latin/libkomparediff2.po new file mode 100644 index 0000000..6590428 --- /dev/null +++ b/po/sr@latin/libkomparediff2.po @@ -0,0 +1,159 @@ +# Translation of libkomparediff2.po into Serbian. +# Bojan Bozovic , 2003, 2004. +# Toplica Tanaskovic , 2003. +# Chusslove Illich , 2004, 2005, 2009, 2010, 2012, 2013, 2017. +# Slobodan Simic , 2005. +# Dalibor Djuric , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: libkomparediff2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2017-09-28 18:00+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Primeni razliku" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "Po&ništi primenu razlike" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "Primeni &sve" + +#: modellist.cpp:61 +#, fuzzy, kde-format +#| msgid "&Unapply All" +msgctxt "@action" +msgid "&Unapply All" +msgstr "Poništi s&ve primene" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "P&rethodni fajl" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "S&ledeći fajl" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "Pre&thodna razlika" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "Sled&eća razlika" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" +"Nema modela ili nema razlika, fajl %1 nije dobar fajl razlike." + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" +"Problem pri primenjivanju razlike %1 na fajl %2." + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" +"Problem pri primenjivanju razlike %1 na fasciklu %2." + +#: modellist.cpp:256 modellist.cpp:520 +#, kde-format +msgid "Could not open a temporary file." +msgstr "Ne mogu da otvorim privremeni fajl." + +#: modellist.cpp:289 modellist.cpp:296 +#, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Ne mogu da pišem u privremeni fajl %1, brišem ga." + +#: modellist.cpp:324 +#, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "" +"Ne mogu da napravim odredišnu fasciklu %1. Fajl nije sačuvan." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" +"Ne mogu da otpremim privremeni fajl na odredišnu lokaciju %1. " +"Privremeni fajl je još uvek dostupan kao %2, tako da se može ručno " +"kopirati na pravo mesto." + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Ne mogu da raščlanim izlaz razlike." + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Fajlovi su istovetni." + +#: modellist.cpp:550 +#, kde-format +msgid "Could not write to the temporary file." +msgstr "Ne mogu da pišem u privremeni fajl." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" +"Razlika je nepravilna. Neki redovi nisu mogli biti raščlanjeni i neće se " +"videti u prikazu razlike." diff --git a/po/sv/libkomparediff2.po b/po/sv/libkomparediff2.po index 96b04cc..8cf92da 100644 --- a/po/sv/libkomparediff2.po +++ b/po/sv/libkomparediff2.po @@ -1,14 +1,14 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # -# Stefan Asserhäll , 2013, 2020. +# Stefan Asserhäll , 2013, 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-04 19:36+0200\n" -"Last-Translator: Stefan Asserhäll \n" +"Last-Translator: Stefan Asserhäll \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" @@ -17,55 +17,55 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 19.04.3\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Applicera skillnad" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "Ångra &applicera skillnad" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "App&licera alla" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Å&ngra applicera alla" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Fö®ående fil" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Nä&sta fil" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "&Föregående skillnad" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "Nästa s&killnad" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -74,7 +74,7 @@ msgstr "" "Inga modeller eller inga skillnader. Den här filen: %1, är inte " "en giltig jämförelsefil." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Det uppstod problem att applicera jämförelsen %1 med filen %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -92,19 +92,19 @@ msgstr "" "Det uppstod problem att applicera jämförelsen %1 med katalogen " "%2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Kunde inte öppna en tillfällig fil." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Kunde inte skriva till den tillfälliga filen %1. Tar bort den." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -113,7 +113,7 @@ msgstr "" "Kunde inte skapa målkatalogen %1.\n" "Filen har inte sparats." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Du kan kopiera " "den till rätt plats för hand." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Kunde inte tolka jämförelseutmatning." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Filerna är identiska." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Kunde inte skriva till den tillfälliga filen." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/ta/libkomparediff2.po b/po/ta/libkomparediff2.po index bb48e20..d3f18aa 100644 --- a/po/ta/libkomparediff2.po +++ b/po/ta/libkomparediff2.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2004-08-06 04:51-0800\n" "Last-Translator: Tamil PC \n" "Language-Team: \n" @@ -22,63 +22,63 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "மாறுபாட்டை பயன்படுத்து" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "பயன்படுத்திய மாறுபாட்டை ரத்து செய்" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "அனைத்தையும் பயன்படுத்து" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "பயன்படுத்திய அனைத்தையும் ரத்து செய்" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "முன்னிருக்கும் கோப்பு" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "அடுத்திருக்கும் கோப்பு" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "முன்னிருக்கும் மாறுபாடு" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "அடுத்திருக்கும் மாறுபாடு" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, fuzzy, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -87,7 +87,7 @@ msgstr "" "மாதிரிகளோ அல்லது மாறுபாடுகளோ இல்லை, இந்த கோப்பு: %1, ஒரு தக்க diff கோப்பு " "அல்ல" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, fuzzy, kde-format msgid "" "There were problems applying the diff %1 to the file %2.%1diffல் இருந்து %2 கோப்புக்கு பயன்படுத்தும்போது பிரச்சினைகள் ஏற்பட்டன." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, fuzzy, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -104,24 +104,24 @@ msgstr "" "%1 diffல் இருந்து %2 ஆவணத்திருக்கு பயன்படுத்தும்போது பிரச்சினைகள் " "ஏற்பட்டன." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "ஒரு தற்காலிக கோப்பினை திறக்க இயலவில்லை." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, fuzzy, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "தற்காலிக கோப்புக்குள் எழுத இயலவில்லை." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, fuzzy, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "தற்காலிக கோப்புக்குள் எழுத இயலவில்லை." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, fuzzy, kde-format msgid "" "Could not upload the temporary file to the destination location %1%1 சேருமிடத்தில் தற்காலிக கோப்பினை ஏற்ற இயலவில்லை. எனினும் தற்காலிக கோப்பு " "%2 கீழ் இன்னும் உள்ளது. இதனை நீங்கள் கைமுறையாக சரியான இடத்துக்கு படியேடுக்கலாம்." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "diffன் வெளியீட்டை பிரித்தாய இயலவில்லை." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "இந்த கோப்புகள் ஒரே மாதிரியாக உள்ளன." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "தற்காலிக கோப்புக்குள் எழுத இயலவில்லை." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/tg/libkomparediff2.po b/po/tg/libkomparediff2.po index 599e2c5..804396a 100644 --- a/po/tg/libkomparediff2.po +++ b/po/tg/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2005-09-23 17:16+0500\n" "Last-Translator: Victor Ibragimov \n" "Language-Team: Tajik\n" @@ -19,63 +19,63 @@ msgstr "" "X-Generator: KBabel 1.10\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "&Apply Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "&Истифодабарии фарқиятҳо" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Un&apply Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "&Барҳамдиҳии фарқиятҳо" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, fuzzy, kde-format #| msgid "App&ly All" msgctxt "@action" msgid "App&ly All" msgstr "Ҳамаро &истифода баред" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, fuzzy, kde-format #| msgid "&Unapply All" msgctxt "@action" msgid "&Unapply All" msgstr "Ҳамаро и&стифода набаред" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, fuzzy, kde-format #| msgid "P&revious File" msgctxt "@action" msgid "P&revious File" msgstr "&Файли пешина" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "N&ext File" msgctxt "@action" msgid "N&ext File" msgstr "&Файли оянда" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "&Previous Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "&Фарқиятҳои пешина" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "&Next Difference" msgctxt "@action" msgid "&Next Difference" msgstr "&Фарқиятҳои оянда" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, fuzzy, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -83,7 +83,7 @@ msgid "" msgstr "" "На амсила ва на фарқият нест. Ин файл %1 файли андозаи diff намебошад." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, fuzzy, kde-format msgid "" "There were problems applying the diff %1 to the file %2.%1 ба файли %2." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, fuzzy, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -100,24 +100,24 @@ msgstr "" "Дар вақти истифодаи diff ба чанд проблемаҳо шуд%1 ба каталоги %2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Файли муввақатӣ кашода намешавад." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, fuzzy, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "Ба файли муввақатӣ навишта намешавад." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, fuzzy, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Шумо метавонед дастурро дастӣ " "нусхабардорӣ намоед." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Баромади diff такмил дода намешавад." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Файлҳо мутобиқ ҳастанд." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Ба файли муввақатӣ навишта намешавад." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/tr/libkomparediff2.po b/po/tr/libkomparediff2.po index fc647e2..48be1ba 100644 --- a/po/tr/libkomparediff2.po +++ b/po/tr/libkomparediff2.po @@ -1,84 +1,76 @@ -# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Cemil MUTLU , 2005 -# H. İbrahim Güngör , 2011 -# obsoleteman , 2008-2009,2012 -# Volkan Gezer , 2013 +# Cemil MUTLU , 2005. +# H. İbrahim Güngör , 2011. +# obsoleteman , 2008-2009,2012. +# Volkan Gezer , 2013. +# SPDX-FileCopyrightText: 2022, 2025 Emir SARI msgid "" msgstr "" "Project-Id-Version: kdesdk-kde4\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2014-06-08 14:01+0000\n" -"Last-Translator: Volkan Gezer \n" -"Language-Team: Turkish (http://www.transifex.com/projects/p/kdesdk-k-tr/" -"language/tr/)\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2025-03-18 14:57+0300\n" +"Last-Translator: Emir SARI \n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 25.07.70\n" -#: komparemodellist.cpp:58 -#, fuzzy, kde-format -#| msgid "&Apply Difference" +#: modellist.cpp:49 +#, kde-format msgctxt "@action" msgid "&Apply Difference" -msgstr "Değişiklikleri &Uygula" +msgstr "Değişikliği &Uygula" -#: komparemodellist.cpp:62 -#, fuzzy, kde-format -#| msgid "Un&apply Difference" +#: modellist.cpp:53 +#, kde-format msgctxt "@action" msgid "Un&apply Difference" -msgstr "Değişiklikleri &Geri Al" +msgstr "Değişikliği &Geri Al" -#: komparemodellist.cpp:66 -#, fuzzy, kde-format -#| msgid "App&ly All" +#: modellist.cpp:57 +#, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Tümünü &Uygula" -#: komparemodellist.cpp:70 -#, fuzzy, kde-format -#| msgid "&Unapply All" +#: modellist.cpp:61 +#, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "Tümünü &Geri Al" -#: komparemodellist.cpp:80 -#, fuzzy, kde-format -#| msgid "P&revious File" +#: modellist.cpp:71 +#, kde-format msgctxt "@action" msgid "P&revious File" msgstr "Önceki &Dosya" -#: komparemodellist.cpp:84 -#, fuzzy, kde-format -#| msgid "N&ext File" +#: modellist.cpp:75 +#, kde-format msgctxt "@action" msgid "N&ext File" msgstr "Sonraki &Dosya" -#: komparemodellist.cpp:88 -#, fuzzy, kde-format -#| msgid "&Previous Difference" +#: modellist.cpp:79 +#, kde-format msgctxt "@action" msgid "&Previous Difference" -msgstr "&Önceki Değişiklikler" +msgstr "Ö&nceki Değişiklik" -#: komparemodellist.cpp:92 -#, fuzzy, kde-format -#| msgid "&Next Difference" +#: modellist.cpp:83 +#, kde-format msgctxt "@action" msgid "&Next Difference" -msgstr "&Sonraki Değişklikler" +msgstr "&Sonraki Değişiklik" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -87,7 +79,7 @@ msgstr "" "Modeller veya farklılıklar yok, %1 dosyası geçerli bir diff " "dosyası değil." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.%1 diff dosyası %2 dosyasına uygulanırken bazı sorunlar " "oluştu." -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -105,17 +97,17 @@ msgstr "" "%1 diff çıktısı %2 dizinine uygulanırken bazı sorunlar " "oluştu." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Geçici dosya açılamadı." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "%1 geçici dosyasına yazılamadı, siliniyor." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -124,7 +116,7 @@ msgstr "" "%1 hedef dizini yaratılamadı.\n" "Dosya kaydedilemedi." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1Geçici dosya %1 hedef konumuna yüklenemedi.Buna rağmen geçici " "dosya %2 altında mevcut.Lütfen dosyayı elle yerine kopyalayın." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Diff çıktısı ayrıştırılamıyor." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." -msgstr "Dosyalar birbiri ile aynı." +msgstr "Dosyalar birbiriyle aynı." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Geçici dosya yazılamıyor." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " "displayed in the diff view." msgstr "" -"diff programı düzgün çalışmıyor. Bazı satırlar ayrıştırılamaya ve farklılık " +"diff programı düzgün çalışmıyor. Bazı satırlar ayrıştırılamadı ve fark " "görünümünde gösterilemeyebilir." diff --git a/po/ug/libkomparediff2.po b/po/ug/libkomparediff2.po index 6790fb5..9d800b3 100644 --- a/po/ug/libkomparediff2.po +++ b/po/ug/libkomparediff2.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2013-09-08 07:05+0900\n" "Last-Translator: Gheyret Kenji \n" "Language-Team: Uyghur Computer Science Association \n" @@ -17,98 +17,98 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, fuzzy, kde-format #| msgid "Difference" msgctxt "@action" msgid "&Apply Difference" msgstr "پەرق" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, fuzzy, kde-format #| msgid "Difference" msgctxt "@action" msgid "Un&apply Difference" msgstr "پەرق" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, fuzzy, kde-format #| msgid "&File" msgctxt "@action" msgid "N&ext File" msgstr "ھۆججەت(&F)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, fuzzy, kde-format #| msgid "Difference" msgctxt "@action" msgid "&Previous Difference" msgstr "پەرق" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, fuzzy, kde-format #| msgid "Difference" msgctxt "@action" msgid "&Next Difference" msgstr "پەرق" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "ۋاقىتلىق ھۆججەتنى ئاچالمىدى." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "ۋاقىتلىق ھۆججەت%1 كە يازغىلى بولمىدى، ئۆچۈرۈۋاتىدۇ." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1" msgstr "" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "diff نىڭ نەتىجىسىنى تەھلىل قىلالمىدى." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "ھۆججەتلەر ئوپئوخشاش." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "ۋاقىتلىق ھۆججەتكە يازالمىدى." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/uk/libkomparediff2.po b/po/uk/libkomparediff2.po index 573e4dd..df7a457 100644 --- a/po/uk/libkomparediff2.po +++ b/po/uk/libkomparediff2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: libkomparediff2\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-04 08:36+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -20,55 +20,55 @@ msgstr "" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 20.07.70\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "&Застосувати різницю" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "&Скасувати застосування різниці" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "Застос&увати все" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "&Скасувати застосування всіх" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "П&опередній файл" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "&Наступний файл" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "Поп&ередня різниця" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "На&ступна різниця" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " @@ -77,7 +77,7 @@ msgstr "" "Немає моделей або відмінностей. Файл: %1 не є чинним файлом " "формату diff." -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2.Виникли проблеми під час застосування diff %1 до файла %2." "" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." @@ -95,19 +95,19 @@ msgstr "" "Виникли проблеми під час застосування diff %1 до теки%2." -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "Не вдалося відкрити тимчасовий файл." -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "" "Не вдалося записати до тимчасового файла %1, його буде вилучено." -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -116,7 +116,7 @@ msgstr "" "Не вдалося створити каталог призначення %1.\n" "Файл не було збережено." -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1%2. Можна його вручну скопіювати у " "потрібне місце." -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "Не вдалося проаналізувати вивід diff." -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "Ці файли однакові." -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "Помилка запису в тимчасовий файл." -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/xh/libkomparediff2.po b/po/xh/libkomparediff2.po new file mode 100644 index 0000000..dbb65d3 --- /dev/null +++ b/po/xh/libkomparediff2.po @@ -0,0 +1,636 @@ +# translation of kompare.po to +# translation of kompare.po to +# translation of kompare.po to +# translation of kompare.po to +# translation of kompare.po to Xhosa +# translation of kompare.po to +# translation of kompare.po to +# translation of kompare.po to +# translation of kompare.po to +# translation of kompare.po to +# Copyright (C) 2002 Free Software Foundation, Inc. +# Lwandle Mgidlana , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: kompare\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2002-11-14 16:57SAST\n" +"Last-Translator: Lwandle Mgidlana \n" +"Language-Team: Xhosa \n" +"Language: xh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0beta2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: modellist.cpp:49 +#, fuzzy, kde-format +#| msgid "&Apply Difference" +msgctxt "@action" +msgid "&Apply Difference" +msgstr "&Faka Umahluko" + +#: modellist.cpp:53 +#, fuzzy, kde-format +#| msgid "Un&apply Difference" +msgctxt "@action" +msgid "Un&apply Difference" +msgstr "S&ukwenza Umahluko" + +#: modellist.cpp:57 +#, fuzzy, kde-format +#| msgid "App&ly All" +msgctxt "@action" +msgid "App&ly All" +msgstr "Yen&za Konke" + +#: modellist.cpp:61 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Unapply All" +msgstr "S&ukwenza Konke" + +#: modellist.cpp:71 +#, fuzzy, kde-format +#| msgid "P&revious File" +msgctxt "@action" +msgid "P&revious File" +msgstr "I&fayile Edlulileyo" + +#: modellist.cpp:75 +#, fuzzy, kde-format +#| msgid "N&ext File" +msgctxt "@action" +msgid "N&ext File" +msgstr "I&fayile Elandelayo" + +#: modellist.cpp:79 +#, fuzzy, kde-format +#| msgid "&Previous Difference" +msgctxt "@action" +msgid "&Previous Difference" +msgstr "&Umehluko Odlulileyo" + +#: modellist.cpp:83 +#, fuzzy, kde-format +#| msgid "&Next Difference" +msgctxt "@action" +msgid "&Next Difference" +msgstr "&Umehluko Okulandelayo" + +#: modellist.cpp:183 modellist.cpp:209 +#, kde-format +msgid "" +"No models or no differences, this file: %1, is not a valid diff " +"file." +msgstr "" + +#: modellist.cpp:192 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the file %2." +msgstr "" + +#: modellist.cpp:220 +#, kde-format +msgid "" +"There were problems applying the diff %1 to the folder %2." +"" +msgstr "" + +#: modellist.cpp:256 modellist.cpp:520 +#, fuzzy, kde-format +msgid "Could not open a temporary file." +msgstr "Ayinakuvula ifayile." + +#: modellist.cpp:289 modellist.cpp:296 +#, fuzzy, kde-format +msgid "Could not write to the temporary file %1, deleting it." +msgstr "Ayinakubhala kwifayile." + +#: modellist.cpp:324 +#, fuzzy, kde-format +msgid "" +"Could not create destination directory %1.\n" +"The file has not been saved." +msgstr "Ayinakubhala kwifayile." + +#: modellist.cpp:350 +#, kde-format +msgid "" +"Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually " +"copy it to the right place." +msgstr "" + +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 +#, kde-format +msgid "Could not parse diff output." +msgstr "Ayikwazanga " + +#: modellist.cpp:440 +#, kde-format +msgid "The files are identical." +msgstr "Ezifayile ziyafana." + +#: modellist.cpp:550 +#, fuzzy, kde-format +msgid "Could not write to the temporary file." +msgstr "Ayinakubhala kwifayile." + +#: modellist.cpp:820 +#, kde-format +msgid "" +"The diff is malformed. Some lines could not be parsed and will not be " +"displayed in the diff view." +msgstr "" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Lwandle Mgidlana" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "lwandle@translate.org.za" + +#, fuzzy +#~ msgid "Could not load our KompareViewPart." +#~ msgstr "Ayikwazanga ukufumana icala Lethu!" + +#, fuzzy +#~ msgid "Could not load our KompareNavigationPart." +#~ msgstr "Ayikwazanga ukufumana icala Lethu!" + +#~ msgid "&Compare Files..." +#~ msgstr "&Thelekisa Ifayile..." + +#, fuzzy +#~ msgid "Show T&ext View" +#~ msgstr "Bonisa &Imboniselo Yokubhaliweyo" + +#~ msgid " 0 of 0 differences " +#~ msgstr " 0 of 0 izantlukwano" + +#~ msgid " 0 of 0 files " +#~ msgstr "0 ze 0 ifayile " + +#~ msgid " %2 of %1 file " +#~ msgid_plural " %2 of %1 files " +#~ msgstr[0] " %2 yef %1 fayilefile " +#~ msgstr[1] " %2 ye %1 efayile" + +#~ msgid " %1 file " +#~ msgid_plural " %1 files " +#~ msgstr[0] " %1 ifayile " +#~ msgstr[1] " %1 iifayile" + +#~ msgid " %2 of %1 difference, %3 applied " +#~ msgid_plural " %2 of %1 differences, %3 applied " +#~ msgstr[0] " %2 yo %1 mahluko, %3 ofakiwe " +#~ msgstr[1] " %2 yoo %1 mahluko, %3 ofakiweyo" + +#~ msgid " %1 difference " +#~ msgid_plural " %1 differences " +#~ msgstr[0] " %1 umahluko " +#~ msgstr[1] " %1 umahluko" + +#, fuzzy +#~ msgid "Diff Output" +#~ msgstr "Iinketho Diff" + +#, fuzzy +#~ msgid "" +#~ "If you have entered a file or folder name and a file that contains diff " +#~ "output in the fields in this dialog then this button will be enabled and " +#~ "pressing it will open kompare's main view where the output of the entered " +#~ "file or files from the folder are mixed with the diff output so you can " +#~ "then apply the difference(s) to a file or to the files. " +#~ msgstr "" +#~ "Ukuba ungenise amagama efayile amabini kwimihlaba kulencoko yababini " +#~ "neliqosha lizakwenziwa nokuyinqakraza kuzakuqala utelekiso leefayile " +#~ "ezingenisiweyo okanye abalawuli." + +#, fuzzy +#~ msgid "Compare Files or Folders" +#~ msgstr "Thelekisa Ifayile okanye Abalawuli" + +#~ msgid "Source" +#~ msgstr "Imvelaphi" + +#~ msgid "Destination" +#~ msgstr "Indawo ekungqongileyo" + +#~ msgid "Compare" +#~ msgstr "Thelekisa" + +#, fuzzy +#~ msgid "Compare these files or folders" +#~ msgstr "Thelekisa ezifayile okanye abalawuli" + +#, fuzzy +#~ msgid "" +#~ "If you have entered 2 filenames or 2 folders in the fields in this dialog " +#~ "then this button will be enabled and pressing it will start a comparison " +#~ "of the entered files or folders. " +#~ msgstr "" +#~ "Ukuba ungenise amagama efayile amabini kwimihlaba kulencoko yababini " +#~ "neliqosha lizakwenziwa nokuyinqakraza kuzakuqala utelekiso leefayile " +#~ "ezingenisiweyo okanye abalawuli." + +#~ msgid "Text View" +#~ msgstr "Imboniselo Yokubhaliweyo" + +#, fuzzy +#~ msgid "Source Folder" +#~ msgstr "Imvelaphi Yefayile" + +#, fuzzy +#~ msgid "Destination Folder" +#~ msgstr "Ifayile Yendawo ekungqongileyo" + +#~ msgid "Source File" +#~ msgstr "Imvelaphi Yefayile" + +#~ msgid "Destination File" +#~ msgstr "Ifayile Yendawo ekungqongileyo" + +#~ msgid "Source Line" +#~ msgstr "Ilayine Yemvelaphi" + +#~ msgid "Destination Line" +#~ msgstr "Indawo ekungqongileyo Yelayini" + +#~ msgid "Difference" +#~ msgstr "Umahluko" + +#, fuzzy +#~ msgid "Applied: Changes made to %1 line undone" +#~ msgid_plural "Applied: Changes made to %1 lines undone" +#~ msgstr[0] "Ilayini %1 etshintshiweyo" +#~ msgstr[1] "Iilayini %1 ezitshintshiweyo" + +#~ msgid "Changed %1 line" +#~ msgid_plural "Changed %1 lines" +#~ msgstr[0] "Ilayini %1 etshintshiweyo" +#~ msgstr[1] "Iilayini %1 ezitshintshiweyo" + +#~ msgid "Inserted %1 line" +#~ msgid_plural "Inserted %1 lines" +#~ msgstr[0] "Umgca %1 ofakiweyo" +#~ msgstr[1] "Imigca %1 efakiweyo" + +#, fuzzy +#~ msgid "Deleted %1 line" +#~ msgid_plural "Deleted %1 lines" +#~ msgstr[0] "Ilayini Ecimiweyo" +#~ msgstr[1] "Iilayini %1 ezicimiweyo" + +#~ msgid "Unknown" +#~ msgstr "Engaziwayo" + +#~ msgid "KompareNavTreePart" +#~ msgstr "KompareNavTreePart" + +#~ msgid "Author" +#~ msgstr "Umbhali" + +#~ msgid "Save &All" +#~ msgstr "Gcina &Konke" + +#, fuzzy +#~ msgid "Save &Diff..." +#~ msgstr "Gcina .&idiff" + +#~ msgid "Swap Source with Destination" +#~ msgstr "Tshintshisa Imvelaphi Ngendawo ekungqongileyo" + +#~ msgid "Show Statistics" +#~ msgstr "Bonisa Izitatistiki" + +#~ msgid "Diff Options" +#~ msgstr "Iinketho Diff" + +#, fuzzy +#~ msgid "*.diff *.dif *.patch|Patch Files" +#~ msgstr "*.diff *.dif *.patch|Patch files" + +#~ msgid "Save .diff" +#~ msgstr "Gcina .diff" + +#~ msgid "KomparePart" +#~ msgstr "KomparePart" + +#~ msgid "Running diff..." +#~ msgstr "Yenza i diff..." + +#, fuzzy +#~ msgid "Parsing diff output..." +#~ msgstr "Ichaza i diff..." + +#, fuzzy +#~ msgid "Comparing file %1 with file %2" +#~ msgstr "Uthelekiso lwefayile kwi %1 ne fayile kwi %2" + +#~ msgid "Comparing files in %1 with files in %2" +#~ msgstr "Uthelekiso lwefayile kwi %1 ne fayile kwi %2" + +#, fuzzy +#~ msgid "Viewing diff output from %1" +#~ msgstr "Ichaza i diff..." + +#, fuzzy +#~ msgid "Blending diff output from %1 into folder %2" +#~ msgstr "Ichaza i diff..." + +#, fuzzy +#~ msgid "" +#~ "You have made changes to the destination file(s).\n" +#~ "Would you like to save them?" +#~ msgstr "" +#~ "Wenze uguqulo kwindawo engqongileyo.\n" +#~ "Uyafuna ukuwagcina?" + +#~ msgid "Save Changes?" +#~ msgstr "Gcina Utshintsho?" + +#~ msgid "Unified" +#~ msgstr "Idityanisiwe" + +#~ msgid "Context" +#~ msgstr "Intsingiselo" + +#~ msgid "RCS" +#~ msgstr "RCS" + +#~ msgid "Ed" +#~ msgstr "Ed" + +#~ msgid "Normal" +#~ msgstr "Eqhelekileyo" + +#~ msgid "" +#~ "No diff file, or no 2 files have been diffed. Therefore no stats are " +#~ "available." +#~ msgstr "" +#~ "Akukho fayile ye diff, okanye ifayile ye no 2 eyenziwe i diff. Yiyo lonto " +#~ "kungekho stats ezifumanekayo." + +#~ msgid "Diff Statistics" +#~ msgstr "Izitatistiki ze Diff" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Old file: %1\n" +#~ "New file: %2\n" +#~ "\n" +#~ "Format: %3\n" +#~ "Number of hunks: %4\n" +#~ "Number of differences: %5" +#~ msgstr "" +#~ "Izitatistiki:\n" +#~ "\n" +#~ "Ifayile endala : %1\n" +#~ "Ifayile entsha : %2\n" +#~ "\n" +#~ "iFormati : %3\n" +#~ "Inani le hunks : %4\n" +#~ "Inani lomahluko : %5" + +#~ msgid "" +#~ "Statistics:\n" +#~ "\n" +#~ "Number of files in diff file: %1\n" +#~ "Format: %2\n" +#~ "\n" +#~ "Current old file: %3\n" +#~ "Current new file: %4\n" +#~ "\n" +#~ "Number of hunks: %5\n" +#~ "Number of differences: %6" +#~ msgstr "" +#~ "Izitatistiki:\n" +#~ "\n" +#~ "Inani lwefayile kwifayile ye diff: %1\n" +#~ "iFormati : %2\n" +#~ "\n" +#~ "Ifayile endala yangoku : %3\n" +#~ "Ifayile entsha yangoku : %4\n" +#~ "\n" +#~ "Inani le hunks : %5\n" +#~ "Inani lwezantlukwano : %6" + +#, fuzzy +#~ msgid "&File" +#~ msgstr "I&fayile Elandelayo" + +#~ msgid "&Difference" +#~ msgstr "Umahluko" + +#, fuzzy +#~ msgid "&Settings" +#~ msgstr "Izicwangciso ze Diff" + +#~ msgid "Preferences" +#~ msgstr "Ezikhethwayo" + +#, fuzzy +#~ msgid "View" +#~ msgstr "Imboniselo Yokubhaliweyo" + +#, fuzzy +#~ msgid "View Settings" +#~ msgstr "Izicwangciso ze Diff" + +#~ msgid "Diff" +#~ msgstr "iDiff" + +#~ msgid "Diff Settings" +#~ msgstr "Izicwangciso ze Diff" + +#~ msgid "Run Diff In" +#~ msgstr "Sebenzisa i Diff Kwi" + +#~ msgid "Command Line" +#~ msgstr "Umyalelo Welayini" + +#~ msgid "cd dir && diff -udHprNa -- source destination" +#~ msgstr "cd dir && diff -udHprNa -- imvelaphi yendawo engqonqileyo" + +#, fuzzy +#~ msgid "Options" +#~ msgstr "I&inketho" + +#~ msgid "Look for smaller changes" +#~ msgstr "Khangela utshintsho oluncincane" + +#~ msgid "Optimize for large files" +#~ msgstr "Usebenzisa okupheleleyo lwefayile ezinkulu" + +#~ msgid "Ignore changes in case" +#~ msgstr "Lahla utshintsho emzelelweni" + +#~ msgid "Expand tabs to spaces" +#~ msgstr "Yandisa i tabs ezithubeni" + +#~ msgid "Ignore added or removed empty lines" +#~ msgstr "Lahla iilayini ezingenanto ezongeziweyo okanye ezisusiweyo" + +#~ msgid "Ignore changes in whitespace" +#~ msgstr "Lahla utshintsho emzelelweni ezikwisithuba esimhlophe" + +#~ msgid "Show function names" +#~ msgstr "Bonisa amagama omsebenzi" + +#, fuzzy +#~ msgid "Compare folders recursively" +#~ msgstr "Thelekisa abalawuli " + +#~ msgid "Treat new files as empty" +#~ msgstr "Pata ifayile ezintsha njengezinanto" + +#~ msgid "Format" +#~ msgstr "Ifomati" + +#~ msgid "Side-by-side" +#~ msgstr "Cala nga cala" + +#~ msgid "Number of context lines:" +#~ msgstr "Inani leelayini ezivaliweyo:" + +#, fuzzy +#~ msgid "Files" +#~ msgstr "I&fayile Elandelayo" + +#, fuzzy +#~| msgid "A&ppearance" +#~ msgid "Appearance" +#~ msgstr "&Inkangeleko" + +#~ msgid "Output Format" +#~ msgstr "Imveliso Yemijelo" + +#~ msgid "Lines of Context" +#~ msgstr "Iiayini Zentsingiselo" + +#~ msgid "General" +#~ msgstr "Ngokubanzi" + +#, fuzzy +#~| msgid "Treat new files as empty" +#~ msgid "&Treat new files as empty" +#~ msgstr "Pata ifayile ezintsha njengezinanto" + +#~ msgid "&Look for smaller changes" +#~ msgstr "&Khangela utshintsho oluncincane" + +#~ msgid "O&ptimize for large files" +#~ msgstr "S&ebenzisa ngokupheleleyo ifayile ezikulu" + +#~ msgid "&Ignore changes in case" +#~ msgstr "&Sukunanza utshintsho ngentla" + +#~ msgid "Whitespace" +#~ msgstr "Isithuba esimhlophee" + +#, fuzzy +#~ msgid "E&xpand tabs to spaces in output" +#~ msgstr "&Yandisa i tabs ezithubeni kwimveliso" + +#~ msgid "I&gnore added or removed empty lines" +#~ msgstr "L&ahla ezongeziweyo okanye ezisusiweyo iilayini ezingenanto" + +#~ msgid "Ig&nore changes in the amount of whitespace" +#~ msgstr "La&hla utshintsho emzelelweni ezikwisithuba esimhlophe" + +#, fuzzy +#~ msgid "Ign&ore all whitespace" +#~ msgstr "Lahla utshintsho emzelelweni ezikwisithuba esimhlophe" + +#, fuzzy +#~ msgid "Igno&re changes due to tab expansion" +#~ msgstr "Lahla utshintsho emzelelweni ezikwisithuba esimhlophe" + +#~ msgid "Colors" +#~ msgstr "Imibala" + +#~ msgid "Removed color:" +#~ msgstr "Umbala Osusiweyo:" + +#~ msgid "Changed color:" +#~ msgstr "Tshintsha umbala:" + +#~ msgid "Added color:" +#~ msgstr "Umbala Odityanisiweyo:" + +#~ msgid "Applied color:" +#~ msgstr "Umbala osebenzisiweyo:" + +#~ msgid "Mouse Wheel" +#~ msgstr "Ivili le Mouse" + +#~ msgid "Number of lines:" +#~ msgstr "Inani lelayini:" + +#, fuzzy +#~ msgid "Tabs to Spaces" +#~ msgstr "Yandisa i tabs ezithubeni" + +#, fuzzy +#~ msgid "Fonts" +#~ msgstr "&Ifomati" + +#, fuzzy +#~ msgid "" +#~ "A program to view the differences between files and optionally generate a " +#~ "diff" +#~ msgstr "Inkqubo yemkubonia umehluko phakathi kwefayile nokukhetha i diff." + +#~ msgid "Kompare" +#~ msgstr "Kompare" + +#, fuzzy +#~ msgid "" +#~ "(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) " +#~ "2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler" +#~ msgstr "(c) 2001-2002, John Firebaugh no Otto Bruggeman" + +#, fuzzy +#~ msgid "Kompare icon artist" +#~ msgstr "KomparePart" + +#~ msgid "Cervisia diff viewer" +#~ msgstr "Umboniseli we Cervisia diff" + +#, fuzzy +#~ msgid "Compare these files or folder" +#~ msgstr "Thelekisa ezifayile okanye abalawuli" + +#, fuzzy +#~ msgid "Could not find our KompareViewPart." +#~ msgstr "Ayikwazanga ukufumana icala Lethu!" + +#, fuzzy +#~ msgid "Could not find our KompareNavigationPart." +#~ msgstr "Ayikwazanga ukufumana icala Lethu!" + +#~ msgid "A&ppearance" +#~ msgstr "&Inkangeleko" + +#, fuzzy +#~ msgid "&Diff" +#~ msgstr "iDiff" + +#~ msgid "&Format" +#~ msgstr "&Ifomati" + +#~ msgid "O&ptions" +#~ msgstr "I&inketho" + +#, fuzzy +#~ msgid "Hide T&ext View" +#~ msgstr "Imboniselo Yokubhaliweyo" diff --git a/po/zh_CN/libkomparediff2.po b/po/zh_CN/libkomparediff2.po index 2699fe2..38fe80d 100644 --- a/po/zh_CN/libkomparediff2.po +++ b/po/zh_CN/libkomparediff2.po @@ -1,19 +1,9 @@ -# translation of kompare.po to 简体中文 -# Copyright (C) 2002,2003, 2004, 2008, 2009 Free Software Foundation, Inc. -# -# Li Zongliang , 2001,2002. -# Xiong Jiang , 2002,2003. -# Levin Du , 2004. -# Ni Hui , 2008, 2009, 2010, 2012. -# Lie Ex , 2008, 2009. -# FengChao , 2011. -# Weng Xuetian , 2011. msgid "" msgstr "" "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" -"PO-Revision-Date: 2021-07-26 13:49\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" +"PO-Revision-Date: 2024-04-23 19:31\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -24,90 +14,90 @@ msgstr "" "X-Crowdin-Project: kdeorg\n" "X-Crowdin-Project-ID: 269464\n" "X-Crowdin-Language: zh-CN\n" -"X-Crowdin-File: /kf5-stable/messages/libkomparediff2/libkomparediff2.pot\n" -"X-Crowdin-File-ID: 4543\n" +"X-Crowdin-File: /kf6-stable/messages/libkomparediff2/libkomparediff2.pot\n" +"X-Crowdin-File-ID: 54952\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "应用差异(&A)" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "不应用差异(&A)" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "全部应用(&L)" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "全部不应用(&U)" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "上一个文件(&R)" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "下一个文件(&E)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "上一处差异(&P)" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "下一处差异(&N)" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "" -"没有模型(model)或比较结果,此文件:%1不是合法的 diff 文件。" +"没有模型或比较结果,此文件:%1 不是一个有效的 diff 文件。" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "应用 diff 结果%1到文件%2时出现问题。" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "应用 diff 结果%1到文件夹%2时出现问题。" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "无法打开临时文件。" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "无法写入临时文件%1,将删除该文件。" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" @@ -116,7 +106,7 @@ msgstr "" "无法创建目标目录 %1。\n" "文件未保存。" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1无法上传临时文件到目标位置%1。在%2下的临时文件仍然可用,可" "以手工复制到正确的地方。" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "无法分析 diff 输出。" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "文件是相同的。" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "无法写入临时文件。" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/po/zh_TW/libkomparediff2.po b/po/zh_TW/libkomparediff2.po index 57f895a..7a938d7 100644 --- a/po/zh_TW/libkomparediff2.po +++ b/po/zh_TW/libkomparediff2.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: kompare\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-07-22 01:40+0000\n" +"POT-Creation-Date: 2024-07-19 00:41+0000\n" "PO-Revision-Date: 2020-05-15 00:15+0800\n" "Last-Translator: Yi-Jyun Pan \n" "Language-Team: Chinese \n" @@ -21,93 +21,93 @@ msgstr "" "X-Generator: Lokalize 20.04.0\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: komparemodellist.cpp:58 +#: modellist.cpp:49 #, kde-format msgctxt "@action" msgid "&Apply Difference" msgstr "套用差異處(&A)" -#: komparemodellist.cpp:62 +#: modellist.cpp:53 #, kde-format msgctxt "@action" msgid "Un&apply Difference" msgstr "取消套用差異處(&A)" -#: komparemodellist.cpp:66 +#: modellist.cpp:57 #, kde-format msgctxt "@action" msgid "App&ly All" msgstr "全部套用(&L)" -#: komparemodellist.cpp:70 +#: modellist.cpp:61 #, kde-format msgctxt "@action" msgid "&Unapply All" msgstr "全部取消套用(&U)" -#: komparemodellist.cpp:80 +#: modellist.cpp:71 #, kde-format msgctxt "@action" msgid "P&revious File" msgstr "上一個檔案(&R)" -#: komparemodellist.cpp:84 +#: modellist.cpp:75 #, kde-format msgctxt "@action" msgid "N&ext File" msgstr "下一個檔案(&E)" -#: komparemodellist.cpp:88 +#: modellist.cpp:79 #, kde-format msgctxt "@action" msgid "&Previous Difference" msgstr "上一個差異(&P)" -#: komparemodellist.cpp:92 +#: modellist.cpp:83 #, kde-format msgctxt "@action" msgid "&Next Difference" msgstr "下一個差異(&N)" -#: komparemodellist.cpp:253 komparemodellist.cpp:278 +#: modellist.cpp:183 modellist.cpp:209 #, kde-format msgid "" "No models or no differences, this file: %1, is not a valid diff " "file." msgstr "檔案 %1 不是合法的 diff 檔,沒有任何模式或差異處。" -#: komparemodellist.cpp:262 +#: modellist.cpp:192 #, kde-format msgid "" "There were problems applying the diff %1 to the file %2." msgstr "套用 %1到檔案 %2 時發生問題。" -#: komparemodellist.cpp:289 +#: modellist.cpp:220 #, kde-format msgid "" "There were problems applying the diff %1 to the folder %2." "" msgstr "套用 %1到資料夾 %2 時發生問題。" -#: komparemodellist.cpp:321 komparemodellist.cpp:679 +#: modellist.cpp:256 modellist.cpp:520 #, kde-format msgid "Could not open a temporary file." msgstr "無法開啟暫存檔。" -#: komparemodellist.cpp:369 komparemodellist.cpp:376 +#: modellist.cpp:289 modellist.cpp:296 #, kde-format msgid "Could not write to the temporary file %1, deleting it." msgstr "無法寫入暫存檔 %1,暫存檔將被刪除。" -#: komparemodellist.cpp:407 +#: modellist.cpp:324 #, kde-format msgid "" "Could not create destination directory %1.\n" "The file has not been saved." msgstr "無法建立目標資料夾 %1。檔案尚未儲存。" -#: komparemodellist.cpp:434 +#: modellist.cpp:350 #, kde-format msgid "" "Could not upload the temporary file to the destination location %1無法將暫存檔上傳到目標位置 %1。暫存檔仍然在 %2。您可以手動" "複製到正確的地方。" -#: komparemodellist.cpp:513 komparemodellist.cpp:626 komparemodellist.cpp:646 +#: modellist.cpp:429 modellist.cpp:465 modellist.cpp:486 #, kde-format msgid "Could not parse diff output." msgstr "無法分析 diff 輸出。" -#: komparemodellist.cpp:529 +#: modellist.cpp:440 #, kde-format msgid "The files are identical." msgstr "檔案完全相同。" -#: komparemodellist.cpp:711 +#: modellist.cpp:550 #, kde-format msgid "Could not write to the temporary file." msgstr "無法寫入暫存檔。" -#: komparemodellist.cpp:985 +#: modellist.cpp:820 #, kde-format msgid "" "The diff is malformed. Some lines could not be parsed and will not be " diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 47d1675..701aa01 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,74 +1,114 @@ +set(KOMPAREDIFF2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR}/KompareDiff2") +set(KOMPAREDIFF2_CMAKECONFIG_NAME "KompareDiff2") + add_definitions(-DTRANSLATION_DOMAIN=\"libkomparediff2\") -set(LibKompareDiff2_SOVERSION 5) +ecm_setup_version(PROJECT + VARIABLE_PREFIX KOMPAREDIFF2 + VERSION_HEADER "komparediff2_version.h" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/${KOMPAREDIFF2_CMAKECONFIG_NAME}ConfigVersion.cmake" + COMPATIBILITY SameMajorVersion + SOVERSION 6 +) add_library(komparediff2 SHARED) +set_target_properties(komparediff2 PROPERTIES + VERSION ${KOMPAREDIFF2_VERSION} + SOVERSION ${KOMPAREDIFF2_SOVERSION} + EXPORT_NAME "KompareDiff2" +) + target_sources(komparediff2 PRIVATE kompareprocess.cpp - komparemodellist.cpp + modellist.cpp + modellist_p.cpp diffmodellist.cpp diffmodel.cpp + diffmodel_p.cpp difference.cpp + differencestring.cpp diffhunk.cpp diffsettings.cpp - settingsbase.cpp + info.cpp parser.cpp parserbase.cpp cvsdiffparser.cpp diffparser.cpp perforceparser.cpp stringlistpair.cpp - kompare.cpp ) ecm_qt_declare_logging_category(komparediff2 - HEADER komparediffdebug.h - IDENTIFIER LIBKOMPAREDIFF2 + HEADER komparediff2_logging.h + IDENTIFIER KOMPAREDIFF2_LOG CATEGORY_NAME "libkomparediff" DESCRIPTION "libkomparediff" EXPORT komparediff2 ) -generate_export_header(komparediff2 BASE_NAME diff2) +ecm_generate_export_header(komparediff2 + VERSION ${KOMPAREDIFF2_VERSION} + DEPRECATED_BASE_VERSION 0 + DEPRECATION_VERSIONS + EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} + USE_VERSION_HEADER +) target_link_libraries(komparediff2 PUBLIC - KF5::XmlGui - KF5::ConfigCore - Qt5::Widgets - Qt5::Core + KF6::XmlGui + KF6::ConfigCore + Qt6::Widgets + Qt6::Core PRIVATE - KF5::Codecs - KF5::KIOCore - KF5::I18n - KF5::CoreAddons + KF6::KIOCore + KF6::I18n + KF6::CoreAddons ) -target_include_directories(komparediff2 INTERFACE "$") - -set_target_properties(komparediff2 PROPERTIES - VERSION ${LibKompareDiff2_VERSION} - SOVERSION ${LibKompareDiff2_SOVERSION} - EXPORT_NAME "KompareDiff2" -) +target_include_directories(komparediff2 INTERFACE "$") install(TARGETS komparediff2 EXPORT LibKompareDiff2Targets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +ecm_generate_headers(komparediff2_CamelCase_HEADERS + HEADER_NAMES + Difference + DifferenceString + DiffHunk + DiffModel + DiffModelList + DiffSettings + Info + Global + Marker + ModelList + PREFIX KompareDiff2 + REQUIRED_HEADERS komparediff2_HEADERS +) + install( FILES - ${CMAKE_CURRENT_BINARY_DIR}/diff2_export.h - settingsbase.h - diffsettings.h - komparemodellist.h - difference.h - diffmodel.h - diffmodellist.h - marker.h - kompare.h - diffhunk.h + ${CMAKE_CURRENT_BINARY_DIR}/komparediff2_export.h + ${komparediff2_HEADERS} DESTINATION - ${KDE_INSTALL_INCLUDEDIR}/libkomparediff2 + ${KOMPAREDIFF2_INSTALL_INCLUDEDIR}/komparediff2 + COMPONENT + Devel +) +install( + FILES + ${komparediff2_CamelCase_HEADERS} + DESTINATION + ${KOMPAREDIFF2_INSTALL_INCLUDEDIR}/KompareDiff2 + COMPONENT + Devel +) +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/komparediff2_version.h + DESTINATION + ${KOMPAREDIFF2_INSTALL_INCLUDEDIR} COMPONENT Devel ) @@ -81,22 +121,18 @@ ecm_qt_install_logging_categories( # CMake config files -set(_LibKompareDiff2_CONFIG_DEST "${KDE_INSTALL_CMAKEPACKAGEDIR}/LibKompareDiff2") +set(_LibKompareDiff2_CONFIG_DEST "${KDE_INSTALL_CMAKEPACKAGEDIR}/${KOMPAREDIFF2_CMAKECONFIG_NAME}") configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/LibKompareDiff2Config.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/LibKompareDiff2Config.cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/KompareDiff2Config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/${KOMPAREDIFF2_CMAKECONFIG_NAME}Config.cmake" INSTALL_DESTINATION "${_LibKompareDiff2_CONFIG_DEST}" ) -write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/LibKompareDiff2ConfigVersion.cmake" - COMPATIBILITY SameMajorVersion -) install( FILES - "${CMAKE_CURRENT_BINARY_DIR}/LibKompareDiff2ConfigVersion.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/LibKompareDiff2Config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/${KOMPAREDIFF2_CMAKECONFIG_NAME}ConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/${KOMPAREDIFF2_CMAKECONFIG_NAME}Config.cmake" DESTINATION "${_LibKompareDiff2_CONFIG_DEST}" ) install( EXPORT LibKompareDiff2Targets DESTINATION "${_LibKompareDiff2_CONFIG_DEST}" - FILE LibKompareDiff2Targets.cmake ) + FILE ${KOMPAREDIFF2_CMAKECONFIG_NAME}Targets.cmake ) diff --git a/src/KompareDiff2Config.cmake.in b/src/KompareDiff2Config.cmake.in new file mode 100644 index 0000000..bb13a28 --- /dev/null +++ b/src/KompareDiff2Config.cmake.in @@ -0,0 +1,10 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(Qt6Core "@QT_MIN_VERSION@") +find_dependency(Qt6Widgets "@QT_MIN_VERSION@") + +find_dependency(KF6Config "@KF_MIN_VERSION@") +find_dependency(KF6XmlGui "@KF_MIN_VERSION@") + +include("${CMAKE_CURRENT_LIST_DIR}/@KOMPAREDIFF2_CMAKECONFIG_NAME@Targets.cmake") diff --git a/src/LibKompareDiff2Config.cmake.in b/src/LibKompareDiff2Config.cmake.in deleted file mode 100644 index 4043626..0000000 --- a/src/LibKompareDiff2Config.cmake.in +++ /dev/null @@ -1,13 +0,0 @@ -@PACKAGE_INIT@ - -include(CMakeFindDependencyMacro) -find_dependency(Qt5Core "@QT_MIN_VERSION@") -find_dependency(Qt5Widgets "@QT_MIN_VERSION@") - -find_dependency(KF5Config "@KF_MIN_VERSION@") -find_dependency(KF5XmlGui "@KF_MIN_VERSION@") - -include("${CMAKE_CURRENT_LIST_DIR}/LibKompareDiff2Targets.cmake") - -get_target_property(LIBKOMPAREDIFF2_INCLUDE_DIR KompareDiff2 INTERFACE_INCLUDE_DIRECTORIES) -set(LIBKOMPAREDIFF2_LIBRARIES KompareDiff2) diff --git a/src/cvsdiffparser.cpp b/src/cvsdiffparser.cpp index ca9a6b8..2dd4240 100644 --- a/src/cvsdiffparser.cpp +++ b/src/cvsdiffparser.cpp @@ -1,109 +1,96 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "cvsdiffparser.h" -#include +// lib +#include "modellist.h" +#include +// Qt +#include -#include -#include "komparemodellist.h" +using namespace KompareDiff2; -using namespace Diff2; - -CVSDiffParser::CVSDiffParser(const KompareModelList* list, const QStringList& diff) : ParserBase(list, diff) +CVSDiffParser::CVSDiffParser(const ModelList *list, const QStringList &diff) + : ParserBase(list, diff) { // The regexps needed for context cvs diff parsing, the rest is the same as in parserbase.cpp // third capture in header1 is non optional for cvs diff, it is the revision - m_contextDiffHeader1.setPattern(QStringLiteral("\\*\\*\\* ([^\\t]+)\\t([^\\t]+)\\t(.*)\\n")); - m_contextDiffHeader2.setPattern(QStringLiteral("--- ([^\\t]+)\\t([^\\t]+)(|\\t(.*))\\n")); + m_contextDiffHeader1.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("\\*\\*\\* ([^\\t]+)\\t([^\\t]+)\\t(.*)\\n"))); + m_contextDiffHeader2.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("--- ([^\\t]+)\\t([^\\t]+)(|\\t(.*))\\n"))); - m_normalDiffHeader.setPattern(QStringLiteral("Index: (.*)\\n")); + m_normalDiffHeader.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("Index: (.*)\\n"))); } -CVSDiffParser::~CVSDiffParser() -{ -} +CVSDiffParser::~CVSDiffParser() = default; -enum Kompare::Format CVSDiffParser::determineFormat() +Format CVSDiffParser::determineFormat() { -// qCDebug(LIBKOMPAREDIFF2) << "Determining the format of the CVSDiff"; - - QRegExp normalRE(QStringLiteral("[0-9]+[0-9,]*[acd][0-9]+[0-9,]*")); - QRegExp unifiedRE(QStringLiteral("^--- [^\\t]+\\t")); - QRegExp contextRE(QStringLiteral("^\\*\\*\\* [^\\t]+\\t")); - QRegExp rcsRE(QStringLiteral("^[acd][0-9]+ [0-9]+")); - QRegExp edRE(QStringLiteral("^[0-9]+[0-9,]*[acd]")); - - QStringList::ConstIterator it = m_diffLines.begin(); - - while (it != m_diffLines.end()) - { - if ((*it).indexOf(normalRE, 0) == 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Normal diff..."; - return Kompare::Normal; + // qCDebug(KOMPAREDIFF2_LOG) << "Determining the format of the CVSDiff"; + + QRegularExpression normalRE(QStringLiteral("[0-9]+[0-9,]*[acd][0-9]+[0-9,]*")); + QRegularExpression unifiedRE(QStringLiteral("^--- [^\\t]+\\t")); + QRegularExpression contextRE(QStringLiteral("^\\*\\*\\* [^\\t]+\\t")); + QRegularExpression rcsRE(QStringLiteral("^[acd][0-9]+ [0-9]+")); + QRegularExpression edRE(QStringLiteral("^[0-9]+[0-9,]*[acd]")); + + for (const QString &diffLine : std::as_const(m_diffLines)) { + if (diffLine.indexOf(normalRE, 0) == 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Normal diff..."; + return Normal; } - else if ((*it).indexOf(unifiedRE, 0) == 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Unified diff..."; - return Kompare::Unified; + if (diffLine.indexOf(unifiedRE, 0) == 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Unified diff..."; + return Unified; } - else if ((*it).indexOf(contextRE, 0) == 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Context diff..."; - return Kompare::Context; + if (diffLine.indexOf(contextRE, 0) == 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Context diff..."; + return Context; } - else if ((*it).indexOf(rcsRE, 0) == 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a RCS diff..."; - return Kompare::RCS; + if (diffLine.indexOf(rcsRE, 0) == 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a RCS diff..."; + return RCS; } - else if ((*it).indexOf(edRE, 0) == 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "Difflines are from an ED diff..."; - return Kompare::Ed; + if (diffLine.indexOf(edRE, 0) == 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from an ED diff..."; + return Ed; } - ++it; } -// qCDebug(LIBKOMPAREDIFF2) << "Difflines are from an unknown diff..."; - return Kompare::UnknownFormat; + // qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from an unknown diff..."; + return UnknownFormat; } bool CVSDiffParser::parseNormalDiffHeader() { - qCDebug(LIBKOMPAREDIFF2) << "CVSDiffParser::parseNormalDiffHeader()"; + qCDebug(KOMPAREDIFF2_LOG) << "CVSDiffParser::parseNormalDiffHeader()"; bool result = false; QStringList::ConstIterator diffEnd = m_diffLines.end(); - while (m_diffIterator != diffEnd) - { - if (m_normalDiffHeader.exactMatch(*m_diffIterator)) - { - qCDebug(LIBKOMPAREDIFF2) << "Matched length Header = " << m_normalDiffHeader.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Matched string Header = " << m_normalDiffHeader.cap(0); + while (m_diffIterator != diffEnd) { + const auto normalDiffHeaderMatch = m_normalDiffHeader.match(*m_diffIterator); + if (normalDiffHeaderMatch.hasMatch()) { + qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header = " << normalDiffHeaderMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header = " << normalDiffHeaderMatch.captured(0); m_currentModel = new DiffModel(); - m_currentModel->setSourceFile(m_normalDiffHeader.cap(1)); - m_currentModel->setDestinationFile(m_normalDiffHeader.cap(1)); + m_currentModel->setSourceFile(normalDiffHeaderMatch.captured(1)); + m_currentModel->setDestinationFile(normalDiffHeaderMatch.captured(1)); result = true; ++m_diffIterator; break; - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "No match for: " << (*m_diffIterator); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "No match for: " << (*m_diffIterator); } ++m_diffIterator; } - if (result == false) - { + if (result == false) { // Set this to the first line again and hope it is a single file diff m_diffIterator = m_diffLines.begin(); m_currentModel = new DiffModel(); @@ -113,7 +100,6 @@ bool CVSDiffParser::parseNormalDiffHeader() return result; } - bool CVSDiffParser::parseEdDiffHeader() { return false; diff --git a/src/cvsdiffparser.h b/src/cvsdiffparser.h index dfec37f..7d1a165 100644 --- a/src/cvsdiffparser.h +++ b/src/cvsdiffparser.h @@ -1,27 +1,28 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef CVSDIFF_PARSER_H -#define CVSDIFF_PARSER_H +#ifndef KOMPAREDIFF2_CVSDIFFPARSER_H +#define KOMPAREDIFF2_CVSDIFFPARSER_H +// lib #include "parserbase.h" -namespace Diff2 +namespace KompareDiff2 { -class KompareModelList; +class ModelList; class CVSDiffParser : public ParserBase { public: - CVSDiffParser(const KompareModelList* list, const QStringList& diff); + CVSDiffParser(const ModelList *list, const QStringList &diff); ~CVSDiffParser() override; protected: - enum Kompare::Format determineFormat() override; + Format determineFormat() override; protected: // virtual bool parseContextDiffHeader(); @@ -43,6 +44,6 @@ class CVSDiffParser : public ParserBase // virtual bool parseUnifiedHunkBody(); }; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif diff --git a/src/difference.cpp b/src/difference.cpp index f409f30..8ccb37c 100644 --- a/src/difference.cpp +++ b/src/difference.cpp @@ -1,91 +1,210 @@ /* -SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "difference.h" +#include "difference_p.h" + +// lib #include "differencestringpair.h" #include "levenshteintable.h" -using namespace Diff2; +using namespace KompareDiff2; + +Difference::Difference(int sourceLineNo, int destinationLineNo, int type) + : d_ptr(new DifferencePrivate(sourceLineNo, destinationLineNo, type)) +{ +} + +Difference::~Difference() = default; + +int Difference::type() const +{ + Q_D(const Difference); + + return d->type; +}; + +int Difference::sourceLineNumber() const +{ + Q_D(const Difference); + + return d->sourceLineNo; +} + +int Difference::destinationLineNumber() const +{ + Q_D(const Difference); + + return d->destinationLineNo; +} + +int Difference::trackingDestinationLineNumber() const +{ + Q_D(const Difference); + + return d->trackingDestinationLineNo; +} + +void Difference::setTrackingDestinationLineNumber(int i) +{ + Q_D(Difference); + + d->trackingDestinationLineNo = i; +} -Difference::Difference(int sourceLineNo, int destinationLineNo, int type) : - QObject(), - m_type(type), - m_sourceLineNo(sourceLineNo), - m_destinationLineNo(destinationLineNo), - m_trackingDestinationLineNo(sourceLineNo), // The whole patch starts as unapplied - m_applied(false), - m_conflicts(false), - m_unsaved(false) +DifferenceString *Difference::sourceLineAt(int i) const { + Q_D(const Difference); + + return d->sourceLines[i]; } -Difference::~Difference() +DifferenceString *Difference::destinationLineAt(int i) const { - qDeleteAll(m_sourceLines); - qDeleteAll(m_destinationLines); + Q_D(const Difference); + + return d->destinationLines[i]; } -void Difference::addSourceLine(QString line) +DifferenceStringList Difference::sourceLines() const { - m_sourceLines.append(new DifferenceString(line)); + Q_D(const Difference); + + return d->sourceLines; } -void Difference::addDestinationLine(QString line) +DifferenceStringList Difference::destinationLines() const { - m_destinationLines.append(new DifferenceString(line)); + Q_D(const Difference); + + return d->destinationLines; +} + +bool Difference::hasConflict() const +{ + Q_D(const Difference); + + return d->conflicts; +} + +void Difference::setConflict(bool conflicts) +{ + Q_D(Difference); + + d->conflicts = conflicts; +} + +bool Difference::isUnsaved() const +{ + Q_D(const Difference); + + return d->unsaved; +} + +void Difference::setUnsaved(bool unsaved) +{ + Q_D(Difference); + + d->unsaved = unsaved; +} + +bool Difference::applied() const +{ + Q_D(const Difference); + + return d->applied; +} + +void Difference::setType(int type) +{ + Q_D(Difference); + + d->type = type; +} + +void Difference::addSourceLine(const QString &line) +{ + Q_D(Difference); + + d->sourceLines.append(new DifferenceString(line)); +} + +void Difference::addDestinationLine(const QString &line) +{ + Q_D(Difference); + + d->destinationLines.append(new DifferenceString(line)); } int Difference::sourceLineCount() const { - return m_sourceLines.count(); + Q_D(const Difference); + + return d->sourceLines.count(); } int Difference::destinationLineCount() const { - return m_destinationLines.count(); + Q_D(const Difference); + + return d->destinationLines.count(); } int Difference::sourceLineEnd() const { - return m_sourceLineNo + m_sourceLines.count(); + Q_D(const Difference); + + return d->sourceLineNo + d->sourceLines.count(); } int Difference::destinationLineEnd() const { - return m_destinationLineNo + m_destinationLines.count(); + Q_D(const Difference); + + return d->destinationLineNo + d->destinationLines.count(); } int Difference::trackingDestinationLineEnd() const { - return m_trackingDestinationLineNo + m_destinationLines.count(); + Q_D(const Difference); + + return d->trackingDestinationLineNo + d->destinationLines.count(); } void Difference::apply(bool apply) { - if (apply != m_applied) - { - m_applied = apply; - m_unsaved = !m_unsaved; - Q_EMIT differenceApplied(this); + Q_D(Difference); + + if (apply == d->applied) { + return; } + + d->applied = apply; + d->unsaved = !d->unsaved; + Q_EMIT differenceApplied(this); } void Difference::applyQuietly(bool apply) { - if (m_applied != apply) - { - m_unsaved = !m_unsaved; - m_applied = apply; + Q_D(Difference); + + if (d->applied == apply) { + return; } + + d->unsaved = !d->unsaved; + d->applied = apply; } void Difference::determineInlineDifferences() { - if (m_type != Difference::Change) + Q_D(Difference); + + if (d->type != Difference::Change) return; // Do nothing for now when the slc != dlc @@ -98,11 +217,10 @@ void Difference::determineInlineDifferences() LevenshteinTable table; - for (int i = 0; i < slc; ++i) - { - DifferenceString* sl = sourceLineAt(i); - DifferenceString* dl = destinationLineAt(i); - DifferenceStringPair* pair = new DifferenceStringPair(sl, dl); + for (int i = 0; i < slc; ++i) { + DifferenceString *sl = sourceLineAt(i); + DifferenceString *dl = destinationLineAt(i); + DifferenceStringPair *pair = new DifferenceStringPair(sl, dl); // return value 0 means something went wrong creating the table so don't bother finding markers if (table.createTable(pair) != 0) @@ -112,16 +230,13 @@ void Difference::determineInlineDifferences() QString Difference::recreateDifference() const { + Q_D(const Difference); + QString difference; // source - DifferenceStringListConstIterator stringIt = m_sourceLines.begin(); - DifferenceStringListConstIterator sEnd = m_sourceLines.end(); - - for (; stringIt != sEnd; ++stringIt) - { - switch (m_type) - { + for (const DifferenceString *diffString : d->sourceLines) { + switch (d->type) { case Change: case Delete: difference += QLatin1Char('-'); @@ -130,20 +245,15 @@ QString Difference::recreateDifference() const // Insert but this is not possible in source // Unchanged will be handled in destination // since they are the same -// qCDebug(LIBKOMPAREDIFF2) << "Go away, nothing to do for you in source..."; +// qCDebug(KOMPAREDIFF2_LOG) << "Go away, nothing to do for you in source..."; continue; } - difference += (*stringIt)->string(); + difference += diffString->string(); } - //destination - stringIt = m_destinationLines.begin(); - sEnd = m_destinationLines.end(); - - for (; stringIt != sEnd; ++stringIt) - { - switch (m_type) - { + // destination + for (const DifferenceString *diffString : d->destinationLines) { + switch (d->type) { case Change: case Insert: difference += QLatin1Char('+'); @@ -152,12 +262,13 @@ QString Difference::recreateDifference() const difference += QLatin1Char(' '); break; default: // Delete but this is not possible in destination -// qCDebug(LIBKOMPAREDIFF2) << "Go away, nothing to do for you in destination..."; +// qCDebug(KOMPAREDIFF2_LOG) << "Go away, nothing to do for you in destination..."; continue; } - difference += (*stringIt)->string(); + difference += diffString->string(); } return difference; } +#include "moc_difference.cpp" diff --git a/src/difference.h b/src/difference.h index 641f75c..41c847e 100644 --- a/src/difference.h +++ b/src/difference.h @@ -1,136 +1,50 @@ /* -SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFFERENCE_H -#define DIFFERENCE_H +#ifndef KOMPAREDIFF2_DIFFERENCE_H +#define KOMPAREDIFF2_DIFFERENCE_H -#include +// lib +#include "differencestring.h" +#include "komparediff2_export.h" +// Qt #include +// Std +#include -#include "diff2_export.h" -#include "marker.h" - -// #include - -class QString; - -namespace Diff2 +namespace KompareDiff2 { +class DifferencePrivate; /** - * A difference string. - */ -class DIFF2_EXPORT DifferenceString -{ -public: - DifferenceString() - { -// qCDebug(LIBKOMPAREDIFF2) << "DifferenceString::DifferenceString()"; - } - explicit DifferenceString(const QString& string, const MarkerList& markerList = MarkerList()) : - m_string(string), - m_markerList(markerList) - { -// qCDebug(LIBKOMPAREDIFF2) << "DifferenceString::DifferenceString( " << string << ", " << markerList << " )"; - calculateHash(); - } - DifferenceString(const DifferenceString& ds) : - m_string(ds.m_string), - m_conflict(ds.m_conflict), - m_hash(ds.m_hash), - m_markerList(ds.m_markerList) - { -// qCDebug(LIBKOMPAREDIFF2) << "DifferenceString::DifferenceString( const DifferenceString& " << ds << " )"; - } - ~DifferenceString() - { - qDeleteAll(m_markerList); - } - -public: - const QString& string() const - { - return m_string; - } - const QString& conflictString() const - { - return m_conflict; - } - const MarkerList& markerList() - { - return m_markerList; - } - void setString(const QString& string) - { - m_string = string; - calculateHash(); - } - void setConflictString(const QString& conflict) - { - m_conflict = conflict; - } - void setMarkerList(const MarkerList& markerList) - { - m_markerList = markerList; - } - void prepend(Marker* marker) - { - m_markerList.prepend(marker); - } - bool operator==(const DifferenceString& ks) - { - if (m_hash != ks.m_hash) - return false; - return m_string == ks.m_string; - } - -protected: - void calculateHash() - { - unsigned short const* str = reinterpret_cast(m_string.unicode()); - const unsigned int len = m_string.length(); - - m_hash = 1315423911; - - for (unsigned int i = 0; i < len; ++i) - { - m_hash ^= (m_hash << 5) + str[i] + (m_hash >> 2); - } - } - -private: - QString m_string; - QString m_conflict; - unsigned int m_hash; - MarkerList m_markerList; -}; - -using DifferenceStringList = QVector; -using DifferenceStringListIterator = QVector::iterator; -using DifferenceStringListConstIterator = QVector::const_iterator; - -/** + * @class Difference difference.h + * * A difference. */ -class DIFF2_EXPORT Difference : public QObject +class KOMPAREDIFF2_EXPORT Difference : public QObject { Q_OBJECT public: - enum Type { Change, Insert, Delete, Unchanged }; + enum Type { + Change, + Insert, + Delete, + Unchanged, + }; public: Difference(int sourceLineNo, int destinationLineNo, int type = Difference::Unchanged); ~Difference() override; public: - int type() const { return m_type; }; + int type() const; - int sourceLineNumber() const { return m_sourceLineNo; } - int destinationLineNumber() const { return m_destinationLineNo; } + int sourceLineNumber() const; + int destinationLineNumber() const; int sourceLineCount() const; int destinationLineCount() const; @@ -140,43 +54,31 @@ class DIFF2_EXPORT Difference : public QObject /// Destination line number that tracks applying/unapplying of other differences /// Essentially a line number in a patch consisting of applied diffs only - int trackingDestinationLineNumber() const { return m_trackingDestinationLineNo; } + int trackingDestinationLineNumber() const; int trackingDestinationLineEnd() const; - void setTrackingDestinationLineNumber(int i) { m_trackingDestinationLineNo = i; } - - DifferenceString* sourceLineAt(int i) const { return m_sourceLines[i]; } - DifferenceString* destinationLineAt(int i) const { return m_destinationLines[i]; } - - const DifferenceStringList sourceLines() const { return m_sourceLines; } - const DifferenceStringList destinationLines() const { return m_destinationLines; } - - bool hasConflict() const - { - return m_conflicts; - } - void setConflict(bool conflicts) - { - m_conflicts = conflicts; - } - - bool isUnsaved() const - { - return m_unsaved; - } - void setUnsaved(bool unsaved) - { - m_unsaved = unsaved; - } + void setTrackingDestinationLineNumber(int i); + + DifferenceString *sourceLineAt(int i) const; + DifferenceString *destinationLineAt(int i) const; + + DifferenceStringList sourceLines() const; + DifferenceStringList destinationLines() const; + + bool hasConflict() const; + void setConflict(bool conflicts); + + bool isUnsaved() const; + void setUnsaved(bool unsaved); void apply(bool apply); /// Apply without emitting any signals void applyQuietly(bool apply); - bool applied() const { return m_applied; } + bool applied() const; - void setType(int type) { m_type = type; } + void setType(int type); - void addSourceLine(QString line); - void addDestinationLine(QString line); + void addSourceLine(const QString &line); + void addDestinationLine(const QString &line); /** This method will calculate the differences between the individual strings and store them as Markers */ void determineInlineDifferences(); @@ -184,28 +86,17 @@ class DIFF2_EXPORT Difference : public QObject QString recreateDifference() const; Q_SIGNALS: - void differenceApplied(Difference*); + void differenceApplied(KompareDiff2::Difference *); private: - int m_type; - - int m_sourceLineNo; - int m_destinationLineNo; - int m_trackingDestinationLineNo; - - DifferenceStringList m_sourceLines; - DifferenceStringList m_destinationLines; - - bool m_applied; - bool m_conflicts; - bool m_unsaved; + Q_DECLARE_PRIVATE(Difference) + std::unique_ptr const d_ptr; }; -using DifferenceList = QList; -using DifferenceListIterator = QList::iterator; -using DifferenceListConstIterator = QList::const_iterator; +using DifferenceList = QList; +using DifferenceListIterator = QList::iterator; +using DifferenceListConstIterator = QList::const_iterator; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif - diff --git a/src/difference_p.h b/src/difference_p.h new file mode 100644 index 0000000..136ea5b --- /dev/null +++ b/src/difference_p.h @@ -0,0 +1,54 @@ +/* + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_DIFFERENCE_P_H +#define KOMPAREDIFF2_DIFFERENCE_P_H + +// lib +#include "differencestring.h" + +namespace KompareDiff2 +{ + +class DifferencePrivate +{ +public: + DifferencePrivate(int sourceLineNo, int destinationLineNo, int type); + ~DifferencePrivate(); + +public: + int type; + + int sourceLineNo; + int destinationLineNo; + int trackingDestinationLineNo; + + DifferenceStringList sourceLines; + DifferenceStringList destinationLines; + + bool applied = false; + bool conflicts = false; + bool unsaved = false; +}; + +DifferencePrivate::DifferencePrivate(int sourceLineNo, int destinationLineNo, int type) + : type(type) + , sourceLineNo(sourceLineNo) + , destinationLineNo(destinationLineNo) + , trackingDestinationLineNo(sourceLineNo) // The whole patch starts as unapplied +{ +} + +DifferencePrivate::~DifferencePrivate() +{ + qDeleteAll(sourceLines); + qDeleteAll(destinationLines); +} + +} + +#endif diff --git a/src/differencestring.cpp b/src/differencestring.cpp new file mode 100644 index 0000000..9a67417 --- /dev/null +++ b/src/differencestring.cpp @@ -0,0 +1,91 @@ +/* + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "differencestring.h" +#include "differencestring_p.h" + +namespace KompareDiff2 +{ + +DifferenceString::DifferenceString() + : d_ptr(new DifferenceStringPrivate()) +{ +// qCDebug(KOMPAREDIFF2_LOG) << "DifferenceString::DifferenceString()"; +} + +DifferenceString::DifferenceString(const QString &string, const MarkerList &markerList) + : d_ptr(new DifferenceStringPrivate(string, markerList)) +{ +// qCDebug(KOMPAREDIFF2_LOG) << "DifferenceString::DifferenceString( " << string << ", " << markerList << " )"; +} + +DifferenceString::DifferenceString(const DifferenceString &ds) + : d_ptr(new DifferenceStringPrivate(*ds.d_ptr)) +{ +// qCDebug(KOMPAREDIFF2_LOG) << "DifferenceString::DifferenceString( const DifferenceString& " << ds << " )"; +} + +DifferenceString::~DifferenceString() = default; + +bool DifferenceString::operator==(const DifferenceString &ks) const +{ + Q_D(const DifferenceString); + + return (*d == *ks.d_ptr); +} + +QString DifferenceString::string() const +{ + Q_D(const DifferenceString); + + return d->string; +} + +QString DifferenceString::conflictString() const +{ + Q_D(const DifferenceString); + + return d->conflict; +} + +MarkerList DifferenceString::markerList() const +{ + Q_D(const DifferenceString); + + return d->markerList; +} + +void DifferenceString::setString(const QString &string) +{ + Q_D(DifferenceString); + + d->string = string; + d->calculateHash(); +} + +void DifferenceString::setConflictString(const QString &conflict) +{ + Q_D(DifferenceString); + + d->conflict = conflict; +} + +void DifferenceString::setMarkerList(const MarkerList &markerList) +{ + Q_D(DifferenceString); + + d->markerList = markerList; +} + +void DifferenceString::prepend(Marker *marker) +{ + Q_D(DifferenceString); + + d->markerList.prepend(marker); +} + +} diff --git a/src/differencestring.h b/src/differencestring.h new file mode 100644 index 0000000..a58983f --- /dev/null +++ b/src/differencestring.h @@ -0,0 +1,59 @@ +/* + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_DIFFERENCESTRING_H +#define KOMPAREDIFF2_DIFFERENCESTRING_H + +// lib +#include "komparediff2_export.h" +#include "marker.h" +// Qt +#include +#include +// Std +#include + +namespace KompareDiff2 +{ +class DifferenceStringPrivate; + +/** + * @class DifferenceString differencestring.h + * + * A difference string. + */ +class KOMPAREDIFF2_EXPORT DifferenceString +{ +public: + DifferenceString(); + explicit DifferenceString(const QString &string, const MarkerList &markerList = MarkerList()); + DifferenceString(const DifferenceString &ds); + ~DifferenceString(); + +public: + bool operator==(const DifferenceString &ks) const; + + QString string() const; + QString conflictString() const; + MarkerList markerList() const; + void setString(const QString &string); + void setConflictString(const QString &conflict); + void setMarkerList(const MarkerList &markerList); + void prepend(Marker *marker); + +private: + Q_DECLARE_PRIVATE(DifferenceString) + std::unique_ptr const d_ptr; +}; + +using DifferenceStringList = QList; +using DifferenceStringListIterator = QList::iterator; +using DifferenceStringListConstIterator = QList::const_iterator; + +} + +#endif diff --git a/src/differencestring_p.h b/src/differencestring_p.h new file mode 100644 index 0000000..6c43b6a --- /dev/null +++ b/src/differencestring_p.h @@ -0,0 +1,74 @@ +/* + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_DIFFERENCESTRING_P_H +#define KOMPAREDIFF2_DIFFERENCESTRING_P_H + +// lib +#include "marker.h" +// Qt +#include + +namespace KompareDiff2 +{ + +class DifferenceStringPrivate +{ +public: + DifferenceStringPrivate() = default; + DifferenceStringPrivate(const QString &string, const MarkerList &markerList); + DifferenceStringPrivate(const DifferenceStringPrivate &ds) = default; + + ~DifferenceStringPrivate(); + + bool operator==(const DifferenceStringPrivate &ks) const; + +public: + void calculateHash(); + +public: + QString string; + QString conflict; + unsigned int hash; + MarkerList markerList; +}; + +inline DifferenceStringPrivate::DifferenceStringPrivate(const QString &string, const MarkerList &markerList) + : string(string) + , markerList(markerList) +{ + calculateHash(); +} + +inline DifferenceStringPrivate::~DifferenceStringPrivate() +{ + qDeleteAll(markerList); +} + +inline bool DifferenceStringPrivate::operator==(const DifferenceStringPrivate &ks) const +{ + if (hash != ks.hash) { + return false; + } + return (string == ks.string); +} + +inline void DifferenceStringPrivate::calculateHash() +{ + unsigned short const *str = reinterpret_cast(string.unicode()); + const unsigned int len = string.length(); + + hash = 1315423911; + + for (unsigned int i = 0; i < len; ++i) { + hash ^= (hash << 5) + str[i] + (hash >> 2); + } +} + +} + +#endif diff --git a/src/differencestringpair.h b/src/differencestringpair.h index 7e183f7..5f1cc9c 100644 --- a/src/differencestringpair.h +++ b/src/differencestringpair.h @@ -1,28 +1,35 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ -#ifndef DIFFERENCESTRINGPAIR_H -#define DIFFERENCESTRINGPAIR_H +#ifndef KOMPAREDIFF2_DIFFERENCESTRINGPAIR_H +#define KOMPAREDIFF2_DIFFERENCESTRINGPAIR_H +// lib +#include "differencestring.h" +// Qt #include -#include "difference.h" - -namespace Diff2 { +namespace KompareDiff2 +{ class Marker; class DifferenceString; -class DifferenceStringPair { +class DifferenceStringPair +{ public: - DifferenceStringPair(DifferenceString* first, DifferenceString* second) - : m_first(first), m_second(second), - m_strFirst(QLatin1Char(' ') + first->string()), m_strSecond(QLatin1Char(' ') + second->string()), - m_lengthFirst(m_strFirst.length()), m_lengthSecond(m_strSecond.length()), - m_arrayFirst(m_strFirst.unicode()), m_arraySecond(m_strSecond.unicode()) + DifferenceStringPair(DifferenceString *first, DifferenceString *second) + : m_first(first) + , m_second(second) + , m_strFirst(QLatin1Char(' ') + first->string()) + , m_strSecond(QLatin1Char(' ') + second->string()) + , m_lengthFirst(m_strFirst.length()) + , m_lengthSecond(m_strSecond.length()) + , m_arrayFirst(m_strFirst.unicode()) + , m_arraySecond(m_strSecond.unicode()) { // Actual contents must be indented by 1 } @@ -46,11 +53,11 @@ class DifferenceStringPair { { return m_second->markerList(); } - void prependFirst(Marker* marker) + void prependFirst(Marker *marker) { m_first->prepend(marker); } - void prependSecond(Marker* marker) + void prependSecond(Marker *marker) { m_second->prepend(marker); } @@ -59,17 +66,18 @@ class DifferenceStringPair { return difference <= qMax(m_lengthFirst, m_lengthSecond) / 2; } const static bool allowReplace = true; + private: - DifferenceString* m_first; - DifferenceString* m_second; + DifferenceString *m_first; + DifferenceString *m_second; QString m_strFirst; QString m_strSecond; unsigned int m_lengthFirst; unsigned int m_lengthSecond; - const QChar* m_arrayFirst; - const QChar* m_arraySecond; + const QChar *m_arrayFirst; + const QChar *m_arraySecond; }; } -#endif // DIFFERENCESTRINGPAIR_H +#endif // KOMPAREDIFF2_DIFFERENCESTRINGPAIR_H diff --git a/src/diffhunk.cpp b/src/diffhunk.cpp index 6d5d5e1..9a22ade 100644 --- a/src/diffhunk.cpp +++ b/src/diffhunk.cpp @@ -1,103 +1,137 @@ /* -SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "diffhunk.h" +#include "diffhunk_p.h" -#include +// lib +#include -using namespace Diff2; +using namespace KompareDiff2; -DiffHunk::DiffHunk(int sourceLine, int destinationLine, const QString& function, Type type) : - m_sourceLine(sourceLine), - m_destinationLine(destinationLine), - m_function(function), - m_type(type) +DiffHunk::DiffHunk(int sourceLine, int destinationLine, const QString &function, Type type) + : d_ptr(new DiffHunkPrivate(sourceLine, destinationLine, function, type)) { } -DiffHunk::~DiffHunk() +DiffHunk::~DiffHunk() = default; + +DifferenceList DiffHunk::differences() const +{ + Q_D(const DiffHunk); + + return d->differences; +}; + +QString DiffHunk::function() const +{ + Q_D(const DiffHunk); + + return d->function; +}; + +int DiffHunk::sourceLineNumber() const +{ + Q_D(const DiffHunk); + + return d->sourceLine; +}; + +int DiffHunk::destinationLineNumber() const { + Q_D(const DiffHunk); + + return d->destinationLine; +}; + +DiffHunk::Type DiffHunk::type() const +{ + Q_D(const DiffHunk); + + return d->type; } -void DiffHunk::add(Difference* diff) +void DiffHunk::setType(Type type) { - m_differences.append(diff); + Q_D(DiffHunk); + + d->type = type; +} + +void DiffHunk::add(Difference *diff) +{ + Q_D(DiffHunk); + + d->differences.append(diff); } int DiffHunk::sourceLineCount() const { - DifferenceListConstIterator diffIt = m_differences.begin(); - DifferenceListConstIterator dEnd = m_differences.end(); + Q_D(const DiffHunk); int lineCount = 0; - for (; diffIt != dEnd; ++diffIt) - lineCount += (*diffIt)->sourceLineCount(); + for (const Difference *diff : d->differences) { + lineCount += diff->sourceLineCount(); + } return lineCount; } int DiffHunk::destinationLineCount() const { - DifferenceListConstIterator diffIt = m_differences.begin(); - DifferenceListConstIterator dEnd = m_differences.end(); + Q_D(const DiffHunk); int lineCount = 0; - for (; diffIt != dEnd; ++diffIt) - lineCount += (*diffIt)->destinationLineCount(); + for (const Difference *diff : d->differences) { + lineCount += diff->destinationLineCount(); + } return lineCount; } QString DiffHunk::recreateHunk() const { + Q_D(const DiffHunk); + QString hunk; QString differences; // recreate body - DifferenceListConstIterator diffIt = m_differences.begin(); - DifferenceListConstIterator dEnd = m_differences.end(); - int slc = 0; // source line count int dlc = 0; // destination line count - for (; diffIt != dEnd; ++diffIt) - { - switch ((*diffIt)->type()) - { + for (const Difference *diff : d->differences) { + switch (diff->type()) { case Difference::Unchanged: case Difference::Change: - slc += (*diffIt)->sourceLineCount(); - dlc += (*diffIt)->destinationLineCount(); + slc += diff->sourceLineCount(); + dlc += diff->destinationLineCount(); break; case Difference::Insert: - dlc += (*diffIt)->destinationLineCount(); + dlc += diff->destinationLineCount(); break; case Difference::Delete: - slc += (*diffIt)->sourceLineCount(); + slc += diff->sourceLineCount(); break; } - differences += (*diffIt)->recreateDifference(); + differences += diff->recreateDifference(); } // recreate header - hunk += QStringLiteral("@@ -%1,%3 +%2,%4 @@") - .arg(m_sourceLine) - .arg(m_destinationLine) - .arg(slc) - .arg(dlc); + hunk += QStringLiteral("@@ -%1,%3 +%2,%4 @@").arg(d->sourceLine).arg(d->destinationLine).arg(slc).arg(dlc); - if (!m_function.isEmpty()) - hunk += QLatin1Char(' ') + m_function; + if (!d->function.isEmpty()) + hunk += QLatin1Char(' ') + d->function; hunk += QLatin1Char('\n'); hunk += differences; - qCDebug(LIBKOMPAREDIFF2) << hunk; + qCDebug(KOMPAREDIFF2_LOG) << hunk; return hunk; } diff --git a/src/diffhunk.h b/src/diffhunk.h index f3242f8..389b234 100644 --- a/src/diffhunk.h +++ b/src/diffhunk.h @@ -1,61 +1,65 @@ /* -SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFFHUNK_H -#define DIFFHUNK_H +#ifndef KOMPAREDIFF2_DIFFHUNK_H +#define KOMPAREDIFF2_DIFFHUNK_H +// lib #include "difference.h" +#include "komparediff2_export.h" +// Std +#include - -namespace Diff2 +namespace KompareDiff2 { class Difference; +class DiffHunkPrivate; /** * DiffHunk */ -class DiffHunk +class KOMPAREDIFF2_EXPORT DiffHunk { public: - enum Type { Normal, AddedByBlend }; + enum Type { + Normal, + AddedByBlend, + }; public: - DiffHunk(int sourceLine, int destinationLine, const QString& function = QString(), Type type = Normal); + DiffHunk(int sourceLine, int destinationLine, const QString &function = QString(), Type type = Normal); ~DiffHunk(); - const DifferenceList& differences() const { return m_differences; }; - const QString& function() const { return m_function; }; + DifferenceList differences() const; + QString function() const; - int sourceLineNumber() const { return m_sourceLine; }; - int destinationLineNumber() const { return m_destinationLine; }; + int sourceLineNumber() const; + int destinationLineNumber() const; int sourceLineCount() const; int destinationLineCount() const; - Type type() const { return m_type; } - void setType(Type type) { m_type = type; } + Type type() const; + void setType(Type type); - void add(Difference* diff); + void add(Difference *diff); QString recreateHunk() const; private: - int m_sourceLine; - int m_destinationLine; - DifferenceList m_differences; - QString m_function; - Type m_type; + Q_DECLARE_PRIVATE(DiffHunk) + std::unique_ptr const d_ptr; }; -using DiffHunkList = QList; -using DiffHunkListIterator = QList::iterator; -using DiffHunkListConstIterator = QList::const_iterator; +using DiffHunkList = QList; +using DiffHunkListIterator = QList::iterator; +using DiffHunkListConstIterator = QList::const_iterator; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif diff --git a/src/diffhunk_p.h b/src/diffhunk_p.h new file mode 100644 index 0000000..21b56f2 --- /dev/null +++ b/src/diffhunk_p.h @@ -0,0 +1,41 @@ +/* + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_DIFFHUNK_P_H +#define KOMPAREDIFF2_DIFFHUNK_P_H + +// lib +#include "difference.h" +#include "diffhunk.h" + +namespace KompareDiff2 +{ + +class DiffHunkPrivate +{ +public: + DiffHunkPrivate(int sourceLine, int destinationLine, const QString &function, DiffHunk::Type type); + +public: + int sourceLine; + int destinationLine; + DifferenceList differences; + QString function; + DiffHunk::Type type; +}; + +inline DiffHunkPrivate::DiffHunkPrivate(int sourceLine, int destinationLine, const QString &function, DiffHunk::Type type) + : sourceLine(sourceLine) + , destinationLine(destinationLine) + , function(function) + , type(type) +{ +} + +} + +#endif diff --git a/src/diffmodel.cpp b/src/diffmodel.cpp index 3ae31a8..7464898 100644 --- a/src/diffmodel.cpp +++ b/src/diffmodel.cpp @@ -1,338 +1,439 @@ /* -SPDX-FileCopyrightText: 2001-2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "diffmodel.h" +#include "diffmodel_p.h" -#include +// lib #include "difference.h" #include "levenshteintable.h" -#include "stringlistpair.h" #include "parserbase.h" +#include "stringlistpair.h" +#include +// Std +#include -using namespace Diff2; +using namespace KompareDiff2; /** */ -DiffModel::DiffModel(const QString& source, const QString& destination) : - m_source(source), - m_destination(destination), - m_sourcePath(), - m_destinationPath(), - m_sourceFile(), - m_destinationFile(), - m_sourceTimestamp(), - m_destinationTimestamp(), - m_sourceRevision(), - m_destinationRevision(), - m_appliedCount(0), - m_diffIndex(0), - m_selectedDifference(nullptr), - m_blended(false) -{ - splitSourceInPathAndFileName(); - splitDestinationInPathAndFileName(); -} - -DiffModel::DiffModel() : - m_source(), - m_destination(), - m_sourcePath(), - m_destinationPath(), - m_sourceFile(), - m_destinationFile(), - m_sourceTimestamp(), - m_destinationTimestamp(), - m_sourceRevision(), - m_destinationRevision(), - m_appliedCount(0), - m_diffIndex(0), - m_selectedDifference(nullptr), - m_blended(false) +DiffModel::DiffModel(const QString &source, const QString &destination) + : d_ptr(new DiffModelPrivate(source, destination)) { + Q_D(DiffModel); + + d->splitSourceInPathAndFileName(); + d->splitDestinationInPathAndFileName(); } -/** */ -DiffModel::~DiffModel() +DiffModel::DiffModel() + : d_ptr(new DiffModelPrivate()) +{ +} + +DiffModel::~DiffModel() = default; + +DiffModel &DiffModel::operator=(const DiffModel &model) { - m_selectedDifference = nullptr; + Q_D(DiffModel); - qDeleteAll(m_hunks); - qDeleteAll(m_differences); + if (&model != this) // Guard from self-assignment + { + *d = *model.d_ptr; + } + + return *this; } -void DiffModel::splitSourceInPathAndFileName() +bool DiffModel::operator<(const DiffModel &model) const { - int pos; + if (localeAwareCompareSource(model) < 0) + return true; + return false; +} - if ((pos = m_source.lastIndexOf(QLatin1Char('/'))) >= 0) - m_sourcePath = m_source.mid(0, pos + 1); +int DiffModel::hunkCount() const +{ + Q_D(const DiffModel); - if ((pos = m_source.lastIndexOf(QLatin1Char('/'))) >= 0) - m_sourceFile = m_source.mid(pos + 1, m_source.length() - pos); - else - m_sourceFile = m_source; + return d->hunks.count(); +} - qCDebug(LIBKOMPAREDIFF2) << m_source << " was split into " << m_sourcePath << " and " << m_sourceFile; +int DiffModel::differenceCount() const +{ + Q_D(const DiffModel); + + return d->differences.count(); } -void DiffModel::splitDestinationInPathAndFileName() +int DiffModel::appliedCount() const { - int pos; + Q_D(const DiffModel); - if ((pos = m_destination.lastIndexOf(QLatin1Char('/'))) >= 0) - m_destinationPath = m_destination.mid(0, pos + 1); + return d->appliedCount; +} - if ((pos = m_destination.lastIndexOf(QLatin1Char('/'))) >= 0) - m_destinationFile = m_destination.mid(pos + 1, m_destination.length() - pos); - else - m_destinationFile = m_destination; +DiffHunk *DiffModel::hunkAt(int i) +{ + Q_D(DiffModel); - qCDebug(LIBKOMPAREDIFF2) << m_destination << " was split into " << m_destinationPath << " and " << m_destinationFile; + return (d->hunks.at(i)); } -DiffModel& DiffModel::operator=(const DiffModel& model) +const Difference *DiffModel::differenceAt(int i) const { - if (&model != this) // Guard from self-assignment - { - m_source = model.m_source; - m_destination = model.m_destination; - m_sourcePath = model.m_sourcePath; - m_sourceFile = model.m_sourceFile; - m_sourceTimestamp = model.m_sourceTimestamp; - m_sourceRevision = model.m_sourceRevision; - m_destinationPath = model.m_destinationPath; - m_destinationFile = model.m_destinationFile; - m_destinationTimestamp = model.m_destinationTimestamp; - m_destinationRevision = model.m_destinationRevision; - m_appliedCount = model.m_appliedCount; - - m_diffIndex = model.m_diffIndex; - m_selectedDifference = model.m_selectedDifference; - } + Q_D(const DiffModel); - return *this; + return (d->differences.at(i)); } -bool DiffModel::operator<(const DiffModel& model) +Difference *DiffModel::differenceAt(int i) { - if (localeAwareCompareSource(model) < 0) - return true; - return false; + Q_D(DiffModel); + + return (d->differences.at(i)); } -int DiffModel::localeAwareCompareSource(const DiffModel& model) +DiffHunkList *DiffModel::hunks() { - qCDebug(LIBKOMPAREDIFF2) << "Path: " << model.m_sourcePath; - qCDebug(LIBKOMPAREDIFF2) << "File: " << model.m_sourceFile; + Q_D(DiffModel); - int result = m_sourcePath.localeAwareCompare(model.m_sourcePath); + return &d->hunks; +} + +const DiffHunkList *DiffModel::hunks() const +{ + Q_D(const DiffModel); + + return &d->hunks; +} + +DifferenceList *DiffModel::differences() +{ + Q_D(DiffModel); + + return &d->differences; +} + +const DifferenceList *DiffModel::differences() const +{ + Q_D(const DiffModel); + + return &d->differences; +} + +int DiffModel::findDifference(Difference *diff) const +{ + Q_D(const DiffModel); + + return d->differences.indexOf(diff); +} + +int DiffModel::localeAwareCompareSource(const DiffModel &model) const +{ + Q_D(const DiffModel); + + qCDebug(KOMPAREDIFF2_LOG) << "Path: " << model.d_ptr->sourcePath; + qCDebug(KOMPAREDIFF2_LOG) << "File: " << model.d_ptr->sourceFile; + + int result = d->sourcePath.localeAwareCompare(model.d_ptr->sourcePath); if (result == 0) - return m_sourceFile.localeAwareCompare(model.m_sourceFile); + return d->sourceFile.localeAwareCompare(model.d_ptr->sourceFile); return result; } QString DiffModel::recreateDiff() const { + Q_D(const DiffModel); + // For now we'll always return a diff in the diff format QString diff; // recreate header const QChar tab = QLatin1Char('\t'); - const QChar nl = QLatin1Char('\n'); - diff += QStringLiteral("--- %1\t%2").arg(ParserBase::escapePath(m_source), m_sourceTimestamp); - if (!m_sourceRevision.isEmpty()) - diff += tab + m_sourceRevision; + const QChar nl = QLatin1Char('\n'); + diff += QStringLiteral("--- %1\t%2").arg(ParserBase::escapePath(d->source), d->sourceTimestamp); + if (!d->sourceRevision.isEmpty()) + diff += tab + d->sourceRevision; diff += nl; - diff += QStringLiteral("+++ %1\t%2").arg(ParserBase::escapePath(m_destination), m_destinationTimestamp); - if (!m_destinationRevision.isEmpty()) - diff += tab + m_destinationRevision; + diff += QStringLiteral("+++ %1\t%2").arg(ParserBase::escapePath(d->destination), d->destinationTimestamp); + if (!d->destinationRevision.isEmpty()) + diff += tab + d->destinationRevision; diff += nl; // recreate body by iterating over the hunks - DiffHunkListConstIterator hunkIt = m_hunks.begin(); - DiffHunkListConstIterator hEnd = m_hunks.end(); - - for (; hunkIt != hEnd; ++hunkIt) - { - if ((*hunkIt)->type() != DiffHunk::AddedByBlend) - diff += (*hunkIt)->recreateHunk(); + for (const DiffHunk *hunk : d->hunks) { + if (hunk->type() != DiffHunk::AddedByBlend) { + diff += hunk->recreateHunk(); + } } return diff; } -Difference* DiffModel::firstDifference() +Difference *DiffModel::firstDifference() { - qCDebug(LIBKOMPAREDIFF2) << "DiffModel::firstDifference()"; - m_diffIndex = 0; - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; + Q_D(DiffModel); + + qCDebug(KOMPAREDIFF2_LOG) << "DiffModel::firstDifference()"; + d->diffIndex = 0; + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; - m_selectedDifference = m_differences[ m_diffIndex ]; + d->selectedDifference = d->differences[d->diffIndex]; - return m_selectedDifference; + return d->selectedDifference; } -Difference* DiffModel::lastDifference() +Difference *DiffModel::lastDifference() { - qCDebug(LIBKOMPAREDIFF2) << "DiffModel::lastDifference()"; - m_diffIndex = m_differences.count() - 1; - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; + Q_D(DiffModel); - m_selectedDifference = m_differences[ m_diffIndex ]; + qCDebug(KOMPAREDIFF2_LOG) << "DiffModel::lastDifference()"; + d->diffIndex = d->differences.count() - 1; + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; - return m_selectedDifference; + d->selectedDifference = d->differences[d->diffIndex]; + + return d->selectedDifference; } -Difference* DiffModel::prevDifference() +Difference *DiffModel::prevDifference() { - qCDebug(LIBKOMPAREDIFF2) << "DiffModel::prevDifference()"; - if (m_diffIndex > 0 && --m_diffIndex < m_differences.count()) - { - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; - m_selectedDifference = m_differences[ m_diffIndex ]; - } - else - { - m_selectedDifference = nullptr; - m_diffIndex = 0; - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; + Q_D(DiffModel); + + qCDebug(KOMPAREDIFF2_LOG) << "DiffModel::prevDifference()"; + if (d->diffIndex > 0 && --d->diffIndex < d->differences.count()) { + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; + d->selectedDifference = d->differences[d->diffIndex]; + } else { + d->selectedDifference = nullptr; + d->diffIndex = 0; + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; } - return m_selectedDifference; + return d->selectedDifference; } -Difference* DiffModel::nextDifference() +Difference *DiffModel::nextDifference() { - qCDebug(LIBKOMPAREDIFF2) << "DiffModel::nextDifference()"; - if (++m_diffIndex < m_differences.count()) - { - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; - m_selectedDifference = m_differences[ m_diffIndex ]; - } - else - { - m_selectedDifference = nullptr; - m_diffIndex = 0; // just for safety... - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; + Q_D(DiffModel); + + qCDebug(KOMPAREDIFF2_LOG) << "DiffModel::nextDifference()"; + if (++d->diffIndex < d->differences.count()) { + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; + d->selectedDifference = d->differences[d->diffIndex]; + } else { + d->selectedDifference = nullptr; + d->diffIndex = 0; // just for safety... + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; } - return m_selectedDifference; + return d->selectedDifference; } -const QString DiffModel::sourceFile() const +QString DiffModel::source() const { - return m_sourceFile; + Q_D(const DiffModel); + + return d->source; } -const QString DiffModel::destinationFile() const +QString DiffModel::destination() const { - return m_destinationFile; + Q_D(const DiffModel); + + return d->destination; } -const QString DiffModel::sourcePath() const +QString DiffModel::sourceFile() const { - return m_sourcePath; + Q_D(const DiffModel); + + return d->sourceFile; } -const QString DiffModel::destinationPath() const +QString DiffModel::destinationFile() const { - return m_destinationPath; + Q_D(const DiffModel); + + return d->destinationFile; } -void DiffModel::setSourceFile(QString path) +QString DiffModel::sourcePath() const { - m_source = path; - splitSourceInPathAndFileName(); + Q_D(const DiffModel); + + return d->sourcePath; } -void DiffModel::setDestinationFile(QString path) +QString DiffModel::destinationPath() const { - m_destination = path; - splitDestinationInPathAndFileName(); + Q_D(const DiffModel); + + return d->destinationPath; } -void DiffModel::setSourceTimestamp(QString timestamp) +QString DiffModel::sourceTimestamp() const { - m_sourceTimestamp = timestamp; + Q_D(const DiffModel); + + return d->sourceTimestamp; } -void DiffModel::setDestinationTimestamp(QString timestamp) +QString DiffModel::destinationTimestamp() const { - m_destinationTimestamp = timestamp; + Q_D(const DiffModel); + + return d->destinationTimestamp; } -void DiffModel::setSourceRevision(QString revision) +QString DiffModel::sourceRevision() const { - m_sourceRevision = revision; + Q_D(const DiffModel); + + return d->sourceRevision; } -void DiffModel::setDestinationRevision(QString revision) +QString DiffModel::destinationRevision() const { - m_destinationRevision = revision; + Q_D(const DiffModel); + + return d->destinationRevision; } -void DiffModel::addHunk(DiffHunk* hunk) +void DiffModel::setSourceFile(const QString &path) { - m_hunks.append(hunk); + Q_D(DiffModel); + + d->source = path; + d->splitSourceInPathAndFileName(); } -void DiffModel::addDiff(Difference* diff) +void DiffModel::setDestinationFile(const QString &path) { - m_differences.append(diff); - connect(diff, &Difference::differenceApplied, - this, &DiffModel::slotDifferenceApplied); + Q_D(DiffModel); + + d->destination = path; + d->splitDestinationInPathAndFileName(); } -bool DiffModel::hasUnsavedChanges(void) const +void DiffModel::setSourceTimestamp(const QString ×tamp) { - DifferenceListConstIterator diffIt = m_differences.begin(); - DifferenceListConstIterator endIt = m_differences.end(); + Q_D(DiffModel); - for (; diffIt != endIt; ++diffIt) - { - if ((*diffIt)->isUnsaved()) - return true; - } + d->sourceTimestamp = timestamp; +} - return false; +void DiffModel::setDestinationTimestamp(const QString ×tamp) +{ + Q_D(DiffModel); + + d->destinationTimestamp = timestamp; +} + +void DiffModel::setSourceRevision(const QString &revision) +{ + Q_D(DiffModel); + + d->sourceRevision = revision; +} + +void DiffModel::setDestinationRevision(const QString &revision) +{ + Q_D(DiffModel); + + d->destinationRevision = revision; +} + +bool DiffModel::isBlended() const +{ + Q_D(const DiffModel); + + return d->blended; +} + +void DiffModel::setBlended(bool blended) +{ + Q_D(DiffModel); + + d->blended = blended; +} + +void DiffModel::addHunk(DiffHunk *hunk) +{ + Q_D(DiffModel); + + d->hunks.append(hunk); +} + +void DiffModel::addDiff(Difference *diff) +{ + Q_D(DiffModel); + + d->differences.append(diff); + connect(diff, &Difference::differenceApplied, this, &DiffModel::slotDifferenceApplied); +} + +int DiffModel::diffIndex() const +{ + Q_D(const DiffModel); + + return d->diffIndex; +} + +void DiffModel::setDiffIndex(int diffIndex) +{ + Q_D(DiffModel); + + d->diffIndex = diffIndex; +} + +bool DiffModel::hasUnsavedChanges() const +{ + Q_D(const DiffModel); + + return std::any_of(d->differences.constBegin(), d->differences.constEnd(), [] (const Difference* diff) { + return diff->isUnsaved(); + }); } void DiffModel::applyDifference(bool apply) { - bool appliedState = m_selectedDifference->applied(); - if (appliedState == apply) - { + Q_D(DiffModel); + + bool appliedState = d->selectedDifference->applied(); + if (appliedState == apply) { return; } - if (apply && !m_selectedDifference->applied()) - ++m_appliedCount; - else if (!apply && m_selectedDifference->applied()) - --m_appliedCount; + if (apply && !d->selectedDifference->applied()) + ++d->appliedCount; + else if (!apply && d->selectedDifference->applied()) + --d->appliedCount; - m_selectedDifference->apply(apply); + d->selectedDifference->apply(apply); } -static int GetDifferenceDelta(Difference* diff) +static int GetDifferenceDelta(Difference *diff) { int delta = diff->destinationLineCount() - diff->sourceLineCount(); - if (!diff->applied()) - { + if (!diff->applied()) { delta = -delta; } return delta; } -void DiffModel::slotDifferenceApplied(Difference* diff) +void DiffModel::slotDifferenceApplied(Difference *diff) { + Q_D(DiffModel); + int delta = GetDifferenceDelta(diff); - for (Difference* current : qAsConst(m_differences)) { - if (current->destinationLineNumber() > diff->destinationLineNumber()) - { + for (Difference *current : std::as_const(d->differences)) { + if (current->destinationLineNumber() > diff->destinationLineNumber()) { current->setTrackingDestinationLineNumber(current->trackingDestinationLineNumber() + delta); } } @@ -340,75 +441,73 @@ void DiffModel::slotDifferenceApplied(Difference* diff) void DiffModel::applyAllDifferences(bool apply) { - if (apply) - { - m_appliedCount = m_differences.count(); - } - else - { - m_appliedCount = 0; - } + Q_D(DiffModel); - DifferenceListIterator diffIt = m_differences.begin(); - DifferenceListIterator dEnd = m_differences.end(); + if (apply) { + d->appliedCount = d->differences.count(); + } else { + d->appliedCount = 0; + } int totalDelta = 0; - for (; diffIt != dEnd; ++diffIt) - { - (*diffIt)->setTrackingDestinationLineNumber((*diffIt)->trackingDestinationLineNumber() + totalDelta); - bool appliedState = (*diffIt)->applied(); - if (appliedState == apply) - { + + for (Difference *diff : std::as_const(d->differences)) { + diff->setTrackingDestinationLineNumber(diff->trackingDestinationLineNumber() + totalDelta); + const bool appliedState = diff->applied(); + if (appliedState == apply) { continue; } - (*diffIt)->applyQuietly(apply); - int currentDelta = GetDifferenceDelta(*diffIt); + diff->applyQuietly(apply); + const int currentDelta = GetDifferenceDelta(diff); totalDelta += currentDelta; } } -bool DiffModel::setSelectedDifference(Difference* diff) +bool DiffModel::setSelectedDifference(Difference *diff) { - qCDebug(LIBKOMPAREDIFF2) << "diff = " << diff; - qCDebug(LIBKOMPAREDIFF2) << "m_selectedDifference = " << m_selectedDifference; + Q_D(DiffModel); - if (diff != m_selectedDifference) - { - if ((m_differences.indexOf(diff)) == -1) + qCDebug(KOMPAREDIFF2_LOG) << "diff = " << diff; + qCDebug(KOMPAREDIFF2_LOG) << "d->selectedDifference = " << d->selectedDifference; + + if (diff != d->selectedDifference) { + if ((d->differences.indexOf(diff)) == -1) return false; - // Do not set m_diffIndex if it cant be found - m_diffIndex = m_differences.indexOf(diff); - qCDebug(LIBKOMPAREDIFF2) << "m_diffIndex = " << m_diffIndex; - m_selectedDifference = diff; + // Do not set d->diffIndex if it cant be found + d->diffIndex = d->differences.indexOf(diff); + qCDebug(KOMPAREDIFF2_LOG) << "d->diffIndex = " << d->diffIndex; + d->selectedDifference = diff; } return true; } -QPair, QList > DiffModel::linesChanged(const QStringList& oldLines, const QStringList& newLines, int editLineNumber) +QPair, QList> DiffModel::linesChanged(const QStringList &oldLines, const QStringList &newLines, int editLineNumber) { + Q_D(DiffModel); + // These two will be returned as the function result - QList inserted; - QList removed; + QList inserted; + QList removed; if (oldLines.size() == 0 && newLines.size() == 0) { - return qMakePair(QList(), QList()); + return qMakePair(QList(), QList()); } int editLineEnd = editLineNumber + oldLines.size(); // Find the range of differences [iterBegin, iterEnd) that should be updated // TODO: assume that differences are ordered by starting line. Check that this is always the case DifferenceList applied; DifferenceListIterator iterBegin; // first diff ending a line before editLineNo or later - for (iterBegin = m_differences.begin(); iterBegin != m_differences.end(); ++iterBegin) { + for (iterBegin = d->differences.begin(); iterBegin != d->differences.end(); ++iterBegin) { // If the difference ends a line before the edit starts, they should be merged if this difference is applied. // Also it should be merged if it starts on editLineNumber, otherwise there will be two markers for the same line int lineAfterLast = (*iterBegin)->trackingDestinationLineEnd(); - if (lineAfterLast > editLineNumber || (lineAfterLast == editLineNumber && - ((*iterBegin)->applied() || (*iterBegin)->trackingDestinationLineNumber() == editLineNumber))) { + if (lineAfterLast > editLineNumber + || (lineAfterLast == editLineNumber && ((*iterBegin)->applied() || (*iterBegin)->trackingDestinationLineNumber() == editLineNumber))) { break; } } DifferenceListIterator iterEnd; - for (iterEnd = iterBegin; iterEnd != m_differences.end(); ++iterEnd) { + for (iterEnd = iterBegin; iterEnd != d->differences.end(); ++iterEnd) { // If the difference starts a line after the edit ends, it should still be merged if it is applied int firstLine = (*iterEnd)->trackingDestinationLineNumber(); if (firstLine > editLineEnd || (!(*iterEnd)->applied() && firstLine == editLineEnd)) { @@ -422,10 +521,10 @@ QPair, QList > DiffModel::linesChanged(const QSt // Compute line numbers in source and destination to which the for diff line sequences (will be created later) int sourceLineNumber; int destinationLineNumber; - if (iterBegin == m_differences.end()) { // All existing diffs are after the change + if (iterBegin == d->differences.end()) { // All existing diffs are after the change destinationLineNumber = editLineNumber; - if (!m_differences.isEmpty()) { - sourceLineNumber = m_differences.last()->sourceLineEnd() - (m_differences.last()->trackingDestinationLineEnd() - editLineNumber); + if (!d->differences.isEmpty()) { + sourceLineNumber = d->differences.last()->sourceLineEnd() - (d->differences.last()->trackingDestinationLineEnd() - editLineNumber); } else { sourceLineNumber = destinationLineNumber; } @@ -444,7 +543,7 @@ QPair, QList > DiffModel::linesChanged(const QSt // Now create a sequence of lines for the destination file and the corresponding lines in source QStringList sourceLines; QStringList destinationLines; - DifferenceListIterator insertPosition; // where to insert the created diffs + DifferenceListIterator insertPosition; // where to insert the created diffs if (appliedBegin == appliedEnd) { destinationLines = newLines; sourceLines = oldLines; @@ -454,7 +553,7 @@ QPair, QList > DiffModel::linesChanged(const QSt for (int lineNumber = firstDestinationLineNumber; lineNumber < editLineNumber; ++lineNumber) { destinationLines.append((*appliedBegin)->destinationLineAt(lineNumber - firstDestinationLineNumber)->string()); } - for (const QString& line : newLines) { + for (const QString &line : newLines) { destinationLines.append(line); } DifferenceListConstIterator appliedLast = appliedEnd; @@ -492,10 +591,10 @@ QPair, QList > DiffModel::linesChanged(const QSt for (DifferenceListIterator iter = iterBegin; iter != iterEnd; ++iter) { removed << *iter; } - insertPosition = m_differences.erase(iterBegin, iterEnd); + insertPosition = d->differences.erase(iterBegin, iterEnd); // Compute the Levenshtein table for two line sequences and construct the shortest possible edit script - StringListPair* pair = new StringListPair(sourceLines, destinationLines); + StringListPair *pair = new StringListPair(sourceLines, destinationLines); LevenshteinTable table; table.createTable(pair); table.createListsOfMarkers(); @@ -506,7 +605,7 @@ QPair, QList > DiffModel::linesChanged(const QSt int currentDestinationListLine = 0; MarkerListConstIterator sourceMarkerIter = sourceMarkers.constBegin(); MarkerListConstIterator destinationMarkerIter = destinationMarkers.constBegin(); - const int terminatorLineNumber = sourceLines.size() + destinationLines.size() + 1; // A virtual offset for simpler computation - stands for infinity + const int terminatorLineNumber = sourceLines.size() + destinationLines.size() + 1; // A virtual offset for simpler computation - stands for infinity // Process marker lists, converting pairs of Start-End markers into differences. // Marker in source list only stands for deletion, in source and destination lists - for change, in destination list only - for insertion. @@ -518,57 +617,26 @@ QPair, QList > DiffModel::linesChanged(const QSt int linesToSkip = qMin(nextDestinationListLine - currentDestinationListLine, nextSourceListLine - currentSourceListLine); currentSourceListLine += linesToSkip; currentDestinationListLine += linesToSkip; - Difference* diff = new Difference(sourceLineNumber + currentSourceListLine, destinationLineNumber + currentDestinationListLine); + Difference *diff = new Difference(sourceLineNumber + currentSourceListLine, destinationLineNumber + currentDestinationListLine); if (nextSourceListLine == currentSourceListLine) { - processStartMarker(diff, sourceLines, sourceMarkerIter, currentSourceListLine, true); + DiffModelPrivate::processStartMarker(diff, sourceLines, sourceMarkerIter, currentSourceListLine, true); } if (nextDestinationListLine == currentDestinationListLine) { - processStartMarker(diff, destinationLines, destinationMarkerIter, currentDestinationListLine, false); + DiffModelPrivate::processStartMarker(diff, destinationLines, destinationMarkerIter, currentDestinationListLine, false); } - computeDiffStats(diff); + DiffModelPrivate::computeDiffStats(diff); Q_ASSERT(diff->type() != Difference::Unchanged); diff->applyQuietly(true); diff->setTrackingDestinationLineNumber(diff->destinationLineNumber()); - insertPosition = m_differences.insert(insertPosition, diff); + insertPosition = d->differences.insert(insertPosition, diff); ++insertPosition; inserted << diff; } // Update line numbers for differences that are after the edit - for (; insertPosition != m_differences.end(); ++insertPosition) { + for (; insertPosition != d->differences.end(); ++insertPosition) { (*insertPosition)->setTrackingDestinationLineNumber((*insertPosition)->trackingDestinationLineNumber() + (newLines.size() - oldLines.size())); } return qMakePair(inserted, removed); } -// Some common computing after diff contents have been filled. -void DiffModel::computeDiffStats(Difference* diff) -{ - if (diff->sourceLineCount() > 0 && diff->destinationLineCount() > 0) { - diff->setType(Difference::Change); - } else if (diff->sourceLineCount() > 0) { - diff->setType(Difference::Delete); - } else if (diff->destinationLineCount() > 0) { - diff->setType(Difference::Insert); - } - diff->determineInlineDifferences(); -} - -// Helper method to extract duplicate code from DiffModel::linesChanged -void DiffModel::processStartMarker(Difference* diff, const QStringList& lines, MarkerListConstIterator& currentMarker, int& currentListLine, bool isSource) -{ - Q_ASSERT((*currentMarker)->type() == Marker::Start); - ++currentMarker; - Q_ASSERT((*currentMarker)->type() == Marker::End); - int nextDestinationListLine = (*currentMarker)->offset(); - for (; currentListLine < nextDestinationListLine; ++currentListLine) { - if (isSource) { - diff->addSourceLine(lines.at(currentListLine)); - } else { - diff->addDestinationLine(lines.at(currentListLine)); - } - } - ++currentMarker; - currentListLine = nextDestinationListLine; -} - -/* vim: set ts=4 sw=4 noet: */ +#include "moc_diffmodel.cpp" diff --git a/src/diffmodel.h b/src/diffmodel.h index 4b61531..32ccc1f 100644 --- a/src/diffmodel.h +++ b/src/diffmodel.h @@ -1,146 +1,119 @@ /* -SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFFMODEL_H -#define DIFFMODEL_H - -#include +#ifndef KOMPAREDIFF2_DIFFMODEL_H +#define KOMPAREDIFF2_DIFFMODEL_H +// lib #include "diffhunk.h" -#include "kompare.h" -#include "diff2_export.h" - -class QStringList; +#include "global.h" +#include "komparediff2_export.h" +// Qt +#include +#include +// Std +#include -namespace Diff2 +namespace KompareDiff2 { +class DiffModelPrivate; /** + * @class DiffModel diffmodel.h + * * A model describing the differences between two files. */ -class DIFF2_EXPORT DiffModel : public QObject +class KOMPAREDIFF2_EXPORT DiffModel : public QObject { Q_OBJECT -public: - DiffModel(const QString& srcBaseURL, const QString& destBaseURL); +public: + DiffModel(const QString &srcBaseURL, const QString &destBaseURL); DiffModel(); ~DiffModel() override; -private: - DiffModel(const DiffModel&) : QObject() {}; - public: - int parseDiff(enum Kompare::Format format, const QStringList& list); + DiffModel &operator=(const DiffModel &model); + bool operator<(const DiffModel &model) const; + + int parseDiff(Format format, const QStringList &list); QString recreateDiff() const; - int hunkCount() const { return m_hunks.count(); } - int differenceCount() const { return m_differences.count(); } - int appliedCount() const { return m_appliedCount; } - - DiffHunk* hunkAt(int i) { return (m_hunks.at(i)); } - const Difference* differenceAt(int i) const { return (m_differences.at(i)); } - Difference* differenceAt(int i) { return (m_differences.at(i)); } - - DiffHunkList* hunks() { return &m_hunks; } - const DiffHunkList* hunks() const { return &m_hunks; } - DifferenceList* differences() { return &m_differences; } - const DifferenceList* differences() const { return &m_differences; } - - int findDifference(Difference* diff) const { return m_differences.indexOf(diff); } - - Difference* firstDifference(); - Difference* lastDifference(); - Difference* prevDifference(); - Difference* nextDifference(); - - const QString source() const { return m_source; } - const QString destination() const { return m_destination; } - const QString sourceFile() const; - const QString destinationFile() const; - const QString sourcePath() const; - const QString destinationPath() const; - const QString sourceTimestamp() const { return m_sourceTimestamp; } - const QString destinationTimestamp() const { return m_destinationTimestamp; } - const QString sourceRevision() const { return m_sourceRevision; } - const QString destinationRevision() const { return m_destinationRevision; } - - void setSourceFile(QString path); - void setDestinationFile(QString path); - void setSourceTimestamp(QString timestamp); - void setDestinationTimestamp(QString timestamp); - void setSourceRevision(QString revision); - void setDestinationRevision(QString revision); - - void addHunk(DiffHunk* hunk); - void addDiff(Difference* diff); + int hunkCount() const; + int differenceCount() const; + int appliedCount() const; + + DiffHunk *hunkAt(int i); + const Difference *differenceAt(int i) const; + Difference *differenceAt(int i); + + DiffHunkList *hunks(); + const DiffHunkList *hunks() const; + DifferenceList *differences(); + const DifferenceList *differences() const; + + int findDifference(Difference *diff) const; + + Difference *firstDifference(); + Difference *lastDifference(); + Difference *prevDifference(); + Difference *nextDifference(); + + QString source() const; + QString destination() const; + QString sourceFile() const; + QString destinationFile() const; + QString sourcePath() const; + QString destinationPath() const; + QString sourceTimestamp() const; + QString destinationTimestamp() const; + QString sourceRevision() const; + QString destinationRevision() const; + + void setSourceFile(const QString &path); + void setDestinationFile(const QString &path); + void setSourceTimestamp(const QString ×tamp); + void setDestinationTimestamp(const QString ×tamp); + void setSourceRevision(const QString &revision); + void setDestinationRevision(const QString &revision); + + void addHunk(DiffHunk *hunk); + void addDiff(Difference *diff); bool hasUnsavedChanges() const; - int diffIndex(void) const { return m_diffIndex; } - void setDiffIndex(int diffIndex) { m_diffIndex = diffIndex; } + int diffIndex() const; + void setDiffIndex(int diffIndex); void applyDifference(bool apply); void applyAllDifferences(bool apply); - bool setSelectedDifference(Difference* diff); + bool setSelectedDifference(Difference *diff); - DiffModel& operator=(const DiffModel& model); - bool operator<(const DiffModel& model); + int localeAwareCompareSource(const DiffModel &model) const; - int localeAwareCompareSource(const DiffModel& model); - - bool isBlended() const { return m_blended; } - void setBlended(bool blended) { m_blended = blended; } + bool isBlended() const; + void setBlended(bool blended); /** * @p oldlines - lines that were removed. * @p newLines - lines that were inserted. * @p startPos - number of line at which the change occurred */ - QPair, QList > linesChanged(const QStringList& oldLines, const QStringList& newLines, int editLineNumber); + QPair, QList> linesChanged(const QStringList &oldLines, const QStringList &newLines, int editLineNumber); -private: - void splitSourceInPathAndFileName(); - void splitDestinationInPathAndFileName(); - void computeDiffStats(Difference* diff); - void processStartMarker(Difference* diff, const QStringList& lines, MarkerListConstIterator& currentMarker, int& currentListLine, bool isSource); +private Q_SLOTS: + void slotDifferenceApplied(Difference *diff); private: - QString m_source; - QString m_destination; - - QString m_sourcePath; - QString m_destinationPath; - - QString m_sourceFile; - QString m_destinationFile; - - QString m_sourceTimestamp; - QString m_destinationTimestamp; - - QString m_sourceRevision; - QString m_destinationRevision; - - DiffHunkList m_hunks; - DifferenceList m_differences; - - int m_appliedCount; - - int m_diffIndex; - Difference* m_selectedDifference; - - bool m_blended; - -private Q_SLOTS: - void slotDifferenceApplied(Difference* diff); + Q_DECLARE_PRIVATE(DiffModel) + std::unique_ptr const d_ptr; }; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif - diff --git a/src/diffmodel_p.cpp b/src/diffmodel_p.cpp new file mode 100644 index 0000000..cc8acb8 --- /dev/null +++ b/src/diffmodel_p.cpp @@ -0,0 +1,78 @@ +/* + SPDX-FileCopyrightText: 2001-2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "diffmodel_p.h" + +// lib +#include + +using namespace KompareDiff2; + +void DiffModelPrivate::splitSourceInPathAndFileName() +{ + int pos; + + if ((pos = source.lastIndexOf(QLatin1Char('/'))) >= 0) + sourcePath = source.mid(0, pos + 1); + + if ((pos = source.lastIndexOf(QLatin1Char('/'))) >= 0) + sourceFile = source.mid(pos + 1, source.length() - pos); + else + sourceFile = source; + + qCDebug(KOMPAREDIFF2_LOG) << source << " was split into " << sourcePath << " and " << sourceFile; +} + +void DiffModelPrivate::splitDestinationInPathAndFileName() +{ + int pos; + + if ((pos = destination.lastIndexOf(QLatin1Char('/'))) >= 0) + destinationPath = destination.mid(0, pos + 1); + + if ((pos = destination.lastIndexOf(QLatin1Char('/'))) >= 0) + destinationFile = destination.mid(pos + 1, destination.length() - pos); + else + destinationFile = destination; + + qCDebug(KOMPAREDIFF2_LOG) << destination << " was split into " << destinationPath << " and " << destinationFile; +} + +// Some common computing after diff contents have been filled. +void DiffModelPrivate::computeDiffStats(Difference *diff) +{ + if (diff->sourceLineCount() > 0 && diff->destinationLineCount() > 0) { + diff->setType(Difference::Change); + } else if (diff->sourceLineCount() > 0) { + diff->setType(Difference::Delete); + } else if (diff->destinationLineCount() > 0) { + diff->setType(Difference::Insert); + } + diff->determineInlineDifferences(); +} + +// Helper method to extract duplicate code from DiffModel::linesChanged +void DiffModelPrivate::processStartMarker(Difference *diff, + const QStringList &lines, + MarkerListConstIterator ¤tMarker, + int ¤tListLine, + bool isSource) +{ + Q_ASSERT((*currentMarker)->type() == Marker::Start); + ++currentMarker; + Q_ASSERT((*currentMarker)->type() == Marker::End); + int nextDestinationListLine = (*currentMarker)->offset(); + for (; currentListLine < nextDestinationListLine; ++currentListLine) { + if (isSource) { + diff->addSourceLine(lines.at(currentListLine)); + } else { + diff->addDestinationLine(lines.at(currentListLine)); + } + } + ++currentMarker; + currentListLine = nextDestinationListLine; +} diff --git a/src/diffmodel_p.h b/src/diffmodel_p.h new file mode 100644 index 0000000..d69bb0b --- /dev/null +++ b/src/diffmodel_p.h @@ -0,0 +1,99 @@ +/* + SPDX-FileCopyrightText: 2001-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_DIFFMODEL_P_H +#define KOMPAREDIFF2_DIFFMODEL_P_H + +// lib +#include "diffhunk.h" +#include "diffmodel.h" + +namespace KompareDiff2 +{ + +class DiffModelPrivate +{ +public: + DiffModelPrivate() = default; + DiffModelPrivate(const QString &source, const QString &destination); + ~DiffModelPrivate(); + +public: + DiffModelPrivate &operator=(const DiffModelPrivate &other); + + void splitSourceInPathAndFileName(); + void splitDestinationInPathAndFileName(); + + static void computeDiffStats(Difference *diff); + static void processStartMarker(Difference *diff, const QStringList &lines, MarkerListConstIterator ¤tMarker, int ¤tListLine, bool isSource); + +public: + QString source; + QString destination; + + QString sourcePath; + QString destinationPath; + + QString sourceFile; + QString destinationFile; + + QString sourceTimestamp; + QString destinationTimestamp; + + QString sourceRevision; + QString destinationRevision; + + DiffHunkList hunks; + DifferenceList differences; + + int appliedCount = 0; + + int diffIndex = 0; + Difference *selectedDifference = nullptr; + + bool blended = false; +}; + +inline DiffModelPrivate::DiffModelPrivate(const QString &source, const QString &destination) + : source(source) + , destination(destination) +{ +} + +inline DiffModelPrivate::~DiffModelPrivate() +{ + selectedDifference = nullptr; + + qDeleteAll(hunks); + qDeleteAll(differences); +} + +inline DiffModelPrivate &DiffModelPrivate::operator=(const DiffModelPrivate &other) +{ + source = other.source; + sourcePath = other.sourcePath; + sourceFile = other.sourceFile; + sourceTimestamp = other.sourceTimestamp; + sourceRevision = other.sourceRevision; + + destination = other.destination; + destinationPath = other.destinationPath; + destinationFile = other.destinationFile; + destinationTimestamp = other.destinationTimestamp; + destinationRevision = other.destinationRevision; + + appliedCount = other.appliedCount; + + diffIndex = other.diffIndex; + selectedDifference = other.selectedDifference; + + return *this; +} + +} + +#endif diff --git a/src/diffmodellist.cpp b/src/diffmodellist.cpp index 94a6d51..fc63ecf 100644 --- a/src/diffmodellist.cpp +++ b/src/diffmodellist.cpp @@ -1,14 +1,14 @@ /* -SPDX-FileCopyrightText: 2004 Otto Bruggeman + SPDX-FileCopyrightText: 2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "diffmodellist.h" -using namespace Diff2; +using namespace KompareDiff2; -static bool diffModelCompare(DiffModel* model1, DiffModel* model2) +static bool diffModelCompare(DiffModel *model1, DiffModel *model2) { return *model1 < *model2; } diff --git a/src/diffmodellist.h b/src/diffmodellist.h index b4b932f..702b7fa 100644 --- a/src/diffmodellist.h +++ b/src/diffmodellist.h @@ -1,44 +1,49 @@ /* -SPDX-FileCopyrightText: 2004-2005, 2009 Otto Bruggeman + SPDX-FileCopyrightText: 2004-2005, 2009 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFFMODELLIST_H -#define DIFFMODELLIST_H - -#include // include for the base class +#ifndef KOMPAREDIFF2_DIFFMODELLIST_H +#define KOMPAREDIFF2_DIFFMODELLIST_H +// lib #include "diffmodel.h" -#include "diff2_export.h" +#include "komparediff2_export.h" +// Qt +#include /** - * Diff2 namespace + * KompareDiff2 namespace */ -namespace Diff2 +namespace KompareDiff2 { -using DiffModelListIterator = QList::iterator; -using DiffModelListConstIterator = QList::const_iterator; - /** + * @class DiffModelList diffmodellist.h + * * A list of DiffModel. */ -class DIFF2_EXPORT DiffModelList : public QList +class KOMPAREDIFF2_EXPORT DiffModelList : public QList { public: - DiffModelList() {} - DiffModelList(const DiffModelList& list) : QList(list) {} + DiffModelList() = default; + DiffModelList(const DiffModelList &list) + : QList(list) + { + } virtual ~DiffModelList() { qDeleteAll(begin(), end()); } public: - virtual void sort(); + void sort(); +}; -}; // End of class DiffModelList +using DiffModelListIterator = QList::iterator; +using DiffModelListConstIterator = QList::const_iterator; -} // End of Namespace Diff2 +} // End of Namespace KompareDiff2 -#endif // DIFFMODELLIST_H +#endif // KOMPAREDIFF2_DIFFMODELLIST_H diff --git a/src/diffparser.cpp b/src/diffparser.cpp index 4be0ea8..a7c2a31 100644 --- a/src/diffparser.cpp +++ b/src/diffparser.cpp @@ -1,70 +1,61 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "diffparser.h" -#include +// lib +#include +// Qt +#include -#include +using namespace KompareDiff2; -using namespace Diff2; - -DiffParser::DiffParser(const KompareModelList* list, const QStringList& diff) : ParserBase(list, diff) +DiffParser::DiffParser(const ModelList *list, const QStringList &diff) + : ParserBase(list, diff) { // The regexps needed for context diff parsing, the rest is the same as in parserbase.cpp - m_contextDiffHeader1.setPattern(QStringLiteral("\\*\\*\\* ([^\\t]+)(\\t([^\\t]+))?\\n")); - m_contextDiffHeader2.setPattern(QStringLiteral("--- ([^\\t]+)(\\t([^\\t]+))?\\n")); + m_contextDiffHeader1.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("\\*\\*\\* ([^\\t]+)(\\t([^\\t]+))?\\n"))); + m_contextDiffHeader2.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("--- ([^\\t]+)(\\t([^\\t]+))?\\n"))); } -DiffParser::~DiffParser() -{ -} +DiffParser::~DiffParser() = default; -enum Kompare::Format DiffParser::determineFormat() +Format DiffParser::determineFormat() { - qCDebug(LIBKOMPAREDIFF2) << "Determining the format of the diff Diff" << m_diffLines; - - QRegExp normalRE(QStringLiteral("[0-9]+[0-9,]*[acd][0-9]+[0-9,]*")); - QRegExp unifiedRE(QStringLiteral("^--- ")); - QRegExp contextRE(QStringLiteral("^\\*\\*\\* ")); - QRegExp rcsRE(QStringLiteral("^[acd][0-9]+ [0-9]+")); - QRegExp edRE(QStringLiteral("^[0-9]+[0-9,]*[acd]")); - - QStringList::ConstIterator it = m_diffLines.begin(); - - while (it != m_diffLines.end()) - { - qCDebug(LIBKOMPAREDIFF2) << (*it); - if (it->indexOf(normalRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Normal diff..."; - return Kompare::Normal; + qCDebug(KOMPAREDIFF2_LOG) << "Determining the format of the diff Diff" << m_diffLines; + + QRegularExpression normalRE(QStringLiteral("[0-9]+[0-9,]*[acd][0-9]+[0-9,]*")); + QRegularExpression unifiedRE(QStringLiteral("^--- ")); + QRegularExpression contextRE(QStringLiteral("^\\*\\*\\* ")); + QRegularExpression rcsRE(QStringLiteral("^[acd][0-9]+ [0-9]+")); + QRegularExpression edRE(QStringLiteral("^[0-9]+[0-9,]*[acd]")); + + for (const QString &diffLine : std::as_const(m_diffLines)) { + qCDebug(KOMPAREDIFF2_LOG) << diffLine; + if (diffLine.indexOf(normalRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Normal diff..."; + return Normal; } - else if (it->indexOf(unifiedRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Unified diff..."; - return Kompare::Unified; + if (diffLine.indexOf(unifiedRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Unified diff..."; + return Unified; } - else if (it->indexOf(contextRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Context diff..."; - return Kompare::Context; + if (diffLine.indexOf(contextRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Context diff..."; + return Context; } - else if (it->indexOf(rcsRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from an RCS diff..."; - return Kompare::RCS; + if (diffLine.indexOf(rcsRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from an RCS diff..."; + return RCS; } - else if (it->indexOf(edRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from an ED diff..."; - return Kompare::Ed; + if (diffLine.indexOf(edRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from an ED diff..."; + return Ed; } - ++it; } - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from an unknown diff..."; - return Kompare::UnknownFormat; + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from an unknown diff..."; + return UnknownFormat; } diff --git a/src/diffparser.h b/src/diffparser.h index 9fbe1b2..b652754 100644 --- a/src/diffparser.h +++ b/src/diffparser.h @@ -1,27 +1,28 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFFPARSER_H -#define DIFFPARSER_H +#ifndef KOMPAREDIFF2_DIFFPARSER_H +#define KOMPAREDIFF2_DIFFPARSER_H +// lib #include "parserbase.h" -namespace Diff2 +namespace KompareDiff2 { class DiffParser : public ParserBase { public: - DiffParser(const KompareModelList* list, const QStringList& diff); + DiffParser(const ModelList *list, const QStringList &diff); ~DiffParser() override; protected: - enum Kompare::Format determineFormat() override; + Format determineFormat() override; }; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif diff --git a/src/diffsettings.cpp b/src/diffsettings.cpp index 7f1885a..b4971d1 100644 --- a/src/diffsettings.cpp +++ b/src/diffsettings.cpp @@ -1,45 +1,47 @@ /* -SPDX-FileCopyrightText: 2001-2004 Otto Bruggeman -SPDX-FileCopyrightText: 2007 Kevin Kofler + SPDX-FileCopyrightText: 2001-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2007 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "diffsettings.h" +// KF #include #include - +// Qt #include -DiffSettings::DiffSettings(QWidget* parent) - : SettingsBase(parent), - m_linesOfContext(0), - m_format(Kompare::Unified), - m_largeFiles(false), - m_ignoreWhiteSpace(false), - m_ignoreAllWhiteSpace(false), - m_ignoreEmptyLines(false), - m_ignoreChangesDueToTabExpansion(false), - m_createSmallerDiff(false), - m_ignoreChangesInCase(false), - m_showCFunctionChange(false), - m_convertTabsToSpaces(false), - m_ignoreRegExp(false), - m_recursive(false), - m_newFiles(false), - m_excludeFilePattern(false), - m_excludeFilesFile(false) +namespace KompareDiff2 { -} -DiffSettings::~DiffSettings() +DiffSettings::DiffSettings() + : m_linesOfContext(0) + , m_format(Unified) + , m_largeFiles(false) + , m_ignoreWhiteSpace(false) + , m_ignoreAllWhiteSpace(false) + , m_ignoreEmptyLines(false) + , m_ignoreChangesDueToTabExpansion(false) + , m_createSmallerDiff(false) + , m_ignoreChangesInCase(false) + , m_showCFunctionChange(false) + , m_convertTabsToSpaces(false) + , m_ignoreRegExp(false) + , m_recursive(false) + , m_newFiles(false) + , m_excludeFilePattern(false) + , m_excludeFilesFile(false) { } -void DiffSettings::loadSettings(KConfig* config) +DiffSettings::~DiffSettings() = default; + +void DiffSettings::loadSettings(KConfig *config) { - KConfigGroup group(config, "Diff Options"); + KConfigGroup group(config, QStringLiteral("Diff Options")); + // clang-format off m_diffProgram = group.readEntry("DiffProgram", QString()); m_linesOfContext = group.readEntry("LinesOfContext", 3); m_largeFiles = group.readEntry("LargeFiles", true); @@ -56,23 +58,27 @@ void DiffSettings::loadSettings(KConfig* config) m_showCFunctionChange = group.readEntry("ShowCFunctionChange", false); m_recursive = group.readEntry("CompareRecursively", true); m_newFiles = group.readEntry("NewFiles", true); + // clang-format on - m_format = static_cast(group.readEntry("Format", (int) Kompare::Unified)); + m_format = static_cast(group.readEntry("Format", static_cast(Unified))); - KConfigGroup group2(config, "Exclude File Options"); - m_excludeFilePattern = group2.readEntry("Pattern", false); - m_excludeFilePatternList = group2.readEntry("PatternList", QStringList()); - m_excludeFilesFile = group2.readEntry("File", false); - m_excludeFilesFileURL = group2.readEntry("FileURL", QString()); - m_excludeFilesFileHistoryList = group2.readEntry("FileHistoryList", QStringList()); + KConfigGroup group2(config, QStringLiteral("Exclude File Options")); + // clang-format off + m_excludeFilePattern = group2.readEntry("Pattern", false); + m_excludeFilePatternList = group2.readEntry("PatternList", QStringList()); + m_excludeFilesFile = group2.readEntry("File", false); + m_excludeFilesFileURL = group2.readEntry("FileURL", QString()); + m_excludeFilesFileHistoryList = group2.readEntry("FileHistoryList", QStringList()); + // clang-format on } -void DiffSettings::saveSettings(KConfig* config) +void DiffSettings::saveSettings(KConfig *config) { - KConfigGroup group(config, "Diff Options"); + KConfigGroup group(config, QStringLiteral("Diff Options")); + // clang-format off group.writeEntry("DiffProgram", m_diffProgram); group.writeEntry("LinesOfContext", m_linesOfContext); - group.writeEntry("Format", QString(m_format)); + group.writeEntry("Format", (int)m_format); group.writeEntry("LargeFiles", m_largeFiles); group.writeEntry("IgnoreWhiteSpace", m_ignoreWhiteSpace); group.writeEntry("IgnoreAllWhiteSpace", m_ignoreAllWhiteSpace); @@ -87,14 +93,18 @@ void DiffSettings::saveSettings(KConfig* config) group.writeEntry("ShowCFunctionChange", m_showCFunctionChange); group.writeEntry("CompareRecursively", m_recursive); group.writeEntry("NewFiles", m_newFiles); + // clang-format on - KConfigGroup group2(config, "Exclude File Options"); - group2.writeEntry("Pattern", m_excludeFilePattern); - group2.writeEntry("PatternList", m_excludeFilePatternList); - group2.writeEntry("File", m_excludeFilesFile); - group2.writeEntry("FileURL", m_excludeFilesFileURL); - group2.writeEntry("FileHistoryList", m_excludeFilesFileHistoryList); + KConfigGroup group2(config, QStringLiteral("Exclude File Options")); + // clang-format off + group2.writeEntry("Pattern", m_excludeFilePattern); + group2.writeEntry("PatternList", m_excludeFilePatternList); + group2.writeEntry("File", m_excludeFilesFile); + group2.writeEntry("FileURL", m_excludeFilesFileURL); + group2.writeEntry("FileHistoryList", m_excludeFilesFileHistoryList); + // clang-format on config->sync(); } +} diff --git a/src/diffsettings.h b/src/diffsettings.h index cdb091e..9e7c834 100644 --- a/src/diffsettings.h +++ b/src/diffsettings.h @@ -1,57 +1,67 @@ /* -SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFFSETTINGS_H -#define DIFFSETTINGS_H +#ifndef KOMPAREDIFF2_DIFFSETTINGS_H +#define KOMPAREDIFF2_DIFFSETTINGS_H +// lib +#include "global.h" +#include "komparediff2_export.h" +// Qt #include -#include "kompare.h" -#include "settingsbase.h" -#include "diff2_export.h" +class KConfig; + +namespace KompareDiff2 +{ /** + * @class DiffSettings diffsettings.h + * * The settings for a diff. */ -class DIFF2_EXPORT DiffSettings : public SettingsBase +class KOMPAREDIFF2_EXPORT DiffSettings { - Q_OBJECT public: - explicit DiffSettings(QWidget* parent); - ~DiffSettings() override; + DiffSettings(); + ~DiffSettings(); + public: - // some virtual functions that will be overloaded from the base class - void loadSettings(KConfig* config) override; - void saveSettings(KConfig* config) override; + void loadSettings(KConfig *config); + void saveSettings(KConfig *config); public: QString m_diffProgram; int m_linesOfContext; - Kompare::Format m_format; - bool m_largeFiles; // -H - bool m_ignoreWhiteSpace; // -b - bool m_ignoreAllWhiteSpace; // -w - bool m_ignoreEmptyLines; // -B - bool m_ignoreChangesDueToTabExpansion; // -E - bool m_createSmallerDiff; // -d - bool m_ignoreChangesInCase; // -i - bool m_showCFunctionChange; // -p - bool m_convertTabsToSpaces; // -t - bool m_ignoreRegExp; // -I - QString m_ignoreRegExpText; // the RE for -I + Format m_format; + // clang-format off + bool m_largeFiles; ///< -H + bool m_ignoreWhiteSpace; ///< -b + bool m_ignoreAllWhiteSpace; ///< -w + bool m_ignoreEmptyLines; ///< -B + bool m_ignoreChangesDueToTabExpansion; ///< -E + bool m_createSmallerDiff; ///< -d + bool m_ignoreChangesInCase; ///< -i + bool m_showCFunctionChange; ///< -p + bool m_convertTabsToSpaces; ///< -t + bool m_ignoreRegExp; ///< -I + QString m_ignoreRegExpText; ///< the RE for -I QStringList m_ignoreRegExpTextHistory; - bool m_recursive; // -r - bool m_newFiles; // -N -// bool m_allText; // -a - bool m_excludeFilePattern; // -x - QStringList m_excludeFilePatternList; // The list of patterns for -x - bool m_excludeFilesFile; // -X - QString m_excludeFilesFileURL; // The filename to -X - QStringList m_excludeFilesFileHistoryList; // The history list of filenames + bool m_recursive; ///< -r + bool m_newFiles; ///< -N +// bool m_allText; ///< -a + bool m_excludeFilePattern; ///< -x + QStringList m_excludeFilePatternList; ///< The list of patterns for -x + bool m_excludeFilesFile; ///< -X + QString m_excludeFilesFileURL; ///< The filename to -X + QStringList m_excludeFilesFileHistoryList; ///< The history list of filenames + // clang-format on }; +} + #endif diff --git a/src/global.h b/src/global.h new file mode 100644 index 0000000..6034c91 --- /dev/null +++ b/src/global.h @@ -0,0 +1,79 @@ +/* + SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_GLOBAL_H +#define KOMPAREDIFF2_GLOBAL_H + +namespace KompareDiff2 +{ +/** + * Patch format enum. + */ +enum Format { + UnknownFormat = -1, + Context = 0, + Ed = 1, + Normal = 2, + RCS = 3, + Unified = 4, + SideBySide = 5, +}; + +/** + * Patch generator enum. + */ +enum Generator { + UnknownGenerator = -1, + CVSDiff = 0, + Diff = 1, + Perforce = 2, + SubVersion = 3, + Reserved2 = 4, + Reserved3 = 5, + Reserved4 = 6, + Reserved5 = 7, + Reserved6 = 8, + Reserved7 = 9, +}; + +/** + * Mode + */ +enum Mode { + ComparingFiles, ///< compareFiles + ComparingFileString, ///< Compare a source file with a destination string + ComparingStringFile, ///< Compare a source string with a destination file + ComparingDirs, ///< compareDirs + ShowingDiff, ///< openDiff + BlendingDir, ///< openDirAndDiff + BlendingFile, ///< openFileAndDiff + UnknownMode, ///< Used to initialize the Infoi struct +}; + +/** + * DiffMode + */ +enum DiffMode { + Default, + Custom, + UnknownDiffMode, ///< Use to initialize the Info struct +}; + +/** + * State + */ +enum Status { + RunningDiff, + Parsing, + FinishedParsing, + FinishedWritingDiff, + ReRunningDiff, ///< When a change has been detected after diff has run +}; + +} // End of namespace KompareDiff2 + +#endif diff --git a/src/info.cpp b/src/info.cpp new file mode 100644 index 0000000..0bb3327 --- /dev/null +++ b/src/info.cpp @@ -0,0 +1,52 @@ +/* + SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "info.h" + +using namespace KompareDiff2; + +Info::Info(Mode _mode, + DiffMode _diffMode, + Format _format, + Generator _generator, + const QUrl &_source, + const QUrl &_destination, + const QString &_localSource, + const QString &_localDestination, + QTemporaryDir *_sourceQTempDir, + QTemporaryDir *_destinationQTempDir, + uint _depth, + bool _applied) + : mode(_mode) + , diffMode(_diffMode) + , format(_format) + , generator(_generator) + , source(_source) + , destination(_destination) + , localSource(_localSource) + , localDestination(_localDestination) + , sourceQTempDir(_sourceQTempDir) + , destinationQTempDir(_destinationQTempDir) + , depth(_depth) + , applied(_applied) +{ +} + +void Info::swapSourceWithDestination() +{ + QUrl url = source; + source = destination; + destination = url; + + QString string = localSource; + localSource = localDestination; + localDestination = string; + + QTemporaryDir *tmpDir = sourceQTempDir; + sourceQTempDir = destinationQTempDir; + destinationQTempDir = tmpDir; +} diff --git a/src/info.h b/src/info.h new file mode 100644 index 0000000..084aa84 --- /dev/null +++ b/src/info.h @@ -0,0 +1,62 @@ +/* + SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_INFO_H +#define KOMPAREDIFF2_INFO_H + +// lib +#include "global.h" +#include "komparediff2_export.h" +// Qt +#include + +// Forward declaration needed +class QTemporaryDir; + +namespace KompareDiff2 +{ + +/** + * @class Info info.h + * + * Info. + */ +class KOMPAREDIFF2_EXPORT Info +{ +public: + Info(Mode _mode = UnknownMode, + DiffMode _diffMode = UnknownDiffMode, + Format _format = UnknownFormat, + Generator _generator = UnknownGenerator, + const QUrl &_source = QUrl(), + const QUrl &_destination = QUrl(), + const QString &_localSource = QString(), + const QString &_localDestination = QString(), + QTemporaryDir *_sourceQTempDir = nullptr, + QTemporaryDir *_destinationQTempDir = nullptr, + uint _depth = 0, + bool _applied = true); + + void swapSourceWithDestination(); + + Mode mode; + DiffMode diffMode; + Format format; + Generator generator; + QUrl source; + QUrl destination; + QString localSource; + QString localDestination; + QTemporaryDir *sourceQTempDir; + QTemporaryDir *destinationQTempDir; + uint depth; + bool applied; +}; + +} // End of namespace KompareDiff2 + +#endif diff --git a/src/kompare.cpp b/src/kompare.cpp deleted file mode 100644 index 70b6135..0000000 --- a/src/kompare.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* -SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh - -SPDX-License-Identifier: GPL-2.0-or-later -*/ - -#include "kompare.h" - -Kompare::Info::Info(Kompare::Mode _mode, Kompare::DiffMode _diffMode, Kompare::Format _format, Kompare::Generator _generator, QUrl _source, QUrl _destination, QString _localSource, QString _localDestination, QTemporaryDir* _sourceQTempDir, QTemporaryDir* _destinationQTempDir, uint _depth, bool _applied) - : mode(_mode) - , diffMode(_diffMode) - , format(_format) - , generator(_generator) - , source(_source) - , destination(_destination) - , localSource(_localSource) - , localDestination(_localDestination) - , sourceQTempDir(_sourceQTempDir) - , destinationQTempDir(_destinationQTempDir) - , depth(_depth) - , applied(_applied) -{ -} - - -void Kompare::Info::swapSourceWithDestination() -{ - QUrl url = source; - source = destination; - destination = url; - - QString string = localSource; - localSource = localDestination; - localDestination = string; - - QTemporaryDir* tmpDir = sourceQTempDir; - sourceQTempDir = destinationQTempDir; - destinationQTempDir = tmpDir; -} diff --git a/src/kompare.h b/src/kompare.h deleted file mode 100644 index c51aa72..0000000 --- a/src/kompare.h +++ /dev/null @@ -1,130 +0,0 @@ -/* -SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh - -SPDX-License-Identifier: GPL-2.0-or-later -*/ - -#ifndef KOMPARE_H -#define KOMPARE_H - -#include - -#include "diff2_export.h" - -// Forward declaration needed -class QTemporaryDir; - -/** - * Kompare namespace - */ -namespace Kompare -{ -/** - * Patch format enum. - */ -enum Format { - Context = 0, - Ed = 1, - Normal = 2, - RCS = 3, - Unified = 4, - SideBySide = 5, - UnknownFormat = -1 -}; - -/** - * Patch generator enum. - */ -enum Generator { - CVSDiff = 0, - Diff = 1, - Perforce = 2, - SubVersion = 3, - Reserved2 = 4, - Reserved3 = 5, - Reserved4 = 6, - Reserved5 = 7, - Reserved6 = 8, - Reserved7 = 9, - UnknownGenerator = -1 -}; - -/** - * Mode - */ -enum Mode { - ComparingFiles, // compareFiles - ComparingFileString, // Compare a source file with a destination string - ComparingStringFile, // Compare a source string with a destination file - ComparingDirs, // compareDirs - ShowingDiff, // openDiff - BlendingDir, // openDirAndDiff - BlendingFile, // openFileAndDiff - UnknownMode // Used to initialize the Infoi struct -}; - -/** - * DiffMode - */ -enum DiffMode { - Default, - Custom, - UnknownDiffMode // Use to initialize the Info struct -}; - -/** - * State - */ -enum Status { - RunningDiff, - Parsing, - FinishedParsing, - FinishedWritingDiff, - ReRunningDiff // When a change has been detected after diff has run -}; - -/** - * Target - */ -enum Target { - Source, - Destination -}; - -/** - * Info. - */ -struct DIFF2_EXPORT Info { - Info( - enum Mode _mode = UnknownMode, - enum DiffMode _diffMode = UnknownDiffMode, - enum Format _format = UnknownFormat, - enum Generator _generator = UnknownGenerator, - QUrl _source = QUrl(), - QUrl _destination = QUrl(), - QString _localSource = QString(), - QString _localDestination = QString(), - QTemporaryDir* _sourceQTempDir = nullptr, - QTemporaryDir* _destinationQTempDir = nullptr, - uint _depth = 0, - bool _applied = true - ); - void swapSourceWithDestination(); - - enum Mode mode; - enum DiffMode diffMode; - enum Format format; - enum Generator generator; - QUrl source; - QUrl destination; - QString localSource; - QString localDestination; - QTemporaryDir* sourceQTempDir; - QTemporaryDir* destinationQTempDir; - uint depth; - bool applied; -}; -} // End of namespace Kompare - -#endif diff --git a/src/komparemodellist.cpp b/src/komparemodellist.cpp deleted file mode 100644 index 5a875b2..0000000 --- a/src/komparemodellist.cpp +++ /dev/null @@ -1,1526 +0,0 @@ -/* -SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-FileCopyrightText: 2007-2010 Kevin Kofler -SPDX-FileCopyrightText: 2012 Jean -Nicolas Artaud - -SPDX-License-Identifier: GPL-2.0-or-later -*/ - -#include "komparemodellist.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "diffhunk.h" -#include "kompareprocess.h" -#include "parser.h" - -using namespace Diff2; - -KompareModelList::KompareModelList(DiffSettings* diffSettings, QWidget* widgetForKIO, QObject* parent, const char* name, bool supportReadWrite) - : QObject(parent), - m_diffProcess(nullptr), - m_diffSettings(diffSettings), - m_models(nullptr), - m_selectedModel(nullptr), - m_selectedDifference(nullptr), - m_modelIndex(0), - m_info(nullptr), - m_textCodec(nullptr), - m_widgetForKIO(widgetForKIO), - m_isReadWrite(supportReadWrite) -{ - qCDebug(LIBKOMPAREDIFF2) << "Show me the arguments: " << diffSettings << ", " << widgetForKIO << ", " << parent << ", " << name; - m_actionCollection = new KActionCollection(this); - if (supportReadWrite) { - m_applyDifference = m_actionCollection->addAction(QStringLiteral("difference_apply"), this, &KompareModelList::slotActionApplyDifference); - m_applyDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right"))); - m_applyDifference->setText(i18nc("@action", "&Apply Difference")); - m_actionCollection->setDefaultShortcut(m_applyDifference, QKeySequence(Qt::Key_Space)); - m_unApplyDifference = m_actionCollection->addAction(QStringLiteral("difference_unapply"), this, &KompareModelList::slotActionUnApplyDifference); - m_unApplyDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-left"))); - m_unApplyDifference->setText(i18nc("@action", "Un&apply Difference")); - m_actionCollection->setDefaultShortcut(m_unApplyDifference, QKeySequence(Qt::Key_Backspace)); - m_applyAll = m_actionCollection->addAction(QStringLiteral("difference_applyall"), this, &KompareModelList::slotActionApplyAllDifferences); - m_applyAll->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right-double"))); - m_applyAll->setText(i18nc("@action", "App&ly All")); - m_actionCollection->setDefaultShortcut(m_applyAll, QKeySequence(Qt::CTRL + Qt::Key_A)); - m_unapplyAll = m_actionCollection->addAction(QStringLiteral("difference_unapplyall"), this, &KompareModelList::slotActionUnapplyAllDifferences); - m_unapplyAll->setIcon(QIcon::fromTheme(QStringLiteral("arrow-left-double"))); - m_unapplyAll->setText(i18nc("@action", "&Unapply All")); - m_actionCollection->setDefaultShortcut(m_unapplyAll, QKeySequence(Qt::CTRL + Qt::Key_U)); - } else { - m_applyDifference = nullptr; - m_unApplyDifference = nullptr; - m_applyAll = nullptr; - m_unapplyAll = nullptr; - } - m_previousFile = m_actionCollection->addAction(QStringLiteral("difference_previousfile"), this, &KompareModelList::slotPreviousModel); - m_previousFile->setIcon(QIcon::fromTheme(QStringLiteral("arrow-up-double"))); - m_previousFile->setText(i18nc("@action", "P&revious File")); - m_actionCollection->setDefaultShortcut(m_previousFile, QKeySequence(Qt::CTRL + Qt::Key_PageUp)); - m_nextFile = m_actionCollection->addAction(QStringLiteral("difference_nextfile"), this, &KompareModelList::slotNextModel); - m_nextFile->setIcon(QIcon::fromTheme(QStringLiteral("arrow-down-double"))); - m_nextFile->setText(i18nc("@action", "N&ext File")); - m_actionCollection->setDefaultShortcut(m_nextFile, QKeySequence(Qt::CTRL + Qt::Key_PageDown)); - m_previousDifference = m_actionCollection->addAction(QStringLiteral("difference_previous"), this, &KompareModelList::slotPreviousDifference); - m_previousDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-up"))); - m_previousDifference->setText(i18nc("@action", "&Previous Difference")); - m_actionCollection->setDefaultShortcut(m_previousDifference, QKeySequence(Qt::CTRL + Qt::Key_Up)); - m_nextDifference = m_actionCollection->addAction(QStringLiteral("difference_next"), this, &KompareModelList::slotNextDifference); - m_nextDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-down"))); - m_nextDifference->setText(i18nc("@action", "&Next Difference")); - m_actionCollection->setDefaultShortcut(m_nextDifference, QKeySequence(Qt::CTRL + Qt::Key_Down)); - m_previousDifference->setEnabled(false); - m_nextDifference->setEnabled(false); - - if (supportReadWrite) { - m_save = KStandardAction::save(this, &KompareModelList::slotSaveDestination, m_actionCollection); - m_save->setEnabled(false); - } else { - m_save = nullptr; - } - - updateModelListActions(); -} - -KompareModelList::~KompareModelList() -{ - m_selectedModel = nullptr; - m_selectedDifference = nullptr; - m_info = nullptr; - delete m_models; -} - -bool KompareModelList::isDirectory(const QString& url) const -{ - QFileInfo fi(url); - if (fi.isDir()) - return true; - else - return false; -} - -bool KompareModelList::isDiff(const QString& mimeType) const -{ - if (mimeType == QLatin1String("text/x-patch")) - return true; - else - return false; -} - -bool KompareModelList::compare() -{ - bool result = false; - - bool sourceIsDirectory = isDirectory(m_info->localSource); - bool destinationIsDirectory = isDirectory(m_info->localDestination); - - if (sourceIsDirectory && destinationIsDirectory) - { - m_info->mode = Kompare::ComparingDirs; - result = compare(m_info->mode); - } - else if (!sourceIsDirectory && !destinationIsDirectory) - { - QFile sourceFile(m_info->localSource); - sourceFile.open(QIODevice::ReadOnly); - QMimeDatabase db; - QString sourceMimeType = (db.mimeTypeForData(sourceFile.readAll())).name(); - sourceFile.close(); - qCDebug(LIBKOMPAREDIFF2) << "Mimetype source : " << sourceMimeType; - - QFile destinationFile(m_info->localDestination); - destinationFile.open(QIODevice::ReadOnly); - QString destinationMimeType = (db.mimeTypeForData(destinationFile.readAll())).name(); - destinationFile.close(); - qCDebug(LIBKOMPAREDIFF2) << "Mimetype destination: " << destinationMimeType; - - // Not checking if it is a text file/something diff can even compare, we'll let diff handle that - if (!isDiff(sourceMimeType) && isDiff(destinationMimeType)) - { - qCDebug(LIBKOMPAREDIFF2) << "Blending destination into source..."; - m_info->mode = Kompare::BlendingFile; - result = openFileAndDiff(); - } - else if (isDiff(sourceMimeType) && !isDiff(destinationMimeType)) - { - qCDebug(LIBKOMPAREDIFF2) << "Blending source into destination..."; - m_info->mode = Kompare::BlendingFile; - // Swap source and destination before calling this - m_info->swapSourceWithDestination(); - // Do we need to notify anyone we swapped source and destination? - // No we do not need to notify anyone about swapping source with destination - result = openFileAndDiff(); - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "Comparing source with destination"; - m_info->mode = Kompare::ComparingFiles; - result = compare(m_info->mode); - } - } - else if (sourceIsDirectory && !destinationIsDirectory) - { - m_info->mode = Kompare::BlendingDir; - result = openDirAndDiff(); - } - else - { - m_info->mode = Kompare::BlendingDir; - // Swap source and destination first in m_info - m_info->swapSourceWithDestination(); - // Do we need to notify anyone we swapped source and destination? - // No we do not need to notify anyone about swapping source with destination - result = openDirAndDiff(); - } - - return result; -} - -bool KompareModelList::compare(Kompare::Mode mode) -{ - clear(); // Destroy the old models... - - m_diffProcess = new KompareProcess(m_diffSettings, Kompare::Custom, m_info->localSource, m_info->localDestination, QString(), mode); - m_diffProcess->setEncoding(m_encoding); - - connect(m_diffProcess, &KompareProcess::diffHasFinished, - this, &KompareModelList::slotDiffProcessFinished); - - Q_EMIT status(Kompare::RunningDiff); - m_diffProcess->start(); - - return true; -} - -static QString lstripSeparators(const QString& from, uint count) -{ - int position = 0; - for (uint i = 0; i < count; ++i) - { - position = from.indexOf(QLatin1Char('/'), position); - if (position == -1) - { - break; - } - } - if (position == -1) - { - return QString(); - } - - return from.mid(position + 1); -} - -void KompareModelList::setDepthAndApplied() -{ - // Splice to avoid calling ~DiffModelList - const QList splicedModelList(*m_models); - for (DiffModel* model : splicedModelList) { - model->setSourceFile(lstripSeparators(model->source(), m_info->depth)); - model->setDestinationFile(lstripSeparators(model->destination(), m_info->depth)); - model->applyAllDifferences(m_info->applied); - } -} - -bool KompareModelList::openFileAndDiff() -{ - clear(); - - if (parseDiffOutput(readFile(m_info->localDestination)) != 0) - { - Q_EMIT error(i18n("No models or no differences, this file: %1, is not a valid diff file.", m_info->destination.url())); - return false; - } - - setDepthAndApplied(); - - if (!blendOriginalIntoModelList(m_info->localSource)) - { - qCDebug(LIBKOMPAREDIFF2) << "Oops cant blend original file into modellist : " << m_info->localSource; - Q_EMIT error(i18n("There were problems applying the diff %1 to the file %2.", m_info->destination.url(), m_info->source.url())); - return false; - } - - updateModelListActions(); - show(); - - return true; -} - -bool KompareModelList::openDirAndDiff() -{ - clear(); - - if (parseDiffOutput(readFile(m_info->localDestination)) != 0) - { - Q_EMIT error(i18n("No models or no differences, this file: %1, is not a valid diff file.", m_info->destination.url())); - return false; - } - - setDepthAndApplied(); - - // Do our thing :) - if (!blendOriginalIntoModelList(m_info->localSource)) - { - // Trouble blending the original into the model - qCDebug(LIBKOMPAREDIFF2) << "Oops cant blend original dir into modellist : " << m_info->localSource; - Q_EMIT error(i18n("There were problems applying the diff %1 to the folder %2.", m_info->destination.url(), m_info->source.url())); - return false; - } - - updateModelListActions(); - show(); - - return true; -} - -void KompareModelList::slotSaveDestination() -{ - // Unnecessary safety check! We can now guarantee that saving is only possible when there is a model and there are unsaved changes - if (m_selectedModel) - { - saveDestination(m_selectedModel); - if (m_save) m_save->setEnabled(false); - Q_EMIT updateActions(); - } -} - -bool KompareModelList::saveDestination(DiffModel* model) -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::saveDestination: "; - - // Unnecessary safety check, we can guarantee there are unsaved changes!!! - if (!model->hasUnsavedChanges()) - return true; - - QTemporaryFile temp; - - if (!temp.open()) { - Q_EMIT error(i18n("Could not open a temporary file.")); - temp.remove(); - return false; - } - - QTextStream stream(&temp); - QStringList list; - - DiffHunkListConstIterator hunkIt = model->hunks()->constBegin(); - DiffHunkListConstIterator hEnd = model->hunks()->constEnd(); - - for (; hunkIt != hEnd; ++hunkIt) - { - DiffHunk* hunk = *hunkIt; - - DifferenceListConstIterator diffIt = hunk->differences().constBegin(); - DifferenceListConstIterator dEnd = hunk->differences().constEnd(); - - Difference* diff; - for (; diffIt != dEnd; ++diffIt) - { - diff = *diffIt; - if (!diff->applied()) - { - DifferenceStringListConstIterator stringIt = diff->destinationLines().begin(); - DifferenceStringListConstIterator sEnd = diff->destinationLines().end(); - for (; stringIt != sEnd; ++stringIt) - { - list.append((*stringIt)->string()); - } - } - else - { - DifferenceStringListConstIterator stringIt = diff->sourceLines().begin(); - DifferenceStringListConstIterator sEnd = diff->sourceLines().end(); - for (; stringIt != sEnd; ++stringIt) - { - list.append((*stringIt)->string()); - } - } - } - } - - // qCDebug(LIBKOMPAREDIFF2) << "Everything: " << endl << list.join( "\n" ); - - if (list.count() > 0) - stream << list.join(QString()); - if (temp.error() != QFile::NoError) { - Q_EMIT error(i18n("Could not write to the temporary file %1, deleting it.", temp.fileName())); - temp.remove(); - return false; - } - - temp.close(); - if (temp.error() != QFile::NoError) { - Q_EMIT error(i18n("Could not write to the temporary file %1, deleting it.", temp.fileName())); - temp.remove(); - return false; - } - - bool result = false; - - // Make sure the destination directory exists, it is possible when using -N to not have the destination dir/file available - if (m_info->mode == Kompare::ComparingDirs) - { - // Don't use destination which was used for creating the diff directly, use the original URL!!! - // FIXME!!! Wrong destination this way! Need to add the sub directory to the url!!!! - qCDebug(LIBKOMPAREDIFF2) << "Tempfilename (save) : " << temp.fileName(); - qCDebug(LIBKOMPAREDIFF2) << "Model->path+file : " << model->destinationPath() << model->destinationFile(); - qCDebug(LIBKOMPAREDIFF2) << "info->localdest : " << m_info->localDestination; - QString tmp = model->destinationPath() + model->destinationFile(); - if (tmp.startsWith(m_info->localDestination)) // It should, if not serious trouble... - tmp.remove(0, m_info->localDestination.size()); - qCDebug(LIBKOMPAREDIFF2) << "DestinationURL : " << m_info->destination; - qCDebug(LIBKOMPAREDIFF2) << "tmp : " << tmp; - KIO::UDSEntry entry; - QUrl fullDestinationPath = m_info->destination; - fullDestinationPath.setPath(fullDestinationPath.path() + QLatin1Char('/') + tmp); - qCDebug(LIBKOMPAREDIFF2) << "fullDestinationPath : " << fullDestinationPath; - KIO::StatJob* statJob = KIO::stat(fullDestinationPath); - if (!statJob->exec()) - { - entry = statJob->statResult(); - KIO::MkdirJob* mkdirJob = KIO::mkdir(fullDestinationPath); - if (!mkdirJob->exec()) - { - Q_EMIT error(i18n("Could not create destination directory %1.\nThe file has not been saved.", fullDestinationPath.path())); - return false; - } - } - KIO::FileCopyJob* copyJob = KIO::file_copy(QUrl::fromLocalFile(temp.fileName()), fullDestinationPath, -1, KIO::Overwrite); - result = copyJob->exec(); - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "Tempfilename : " << temp.fileName(); - qCDebug(LIBKOMPAREDIFF2) << "DestinationURL : " << m_info->destination; - - // Get permissions of existing file and copy temporary file with the same permissions - int permissions = -1; - KIO::StatJob* statJob = KIO::stat(m_info->destination); - result = statJob->exec(); - if (result) - permissions = statJob->statResult().numberValue(KIO::UDSEntry::UDS_ACCESS); - - KIO::FileCopyJob* copyJob = KIO::file_copy(QUrl::fromLocalFile(temp.fileName()), m_info->destination , permissions, KIO::Overwrite); - result = copyJob->exec(); - qCDebug(LIBKOMPAREDIFF2) << "true or false?" << result; - } - - if (!result) - { - // FIXME: Wrong first argument given in case of comparing directories! - Q_EMIT error(i18n("Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You can manually copy it to the right place.", m_info->destination.url(), temp.fileName())); - //Don't remove file when we delete temp and don't leak it. - temp.setAutoRemove(false); - } - else - { - temp.remove(); - } - - // If saving was fine set all differences to saved so we can start again with a clean slate - if (result) - { - DifferenceListConstIterator diffIt = model->differences()->constBegin(); - DifferenceListConstIterator endIt = model->differences()->constEnd(); - - for (; diffIt != endIt; ++diffIt) - { - (*diffIt)->setUnsaved(false); - } - } - - return true; -} - -bool KompareModelList::saveAll() -{ - if (modelCount() == 0) - return false; - - DiffModelListIterator it = m_models->begin(); - DiffModelListIterator end = m_models->end(); - for (; it != end; ++it) - { - if (!saveDestination(*it)) - return false; - } - - return true; -} - -void KompareModelList::setEncoding(const QString& encoding) -{ - m_encoding = encoding; - if (!encoding.compare(QLatin1String("default"), Qt::CaseInsensitive)) - { - m_textCodec = QTextCodec::codecForLocale(); - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "Encoding : " << encoding; - m_textCodec = KCharsets::charsets()->codecForName(encoding); - qCDebug(LIBKOMPAREDIFF2) << "TextCodec: " << m_textCodec; - if (!m_textCodec) - m_textCodec = QTextCodec::codecForLocale(); - } - qCDebug(LIBKOMPAREDIFF2) << "TextCodec: " << m_textCodec; -} - -void KompareModelList::setReadWrite(bool isReadWrite) -{ - if (m_isReadWrite == isReadWrite) - return; - - m_isReadWrite = isReadWrite; - updateModelListActions(); -} - -bool KompareModelList::isReadWrite() const -{ - return m_isReadWrite; -} - -void KompareModelList::slotDiffProcessFinished(bool success) -{ - if (success) - { - Q_EMIT status(Kompare::Parsing); - if (parseDiffOutput(m_diffProcess->diffOutput()) != 0) - { - Q_EMIT error(i18n("Could not parse diff output.")); - } - else - { - if (m_info->mode != Kompare::ShowingDiff) - { - qCDebug(LIBKOMPAREDIFF2) << "Blend this crap please and do not give me any conflicts..."; - blendOriginalIntoModelList(m_info->localSource); - } - updateModelListActions(); - show(); - } - Q_EMIT status(Kompare::FinishedParsing); - } - else if (m_diffProcess->exitStatus() == 0) - { - Q_EMIT error(i18n("The files are identical.")); - } - else - { - Q_EMIT error(m_diffProcess->stdErr()); - } - - m_diffProcess->deleteLater(); - m_diffProcess = nullptr; -} - -void KompareModelList::slotDirectoryChanged(const QString& /*dir*/) -{ - // some debug output to see if watching works properly - qCDebug(LIBKOMPAREDIFF2) << "Yippie directories are being watched !!! :)"; - if (m_diffProcess) - { - Q_EMIT status(Kompare::ReRunningDiff); - m_diffProcess->start(); - } -} - -void KompareModelList::slotFileChanged(const QString& /*file*/) -{ - // some debug output to see if watching works properly - qCDebug(LIBKOMPAREDIFF2) << "Yippie files are being watched !!! :)"; - if (m_diffProcess) - { - Q_EMIT status(Kompare::ReRunningDiff); - m_diffProcess->start(); - } -} - -QStringList KompareModelList::split(const QString& fileContents) -{ - QString contents = fileContents; - QStringList list; - - int pos = 0; - int oldpos = 0; - // split that does not strip the split char -#ifdef QT_OS_MAC - const char split = '\r'; -#else - const char split = '\n'; -#endif - while ((pos = contents.indexOf(QLatin1Char(split), oldpos)) >= 0) - { - list.append(contents.mid(oldpos, pos - oldpos + 1)); - oldpos = pos + 1; - } - - if (contents.length() > oldpos) - { - list.append(contents.right(contents.length() - oldpos)); - } - - return list; -} - -QString KompareModelList::readFile(const QString& fileName) -{ - QStringList list; - - QFile file(fileName); - file.open(QIODevice::ReadOnly); - - QTextStream stream(&file); - qCDebug(LIBKOMPAREDIFF2) << "Codec = " << m_textCodec; - - if (!m_textCodec) - m_textCodec = QTextCodec::codecForLocale(); - - stream.setCodec(m_textCodec); - - QString contents = stream.readAll(); - - file.close(); - - return contents; -} - -bool KompareModelList::openDiff(const QString& diffFile) -{ - qCDebug(LIBKOMPAREDIFF2) << "Stupid :) Url = " << diffFile; - - if (diffFile.isEmpty()) - return false; - - QString diff = readFile(diffFile); - - clear(); // Clear the current models - - Q_EMIT status(Kompare::Parsing); - - if (parseDiffOutput(diff) != 0) - { - Q_EMIT error(i18n("Could not parse diff output.")); - return false; - } - - updateModelListActions(); - show(); - - Q_EMIT status(Kompare::FinishedParsing); - - return true; -} - -bool KompareModelList::parseAndOpenDiff(const QString& diff) -{ - clear(); // Clear the current models - - Q_EMIT status(Kompare::Parsing); - - if (parseDiffOutput(diff) != 0) - { - Q_EMIT error(i18n("Could not parse diff output.")); - return false; - } - - updateModelListActions(); - show(); - - Q_EMIT status(Kompare::FinishedParsing); - return true; -} - -QString KompareModelList::recreateDiff() const -{ - QString diff; - - DiffModelListConstIterator modelIt = m_models->constBegin(); - DiffModelListConstIterator mEnd = m_models->constEnd(); - - for (; modelIt != mEnd; ++modelIt) - { - diff += (*modelIt)->recreateDiff(); - } - return diff; -} - -bool KompareModelList::saveDiff(const QString& url, QString directory, DiffSettings* diffSettings) -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::saveDiff: "; - - m_diffTemp = new QTemporaryFile(); - m_diffURL = QUrl(url); // ### TODO the "url" argument should be a QUrl - - if (!m_diffTemp->open()) { - Q_EMIT error(i18n("Could not open a temporary file.")); - m_diffTemp->remove(); - delete m_diffTemp; - m_diffTemp = nullptr; - return false; - } - - m_diffProcess = new KompareProcess(diffSettings, Kompare::Custom, m_info->localSource, m_info->localDestination, directory); - m_diffProcess->setEncoding(m_encoding); - - connect(m_diffProcess, &KompareProcess::diffHasFinished, - this, &KompareModelList::slotWriteDiffOutput); - - Q_EMIT status(Kompare::RunningDiff); - m_diffProcess->start(); - return true; -} - -void KompareModelList::slotWriteDiffOutput(bool success) -{ - qCDebug(LIBKOMPAREDIFF2) << "Success = " << success; - - if (success) - { - QTextStream stream(m_diffTemp); - - stream << m_diffProcess->diffOutput(); - - m_diffTemp->close(); - - if (false /*|| m_diffTemp->status() != 0 */) - { - Q_EMIT error(i18n("Could not write to the temporary file.")); - } - - KIO::FileCopyJob* copyJob = KIO::file_copy(QUrl::fromLocalFile(m_diffTemp->fileName()), m_diffURL); - copyJob->exec(); - - Q_EMIT status(Kompare::FinishedWritingDiff); - } - - m_diffURL = QUrl(); - m_diffTemp->remove(); - - delete m_diffTemp; - m_diffTemp = nullptr; - - delete m_diffProcess; - m_diffProcess = nullptr; -} - -void KompareModelList::slotSelectionChanged(const Diff2::DiffModel* model, const Diff2::Difference* diff) -{ -// This method will signal all the other objects about a change in selection, -// it will Q_EMIT setSelection( const DiffModel*, const Difference* ) to all who are connected - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::slotSelectionChanged( " << model << ", " << diff << " )"; - qCDebug(LIBKOMPAREDIFF2) << "Sender is : " << sender()->metaObject()->className(); -// qCDebug(LIBKOMPAREDIFF2) << kBacktrace(); - - m_selectedModel = const_cast(model); - m_modelIndex = m_models->indexOf(m_selectedModel); - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - m_selectedDifference = const_cast(diff); - - m_selectedModel->setSelectedDifference(m_selectedDifference); - - // setSelected* search for the argument in the lists and return false if not found - // if found they return true and set the m_selected* - if (!setSelectedModel(m_selectedModel)) - { - // Backup plan - m_selectedModel = firstModel(); - m_selectedDifference = m_selectedModel->firstDifference(); - } - else if (!m_selectedModel->setSelectedDifference(m_selectedDifference)) - { - // Another backup plan - m_selectedDifference = m_selectedModel->firstDifference(); - } - - Q_EMIT setSelection(model, diff); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - - updateModelListActions(); -} - -void KompareModelList::slotSelectionChanged(const Diff2::Difference* diff) -{ -// This method will Q_EMIT setSelection( const Difference* ) to whomever is listening -// when for instance in kompareview the selection has changed - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::slotSelectionChanged( " << diff << " )"; - qCDebug(LIBKOMPAREDIFF2) << "Sender is : " << sender()->metaObject()->className(); - - m_selectedDifference = const_cast(diff); - - if (!m_selectedModel->setSelectedDifference(m_selectedDifference)) - { - // Backup plan - m_selectedDifference = m_selectedModel->firstDifference(); - } - - Q_EMIT setSelection(diff); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - - updateModelListActions(); -} - -void KompareModelList::slotPreviousModel() -{ - if ((m_selectedModel = prevModel()) != nullptr) - { - m_selectedDifference = m_selectedModel->firstDifference(); - } - else - { - m_selectedModel = firstModel(); - m_selectedDifference = m_selectedModel->firstDifference(); - } - - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); -} - -void KompareModelList::slotNextModel() -{ - if ((m_selectedModel = nextModel()) != nullptr) - { - m_selectedDifference = m_selectedModel->firstDifference(); - } - else - { - m_selectedModel = lastModel(); - m_selectedDifference = m_selectedModel->firstDifference(); - } - - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); -} - -DiffModel* KompareModelList::firstModel() -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::firstModel()"; - m_modelIndex = 0; - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - - m_selectedModel = m_models->first(); - - return m_selectedModel; -} - -DiffModel* KompareModelList::lastModel() -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::lastModel()"; - m_modelIndex = m_models->count() - 1; - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - - m_selectedModel = m_models->last(); - - return m_selectedModel; -} - -DiffModel* KompareModelList::prevModel() -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::prevModel()"; - if (m_modelIndex > 0 && --m_modelIndex < m_models->count()) - { - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - m_selectedModel = (*m_models)[ m_modelIndex ]; - } - else - { - m_selectedModel = nullptr; - m_modelIndex = 0; - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - } - - return m_selectedModel; -} - -DiffModel* KompareModelList::nextModel() -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::nextModel()"; - if (++m_modelIndex < m_models->count()) - { - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - m_selectedModel = (*m_models)[ m_modelIndex ]; - } - else - { - m_selectedModel = nullptr; - m_modelIndex = 0; - qCDebug(LIBKOMPAREDIFF2) << "m_modelIndex = " << m_modelIndex; - } - - return m_selectedModel; -} - -KActionCollection* KompareModelList::actionCollection() const -{ - return m_actionCollection; -} - -void KompareModelList::slotPreviousDifference() -{ - qCDebug(LIBKOMPAREDIFF2) << "slotPreviousDifference called"; - if ((m_selectedDifference = m_selectedModel->prevDifference()) != nullptr) - { - Q_EMIT setSelection(m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); - return; - } - - qCDebug(LIBKOMPAREDIFF2) << "**** no previous difference... ok lets find the previous model..."; - - if ((m_selectedModel = prevModel()) != nullptr) - { - m_selectedDifference = m_selectedModel->lastDifference(); - - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); - return; - } - - - qCDebug(LIBKOMPAREDIFF2) << "**** !!! No previous model, ok backup plan activated..."; - - // Backup plan - m_selectedModel = firstModel(); - m_selectedDifference = m_selectedModel->firstDifference(); - - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); -} - -void KompareModelList::slotNextDifference() -{ - qCDebug(LIBKOMPAREDIFF2) << "slotNextDifference called"; - if ((m_selectedDifference = m_selectedModel->nextDifference()) != nullptr) - { - Q_EMIT setSelection(m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); - return; - } - - qCDebug(LIBKOMPAREDIFF2) << "**** no next difference... ok lets find the next model..."; - - if ((m_selectedModel = nextModel()) != nullptr) - { - m_selectedDifference = m_selectedModel->firstDifference(); - - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); - return; - } - - qCDebug(LIBKOMPAREDIFF2) << "**** !!! No next model, ok backup plan activated..."; - - // Backup plan - m_selectedModel = lastModel(); - m_selectedDifference = m_selectedModel->lastDifference(); - - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); - Q_EMIT setStatusBarModelInfo(findModel(m_selectedModel), m_selectedModel->findDifference(m_selectedDifference), modelCount(), differenceCount(), m_selectedModel->appliedCount()); - updateModelListActions(); -} - -void KompareModelList::slotApplyDifference(bool apply) -{ - m_selectedModel->applyDifference(apply); - Q_EMIT applyDifference(apply); -} - -void KompareModelList::slotApplyAllDifferences(bool apply) -{ - m_selectedModel->applyAllDifferences(apply); - Q_EMIT applyAllDifferences(apply); -} - -int KompareModelList::parseDiffOutput(const QString& diff) -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::parseDiffOutput"; - Q_EMIT diffString(diff); - - QStringList diffLines = split(diff); - - Parser* parser = new Parser(this); - bool malformed = false; - m_models = parser->parse(diffLines, &malformed); - - m_info->generator = parser->generator(); - m_info->format = parser->format(); - - delete parser; - - if (m_models) - { - if (malformed) - { - qCDebug(LIBKOMPAREDIFF2) << "Malformed diff"; - Q_EMIT error(i18n("The diff is malformed. Some lines could not be parsed and will not be displayed in the diff view.")); - // proceed anyway with the lines which have been parsed - } - m_selectedModel = firstModel(); - qCDebug(LIBKOMPAREDIFF2) << "Ok there are differences..."; - m_selectedDifference = m_selectedModel->firstDifference(); - Q_EMIT setStatusBarModelInfo(0, 0, modelCount(), differenceCount(), 0); - } - else - { - // Wow trouble, no models, so no differences... - qCDebug(LIBKOMPAREDIFF2) << "Now i'll be damned, there should be models here !!!"; - return -1; - } - - return 0; -} - -bool KompareModelList::blendOriginalIntoModelList(const QString& localURL) -{ - qCDebug(LIBKOMPAREDIFF2) << "Hurrah we are blending..."; - QFileInfo fi(localURL); - - bool result = false; - DiffModel* model; - - QString fileContents; - - if (fi.isDir()) - { // is a dir - qCDebug(LIBKOMPAREDIFF2) << "Blend Dir"; -// QDir dir( localURL, QString(), QDir::Name|QDir::DirsFirst, QDir::TypeMask ); - DiffModelListIterator modelIt = m_models->begin(); - DiffModelListIterator mEnd = m_models->end(); - for (; modelIt != mEnd; ++modelIt) - { - model = *modelIt; - qCDebug(LIBKOMPAREDIFF2) << "Model : " << model; - QString filename = model->source(); - if (!filename.startsWith(localURL)) - filename = QDir(localURL).filePath(filename); - QFileInfo fi2(filename); - if (fi2.exists()) - { - qCDebug(LIBKOMPAREDIFF2) << "Reading from: " << filename; - fileContents = readFile(filename); - result = blendFile(model, fileContents); - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "File " << filename << " does not exist !"; - qCDebug(LIBKOMPAREDIFF2) << "Assume empty file !"; - fileContents.truncate(0); - result = blendFile(model, fileContents); - } - } - qCDebug(LIBKOMPAREDIFF2) << "End of Blend Dir"; - } - else if (fi.isFile()) - { // is a file - qCDebug(LIBKOMPAREDIFF2) << "Blend File"; - qCDebug(LIBKOMPAREDIFF2) << "Reading from: " << localURL; - fileContents = readFile(localURL); - - result = blendFile((*m_models)[ 0 ], fileContents); - qCDebug(LIBKOMPAREDIFF2) << "End of Blend File"; - } - - return result; -} - -bool KompareModelList::blendFile(DiffModel* model, const QString& fileContents) -{ - if (!model) - { - qCDebug(LIBKOMPAREDIFF2) << "**** model is null :("; - return false; - } - - model->setBlended(true); - - int srcLineNo = 1, destLineNo = 1; - - const QStringList lines = split(fileContents); - auto linesIt = lines.constBegin(), lEnd = lines.constEnd(); - - DiffHunkList* hunks = model->hunks(); - qCDebug(LIBKOMPAREDIFF2) << "Hunks in hunklist: " << hunks->count(); - DiffHunkListIterator hunkIt = hunks->begin(); - - DiffHunk* newHunk = nullptr; - Difference* newDiff = nullptr; - - // FIXME: this approach is not very good, we should first check if the hunk applies cleanly - // and without offset and if not use that new linenumber with offset to compare against - // This will only work for files we just diffed with kompare but not for blending where - // file(s) to patch has/have potentially changed - - for (; hunkIt != hunks->end(); ++hunkIt) - { - // Do we need to insert a new hunk before this one ? - DiffHunk* hunk = *hunkIt; - if (srcLineNo < hunk->sourceLineNumber()) - { - newHunk = new DiffHunk(srcLineNo, destLineNo, QString(), DiffHunk::AddedByBlend); - - hunkIt = ++hunks->insert(hunkIt, newHunk); - - newDiff = new Difference(srcLineNo, destLineNo, - Difference::Unchanged); - - newHunk->add(newDiff); - - while (srcLineNo < hunk->sourceLineNumber() && linesIt != lEnd) - { - newDiff->addSourceLine(*linesIt); - newDiff->addDestinationLine(*linesIt); - ++srcLineNo; - ++destLineNo; - ++linesIt; - } - } - - // Now we add the linecount difference for the hunk that follows - int size = hunk->sourceLineCount(); - - linesIt += size; - if (linesIt > lEnd) - { - linesIt = lEnd; - } - - srcLineNo += size; - destLineNo += hunk->destinationLineCount(); - } - - if (linesIt != lEnd) - { - newHunk = new DiffHunk(srcLineNo, destLineNo, QString(), DiffHunk::AddedByBlend); - - model->addHunk(newHunk); - - newDiff = new Difference(srcLineNo, destLineNo, Difference::Unchanged); - - newHunk->add(newDiff); - - while (linesIt != lEnd) - { - newDiff->addSourceLine(*linesIt); - newDiff->addDestinationLine(*linesIt); - ++linesIt; - } - } -#if 0 - DifferenceList hunkDiffList = (*hunkIt)->differences(); - DifferenceListIterator diffIt = hunkDiffList.begin(); - DifferenceListIterator dEnd = hunkDiffList.end(); - qCDebug(LIBKOMPAREDIFF2) << "Number of differences in hunkDiffList = " << diffList.count(); - - DifferenceListIterator tempIt; - Difference* diff; - - for (; diffIt != dEnd; ++diffIt) - { - diff = *diffIt; - qCDebug(LIBKOMPAREDIFF2) << "*(Diff it) = " << diff; - // Check if there are lines in the original file before the difference - // that are not yet in the diff. If so create new Unchanged diff - if (srcLineNo < diff->sourceLineNumber()) - { - newDiff = new Difference(srcLineNo, destLineNo, - Difference::Unchanged | Difference::AddedByBlend); - newHunk->add(newDiff); - while (srcLineNo < diff->sourceLineNumber() && linesIt != lEnd) - { -// qCDebug(LIBKOMPAREDIFF2) << "SourceLine = " << srcLineNo << ": " << *linesIt; - newDiff->addSourceLine(*linesIt); - newDiff->addDestinationLine(*linesIt); - ++srcLineNo; - ++destLineNo; - ++linesIt; - } - } - // Now i've got to add that diff - switch (diff->type()) - { - case Difference::Unchanged: - qCDebug(LIBKOMPAREDIFF2) << "Unchanged"; - for (int i = 0; i < diff->sourceLineCount(); ++i) - { - if (linesIt != lEnd && *linesIt != diff->sourceLineAt(i)->string()) - { - qCDebug(LIBKOMPAREDIFF2) << "Conflict: SourceLine = " << srcLineNo << ": " << *linesIt; - qCDebug(LIBKOMPAREDIFF2) << "Conflict: DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt(i)->string(); - - // Do conflict resolution (well sort of) - diff->sourceLineAt(i)->setConflictString(*linesIt); - diff->setConflict(true); - } -// qCDebug(LIBKOMPAREDIFF2) << "SourceLine = " << srcLineNo << ": " << *linesIt; -// qCDebug(LIBKOMPAREDIFF2) << "DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt( i )->string(); - ++srcLineNo; - ++destLineNo; - ++linesIt; - } - - tempIt = diffIt; - --diffIt; - diffList.remove(tempIt); - newHunk->add(diff); - - break; - case Difference::Change: - qCDebug(LIBKOMPAREDIFF2) << "Change"; - - //QStringListConstIterator saveIt = linesIt; - - for (int i = 0; i < diff->sourceLineCount(); ++i) - { - if (linesIt != lEnd && *linesIt != diff->sourceLineAt(i)->string()) - { - qCDebug(LIBKOMPAREDIFF2) << "Conflict: SourceLine = " << srcLineNo << ": " << *linesIt; - qCDebug(LIBKOMPAREDIFF2) << "Conflict: DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt(i)->string(); - - // Do conflict resolution (well sort of) - diff->sourceLineAt(i)->setConflictString(*linesIt); - diff->setConflict(true); - } - ++srcLineNo; - ++destLineNo; - ++linesIt; - } - - destLineNo += diff->destinationLineCount(); - - tempIt = diffIt; - --diffIt; - diffList.remove(tempIt); - newHunk->add(diff); - newModel->addDiff(diff); - - break; - case Difference::Insert: - qCDebug(LIBKOMPAREDIFF2) << "Insert"; - destLineNo += diff->destinationLineCount(); - tempIt = diffIt; - --diffIt; - diffList.remove(tempIt); - newHunk->add(diff); - newModel->addDiff(diff); - break; - case Difference::Delete: - qCDebug(LIBKOMPAREDIFF2) << "Delete"; - qCDebug(LIBKOMPAREDIFF2) << "Number of lines in Delete: " << diff->sourceLineCount(); - for (int i = 0; i < diff->sourceLineCount(); ++i) - { - if (linesIt != lEnd && *linesIt != diff->sourceLineAt(i)->string()) - { - qCDebug(LIBKOMPAREDIFF2) << "Conflict: SourceLine = " << srcLineNo << ": " << *linesIt; - qCDebug(LIBKOMPAREDIFF2) << "Conflict: DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt(i)->string(); - - // Do conflict resolution (well sort of) - diff->sourceLineAt(i)->setConflictString(*linesIt); - diff->setConflict(true); - } - -// qCDebug(LIBKOMPAREDIFF2) << "SourceLine = " << srcLineNo << ": " << *it; -// qCDebug(LIBKOMPAREDIFF2) << "DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt( i )->string(); - ++srcLineNo; - ++linesIt; - } - - tempIt = diffIt; - --diffIt; - diffList.remove(tempIt); - newHunk->add(diff); - newModel->addDiff(diff); - break; - default: - qCDebug(LIBKOMPAREDIFF2) << "****, some diff type we do not know about ???"; - } - } -} -#endif - -/* - diffList = newModel->differences(); - - diff = diffList.first(); - qCDebug(LIBKOMPAREDIFF2) << "Count = " << diffList.count(); - for ( diff = diffList.first(); diff; diff = diffList.next() ) - { - qCDebug(LIBKOMPAREDIFF2) << "sourcelinenumber = " << diff->sourceLineNumber(); - } -*/ - -m_selectedModel = firstModel(); - -m_selectedDifference = m_selectedModel->firstDifference(); - -return true; -} - -void KompareModelList::show() -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::Show Number of models = " << m_models->count(); - Q_EMIT modelsChanged(m_models); - Q_EMIT setSelection(m_selectedModel, m_selectedDifference); -} - -void KompareModelList::clear() -{ - if (m_models) - m_models->clear(); - - Q_EMIT modelsChanged(m_models); -} - -void KompareModelList::refresh() -{ - // FIXME: I can imagine blending also wants to be refreshed so make a switch case here - compare(m_info->mode); -} - -void KompareModelList::swap() -{ - //FIXME Not sure if any mode could be swapped - if (m_info->mode == Kompare::ComparingFiles) - compare(m_info->mode); - else if (m_info->mode == Kompare::ComparingDirs) - compare(m_info->mode); -} - -bool KompareModelList::hasUnsavedChanges() const -{ - if (modelCount() == 0) - return false; - - DiffModelListConstIterator modelIt = m_models->constBegin(); - DiffModelListConstIterator endIt = m_models->constEnd(); - - for (; modelIt != endIt; ++modelIt) - { - if ((*modelIt)->hasUnsavedChanges()) - return true; - } - return false; -} - -int KompareModelList::modelCount() const -{ - return m_models ? m_models->count() : 0; -} - -int KompareModelList::differenceCount() const -{ - return m_selectedModel ? m_selectedModel->differenceCount() : -1; -} - -int KompareModelList::appliedCount() const -{ - return m_selectedModel ? m_selectedModel->appliedCount() : -1; -} - -void KompareModelList::slotKompareInfo(struct Kompare::Info* info) -{ - m_info = info; -} - -bool KompareModelList::setSelectedModel(DiffModel* model) -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::setSelectedModel( " << model << " )"; - - if (model != m_selectedModel) - { - if (!m_models->contains(model)) - return false; - qCDebug(LIBKOMPAREDIFF2) << "m_selectedModel (was) = " << m_selectedModel; - m_modelIndex = m_models->indexOf(model); - qCDebug(LIBKOMPAREDIFF2) << "m_selectedModel (is) = " << m_selectedModel; - m_selectedModel = model; - } - - updateModelListActions(); - - return true; -} - -void KompareModelList::updateModelListActions() -{ - if (m_models && m_selectedModel && m_selectedDifference) - { - if (m_isReadWrite && m_save) - { - if (m_selectedModel->appliedCount() != m_selectedModel->differenceCount()) - m_applyAll->setEnabled(true); - else - m_applyAll->setEnabled(false); - - if (m_selectedModel->appliedCount() != 0) - m_unapplyAll->setEnabled(true); - else - m_unapplyAll->setEnabled(false); - - m_applyDifference->setEnabled(m_selectedDifference->applied() == false); - m_unApplyDifference->setEnabled(m_selectedDifference->applied() == true); - m_save->setEnabled(m_selectedModel->hasUnsavedChanges()); - } - else if (m_save) - { - m_applyDifference->setEnabled(false); - m_unApplyDifference->setEnabled(false); - m_applyAll->setEnabled(false); - m_unapplyAll->setEnabled(false); - m_save->setEnabled(false); - } - - m_previousFile->setEnabled(hasPrevModel()); - m_nextFile->setEnabled(hasNextModel()); - m_previousDifference->setEnabled(hasPrevDiff()); - m_nextDifference->setEnabled(hasNextDiff()); - } - else - { - if (m_save) { - m_applyDifference->setEnabled(false); - m_unApplyDifference->setEnabled(false); - m_applyAll->setEnabled(false); - m_unapplyAll->setEnabled(false); - m_save->setEnabled(false); - } - - m_previousFile->setEnabled(false); - m_nextFile->setEnabled(false); - m_previousDifference->setEnabled(false); - m_nextDifference->setEnabled(false); - } -} - -bool KompareModelList::hasPrevModel() const -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::hasPrevModel()"; - - if (m_modelIndex > 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "has prev model"; - return true; - } - -// qCDebug(LIBKOMPAREDIFF2) << "doesn't have a prev model, this is the first one..."; - - return false; -} - -bool KompareModelList::hasNextModel() const -{ - qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::hasNextModel()"; - - if (m_modelIndex < (m_models->count() - 1)) - { -// qCDebug(LIBKOMPAREDIFF2) << "has next model"; - return true; - } - -// qCDebug(LIBKOMPAREDIFF2) << "doesn't have a next model, this is the last one..."; - return false; -} - -bool KompareModelList::hasPrevDiff() const -{ -// qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::hasPrevDiff()"; - int index = m_selectedModel->diffIndex(); - - if (index > 0) - { -// qCDebug(LIBKOMPAREDIFF2) << "has prev difference in same model"; - return true; - } - - if (hasPrevModel()) - { -// qCDebug(LIBKOMPAREDIFF2) << "has prev difference but in prev model"; - return true; - } - -// qCDebug(LIBKOMPAREDIFF2) << "doesn't have a prev difference, not even in the previous model because there is no previous model"; - - return false; -} - -bool KompareModelList::hasNextDiff() const -{ -// qCDebug(LIBKOMPAREDIFF2) << "KompareModelList::hasNextDiff()"; - int index = m_selectedModel->diffIndex(); - - if (index < (m_selectedModel->differenceCount() - 1)) - { -// qCDebug(LIBKOMPAREDIFF2) << "has next difference in same model"; - return true; - } - - if (hasNextModel()) - { -// qCDebug(LIBKOMPAREDIFF2) << "has next difference but in next model"; - return true; - } - -// qCDebug(LIBKOMPAREDIFF2) << "doesn't have a next difference, not even in next model because there is no next model"; - - return false; -} - -void KompareModelList::slotActionApplyDifference() -{ - if (!m_selectedDifference->applied()) - slotApplyDifference(true); - slotNextDifference(); - updateModelListActions(); -} - -void KompareModelList::slotActionUnApplyDifference() -{ - if (m_selectedDifference->applied()) - slotApplyDifference(false); - slotPreviousDifference(); - updateModelListActions(); -} - -void KompareModelList::slotActionApplyAllDifferences() -{ - slotApplyAllDifferences(true); - updateModelListActions(); -} - -void KompareModelList::slotActionUnapplyAllDifferences() -{ - slotApplyAllDifferences(false); - updateModelListActions(); -} - - -/* vim: set ts=4 sw=4 noet: */ diff --git a/src/komparemodellist.h b/src/komparemodellist.h deleted file mode 100644 index 0f1b974..0000000 --- a/src/komparemodellist.h +++ /dev/null @@ -1,210 +0,0 @@ -/* -SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2007-2008 Kevin Kofler -SPDX-FileCopyrightText: 2012 Jean -Nicolas Artaud - -SPDX-License-Identifier: GPL-2.0-or-later -*/ - -#ifndef KOMPAREMODELLIST_H -#define KOMPAREMODELLIST_H - -#include - -#include "diffmodel.h" -#include "diffmodellist.h" -#include "kompare.h" -#include "diff2_export.h" - -class QAction; -class QTemporaryFile; -class KActionCollection; - -class DiffSettings; -class KompareProcess; - -namespace Diff2 -{ - -/** - * KompareModelList - */ -class DIFF2_EXPORT KompareModelList : public QObject -{ - Q_OBJECT -public: - KompareModelList(DiffSettings* diffSettings, QWidget* widgetForKIO, QObject* parent, const char* name = nullptr, bool supportReadWrite = true); - ~KompareModelList() override; - -public: - void refresh(); - // Swap source with destination and show differences - void swap(); - - /* Comparing methods */ - bool compare(); - - bool compare(Kompare::Mode); - - bool openDiff(const QString& diff); - - bool openFileAndDiff(); - bool openDirAndDiff(); - - bool saveDiff(const QString& url, QString directory, DiffSettings* diffSettings); - bool saveAll(); - - bool saveDestination(DiffModel* model); - - void setEncoding(const QString& encoding); - - void setReadWrite(bool isReadWrite); - bool isReadWrite() const; - - QString recreateDiff() const; - - // This parses the difflines and creates new models - int parseDiffOutput(const QString& diff); - - // This open the difflines after parsing them - bool parseAndOpenDiff(const QString& diff); - - // Call this to emit the signals to the rest of the "world" to show the diff - void show(); - - // This will blend the original URL (dir or file) into the diffmodel, - // this is like patching but with a twist - bool blendOriginalIntoModelList(const QString& localURL); - - // This mode() method is superfluous now so FIXME - enum Kompare::Mode mode() const { return m_info->mode; }; - const DiffModelList* models() const { return m_models; }; - - KActionCollection* actionCollection() const; - int modelCount() const; - int differenceCount() const; - int appliedCount() const; - - const DiffModel* modelAt(int i) const { return m_models->at(i); }; - DiffModel* modelAt(int i) { return m_models->at(i); }; - int findModel(DiffModel* model) const { return m_models->indexOf(model); }; - - bool hasUnsavedChanges() const; - - int currentModel() const { return m_models->indexOf(m_selectedModel); }; - int currentDifference() const { return m_selectedModel ? m_selectedModel->findDifference(m_selectedDifference) : -1; }; - - const DiffModel* selectedModel() const { return m_selectedModel; }; - const Difference* selectedDifference() const { return m_selectedDifference; }; - - void clear(); - -private: - Diff2::DiffModel* firstModel(); - Diff2::DiffModel* lastModel(); - Diff2::DiffModel* prevModel(); - Diff2::DiffModel* nextModel(); - - bool setSelectedModel(Diff2::DiffModel* model); - - void updateModelListActions(); - -protected: - bool blendFile(DiffModel* model, const QString& lines); - -Q_SIGNALS: - void status(Kompare::Status status); - void setStatusBarModelInfo(int modelIndex, int differenceIndex, int modelCount, int differenceCount, int appliedCount); - void error(QString error); - void modelsChanged(const Diff2::DiffModelList* models); - void setSelection(const Diff2::DiffModel* model, const Diff2::Difference* diff); - void setSelection(const Diff2::Difference* diff); - void applyDifference(bool apply); - void applyAllDifferences(bool apply); - void applyDifference(const Diff2::Difference* diff, bool apply); - void diffString(const QString&); - void updateActions(); - -public Q_SLOTS: - void slotSelectionChanged(const Diff2::DiffModel* model, const Diff2::Difference* diff); - void slotSelectionChanged(const Diff2::Difference* diff); - - void slotApplyDifference(bool apply); - void slotApplyAllDifferences(bool apply); - void slotPreviousModel(); - void slotNextModel(); - void slotPreviousDifference(); - void slotNextDifference(); - - void slotKompareInfo(struct Kompare::Info*); - -protected Q_SLOTS: - void slotDiffProcessFinished(bool success); - void slotWriteDiffOutput(bool success); - - void slotActionApplyDifference(); - void slotActionUnApplyDifference(); - void slotActionApplyAllDifferences(); - void slotActionUnapplyAllDifferences(); - - /** Save the currently selected destination in a multi-file diff, - or the single destination if a single file diff. */ - void slotSaveDestination(); - -private Q_SLOTS: - void slotDirectoryChanged(const QString&); - void slotFileChanged(const QString&); - -private: // Helper methods - bool isDirectory(const QString& url) const; - bool isDiff(const QString& mimetype) const; - QString readFile(const QString& fileName); - - bool hasPrevModel() const; - bool hasNextModel() const; - bool hasPrevDiff() const; - bool hasNextDiff() const; - - QStringList split(const QString& diff); - void setDepthAndApplied(); - -private: // ### an exported class without a d pointer? Really? What about BC? - QTemporaryFile* m_diffTemp; - QUrl m_diffURL; - - KompareProcess* m_diffProcess; - - DiffSettings* m_diffSettings; - - DiffModelList* m_models; - - DiffModel* m_selectedModel; - Difference* m_selectedDifference; - - int m_modelIndex; - - struct Kompare::Info* m_info; - - KActionCollection* m_actionCollection; - QAction* m_applyDifference; - QAction* m_unApplyDifference; - QAction* m_applyAll; - QAction* m_unapplyAll; - QAction* m_previousFile; - QAction* m_nextFile; - QAction* m_previousDifference; - QAction* m_nextDifference; - - QAction* m_save; - - QString m_encoding; - QTextCodec* m_textCodec; - - QWidget* m_widgetForKIO; - bool m_isReadWrite; -}; - -} // End of namespace Diff2 - -#endif diff --git a/src/kompareprocess.cpp b/src/kompareprocess.cpp index 9b838ea..f3d7e93 100644 --- a/src/kompareprocess.cpp +++ b/src/kompareprocess.cpp @@ -1,26 +1,27 @@ /* -SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-FileCopyrightText: 2007-2008 Kevin Kofler + SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2007-2008 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "kompareprocess.h" +// lib +#include "diffsettings.h" +#include +// KF +#include +// Qt #include #include -#include +#include -#include -#include - -#include -#include "diffsettings.h" - -namespace { +namespace +{ /// TODO: This should be replaced to QDir::relativeFilePath -static QString constructRelativePath(const QString& from, const QString& to) +static QString constructRelativePath(const QString &from, const QString &to) { QUrl fromURL(from); QUrl toURL(to); @@ -34,7 +35,8 @@ static QString constructRelativePath(const QString& from, const QString& to) ++upLevels; } - if (!root.isValid()) return to; + if (!root.isValid()) + return to; QString relative; for (; upLevels > 0; --upLevels) { @@ -46,26 +48,26 @@ static QString constructRelativePath(const QString& from, const QString& to) } } -KompareProcess::KompareProcess(DiffSettings* diffSettings, Kompare::DiffMode diffMode, const QString& source, const QString& destination, const QString& dir, Kompare::Mode mode) - : KProcess(), - m_diffSettings(diffSettings), - m_mode(diffMode), - m_customString(nullptr), - m_textDecoder(nullptr) +KompareProcess::KompareProcess(KompareDiff2::DiffSettings *diffSettings, + KompareDiff2::DiffMode diffMode, + const QString &source, + const QString &destination, + const QString &dir, + KompareDiff2::Mode mode) + : KProcess() + , m_diffSettings(diffSettings) + , m_diffMode(diffMode) + , m_mode(mode) { // connect the signal that indicates that the process has exited - connect(this, QOverload::of(&QProcess::finished), - this, &KompareProcess::slotFinished); + connect(this, QOverload::of(&QProcess::finished), this, &KompareProcess::slotFinished); setEnv(QStringLiteral("LANG"), QStringLiteral("C")); // Write command and options - if (m_mode == Kompare::Default) - { + if (m_diffMode == KompareDiff2::Default) { writeDefaultCommandLine(); - } - else - { + } else { writeCommandLine(); } @@ -76,36 +78,27 @@ KompareProcess::KompareProcess(DiffSettings* diffSettings, Kompare::DiffMode dif // Write file names *this << QStringLiteral("--"); - //Add the option for diff to read from stdin(QIODevice::write), and save a pointer to the string - if (mode == Kompare::ComparingStringFile) - { + // Add the option for diff to read from stdin(QIODevice::write), and save a pointer to the string + if (m_mode == KompareDiff2::ComparingStringFile) { *this << QStringLiteral("-"); - m_customString = &source; - } - else - { + m_customString = source; + } else { *this << constructRelativePath(dir, source); } - if (mode == Kompare::ComparingFileString) - { + if (m_mode == KompareDiff2::ComparingFileString) { *this << QStringLiteral("-"); - m_customString = &destination; - } - else - { + m_customString = destination; + } else { *this << constructRelativePath(dir, destination); } } void KompareProcess::writeDefaultCommandLine() { - if (!m_diffSettings || m_diffSettings->m_diffProgram.isEmpty()) - { + if (!m_diffSettings || m_diffSettings->m_diffProgram.isEmpty()) { *this << QStringLiteral("diff") << QStringLiteral("-dr"); - } - else - { + } else { *this << m_diffSettings->m_diffProgram << QStringLiteral("-dr"); } @@ -115,35 +108,32 @@ void KompareProcess::writeDefaultCommandLine() void KompareProcess::writeCommandLine() { // load the executable into the KProcess - if (m_diffSettings->m_diffProgram.isEmpty()) - { - qCDebug(LIBKOMPAREDIFF2) << "Using the first diff in the path..."; + if (m_diffSettings->m_diffProgram.isEmpty()) { + qCDebug(KOMPAREDIFF2_LOG) << "Using the first diff in the path..."; *this << QStringLiteral("diff"); - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "Using a user specified diff, namely: " << m_diffSettings->m_diffProgram; + } else { + qCDebug(KOMPAREDIFF2_LOG) << "Using a user specified diff, namely: " << m_diffSettings->m_diffProgram; *this << m_diffSettings->m_diffProgram; } switch (m_diffSettings->m_format) { - case Kompare::Unified : + case KompareDiff2::Unified: *this << QStringLiteral("-U") << QString::number(m_diffSettings->m_linesOfContext); break; - case Kompare::Context : + case KompareDiff2::Context: *this << QStringLiteral("-C") << QString::number(m_diffSettings->m_linesOfContext); break; - case Kompare::RCS : + case KompareDiff2::RCS: *this << QStringLiteral("-n"); break; - case Kompare::Ed : + case KompareDiff2::Ed: *this << QStringLiteral("-e"); break; - case Kompare::SideBySide: + case KompareDiff2::SideBySide: *this << QStringLiteral("-y"); break; - case Kompare::Normal : - case Kompare::UnknownFormat : + case KompareDiff2::Normal: + case KompareDiff2::UnknownFormat: default: break; } @@ -152,65 +142,53 @@ void KompareProcess::writeCommandLine() // default diff does not have -H on OpenBSD // so don't pass this option unless the user overrode the default program #if defined(__OpenBSD__) - && !m_diffSettings->m_diffProgram.isEmpty() + && !m_diffSettings->m_diffProgram.isEmpty() #endif - ) - { + ) { *this << QStringLiteral("-H"); } - if (m_diffSettings->m_ignoreWhiteSpace) - { + if (m_diffSettings->m_ignoreWhiteSpace) { *this << QStringLiteral("-b"); } - if (m_diffSettings->m_ignoreAllWhiteSpace) - { + if (m_diffSettings->m_ignoreAllWhiteSpace) { *this << QStringLiteral("-w"); } - if (m_diffSettings->m_ignoreEmptyLines) - { + if (m_diffSettings->m_ignoreEmptyLines) { *this << QStringLiteral("-B"); } - if (m_diffSettings->m_ignoreChangesDueToTabExpansion) - { + if (m_diffSettings->m_ignoreChangesDueToTabExpansion) { *this << QStringLiteral("-E"); } - if (m_diffSettings->m_createSmallerDiff) - { + if (m_diffSettings->m_createSmallerDiff) { *this << QStringLiteral("-d"); } - if (m_diffSettings->m_ignoreChangesInCase) - { + if (m_diffSettings->m_ignoreChangesInCase) { *this << QStringLiteral("-i"); } - if (m_diffSettings->m_ignoreRegExp && !m_diffSettings->m_ignoreRegExpText.isEmpty()) - { + if (m_diffSettings->m_ignoreRegExp && !m_diffSettings->m_ignoreRegExpText.isEmpty()) { *this << QStringLiteral("-I") << m_diffSettings->m_ignoreRegExpText; } - if (m_diffSettings->m_showCFunctionChange) - { + if (m_diffSettings->m_showCFunctionChange) { *this << QStringLiteral("-p"); } - if (m_diffSettings->m_convertTabsToSpaces) - { + if (m_diffSettings->m_convertTabsToSpaces) { *this << QStringLiteral("-t"); } - if (m_diffSettings->m_recursive) - { + if (m_diffSettings->m_recursive) { *this << QStringLiteral("-r"); } - if (m_diffSettings->m_newFiles) - { + if (m_diffSettings->m_newFiles) { *this << QStringLiteral("-N"); } @@ -220,40 +198,31 @@ void KompareProcess::writeCommandLine() // *this << QStringLiteral("-a"); // } - if (m_diffSettings->m_excludeFilePattern) - { - for (const QString& it : qAsConst(m_diffSettings->m_excludeFilePatternList)) { + if (m_diffSettings->m_excludeFilePattern) { + for (const QString &it : std::as_const(m_diffSettings->m_excludeFilePatternList)) { *this << QStringLiteral("-x") << it; } } - if (m_diffSettings->m_excludeFilesFile && !m_diffSettings->m_excludeFilesFileURL.isEmpty()) - { + if (m_diffSettings->m_excludeFilesFile && !m_diffSettings->m_excludeFilesFileURL.isEmpty()) { *this << QStringLiteral("-X") << m_diffSettings->m_excludeFilesFileURL; } } -KompareProcess::~KompareProcess() -{ - delete m_textDecoder; -} +KompareProcess::~KompareProcess() = default; -void KompareProcess::setEncoding(const QString& encoding) +void KompareProcess::setEncoding(const QString &encoding) { - if (!encoding.compare(QLatin1String("default"), Qt::CaseInsensitive)) - { - m_textDecoder = QTextCodec::codecForLocale()->makeDecoder(); - } - else - { - m_codec = KCharsets::charsets()->codecForName(encoding); - if (m_codec) - m_textDecoder = m_codec->makeDecoder(); - else - { - qCDebug(LIBKOMPAREDIFF2) << "Using locale codec as backup..."; - m_codec = QTextCodec::codecForLocale(); - m_textDecoder = m_codec->makeDecoder(); + if (!encoding.compare(QLatin1String("default"), Qt::CaseInsensitive)) { + m_textDecoder = QStringDecoder(QStringDecoder::System); + m_textEncoder = QStringEncoder(QStringEncoder::System); + } else { + m_textDecoder = QStringDecoder(encoding.toUtf8().constData()); + m_textEncoder = QStringEncoder(encoding.toUtf8().constData()); + if (!m_textDecoder.isValid() || !m_textEncoder.isValid()) { + qCDebug(KOMPAREDIFF2_LOG) << "Using locale codec as backup..."; + m_textDecoder = QStringDecoder(QStringDecoder::System); + m_textEncoder = QStringEncoder(QStringEncoder::System); } } } @@ -262,39 +231,34 @@ void KompareProcess::start() { #ifndef NDEBUG QString cmdLine; - QStringList program = KProcess::program(); - QStringList::ConstIterator it = program.constBegin(); - QStringList::ConstIterator end = program.constEnd(); - for (; it != end; ++it) - cmdLine += QLatin1Char('\"') + (*it) + QLatin1String("\" "); - qCDebug(LIBKOMPAREDIFF2) << cmdLine; + const QStringList program = KProcess::program(); + for (const QString &arg : program) + cmdLine += QLatin1Char('\"') + arg + QLatin1String("\" "); + qCDebug(KOMPAREDIFF2_LOG) << cmdLine; #endif setOutputChannelMode(SeparateChannels); setNextOpenMode(QIODevice::ReadWrite); KProcess::start(); - //If we have a string to compare against input it now - if (m_customString) - write(m_codec->fromUnicode(*m_customString)); + // If we have a string to compare against input it now + if ((m_mode == KompareDiff2::ComparingStringFile) || (m_mode == KompareDiff2::ComparingFileString)) + write(m_textEncoder.encode(m_customString)); closeWriteChannel(); } void KompareProcess::slotFinished(int exitCode, QProcess::ExitStatus exitStatus) { // add all output to m_stdout/m_stderr - if (m_textDecoder) - { - m_stdout = m_textDecoder->toUnicode(readAllStandardOutput()); - m_stderr = m_textDecoder->toUnicode(readAllStandardError()); - } - else - qCDebug(LIBKOMPAREDIFF2) << "KompareProcess::slotFinished : No decoder !!!"; + m_textDecoder.resetState(); + m_stdout = m_textDecoder.decode(readAllStandardOutput()); + m_textDecoder.resetState(); + m_stderr = m_textDecoder.decode(readAllStandardError()); // exit code of 0: no differences // 1: some differences // 2: error but there may be differences ! - qCDebug(LIBKOMPAREDIFF2) << "Exited with exit code : " << exitCode; + qCDebug(KOMPAREDIFF2_LOG) << "Exited with exit code : " << exitCode; Q_EMIT diffHasFinished(exitStatus == NormalExit && exitCode != 0); } - +#include "moc_kompareprocess.cpp" diff --git a/src/kompareprocess.h b/src/kompareprocess.h index 8c3d757..3120e4c 100644 --- a/src/kompareprocess.h +++ b/src/kompareprocess.h @@ -1,57 +1,79 @@ /* -SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman -SPDX-FileCopyrightText: 2001-2003 John Firebaugh -SPDX-FileCopyrightText: 2008 Kevin Kofler + SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2008 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef KOMPAREPROCESS_H #define KOMPAREPROCESS_H +// lib +#include "global.h" +// KF #include +// Qt +#include +#include +// Std +#include -#include "kompare.h" - -class QTextDecoder; - +namespace KompareDiff2 +{ class DiffSettings; +} class KompareProcess : public KProcess { Q_OBJECT public: - KompareProcess(DiffSettings* diffSettings, enum Kompare::DiffMode mode, const QString& source, - const QString& destination, const QString& directory = QString(), enum Kompare::Mode = Kompare::UnknownMode); + KompareProcess(KompareDiff2::DiffSettings *diffSettings, + KompareDiff2::DiffMode mode, + const QString &source, + const QString &destination, + const QString &directory = QString(), + KompareDiff2::Mode = KompareDiff2::UnknownMode); ~KompareProcess() override; +public: void start(); - QString diffOutput() { return m_stdout; } - QString stdOut() { return m_stdout; } - QString stdErr() { return m_stderr; } - - void setEncoding(const QString& encoding); + QString diffOutput() const + { + return m_stdout; + } + QString stdOut() const + { + return m_stdout; + } + QString stdErr() const + { + return m_stderr; + } + + void setEncoding(const QString &encoding); Q_SIGNALS: void diffHasFinished(bool finishedNormally); -protected: +private: void writeDefaultCommandLine(); void writeCommandLine(); -protected Q_SLOTS: +private Q_SLOTS: void slotFinished(int, QProcess::ExitStatus); private: - DiffSettings* m_diffSettings; - enum Kompare::DiffMode m_mode; - const QString* m_customString; // Used when a comparison between a file and a string is requested - QString m_stdout; - QString m_stderr; - QTextDecoder* m_textDecoder; - QTextCodec* m_codec; + KompareDiff2::DiffSettings *m_diffSettings; + const KompareDiff2::DiffMode m_diffMode; + const KompareDiff2::Mode m_mode; + QString m_customString; // Used when a comparison between a file and a string is requested + QString m_stdout; + QString m_stderr; + QStringDecoder m_textDecoder; + QStringEncoder m_textEncoder; }; #endif diff --git a/src/levenshteintable.h b/src/levenshteintable.h index b83ee09..3fcc5cb 100644 --- a/src/levenshteintable.h +++ b/src/levenshteintable.h @@ -1,116 +1,117 @@ /* -SPDX-FileCopyrightText: 2003 Otto Bruggeman -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2003 Otto Bruggeman + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef LEVENSHTEIN_H -#define LEVENSHTEIN_H +#ifndef KOMPAREDIFF2_LEVENSHTEINTABLE_H +#define KOMPAREDIFF2_LEVENSHTEINTABLE_H -#include // #include -// #include +// #include +// Std +#include +#include +#include -namespace Diff2 { +namespace KompareDiff2 +{ class Marker; - class Marker; /** * Computes the Levenshtein distance between two sequences. * The actual sequence contents must be prepended with one virtual item each for easier index access. */ -template class LevenshteinTable +template +class LevenshteinTable { public: LevenshteinTable(); LevenshteinTable(unsigned int width, unsigned int height); - ~LevenshteinTable(); + ~LevenshteinTable() = default; + + LevenshteinTable(const LevenshteinTable &table) = delete; + const LevenshteinTable &operator=(const LevenshteinTable &table) = delete; public: - int getContent(unsigned int posX, unsigned int posY) const; - int setContent(unsigned int posX, unsigned int posY, int value); + int getContent(unsigned int posX, unsigned int posY) const; + int setContent(unsigned int posX, unsigned int posY, int value); bool setSize(unsigned int width, unsigned int height); - unsigned int width() const { return m_width; }; - unsigned int height() const { return m_height; }; + unsigned int width() const + { + return m_width; + }; + unsigned int height() const + { + return m_height; + }; /** Debug method to check if the table is properly filled */ - void dumpLevenshteinTable(void); + void dumpLevenshteinTable(); /** * This calculates the levenshtein distance of 2 sequences. * This object takes ownership of the argument */ - unsigned int createTable(SequencePair* sequences); + unsigned int createTable(SequencePair *sequences); - void createListsOfMarkers(void); + void createListsOfMarkers(); int chooseRoute(int c1, int c2, int c3, int current); -protected: - LevenshteinTable(const LevenshteinTable& table); - const LevenshteinTable& operator = (const LevenshteinTable& table); - private: - unsigned int m_width; - unsigned int m_height; - unsigned int m_size; - unsigned int* m_table; - SequencePair* m_sequences; + unsigned int m_width = 256; + unsigned int m_height = 256; + unsigned int m_size; + std::vector m_table; + std::unique_ptr m_sequences; }; -template LevenshteinTable::LevenshteinTable() - : m_width(256), - m_height(256), - m_size(m_height* m_width), - m_table(new unsigned int[ m_size ]), - m_sequences(nullptr) +template +LevenshteinTable::LevenshteinTable() + : m_size(m_height * m_width) + , m_table(m_size) { } -template LevenshteinTable::LevenshteinTable(unsigned int width, unsigned int height) - : m_width(width), - m_height(height), - m_size(m_width* m_height), - m_table(new unsigned int[ m_size ]), - m_sequences(0) +template +LevenshteinTable::LevenshteinTable(unsigned int width, unsigned int height) + : m_width(width) + , m_height(height) + , m_size(m_width * m_height) + , m_table(m_size) { } -template LevenshteinTable::~LevenshteinTable() +template +int LevenshteinTable::getContent(unsigned int posX, unsigned int posY) const { - delete[] m_table; - delete m_sequences; +// qCDebug(KOMPAREDIFF2_LOG) << "Width = " << m_width << ", height = " << m_height << ", posX = " << posX << ", posY = " << posY; + return m_table[posY * m_width + posX]; } -template int LevenshteinTable::getContent(unsigned int posX, unsigned int posY) const +template +int LevenshteinTable::setContent(unsigned int posX, unsigned int posY, int value) { -// qCDebug(LIBKOMPAREDIFF2) << "Width = " << m_width << ", height = " << m_height << ", posX = " << posX << ", posY = " << posY; - return m_table[ posY * m_width + posX ]; -} - -template int LevenshteinTable::setContent(unsigned int posX, unsigned int posY, int value) -{ - m_table[ posY * m_width + posX ] = value; + m_table[posY * m_width + posX] = value; return 0; } -template bool LevenshteinTable::setSize(unsigned int width, unsigned int height) +template +bool LevenshteinTable::setSize(unsigned int width, unsigned int height) { // Set a limit of 16.7 million entries, will be about 64 MB of ram, that should be plenty if (((width) * (height)) > (256 * 256 * 256)) return false; - if (((width) * (height)) > m_size) - { - delete[] m_table; - + if (((width) * (height)) > m_size) { m_size = width * height; - m_table = new unsigned int[ m_size ]; + m_table.resize(m_size); } m_width = width; @@ -119,12 +120,11 @@ template bool LevenshteinTable::setSize(unsign return true; } -template void LevenshteinTable::dumpLevenshteinTable() +template +void LevenshteinTable::dumpLevenshteinTable() { - for (unsigned int i = 0; i < m_height; ++i) - { - for (unsigned int j = 0; j < m_width; ++j) - { + for (unsigned int i = 0; i < m_height; ++i) { + for (unsigned int j = 0; j < m_width; ++j) { std::cout.width(3); std::cout << getContent(j, i); } @@ -132,9 +132,10 @@ template void LevenshteinTable::dumpLevenshtei } } -template unsigned int LevenshteinTable::createTable(SequencePair* sequences) +template +unsigned int LevenshteinTable::createTable(SequencePair *sequences) { - m_sequences = sequences; + m_sequences.reset(sequences); unsigned int m = m_sequences->lengthFirst(); unsigned int n = m_sequences->lengthSecond(); @@ -154,17 +155,15 @@ template unsigned int LevenshteinTable::create int cost = 0, north = 0, west = 0, northwest = 0; // Optimization, calculate row wise instead of column wise, wont trash the cache so much with large strings - for (j = 1; j < n; ++j) - { - for (i = 1; i < m; ++i) - { + for (j = 1; j < n; ++j) { + for (i = 1; i < m; ++i) { if (m_sequences->equal(i, j)) cost = 0; else cost = SequencePair::allowReplace ? 1 : 2; - north = getContent(i, j - 1) + 1; - west = getContent(i - 1, j) + 1; + north = getContent(i, j - 1) + 1; + west = getContent(i - 1, j) + 1; northwest = getContent(i - 1, j - 1) + cost; setContent(i, j, qMin(north, qMin(west, northwest))); @@ -174,14 +173,13 @@ template unsigned int LevenshteinTable::create return getContent(m - 1, n - 1); } -template int LevenshteinTable::chooseRoute(int c1, int c2, int c3, int current) +template +int LevenshteinTable::chooseRoute(int c1, int c2, int c3, int current) { -// qCDebug(LIBKOMPAREDIFF2) << "c1 = " << c1 << ", c2 = " << c2 << ", c3 = " << c3; +// qCDebug(KOMPAREDIFF2_LOG) << "c1 = " << c1 << ", c2 = " << c2 << ", c3 = " << c3; // preference order: c2, c3, c1, hopefully this will work out for me - if (c2 <= c1 && c2 <= c3) - { - if (SequencePair::allowReplace || (c2 == current)) - { + if (c2 <= c1 && c2 <= c3) { + if (SequencePair::allowReplace || (c2 == current)) { return 1; } } @@ -192,10 +190,11 @@ template int LevenshteinTable::chooseRoute(int return 0; } -template void LevenshteinTable::createListsOfMarkers() +template +void LevenshteinTable::createListsOfMarkers() { -// qCDebug(LIBKOMPAREDIFF2) << source; -// qCDebug(LIBKOMPAREDIFF2) << destination; +// qCDebug(KOMPAREDIFF2_LOG) << source; +// qCDebug(KOMPAREDIFF2_LOG) << destination; // dumpLevenshteinTable(); unsigned int x = m_width - 1; @@ -206,8 +205,7 @@ template void LevenshteinTable::createListsOfM // If the number of differences is more than half the length of the largest string // don't bother to mark the individual changes // Patch based on work by Felix Berger as put as attachment to bug 75794 - if (!m_sequences->needFineGrainedOutput(difference)) - { + if (!m_sequences->needFineGrainedOutput(difference)) { m_sequences->prependFirst(new Marker(Marker::End, x)); m_sequences->prependFirst(new Marker(Marker::Start, 0)); m_sequences->prependSecond(new Marker(Marker::End, y)); @@ -215,39 +213,34 @@ template void LevenshteinTable::createListsOfM return; } - Marker* c = nullptr; + Marker *c = nullptr; int n, nw, w, direction, currentValue; - while (x > 0 && y > 0) - { + while (x > 0 && y > 0) { currentValue = getContent(x, y); - n = getContent(x, y - 1); - w = getContent(x - 1, y); + n = getContent(x, y - 1); + w = getContent(x - 1, y); nw = getContent(x - 1, y - 1); direction = chooseRoute(n, nw, w, currentValue); - switch (direction) - { + switch (direction) { case 0: // north -// qCDebug(LIBKOMPAREDIFF2) << "Picking north"; -// qCDebug(LIBKOMPAREDIFF2) << "Source[" << ( x - 1 ) << "] = " << QString( source[ x-1 ] ) << ", destination[" << ( y - 1 ) << "] = " << QString( destination[ y-1 ] ); +// qCDebug(KOMPAREDIFF2_LOG) << "Picking north"; +// qCDebug(KOMPAREDIFF2_LOG) << "Source[" << ( x - 1 ) << "] = " << QString( source[ x-1 ] ) << ", destination[" << ( y - 1 ) << "] = " << QString( destination[ y-1 ] ); if (!m_sequences->markerListSecond().isEmpty()) c = m_sequences->markerListSecond().first(); else c = nullptr; - if (c && c->type() == Marker::End) - { -// qCDebug(LIBKOMPAREDIFF2) << "CurrentValue: " << currentValue; + if (c && c->type() == Marker::End) { +// qCDebug(KOMPAREDIFF2_LOG) << "CurrentValue: " << currentValue; if (n == currentValue) m_sequences->prependSecond(new Marker(Marker::Start, y)); -// else: the change continues, do not do anything - } - else - { -// qCDebug(LIBKOMPAREDIFF2) << "CurrentValue: " << currentValue; + // else: the change continues, do not do anything + } else { +// qCDebug(KOMPAREDIFF2_LOG) << "CurrentValue: " << currentValue; if (n < currentValue) m_sequences->prependSecond(new Marker(Marker::End, y)); } @@ -258,24 +251,21 @@ template void LevenshteinTable::createListsOfM } break; case 1: // northwest -// qCDebug(LIBKOMPAREDIFF2) << "Picking northwest"; -// qCDebug(LIBKOMPAREDIFF2) << "Source[" << ( x - 1 ) << "] = " << QString( source[ x-1 ] ) << ", destination[" << ( y - 1 ) << "] = " << QString( destination[ y-1 ] ); +// qCDebug(KOMPAREDIFF2_LOG) << "Picking northwest"; +// qCDebug(KOMPAREDIFF2_LOG) << "Source[" << ( x - 1 ) << "] = " << QString( source[ x-1 ] ) << ", destination[" << ( y - 1 ) << "] = " << QString( destination[ y-1 ] ); if (!m_sequences->markerListSecond().isEmpty()) c = m_sequences->markerListSecond().first(); else c = nullptr; - if (c && c->type() == Marker::End) - { -// qCDebug(LIBKOMPAREDIFF2) << "End found: CurrentValue: " << currentValue; + if (c && c->type() == Marker::End) { +// qCDebug(KOMPAREDIFF2_LOG) << "End found: CurrentValue: " << currentValue; if (nw == currentValue) m_sequences->prependSecond(new Marker(Marker::Start, y)); - // else: the change continues, do not do anything - } - else - { -// qCDebug(LIBKOMPAREDIFF2) << "CurrentValue: " << currentValue; + // else: the change continues, do not do anything + } else { +// qCDebug(KOMPAREDIFF2_LOG) << "CurrentValue: " << currentValue; if (nw < currentValue) m_sequences->prependSecond(new Marker(Marker::End, y)); } @@ -285,16 +275,13 @@ template void LevenshteinTable::createListsOfM else c = nullptr; - if (c && c->type() == Marker::End) - { -// qCDebug(LIBKOMPAREDIFF2) << "End found: CurrentValue: " << currentValue; + if (c && c->type() == Marker::End) { +// qCDebug(KOMPAREDIFF2_LOG) << "End found: CurrentValue: " << currentValue; if (nw == currentValue) m_sequences->prependFirst(new Marker(Marker::Start, x)); - // else: the change continues, do not do anything - } - else - { -// qCDebug(LIBKOMPAREDIFF2) << "CurrentValue: " << currentValue; + // else: the change continues, do not do anything + } else { +// qCDebug(KOMPAREDIFF2_LOG) << "CurrentValue: " << currentValue; if (nw < currentValue) m_sequences->prependFirst(new Marker(Marker::End, x)); } @@ -303,24 +290,21 @@ template void LevenshteinTable::createListsOfM --x; break; case 2: // west -// qCDebug(LIBKOMPAREDIFF2) << "Picking west"; -// qCDebug(LIBKOMPAREDIFF2) << "Source[" << ( x - 1 ) << "] = " << QString( source[ x-1 ] ) << ", destination[" << ( y - 1 ) << "] = " << QString( destination[ y-1 ] ); +// qCDebug(KOMPAREDIFF2_LOG) << "Picking west"; +// qCDebug(KOMPAREDIFF2_LOG) << "Source[" << ( x - 1 ) << "] = " << QString( source[ x-1 ] ) << ", destination[" << ( y - 1 ) << "] = " << QString( destination[ y-1 ] ); if (!m_sequences->markerListFirst().isEmpty()) c = m_sequences->markerListFirst().first(); else c = nullptr; - if (c && c->type() == Marker::End) - { -// qCDebug(LIBKOMPAREDIFF2) << "End found: CurrentValue: " << currentValue; + if (c && c->type() == Marker::End) { +// qCDebug(KOMPAREDIFF2_LOG) << "End found: CurrentValue: " << currentValue; if (w == currentValue) m_sequences->prependFirst(new Marker(Marker::Start, x)); // else: the change continues, do not do anything - } - else - { -// qCDebug(LIBKOMPAREDIFF2) << "CurrentValue: " << currentValue; + } else { +// qCDebug(KOMPAREDIFF2_LOG) << "CurrentValue: " << currentValue; if (w < currentValue) m_sequences->prependFirst(new Marker(Marker::End, x)); } @@ -334,19 +318,17 @@ template void LevenshteinTable::createListsOfM } // When leaving the loop it does not mean both are 0! If not there is still a change at the beginning of the line we missed so adding now. - if (x != 0) - { + if (x != 0) { m_sequences->prependFirst(new Marker(Marker::End, x)); m_sequences->prependFirst(new Marker(Marker::Start, 0)); } - if (y != 0) - { + if (y != 0) { m_sequences->prependSecond(new Marker(Marker::End, y)); m_sequences->prependSecond(new Marker(Marker::Start, 0)); } -// qCDebug(LIBKOMPAREDIFF2) << "Source string: " << source; +// qCDebug(KOMPAREDIFF2_LOG) << "Source string: " << source; // QStringList list; // int prevValue = 0; @@ -355,7 +337,7 @@ template void LevenshteinTable::createListsOfM // for ( ; mit != end; ++mit ) // { // c = *mit; -// qCDebug(LIBKOMPAREDIFF2) << "Source Marker Entry : Type: " << c->type() << ", Offset: " << c->offset(); +// qCDebug(KOMPAREDIFF2_LOG) << "Source Marker Entry : Type: " << c->type() << ", Offset: " << c->offset(); // list.append( source.mid( prevValue, c->offset() - prevValue ) ); // prevValue = c->offset(); // } @@ -363,18 +345,18 @@ template void LevenshteinTable::createListsOfM // { // list.append( source.mid( prevValue, source.length() - prevValue ) ); // } -// qCDebug(LIBKOMPAREDIFF2) << "Source Resulting stringlist : " << list.join("\n"); +// qCDebug(KOMPAREDIFF2_LOG) << "Source Resulting stringlist : " << list.join("\n"); // // list.clear(); // prevValue = 0; // -// qCDebug(LIBKOMPAREDIFF2) << "Destination string: " << destination; +// qCDebug(KOMPAREDIFF2_LOG) << "Destination string: " << destination; // mit = m_sequences->markerListSecond().begin(); // end = m_sequences->markerListSecond().end(); // for ( ; mit != end; ++mit ) // { // c = *mit; -// qCDebug(LIBKOMPAREDIFF2) << "Destination Marker Entry : Type: " << c->type() << ", Offset: " << c->offset(); +// qCDebug(KOMPAREDIFF2_LOG) << "Destination Marker Entry : Type: " << c->type() << ", Offset: " << c->offset(); // list.append( destination.mid( prevValue, c->offset() - prevValue ) ); // prevValue = c->offset(); // } @@ -382,9 +364,9 @@ template void LevenshteinTable::createListsOfM // { // list.append( destination.mid( prevValue, destination.length() - prevValue ) ); // } -// qCDebug(LIBKOMPAREDIFF2) << "Destination Resulting string : " << list.join("\n"); +// qCDebug(KOMPAREDIFF2_LOG) << "Destination Resulting string : " << list.join("\n"); } -} // namespace Diff2 +} // namespace KompareDiff2 -#endif // LEVENSHTEIN_H +#endif // KOMPAREDIFF2_LEVENSHTEINTABLE_H diff --git a/src/marker.h b/src/marker.h index 9803b0b..4baaa95 100644 --- a/src/marker.h +++ b/src/marker.h @@ -1,24 +1,32 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ -#ifndef MARKER_H -#define MARKER_H +#ifndef KOMPAREDIFF2_MARKER_H +#define KOMPAREDIFF2_MARKER_H +// lib +#include "komparediff2_export.h" +// Qt #include -#include "diff2_export.h" -namespace Diff2 { +namespace KompareDiff2 +{ /** + * @class Marker marker.h + * * A Marker. */ -class DIFF2_EXPORT Marker +class KOMPAREDIFF2_EXPORT Marker { public: - enum Type { Start = 0, End = 1 }; + enum Type { + Start = 0, + End = 1, + }; public: Marker() @@ -26,33 +34,46 @@ class DIFF2_EXPORT Marker m_type = Marker::Start; m_offset = 0; } - Marker(enum Marker::Type type, unsigned int offset) + Marker(Marker::Type type, unsigned int offset) { m_type = type; m_offset = offset; } - ~Marker() {} + ~Marker() = default; public: - enum Marker::Type type() const { return m_type; } - unsigned int offset() const { return m_offset; } + Marker::Type type() const + { + return m_type; + } + unsigned int offset() const + { + return m_offset; + } - void setType(enum Marker::Type type) { m_type = type; } - void setOffset(unsigned int offset) { m_offset = offset; } + void setType(Marker::Type type) + { + m_type = type; + } + void setOffset(unsigned int offset) + { + m_offset = offset; + } - bool operator == (const Marker& rhs) const { + bool operator==(const Marker &rhs) const + { return this->type() == rhs.type() && this->offset() == rhs.offset(); } private: - enum Marker::Type m_type; - unsigned int m_offset; + Marker::Type m_type; + unsigned int m_offset; }; -using MarkerList = QList; -using MarkerListIterator = QList::iterator; -using MarkerListConstIterator = QList::const_iterator; +using MarkerList = QList; +using MarkerListIterator = QList::iterator; +using MarkerListConstIterator = QList::const_iterator; } -#endif // MARKER_H +#endif // KOMPAREDIFF2_MARKER_H diff --git a/src/modellist.cpp b/src/modellist.cpp new file mode 100644 index 0000000..72a3de3 --- /dev/null +++ b/src/modellist.cpp @@ -0,0 +1,1044 @@ +/* + SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2007-2010 Kevin Kofler + SPDX-FileCopyrightText: 2012 Jean -Nicolas Artaud + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "modellist.h" +#include "modellist_p.h" + +// lib +#include "diffhunk.h" +#include "parser.h" +#include +// KF +#include +#include +#include +#include +#include +#include +#include +#include +// Qt +#include +#include +#include +#include +#include +#include +// Std +#include + +using namespace KompareDiff2; + +ModelList::ModelList(DiffSettings *diffSettings, QObject *parent, bool supportReadWrite) + : QObject(parent) + , d_ptr(new ModelListPrivate(diffSettings, supportReadWrite)) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "Show me the arguments: " << diffSettings << ", " << parent; + d->actionCollection = new KActionCollection(this); + if (supportReadWrite) { + d->applyDifference = d->actionCollection->addAction(QStringLiteral("difference_apply"), this, &ModelList::slotActionApplyDifference); + d->applyDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right"))); + d->applyDifference->setText(i18nc("@action", "&Apply Difference")); + d->actionCollection->setDefaultShortcut(d->applyDifference, QKeySequence(Qt::Key_Space)); + d->unApplyDifference = d->actionCollection->addAction(QStringLiteral("difference_unapply"), this, &ModelList::slotActionUnApplyDifference); + d->unApplyDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-left"))); + d->unApplyDifference->setText(i18nc("@action", "Un&apply Difference")); + d->actionCollection->setDefaultShortcut(d->unApplyDifference, QKeySequence(Qt::Key_Backspace)); + d->applyAll = d->actionCollection->addAction(QStringLiteral("difference_applyall"), this, &ModelList::slotActionApplyAllDifferences); + d->applyAll->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right-double"))); + d->applyAll->setText(i18nc("@action", "App&ly All")); + d->actionCollection->setDefaultShortcut(d->applyAll, QKeySequence(Qt::CTRL | Qt::Key_A)); + d->unapplyAll = d->actionCollection->addAction(QStringLiteral("difference_unapplyall"), this, &ModelList::slotActionUnapplyAllDifferences); + d->unapplyAll->setIcon(QIcon::fromTheme(QStringLiteral("arrow-left-double"))); + d->unapplyAll->setText(i18nc("@action", "&Unapply All")); + d->actionCollection->setDefaultShortcut(d->unapplyAll, QKeySequence(Qt::CTRL | Qt::Key_U)); + } else { + d->applyDifference = nullptr; + d->unApplyDifference = nullptr; + d->applyAll = nullptr; + d->unapplyAll = nullptr; + } + d->previousFile = d->actionCollection->addAction(QStringLiteral("difference_previousfile"), this, &ModelList::slotPreviousModel); + d->previousFile->setIcon(QIcon::fromTheme(QStringLiteral("arrow-up-double"))); + d->previousFile->setText(i18nc("@action", "P&revious File")); + d->actionCollection->setDefaultShortcut(d->previousFile, QKeySequence(Qt::CTRL | Qt::Key_PageUp)); + d->nextFile = d->actionCollection->addAction(QStringLiteral("difference_nextfile"), this, &ModelList::slotNextModel); + d->nextFile->setIcon(QIcon::fromTheme(QStringLiteral("arrow-down-double"))); + d->nextFile->setText(i18nc("@action", "N&ext File")); + d->actionCollection->setDefaultShortcut(d->nextFile, QKeySequence(Qt::CTRL | Qt::Key_PageDown)); + d->previousDifference = d->actionCollection->addAction(QStringLiteral("difference_previous"), this, &ModelList::slotPreviousDifference); + d->previousDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-up"))); + d->previousDifference->setText(i18nc("@action", "&Previous Difference")); + d->actionCollection->setDefaultShortcut(d->previousDifference, QKeySequence(Qt::CTRL | Qt::Key_Up)); + d->nextDifference = d->actionCollection->addAction(QStringLiteral("difference_next"), this, &ModelList::slotNextDifference); + d->nextDifference->setIcon(QIcon::fromTheme(QStringLiteral("arrow-down"))); + d->nextDifference->setText(i18nc("@action", "&Next Difference")); + d->actionCollection->setDefaultShortcut(d->nextDifference, QKeySequence(Qt::CTRL | Qt::Key_Down)); + d->previousDifference->setEnabled(false); + d->nextDifference->setEnabled(false); + + if (supportReadWrite) { + d->save = KStandardAction::save(this, &ModelList::slotSaveDestination, d->actionCollection); + d->save->setEnabled(false); + } else { + d->save = nullptr; + } + + d->updateModelListActions(); +} + +ModelList::~ModelList() = default; + +bool ModelList::compare() +{ + Q_D(ModelList); + + bool result = false; + + bool sourceIsDirectory = ModelListPrivate::isDirectory(d->info->localSource); + bool destinationIsDirectory = ModelListPrivate::isDirectory(d->info->localDestination); + + if (sourceIsDirectory && destinationIsDirectory) { + d->info->mode = ComparingDirs; + result = compare(d->info->mode); + } else if (!sourceIsDirectory && !destinationIsDirectory) { + QFile sourceFile(d->info->localSource); + sourceFile.open(QIODevice::ReadOnly); + QMimeDatabase db; + QString sourceMimeType = (db.mimeTypeForData(sourceFile.readAll())).name(); + sourceFile.close(); + qCDebug(KOMPAREDIFF2_LOG) << "Mimetype source : " << sourceMimeType; + + QFile destinationFile(d->info->localDestination); + destinationFile.open(QIODevice::ReadOnly); + QString destinationMimeType = (db.mimeTypeForData(destinationFile.readAll())).name(); + destinationFile.close(); + qCDebug(KOMPAREDIFF2_LOG) << "Mimetype destination: " << destinationMimeType; + + // Not checking if it is a text file/something diff can even compare, we'll let diff handle that + if (!ModelListPrivate::isDiff(sourceMimeType) && ModelListPrivate::isDiff(destinationMimeType)) { + qCDebug(KOMPAREDIFF2_LOG) << "Blending destination into source..."; + d->info->mode = BlendingFile; + result = openFileAndDiff(); + } else if (ModelListPrivate::isDiff(sourceMimeType) && !ModelListPrivate::isDiff(destinationMimeType)) { + qCDebug(KOMPAREDIFF2_LOG) << "Blending source into destination..."; + d->info->mode = BlendingFile; + // Swap source and destination before calling this + d->info->swapSourceWithDestination(); + // Do we need to notify anyone we swapped source and destination? + // No we do not need to notify anyone about swapping source with destination + result = openFileAndDiff(); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "Comparing source with destination"; + d->info->mode = ComparingFiles; + result = compare(d->info->mode); + } + } else if (sourceIsDirectory && !destinationIsDirectory) { + d->info->mode = BlendingDir; + result = openDirAndDiff(); + } else { + d->info->mode = BlendingDir; + // Swap source and destination first in d->info + d->info->swapSourceWithDestination(); + // Do we need to notify anyone we swapped source and destination? + // No we do not need to notify anyone about swapping source with destination + result = openDirAndDiff(); + } + + return result; +} + +bool ModelList::compare(Mode mode) +{ + Q_D(ModelList); + + clear(); // Destroy the old models... + + d->diffProcess = std::make_unique(d->diffSettings, Custom, d->info->localSource, d->info->localDestination, QString(), mode); + d->diffProcess->setEncoding(d->encoding); + + connect(d->diffProcess.get(), &KompareProcess::diffHasFinished, this, &ModelList::slotDiffProcessFinished); + + Q_EMIT status(RunningDiff); + d->diffProcess->start(); + + return true; +} + +bool ModelList::openFileAndDiff() +{ + Q_D(ModelList); + + clear(); + + if (parseDiffOutput(d->readFile(d->info->localDestination)) != 0) { + Q_EMIT error(i18n("No models or no differences, this file: %1, is not a valid diff file.", d->info->destination.url())); + return false; + } + + d->setDepthAndApplied(); + + if (!blendOriginalIntoModelList(d->info->localSource)) { + qCDebug(KOMPAREDIFF2_LOG) << "Oops cant blend original file into modellist : " << d->info->localSource; + Q_EMIT error( + i18n("There were problems applying the diff %1 to the file %2.", d->info->destination.url(), d->info->source.url())); + return false; + } + + d->updateModelListActions(); + show(); + + return true; +} + +bool ModelList::openDirAndDiff() +{ + Q_D(ModelList); + + clear(); + + if (parseDiffOutput(d->readFile(d->info->localDestination)) != 0) { + Q_EMIT error(i18n("No models or no differences, this file: %1, is not a valid diff file.", d->info->destination.url())); + return false; + } + + d->setDepthAndApplied(); + + // Do our thing :) + if (!blendOriginalIntoModelList(d->info->localSource)) { + // Trouble blending the original into the model + qCDebug(KOMPAREDIFF2_LOG) << "Oops cant blend original dir into modellist : " << d->info->localSource; + Q_EMIT error( + i18n("There were problems applying the diff %1 to the folder %2.", d->info->destination.url(), d->info->source.url())); + return false; + } + + d->updateModelListActions(); + show(); + + return true; +} + +void ModelList::slotSaveDestination() +{ + Q_D(ModelList); + + // Unnecessary safety check! We can now guarantee that saving is only possible when there is a model and there are unsaved changes + if (d->selectedModel) { + saveDestination(d->selectedModel); + if (d->save) + d->save->setEnabled(false); + Q_EMIT updateActions(); + } +} + +bool ModelList::saveDestination(DiffModel *model) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "ModelList::saveDestination: "; + + // Unnecessary safety check, we can guarantee there are unsaved changes!!! + if (!model->hasUnsavedChanges()) + return true; + + QTemporaryFile temp; + + if (!temp.open()) { + Q_EMIT error(i18n("Could not open a temporary file.")); + temp.remove(); + return false; + } + + QTextStream stream(&temp); + QStringList list; + + const DiffHunkList *hunks = model->hunks(); + + for (const DiffHunk *hunk : *hunks) { + const DifferenceList differences = hunk->differences(); + + for (const Difference *diff : differences) { + if (!diff->applied()) { + const DifferenceStringList destinationLines = diff->destinationLines(); + for (const DifferenceString *diffString : destinationLines) { + list.append(diffString->string()); + } + } else { + const DifferenceStringList sourceLines = diff->sourceLines(); + for (const DifferenceString *diffString : sourceLines) { + list.append(diffString->string()); + } + } + } + } + + // qCDebug(KOMPAREDIFF2_LOG) << "Everything: " << endl << list.join( "\n" ); + + if (list.count() > 0) + stream << list.join(QString()); + if (temp.error() != QFile::NoError) { + Q_EMIT error(i18n("Could not write to the temporary file %1, deleting it.", temp.fileName())); + temp.remove(); + return false; + } + + temp.close(); + if (temp.error() != QFile::NoError) { + Q_EMIT error(i18n("Could not write to the temporary file %1, deleting it.", temp.fileName())); + temp.remove(); + return false; + } + + bool result = false; + + // Make sure the destination directory exists, it is possible when using -N to not have the destination dir/file available + if (d->info->mode == ComparingDirs) { + // Don't use destination which was used for creating the diff directly, use the original URL!!! + // FIXME!!! Wrong destination this way! Need to add the sub directory to the url!!!! + qCDebug(KOMPAREDIFF2_LOG) << "Tempfilename (save) : " << temp.fileName(); + qCDebug(KOMPAREDIFF2_LOG) << "Model->path+file : " << model->destinationPath() << model->destinationFile(); + qCDebug(KOMPAREDIFF2_LOG) << "info->localdest : " << d->info->localDestination; + QString tmp = model->destinationPath(); + if (tmp.startsWith(d->info->localDestination)) // It should, if not serious trouble... + tmp.remove(0, d->info->localDestination.size()); + qCDebug(KOMPAREDIFF2_LOG) << "DestinationURL : " << d->info->destination; + qCDebug(KOMPAREDIFF2_LOG) << "tmp : " << tmp; + KIO::UDSEntry entry; + QUrl fullDestinationPath = d->info->destination; + fullDestinationPath.setPath(fullDestinationPath.path() + tmp); + qCDebug(KOMPAREDIFF2_LOG) << "fullDestinationPath : " << fullDestinationPath; + KIO::StatJob *statJob = KIO::stat(fullDestinationPath); + if (!statJob->exec()) { + entry = statJob->statResult(); + KIO::MkdirJob *mkdirJob = KIO::mkdir(fullDestinationPath); + if (!mkdirJob->exec()) { + Q_EMIT error(i18n("Could not create destination directory %1.\nThe file has not been saved.", fullDestinationPath.path())); + return false; + } + } + fullDestinationPath.setPath(fullDestinationPath.path() + model->destinationFile()); + KIO::FileCopyJob *copyJob = KIO::file_copy(QUrl::fromLocalFile(temp.fileName()), fullDestinationPath, -1, KIO::Overwrite); + result = copyJob->exec(); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "Tempfilename : " << temp.fileName(); + qCDebug(KOMPAREDIFF2_LOG) << "DestinationURL : " << d->info->destination; + + // Get permissions of existing file and copy temporary file with the same permissions + int permissions = -1; + KIO::StatJob *statJob = KIO::stat(d->info->destination); + result = statJob->exec(); + if (result) + permissions = statJob->statResult().numberValue(KIO::UDSEntry::UDS_ACCESS); + + KIO::FileCopyJob *copyJob = KIO::file_copy(QUrl::fromLocalFile(temp.fileName()), d->info->destination, permissions, KIO::Overwrite); + result = copyJob->exec(); + qCDebug(KOMPAREDIFF2_LOG) << "true or false?" << result; + } + + if (!result) { + // FIXME: Wrong first argument given in case of comparing directories! + Q_EMIT error( + i18n("Could not upload the temporary file to the destination location %1. The temporary file is still available under: %2. You " + "can manually copy it to the right place.", + d->info->destination.url(), + temp.fileName())); + // Don't remove file when we delete temp and don't leak it. + temp.setAutoRemove(false); + } else { + temp.remove(); + } + + // If saving was fine set all differences to saved so we can start again with a clean slate + if (result) { + const DifferenceList *differences = model->differences(); + + for (Difference *diff : *differences) { + diff->setUnsaved(false); + } + } + + return true; +} + +bool ModelList::saveAll() +{ + Q_D(ModelList); + + if (modelCount() == 0) + return false; + + for (DiffModel *model : std::as_const(*d->models)) { + if (!saveDestination(model)) + return false; + } + + return true; +} + +void ModelList::setEncoding(const QString &encoding) +{ + Q_D(ModelList); + + d->encoding = encoding; + if (!encoding.compare(QLatin1String("default"), Qt::CaseInsensitive)) { + d->textDecoder = QStringDecoder(QStringDecoder::System); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "Encoding : " << encoding; + d->textDecoder = QStringDecoder(encoding.toUtf8().constData()); + qCDebug(KOMPAREDIFF2_LOG) << "TextCodec: " << d->textDecoder.name(); + if (!d->textDecoder.isValid()) + d->textDecoder = QStringDecoder(QStringDecoder::System); + } + qCDebug(KOMPAREDIFF2_LOG) << "TextCodec: " << d->textDecoder.name(); +} + +void ModelList::setReadWrite(bool isReadWrite) +{ + Q_D(ModelList); + + if (d->isReadWrite == isReadWrite) + return; + + d->isReadWrite = isReadWrite; + d->updateModelListActions(); +} + +bool ModelList::isReadWrite() const +{ + Q_D(const ModelList); + + return d->isReadWrite; +} + +void ModelList::slotDiffProcessFinished(bool success) +{ + Q_D(ModelList); + + if (success) { + Q_EMIT status(Parsing); + if (parseDiffOutput(d->diffProcess->diffOutput()) != 0) { + Q_EMIT error(i18n("Could not parse diff output.")); + } else { + if (d->info->mode != ShowingDiff) { + qCDebug(KOMPAREDIFF2_LOG) << "Blend this crap please and do not give me any conflicts..."; + blendOriginalIntoModelList(d->info->localSource); + } + d->updateModelListActions(); + show(); + } + Q_EMIT status(FinishedParsing); + } else if (d->diffProcess->exitStatus() == 0) { + Q_EMIT error(i18n("The files are identical.")); + } else { + Q_EMIT error(d->diffProcess->stdErr()); + } + + // delay deletion, see bug 182792 + d->diffProcess.release()->deleteLater(); +} + +bool ModelList::openDiff(const QString &diffFile) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "Stupid :) Url = " << diffFile; + + if (diffFile.isEmpty()) + return false; + + QString diff = d->readFile(diffFile); + + clear(); // Clear the current models + + Q_EMIT status(Parsing); + + if (parseDiffOutput(diff) != 0) { + Q_EMIT error(i18n("Could not parse diff output.")); + return false; + } + + d->updateModelListActions(); + show(); + + Q_EMIT status(FinishedParsing); + + return true; +} + +bool ModelList::parseAndOpenDiff(const QString &diff) +{ + Q_D(ModelList); + + clear(); // Clear the current models + + Q_EMIT status(Parsing); + + if (parseDiffOutput(diff) != 0) { + Q_EMIT error(i18n("Could not parse diff output.")); + return false; + } + + d->updateModelListActions(); + show(); + + Q_EMIT status(FinishedParsing); + return true; +} + +QString ModelList::recreateDiff() const +{ + Q_D(const ModelList); + + QString diff; + + for (const DiffModel *model : *d->models) { + diff += model->recreateDiff(); + } + + return diff; +} + +bool ModelList::saveDiff(const QString &url, const QString &directory, DiffSettings *diffSettings) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "ModelList::saveDiff: "; + + d->diffTemp = std::make_unique(); + d->diffURL = QUrl(url); // ### TODO the "url" argument should be a QUrl + + if (!d->diffTemp->open()) { + Q_EMIT error(i18n("Could not open a temporary file.")); + d->diffTemp->remove(); + d->diffTemp.reset(); + return false; + } + + d->diffProcess = std::make_unique(diffSettings, Custom, d->info->localSource, d->info->localDestination, directory); + d->diffProcess->setEncoding(d->encoding); + + connect(d->diffProcess.get(), &KompareProcess::diffHasFinished, this, &ModelList::slotWriteDiffOutput); + + Q_EMIT status(RunningDiff); + d->diffProcess->start(); + return true; +} + +void ModelList::slotWriteDiffOutput(bool success) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "Success = " << success; + + if (success) { + QTextStream stream(d->diffTemp.get()); + + stream << d->diffProcess->diffOutput(); + + d->diffTemp->close(); + + if (false /*|| d->diffTemp->status() != 0 */) { + Q_EMIT error(i18n("Could not write to the temporary file.")); + } + + KIO::FileCopyJob *copyJob = KIO::file_copy(QUrl::fromLocalFile(d->diffTemp->fileName()), d->diffURL); + copyJob->exec(); + + Q_EMIT status(FinishedWritingDiff); + } + + d->diffURL = QUrl(); + d->diffTemp->remove(); + d->diffTemp.reset(); + + d->diffProcess.reset(); +} + +void ModelList::slotSelectionChanged(const KompareDiff2::DiffModel *model, const KompareDiff2::Difference *diff) +{ + Q_D(ModelList); + + // This method will signal all the other objects about a change in selection, + // it will emit setSelection( const DiffModel*, const Difference* ) to all who are connected + qCDebug(KOMPAREDIFF2_LOG) << "ModelList::slotSelectionChanged( " << model << ", " << diff << " )"; + qCDebug(KOMPAREDIFF2_LOG) << "Sender is : " << sender()->metaObject()->className(); +// qCDebug(KOMPAREDIFF2_LOG) << kBacktrace(); + + d->selectedModel = const_cast(model); + d->modelIndex = d->models->indexOf(d->selectedModel); + qCDebug(KOMPAREDIFF2_LOG) << "d->modelIndex = " << d->modelIndex; + d->selectedDifference = const_cast(diff); + + d->selectedModel->setSelectedDifference(d->selectedDifference); + + // setSelected* search for the argument in the lists and return false if not found + // if found they return true and set the d->selected* + if (!d->setSelectedModel(d->selectedModel)) { + // Backup plan + d->selectedModel = d->firstModel(); + d->selectedDifference = d->selectedModel->firstDifference(); + } else if (!d->selectedModel->setSelectedDifference(d->selectedDifference)) { + // Another backup plan + d->selectedDifference = d->selectedModel->firstDifference(); + } + + Q_EMIT setSelection(model, diff); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + + d->updateModelListActions(); +} + +void ModelList::slotSelectionChanged(const KompareDiff2::Difference *diff) +{ + Q_D(ModelList); + + // This method will emit setSelection( const Difference* ) to whomever is listening + // when for instance in kompareview the selection has changed + qCDebug(KOMPAREDIFF2_LOG) << "ModelList::slotSelectionChanged( " << diff << " )"; + qCDebug(KOMPAREDIFF2_LOG) << "Sender is : " << sender()->metaObject()->className(); + + d->selectedDifference = const_cast(diff); + + if (!d->selectedModel->setSelectedDifference(d->selectedDifference)) { + // Backup plan + d->selectedDifference = d->selectedModel->firstDifference(); + } + + Q_EMIT setSelection(diff); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + + d->updateModelListActions(); +} + +void ModelList::slotPreviousModel() +{ + Q_D(ModelList); + + if ((d->selectedModel = d->prevModel()) != nullptr) { + d->selectedDifference = d->selectedModel->firstDifference(); + } else { + d->selectedModel = d->firstModel(); + d->selectedDifference = d->selectedModel->firstDifference(); + } + + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); +} + +void ModelList::slotNextModel() +{ + Q_D(ModelList); + + if ((d->selectedModel = d->nextModel()) != nullptr) { + d->selectedDifference = d->selectedModel->firstDifference(); + } else { + d->selectedModel = d->lastModel(); + d->selectedDifference = d->selectedModel->firstDifference(); + } + + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); +} + +Mode ModelList::mode() const +{ + Q_D(const ModelList); + + return d->info->mode; +} + +const DiffModelList *ModelList::models() const +{ + Q_D(const ModelList); + + return d->models.get(); +} + +KActionCollection *ModelList::actionCollection() const +{ + Q_D(const ModelList); + + return d->actionCollection; +} + +void ModelList::slotPreviousDifference() +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "slotPreviousDifference called"; + if ((d->selectedDifference = d->selectedModel->prevDifference()) != nullptr) { + Q_EMIT setSelection(d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); + return; + } + + qCDebug(KOMPAREDIFF2_LOG) << "**** no previous difference... ok lets find the previous model..."; + + if ((d->selectedModel = d->prevModel()) != nullptr) { + d->selectedDifference = d->selectedModel->lastDifference(); + + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); + return; + } + + qCDebug(KOMPAREDIFF2_LOG) << "**** !!! No previous model, ok backup plan activated..."; + + // Backup plan + d->selectedModel = d->firstModel(); + d->selectedDifference = d->selectedModel->firstDifference(); + + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); +} + +void ModelList::slotNextDifference() +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "slotNextDifference called"; + if ((d->selectedDifference = d->selectedModel->nextDifference()) != nullptr) { + Q_EMIT setSelection(d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); + return; + } + + qCDebug(KOMPAREDIFF2_LOG) << "**** no next difference... ok lets find the next model..."; + + if ((d->selectedModel = d->nextModel()) != nullptr) { + d->selectedDifference = d->selectedModel->firstDifference(); + + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); + return; + } + + qCDebug(KOMPAREDIFF2_LOG) << "**** !!! No next model, ok backup plan activated..."; + + // Backup plan + d->selectedModel = d->lastModel(); + d->selectedDifference = d->selectedModel->lastDifference(); + + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); + Q_EMIT setStatusBarModelInfo(findModel(d->selectedModel), + d->selectedModel->findDifference(d->selectedDifference), + modelCount(), + differenceCount(), + d->selectedModel->appliedCount()); + d->updateModelListActions(); +} + +void ModelList::slotApplyDifference(bool apply) +{ + Q_D(ModelList); + + d->selectedModel->applyDifference(apply); + Q_EMIT applyDifference(apply); +} + +void ModelList::slotApplyAllDifferences(bool apply) +{ + Q_D(ModelList); + + d->selectedModel->applyAllDifferences(apply); + Q_EMIT applyAllDifferences(apply); +} + +int ModelList::parseDiffOutput(const QString &diff) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "ModelList::parseDiffOutput"; + Q_EMIT diffString(diff); + + QStringList diffLines = ModelListPrivate::split(diff); + + std::unique_ptr parser = std::make_unique(this); + bool malformed = false; + d->models.reset(parser->parse(diffLines, &malformed)); + + d->info->generator = parser->generator(); + d->info->format = parser->format(); + + parser.reset(); + + if (d->models) { + if (malformed) { + qCDebug(KOMPAREDIFF2_LOG) << "Malformed diff"; + Q_EMIT error(i18n("The diff is malformed. Some lines could not be parsed and will not be displayed in the diff view.")); + // proceed anyway with the lines which have been parsed + } + d->selectedModel = d->firstModel(); + qCDebug(KOMPAREDIFF2_LOG) << "Ok there are differences..."; + d->selectedDifference = d->selectedModel->firstDifference(); + Q_EMIT setStatusBarModelInfo(0, 0, modelCount(), differenceCount(), 0); + } else { + // Wow trouble, no models, so no differences... + qCDebug(KOMPAREDIFF2_LOG) << "Now i'll be damned, there should be models here !!!"; + return -1; + } + + return 0; +} + +bool ModelList::blendOriginalIntoModelList(const QString &localURL) +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "Hurrah we are blending..."; + QFileInfo fi(localURL); + + bool result = false; + + QString fileContents; + + if (fi.isDir()) { // is a dir + qCDebug(KOMPAREDIFF2_LOG) << "Blend Dir"; +// QDir dir( localURL, QString(), QDir::Name|QDir::DirsFirst, QDir::TypeMask ); + for (DiffModel *model : std::as_const(*d->models)) { + qCDebug(KOMPAREDIFF2_LOG) << "Model : " << model; + QString filename = model->source(); + if (!filename.startsWith(localURL)) + filename = QDir(localURL).filePath(filename); + QFileInfo fi2(filename); + if (fi2.exists()) { + qCDebug(KOMPAREDIFF2_LOG) << "Reading from: " << filename; + fileContents = d->readFile(filename); + result = d->blendFile(model, fileContents); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "File " << filename << " does not exist !"; + qCDebug(KOMPAREDIFF2_LOG) << "Assume empty file !"; + fileContents.truncate(0); + result = d->blendFile(model, fileContents); + } + } + qCDebug(KOMPAREDIFF2_LOG) << "End of Blend Dir"; + } else if (fi.isFile()) { // is a file + qCDebug(KOMPAREDIFF2_LOG) << "Blend File"; + qCDebug(KOMPAREDIFF2_LOG) << "Reading from: " << localURL; + fileContents = d->readFile(localURL); + + result = d->blendFile((*d->models)[0], fileContents); + qCDebug(KOMPAREDIFF2_LOG) << "End of Blend File"; + } + + return result; +} + +void ModelList::show() +{ + Q_D(ModelList); + + qCDebug(KOMPAREDIFF2_LOG) << "ModelList::Show Number of models = " << d->models->count(); + Q_EMIT modelsChanged(d->models.get()); + Q_EMIT setSelection(d->selectedModel, d->selectedDifference); +} + +const DiffModel *ModelList::modelAt(int i) const +{ + Q_D(const ModelList); + + return d->models->at(i); +} + +DiffModel *ModelList::modelAt(int i) +{ + Q_D(ModelList); + + return d->models->at(i); +} + +int ModelList::findModel(DiffModel *model) const +{ + Q_D(const ModelList); + + return d->models->indexOf(model); +} + +int ModelList::currentModel() const +{ + Q_D(const ModelList); + + return d->models->indexOf(d->selectedModel); +} + +int ModelList::currentDifference() const +{ + Q_D(const ModelList); + + return d->selectedModel ? d->selectedModel->findDifference(d->selectedDifference) : -1; +} + +const DiffModel *ModelList::selectedModel() const +{ + Q_D(const ModelList); + + return d->selectedModel; +} + +const Difference *ModelList::selectedDifference() const +{ + Q_D(const ModelList); + + return d->selectedDifference; +} + +void ModelList::clear() +{ + Q_D(ModelList); + + if (d->models) + d->models->clear(); + + Q_EMIT modelsChanged(d->models.get()); +} + +void ModelList::refresh() +{ + Q_D(ModelList); + + // FIXME: I can imagine blending also wants to be refreshed so make a switch case here + compare(d->info->mode); +} + +void ModelList::swap() +{ + Q_D(ModelList); + + // FIXME Not sure if any mode could be swapped + if (d->info->mode == ComparingFiles) + compare(d->info->mode); + else if (d->info->mode == ComparingDirs) + compare(d->info->mode); +} + +bool ModelList::hasUnsavedChanges() const +{ + Q_D(const ModelList); + + if (!d->models) { + return false; + } + + return std::any_of(d->models->constBegin(), d->models->constEnd(), [] (const DiffModel *model) { + return model->hasUnsavedChanges(); + }); +} + +int ModelList::modelCount() const +{ + Q_D(const ModelList); + + return d->models ? d->models->count() : 0; +} + +int ModelList::differenceCount() const +{ + Q_D(const ModelList); + + return d->selectedModel ? d->selectedModel->differenceCount() : -1; +} + +int ModelList::appliedCount() const +{ + Q_D(const ModelList); + + return d->selectedModel ? d->selectedModel->appliedCount() : -1; +} + +void ModelList::slotKompareInfo(Info *info) +{ + Q_D(ModelList); + + d->info = info; +} + +void ModelList::slotActionApplyDifference() +{ + Q_D(ModelList); + + if (!d->selectedDifference->applied()) + slotApplyDifference(true); + slotNextDifference(); + d->updateModelListActions(); +} + +void ModelList::slotActionUnApplyDifference() +{ + Q_D(ModelList); + + if (d->selectedDifference->applied()) + slotApplyDifference(false); + slotPreviousDifference(); + d->updateModelListActions(); +} + +void ModelList::slotActionApplyAllDifferences() +{ + Q_D(ModelList); + + slotApplyAllDifferences(true); + d->updateModelListActions(); +} + +void ModelList::slotActionUnapplyAllDifferences() +{ + Q_D(ModelList); + + slotApplyAllDifferences(false); + d->updateModelListActions(); +} + +#include "moc_modellist.cpp" diff --git a/src/modellist.h b/src/modellist.h new file mode 100644 index 0000000..31ad1eb --- /dev/null +++ b/src/modellist.h @@ -0,0 +1,151 @@ +/* + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2007-2008 Kevin Kofler + SPDX-FileCopyrightText: 2012 Jean -Nicolas Artaud + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_MODELLIST_H +#define KOMPAREDIFF2_MODELLIST_H + +// lib +#include "diffmodel.h" +#include "diffmodellist.h" +#include "info.h" +#include "komparediff2_export.h" +// Qt +#include +// Std +#include + +class KActionCollection; + +namespace KompareDiff2 +{ +class DiffSettings; +class ModelListPrivate; + +/** + * @class ModelList modellist.h + * + * ModelList + */ +class KOMPAREDIFF2_EXPORT ModelList : public QObject +{ + Q_OBJECT +public: + ModelList(DiffSettings *diffSettings, QObject *parent, bool supportReadWrite = true); + ~ModelList() override; + +public: + void refresh(); + // Swap source with destination and show differences + void swap(); + + /* Comparing methods */ + bool compare(); + + bool compare(Mode); + + bool openDiff(const QString &diff); + + bool openFileAndDiff(); + bool openDirAndDiff(); + + bool saveDiff(const QString &url, const QString &directory, DiffSettings *diffSettings); + bool saveAll(); + + bool saveDestination(DiffModel *model); + + void setEncoding(const QString &encoding); + + void setReadWrite(bool isReadWrite); + bool isReadWrite() const; + + QString recreateDiff() const; + + // This parses the difflines and creates new models + int parseDiffOutput(const QString &diff); + + // This open the difflines after parsing them + bool parseAndOpenDiff(const QString &diff); + + // Call this to emit the signals to the rest of the "world" to show the diff + void show(); + + // This will blend the original URL (dir or file) into the diffmodel, + // this is like patching but with a twist + bool blendOriginalIntoModelList(const QString &localURL); + + // This mode() method is superfluous now so FIXME + Mode mode() const; + const DiffModelList *models() const; + + KActionCollection *actionCollection() const; + int modelCount() const; + int differenceCount() const; + int appliedCount() const; + + const DiffModel *modelAt(int i) const; + DiffModel *modelAt(int i); + int findModel(DiffModel *model) const; + + bool hasUnsavedChanges() const; + + int currentModel() const; + int currentDifference() const; + + const DiffModel *selectedModel() const; + const Difference *selectedDifference() const; + + void clear(); + +Q_SIGNALS: + void status(KompareDiff2::Status status); + void setStatusBarModelInfo(int modelIndex, int differenceIndex, int modelCount, int differenceCount, int appliedCount); + void error(const QString &error); + void modelsChanged(const KompareDiff2::DiffModelList *models); + void setSelection(const KompareDiff2::DiffModel *model, const KompareDiff2::Difference *diff); + void setSelection(const KompareDiff2::Difference *diff); + void applyDifference(bool apply); + void applyAllDifferences(bool apply); + void applyDifference(const KompareDiff2::Difference *diff, bool apply); + void diffString(const QString &); + void updateActions(); + +public Q_SLOTS: + void slotSelectionChanged(const KompareDiff2::DiffModel *model, const KompareDiff2::Difference *diff); + void slotSelectionChanged(const KompareDiff2::Difference *diff); + + void slotApplyDifference(bool apply); + void slotApplyAllDifferences(bool apply); + void slotPreviousModel(); + void slotNextModel(); + void slotPreviousDifference(); + void slotNextDifference(); + + void slotKompareInfo(KompareDiff2::Info *); + +protected Q_SLOTS: + void slotDiffProcessFinished(bool success); + void slotWriteDiffOutput(bool success); + + void slotActionApplyDifference(); + void slotActionUnApplyDifference(); + void slotActionApplyAllDifferences(); + void slotActionUnapplyAllDifferences(); + + /** Save the currently selected destination in a multi-file diff, + or the single destination if a single file diff. */ + void slotSaveDestination(); + +private: + Q_DECLARE_PRIVATE(ModelList) + std::unique_ptr const d_ptr; +}; + +} // End of namespace KompareDiff2 + +#endif diff --git a/src/modellist_p.cpp b/src/modellist_p.cpp new file mode 100644 index 0000000..68264f7 --- /dev/null +++ b/src/modellist_p.cpp @@ -0,0 +1,500 @@ +/* + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2007-2008 Kevin Kofler + SPDX-FileCopyrightText: 2012 Jean -Nicolas Artaud + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "modellist_p.h" + +// lib +#include "info.h" +#include +// Qt +#include + +using namespace KompareDiff2; + +QStringList ModelListPrivate::split(const QString &fileContents) +{ + QString contents = fileContents; + QStringList list; + + int pos = 0; + int oldpos = 0; + // split that does not strip the split char +#ifdef QT_OS_MAC + const QLatin1Char split = QLatin1Char('\r'); +#else + const QLatin1Char split = QLatin1Char('\n'); +#endif + while ((pos = contents.indexOf(split, oldpos)) >= 0) { + list.append(contents.mid(oldpos, pos - oldpos + 1)); + oldpos = pos + 1; + } + + if (contents.length() > oldpos) { + list.append(contents.right(contents.length() - oldpos)); + } + + return list; +} + +QString ModelListPrivate::readFile(const QString &fileName) +{ + QStringList list; + + QFile file(fileName); + file.open(QIODevice::ReadOnly); + + qCDebug(KOMPAREDIFF2_LOG) << "Codec = " << textDecoder.name(); + if (!textDecoder.isValid()) + textDecoder = QStringDecoder(QStringDecoder::System); + textDecoder.resetState(); + + QString contents; + while (!file.atEnd()) { + char buffer[4096]; + const auto len = file.read(buffer, 4096); + contents += textDecoder.decode(QByteArrayView(buffer, len)); + } + + file.close(); + + return contents; +} + +bool ModelListPrivate::hasPrevModel() const +{ + // qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::hasPrevModel()"; + + if (modelIndex > 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "has prev model"; + return true; + } + +// qCDebug(KOMPAREDIFF2_LOG) << "doesn't have a prev model, this is the first one..."; + + return false; +} + +bool ModelListPrivate::hasNextModel() const +{ + // qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::hasNextModel()"; + + if (modelIndex < (models->count() - 1)) { +// qCDebug(KOMPAREDIFF2_LOG) << "has next model"; + return true; + } + +// qCDebug(KOMPAREDIFF2_LOG) << "doesn't have a next model, this is the last one..."; + return false; +} + +bool ModelListPrivate::hasPrevDiff() const +{ +// qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::hasPrevDiff()"; + const int index = selectedModel->diffIndex(); + + if (index > 0) { +// qCDebug(KOMPAREDIFF2_LOG) << "has prev difference in same model"; + return true; + } + + if (hasPrevModel()) { +// qCDebug(KOMPAREDIFF2_LOG) << "has prev difference but in prev model"; + return true; + } + +// qCDebug(KOMPAREDIFF2_LOG) << "doesn't have a prev difference, not even in the previous model because there is no previous model"; + + return false; +} + +bool ModelListPrivate::hasNextDiff() const +{ +// qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::hasNextDiff()"; + const int index = selectedModel->diffIndex(); + + if (index < (selectedModel->differenceCount() - 1)) { +// qCDebug(KOMPAREDIFF2_LOG) << "has next difference in same model"; + return true; + } + + if (hasNextModel()) { +// qCDebug(KOMPAREDIFF2_LOG) << "has next difference but in next model"; + return true; + } + +// qCDebug(KOMPAREDIFF2_LOG) << "doesn't have a next difference, not even in next model because there is no next model"; + + return false; +} + +static QString lstripSeparators(const QString &from, uint count) +{ + int position = 0; + for (uint i = 0; i < count; ++i) { + position = from.indexOf(QLatin1Char('/'), position); + if (position == -1) { + break; + } + } + if (position == -1) { + return QString(); + } + + return from.mid(position + 1); +} + +void ModelListPrivate::setDepthAndApplied() +{ + // Splice to avoid calling ~DiffModelList + const QList splicedModelList(*models); + for (DiffModel *model : splicedModelList) { + model->setSourceFile(lstripSeparators(model->source(), info->depth)); + model->setDestinationFile(lstripSeparators(model->destination(), info->depth)); + model->applyAllDifferences(info->applied); + } +} + +DiffModel *ModelListPrivate::firstModel() +{ + qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::firstModel()"; + modelIndex = 0; + qCDebug(KOMPAREDIFF2_LOG) << "modelIndex = " << modelIndex; + + selectedModel = models->first(); + + return selectedModel; +} + +DiffModel *ModelListPrivate::lastModel() +{ + qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::lastModel()"; + modelIndex = models->count() - 1; + qCDebug(KOMPAREDIFF2_LOG) << "modelIndex = " << modelIndex; + + selectedModel = models->last(); + + return selectedModel; +} + +DiffModel *ModelListPrivate::prevModel() +{ + qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::prevModel()"; + if (modelIndex > 0 && --modelIndex < models->count()) { + qCDebug(KOMPAREDIFF2_LOG) << "modelIndex = " << modelIndex; + selectedModel = (*models)[modelIndex]; + } else { + selectedModel = nullptr; + modelIndex = 0; + qCDebug(KOMPAREDIFF2_LOG) << "modelIndex = " << modelIndex; + } + + return selectedModel; +} + +DiffModel *ModelListPrivate::nextModel() +{ + qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::nextModel()"; + if (++modelIndex < models->count()) { + qCDebug(KOMPAREDIFF2_LOG) << "modelIndex = " << modelIndex; + selectedModel = (*models)[modelIndex]; + } else { + selectedModel = nullptr; + modelIndex = 0; + qCDebug(KOMPAREDIFF2_LOG) << "modelIndex = " << modelIndex; + } + + return selectedModel; +} + +bool ModelListPrivate::setSelectedModel(DiffModel *model) +{ + qCDebug(KOMPAREDIFF2_LOG) << "ModelListPrivate::setSelectedModel( " << model << " )"; + + if (model != selectedModel) { + if (!models->contains(model)) + return false; + qCDebug(KOMPAREDIFF2_LOG) << "selectedModel (was) = " << selectedModel; + modelIndex = models->indexOf(model); + qCDebug(KOMPAREDIFF2_LOG) << "selectedModel (is) = " << selectedModel; + selectedModel = model; + } + + updateModelListActions(); + + return true; +} + +void ModelListPrivate::updateModelListActions() +{ + if (models && selectedModel && selectedDifference) { + if (isReadWrite && save) { + if (selectedModel->appliedCount() != selectedModel->differenceCount()) + applyAll->setEnabled(true); + else + applyAll->setEnabled(false); + + if (selectedModel->appliedCount() != 0) + unapplyAll->setEnabled(true); + else + unapplyAll->setEnabled(false); + + applyDifference->setEnabled(selectedDifference->applied() == false); + unApplyDifference->setEnabled(selectedDifference->applied() == true); + save->setEnabled(selectedModel->hasUnsavedChanges()); + } else if (save) { + applyDifference->setEnabled(false); + unApplyDifference->setEnabled(false); + applyAll->setEnabled(false); + unapplyAll->setEnabled(false); + save->setEnabled(false); + } + + previousFile->setEnabled(hasPrevModel()); + nextFile->setEnabled(hasNextModel()); + previousDifference->setEnabled(hasPrevDiff()); + nextDifference->setEnabled(hasNextDiff()); + } else { + if (save) { + applyDifference->setEnabled(false); + unApplyDifference->setEnabled(false); + applyAll->setEnabled(false); + unapplyAll->setEnabled(false); + save->setEnabled(false); + } + + previousFile->setEnabled(false); + nextFile->setEnabled(false); + previousDifference->setEnabled(false); + nextDifference->setEnabled(false); + } +} + +bool ModelListPrivate::blendFile(DiffModel *model, const QString &fileContents) +{ + if (!model) { + qCDebug(KOMPAREDIFF2_LOG) << "**** model is null :("; + return false; + } + + model->setBlended(true); + + int srcLineNo = 1, destLineNo = 1; + + const QStringList lines = split(fileContents); + auto linesIt = lines.constBegin(), lEnd = lines.constEnd(); + + DiffHunkList *hunks = model->hunks(); + qCDebug(KOMPAREDIFF2_LOG) << "Hunks in hunklist: " << hunks->count(); + DiffHunkListIterator hunkIt = hunks->begin(); + + DiffHunk *newHunk = nullptr; + Difference *newDiff = nullptr; + + // FIXME: this approach is not very good, we should first check if the hunk applies cleanly + // and without offset and if not use that new linenumber with offset to compare against + // This will only work for files we just diffed with kompare but not for blending where + // file(s) to patch has/have potentially changed + + for (; hunkIt != hunks->end(); ++hunkIt) { + // Do we need to insert a new hunk before this one ? + DiffHunk *hunk = *hunkIt; + if (srcLineNo < hunk->sourceLineNumber()) { + newHunk = new DiffHunk(srcLineNo, destLineNo, QString(), DiffHunk::AddedByBlend); + + hunkIt = ++hunks->insert(hunkIt, newHunk); + + newDiff = new Difference(srcLineNo, destLineNo, Difference::Unchanged); + + newHunk->add(newDiff); + + while (srcLineNo < hunk->sourceLineNumber() && linesIt != lEnd) { + newDiff->addSourceLine(*linesIt); + newDiff->addDestinationLine(*linesIt); + ++srcLineNo; + ++destLineNo; + ++linesIt; + } + } + + // Now we add the linecount difference for the hunk that follows + int size = hunk->sourceLineCount(); + + linesIt += size; + if (linesIt > lEnd) { + linesIt = lEnd; + } + + srcLineNo += size; + destLineNo += hunk->destinationLineCount(); + } + + if (linesIt != lEnd) { + newHunk = new DiffHunk(srcLineNo, destLineNo, QString(), DiffHunk::AddedByBlend); + + model->addHunk(newHunk); + + newDiff = new Difference(srcLineNo, destLineNo, Difference::Unchanged); + + newHunk->add(newDiff); + + while (linesIt != lEnd) { + newDiff->addSourceLine(*linesIt); + newDiff->addDestinationLine(*linesIt); + ++linesIt; + } + } +#if 0 + DifferenceList hunkDiffList = (*hunkIt)->differences(); + DifferenceListIterator diffIt = hunkDiffList.begin(); + DifferenceListIterator dEnd = hunkDiffList.end(); + qCDebug(KOMPAREDIFF2_LOG) << "Number of differences in hunkDiffList = " << diffList.count(); + + DifferenceListIterator tempIt; + Difference* diff; + + for (; diffIt != dEnd; ++diffIt) + { + diff = *diffIt; + qCDebug(KOMPAREDIFF2_LOG) << "*(Diff it) = " << diff; + // Check if there are lines in the original file before the difference + // that are not yet in the diff. If so create new Unchanged diff + if (srcLineNo < diff->sourceLineNumber()) + { + newDiff = new Difference(srcLineNo, destLineNo, + Difference::Unchanged | Difference::AddedByBlend); + newHunk->add(newDiff); + while (srcLineNo < diff->sourceLineNumber() && linesIt != lEnd) + { +// qCDebug(KOMPAREDIFF2_LOG) << "SourceLine = " << srcLineNo << ": " << *linesIt; + newDiff->addSourceLine(*linesIt); + newDiff->addDestinationLine(*linesIt); + ++srcLineNo; + ++destLineNo; + ++linesIt; + } + } + // Now i've got to add that diff + switch (diff->type()) + { + case Difference::Unchanged: + qCDebug(KOMPAREDIFF2_LOG) << "Unchanged"; + for (int i = 0; i < diff->sourceLineCount(); ++i) + { + if (linesIt != lEnd && *linesIt != diff->sourceLineAt(i)->string()) + { + qCDebug(KOMPAREDIFF2_LOG) << "Conflict: SourceLine = " << srcLineNo << ": " << *linesIt; + qCDebug(KOMPAREDIFF2_LOG) << "Conflict: DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt(i)->string(); + + // Do conflict resolution (well sort of) + diff->sourceLineAt(i)->setConflictString(*linesIt); + diff->setConflict(true); + } +// qCDebug(KOMPAREDIFF2_LOG) << "SourceLine = " << srcLineNo << ": " << *linesIt; +// qCDebug(KOMPAREDIFF2_LOG) << "DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt( i )->string(); + ++srcLineNo; + ++destLineNo; + ++linesIt; + } + + tempIt = diffIt; + --diffIt; + diffList.remove(tempIt); + newHunk->add(diff); + + break; + case Difference::Change: + qCDebug(KOMPAREDIFF2_LOG) << "Change"; + + //QStringListConstIterator saveIt = linesIt; + + for (int i = 0; i < diff->sourceLineCount(); ++i) + { + if (linesIt != lEnd && *linesIt != diff->sourceLineAt(i)->string()) + { + qCDebug(KOMPAREDIFF2_LOG) << "Conflict: SourceLine = " << srcLineNo << ": " << *linesIt; + qCDebug(KOMPAREDIFF2_LOG) << "Conflict: DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt(i)->string(); + + // Do conflict resolution (well sort of) + diff->sourceLineAt(i)->setConflictString(*linesIt); + diff->setConflict(true); + } + ++srcLineNo; + ++destLineNo; + ++linesIt; + } + + destLineNo += diff->destinationLineCount(); + + tempIt = diffIt; + --diffIt; + diffList.remove(tempIt); + newHunk->add(diff); + newModel->addDiff(diff); + + break; + case Difference::Insert: + qCDebug(KOMPAREDIFF2_LOG) << "Insert"; + destLineNo += diff->destinationLineCount(); + tempIt = diffIt; + --diffIt; + diffList.remove(tempIt); + newHunk->add(diff); + newModel->addDiff(diff); + break; + case Difference::Delete: + qCDebug(KOMPAREDIFF2_LOG) << "Delete"; + qCDebug(KOMPAREDIFF2_LOG) << "Number of lines in Delete: " << diff->sourceLineCount(); + for (int i = 0; i < diff->sourceLineCount(); ++i) + { + if (linesIt != lEnd && *linesIt != diff->sourceLineAt(i)->string()) + { + qCDebug(KOMPAREDIFF2_LOG) << "Conflict: SourceLine = " << srcLineNo << ": " << *linesIt; + qCDebug(KOMPAREDIFF2_LOG) << "Conflict: DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt(i)->string(); + + // Do conflict resolution (well sort of) + diff->sourceLineAt(i)->setConflictString(*linesIt); + diff->setConflict(true); + } + +// qCDebug(KOMPAREDIFF2_LOG) << "SourceLine = " << srcLineNo << ": " << *it; +// qCDebug(KOMPAREDIFF2_LOG) << "DiffLine = " << diff->sourceLineNumber() + i << ": " << diff->sourceLineAt( i )->string(); + ++srcLineNo; + ++linesIt; + } + + tempIt = diffIt; + --diffIt; + diffList.remove(tempIt); + newHunk->add(diff); + newModel->addDiff(diff); + break; + default: + qCDebug(KOMPAREDIFF2_LOG) << "****, some diff type we do not know about ???"; + } + } +} +#endif + +/* + diffList = newModel->differences(); + + diff = diffList.first(); + qCDebug(KOMPAREDIFF2_LOG) << "Count = " << diffList.count(); + for ( diff = diffList.first(); diff; diff = diffList.next() ) + { + qCDebug(KOMPAREDIFF2_LOG) << "sourcelinenumber = " << diff->sourceLineNumber(); + } +*/ + + selectedModel = firstModel(); + + selectedDifference = selectedModel->firstDifference(); + + return true; +} diff --git a/src/modellist_p.h b/src/modellist_p.h new file mode 100644 index 0000000..ec8f1a2 --- /dev/null +++ b/src/modellist_p.h @@ -0,0 +1,121 @@ +/* + SPDX-FileCopyrightText: 2001-2003 John Firebaugh + SPDX-FileCopyrightText: 2001-2005,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2007-2008 Kevin Kofler + SPDX-FileCopyrightText: 2012 Jean -Nicolas Artaud + + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KOMPAREDIFF2_MODELLIST_P_H +#define KOMPAREDIFF2_MODELLIST_P_H + +// lib +#include "diffmodellist.h" +#include "kompareprocess.h" +// Qt +#include +#include +#include +#include +// Std +#include + +class KActionCollection; +class QAction; + +namespace KompareDiff2 +{ +class DiffSettings; +class DiffModelList; +class DiffModel; +class Difference; +class Info; + +class ModelListPrivate +{ +public: + ModelListPrivate(DiffSettings *diffSettings, bool supportReadWrite); + ~ModelListPrivate() = default; + +public: // Helper methods + static bool isDirectory(const QString &url); + static bool isDiff(const QString &mimetype); + + static QStringList split(const QString &diff); + + QString readFile(const QString &fileName); + + bool hasPrevModel() const; + bool hasNextModel() const; + bool hasPrevDiff() const; + bool hasNextDiff() const; + + void setDepthAndApplied(); + + DiffModel *firstModel(); + DiffModel *lastModel(); + DiffModel *prevModel(); + DiffModel *nextModel(); + + bool setSelectedModel(DiffModel *model); + + void updateModelListActions(); + + bool blendFile(DiffModel *model, const QString &lines); + +public: + std::unique_ptr diffTemp; + QUrl diffURL; + + std::unique_ptr diffProcess; + + DiffSettings *diffSettings; + + std::unique_ptr models; + + DiffModel *selectedModel = nullptr; + Difference *selectedDifference = nullptr; + + int modelIndex = 0; + + Info *info = nullptr; + + KActionCollection *actionCollection; + QAction *applyDifference; + QAction *unApplyDifference; + QAction *applyAll; + QAction *unapplyAll; + QAction *previousFile; + QAction *nextFile; + QAction *previousDifference; + QAction *nextDifference; + + QAction *save; + + QString encoding; + QStringDecoder textDecoder; + + bool isReadWrite; +}; + +inline ModelListPrivate::ModelListPrivate(DiffSettings *diffSettings, bool supportReadWrite) + : diffSettings(diffSettings) + , isReadWrite(supportReadWrite) +{ +} + +inline bool ModelListPrivate::isDirectory(const QString &url) +{ + QFileInfo fi(url); + return fi.isDir(); +} + +inline bool ModelListPrivate::isDiff(const QString &mimeType) +{ + return (mimeType == QLatin1String("text/x-patch")); +} + +} + +#endif diff --git a/src/parser.cpp b/src/parser.cpp index 0131b14..5b550aa 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1,31 +1,30 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-FileCopyrightText: 2010 Kevin Kofler + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2010 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "parser.h" -#include +// lib #include "cvsdiffparser.h" -#include "diffparser.h" -#include "perforceparser.h" #include "diffmodel.h" #include "diffmodellist.h" +#include "diffparser.h" +#include "perforceparser.h" +#include -using namespace Diff2; +using namespace KompareDiff2; -Parser::Parser(const KompareModelList* list) : - m_list(list) +Parser::Parser(const ModelList *list) + : m_list(list) { } -Parser::~Parser() -{ -} +Parser::~Parser() = default; -int Parser::cleanUpCrap(QStringList& diffLines) +int Parser::cleanUpCrap(QStringList &diffLines) { QStringList::Iterator it = diffLines.begin(); @@ -33,10 +32,8 @@ int Parser::cleanUpCrap(QStringList& diffLines) QLatin1String noNewLine("\\ No newline"); - for (; it != diffLines.end(); ++it) - { - if ((*it).startsWith(noNewLine)) - { + for (; it != diffLines.end(); ++it) { + if ((*it).startsWith(noNewLine)) { it = diffLines.erase(it); // correcting the advance of the iterator because of the remove --it; @@ -50,29 +47,28 @@ int Parser::cleanUpCrap(QStringList& diffLines) return nol; } -DiffModelList* Parser::parse(QStringList& diffLines, bool* malformed) +DiffModelList *Parser::parse(QStringList &diffLines, bool *malformed) { /* Basically determine the generator then call the parse method */ - ParserBase* parser; + std::unique_ptr parser; m_generator = determineGenerator(diffLines); int nol = cleanUpCrap(diffLines); - qCDebug(LIBKOMPAREDIFF2) << "Cleaned up " << nol << " line(s) of crap from the diff..."; + qCDebug(KOMPAREDIFF2_LOG) << "Cleaned up " << nol << " line(s) of crap from the diff..."; - switch (m_generator) - { - case Kompare::CVSDiff : - qCDebug(LIBKOMPAREDIFF2) << "It is a CVS generated diff..."; - parser = new CVSDiffParser(m_list, diffLines); + switch (m_generator) { + case CVSDiff: + qCDebug(KOMPAREDIFF2_LOG) << "It is a CVS generated diff..."; + parser = std::make_unique(m_list, diffLines); break; - case Kompare::Diff : - qCDebug(LIBKOMPAREDIFF2) << "It is a diff generated diff..."; - parser = new DiffParser(m_list, diffLines); + case Diff: + qCDebug(KOMPAREDIFF2_LOG) << "It is a diff generated diff..."; + parser = std::make_unique(m_list, diffLines); break; - case Kompare::Perforce : - qCDebug(LIBKOMPAREDIFF2) << "It is a Perforce generated diff..."; - parser = new PerforceParser(m_list, diffLines); + case Perforce: + qCDebug(KOMPAREDIFF2_LOG) << "It is a Perforce generated diff..."; + parser = std::make_unique(m_list, diffLines); break; default: // Nothing to delete, just leave... @@ -80,51 +76,38 @@ DiffModelList* Parser::parse(QStringList& diffLines, bool* malformed) } m_format = parser->format(); - DiffModelList* modelList = parser->parse(malformed); - if (modelList) - { - qCDebug(LIBKOMPAREDIFF2) << "Modelcount: " << modelList->count(); - DiffModelListIterator modelIt = modelList->begin(); - DiffModelListIterator mEnd = modelList->end(); - for (; modelIt != mEnd; ++modelIt) - { - qCDebug(LIBKOMPAREDIFF2) << "Hunkcount: " << (*modelIt)->hunkCount(); - qCDebug(LIBKOMPAREDIFF2) << "Diffcount: " << (*modelIt)->differenceCount(); + DiffModelList *modelList = parser->parse(malformed); + if (modelList) { + qCDebug(KOMPAREDIFF2_LOG) << "Modelcount: " << modelList->count(); + for (const DiffModel *model : std::as_const(*modelList)) { + qCDebug(KOMPAREDIFF2_LOG) << "Hunkcount: " << model->hunkCount(); + qCDebug(KOMPAREDIFF2_LOG) << "Diffcount: " << model->differenceCount(); } } - delete parser; - return modelList; } -enum Kompare::Generator Parser::determineGenerator(const QStringList& diffLines) +Generator Parser::determineGenerator(const QStringList &diffLines) { // Shit have to duplicate some code with this method and the ParserBase derived classes QLatin1String cvsDiff("Index: "); QLatin1String perforceDiff("==== "); - QStringList::ConstIterator it = diffLines.begin(); - QStringList::ConstIterator linesEnd = diffLines.end(); - - while (it != linesEnd) - { - if ((*it).startsWith(cvsDiff)) - { - qCDebug(LIBKOMPAREDIFF2) << "Diff is a CVSDiff"; - return Kompare::CVSDiff; + for (const QString &diffLine : diffLines) { + if (diffLine.startsWith(cvsDiff)) { + qCDebug(KOMPAREDIFF2_LOG) << "Diff is a CVSDiff"; + return CVSDiff; } - else if ((*it).startsWith(perforceDiff)) - { - qCDebug(LIBKOMPAREDIFF2) << "Diff is a Perforce Diff"; - return Kompare::Perforce; + if (diffLine.startsWith(perforceDiff)) { + qCDebug(KOMPAREDIFF2_LOG) << "Diff is a Perforce Diff"; + return Perforce; } - ++it; } - qCDebug(LIBKOMPAREDIFF2) << "We'll assume it is a diff Diff"; + qCDebug(KOMPAREDIFF2_LOG) << "We'll assume it is a diff Diff"; // For now we'll assume it is a diff file diff, later we might // try to really determine if it is a diff file diff. - return Kompare::Diff; + return Diff; } diff --git a/src/parser.h b/src/parser.h index a38c4a3..403aceb 100644 --- a/src/parser.h +++ b/src/parser.h @@ -1,47 +1,56 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-FileCopyrightText: 2010 Kevin Kofler + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2010 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFF2_PARSER_H -#define DIFF2_PARSER_H +#ifndef KOMPAREDIFF2_PARSER_H +#define KOMPAREDIFF2_PARSER_H -#include "kompare.h" +// lib +#include "global.h" +// Qt +#include -namespace Diff2 +namespace KompareDiff2 { class DiffModelList; -class KompareModelList; +class ModelList; class Parser { public: - explicit Parser(const KompareModelList* list); + explicit Parser(const ModelList *list); ~Parser(); public: - DiffModelList* parse(QStringList& diffLines, bool* malformed = nullptr); + DiffModelList *parse(QStringList &diffLines, bool *malformed = nullptr); - enum Kompare::Generator generator() const { return m_generator; }; - enum Kompare::Format format() const { return m_format; }; + Generator generator() const + { + return m_generator; + }; + + Format format() const + { + return m_format; + }; private: /** Which program was used to generate the output */ - enum Kompare::Generator determineGenerator(const QStringList& diffLines); + Generator determineGenerator(const QStringList &diffLines); - int cleanUpCrap(QStringList& diffLines); + int cleanUpCrap(QStringList &diffLines); private: - enum Kompare::Generator m_generator; - enum Kompare::Format m_format; + Generator m_generator; + Format m_format; - const KompareModelList* m_list; + const ModelList *m_list; }; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif - diff --git a/src/parserbase.cpp b/src/parserbase.cpp index 8b2e170..c6ad3ba 100644 --- a/src/parserbase.cpp +++ b/src/parserbase.cpp @@ -1,22 +1,23 @@ /* -SPDX-FileCopyrightText: 2002-2004,2009 Otto Bruggeman -SPDX-FileCopyrightText: 2007,2010 Kevin Kofler + SPDX-FileCopyrightText: 2002-2004,2009 Otto Bruggeman + SPDX-FileCopyrightText: 2007,2010 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "parserbase.h" -#include - -#include -#include "diffmodellist.h" -#include "diffmodel.h" -#include "diffhunk.h" +// lib #include "difference.h" -#include "komparemodellist.h" +#include "diffhunk.h" +#include "diffmodel.h" +#include "diffmodellist.h" +#include "modellist.h" +#include +// Qt +#include -using namespace Diff2; +using namespace KompareDiff2; // static QString ParserBase::unescapePath(QString path) @@ -54,49 +55,41 @@ QString ParserBase::escapePath(QString path) return path; } -ParserBase::ParserBase(const KompareModelList* list, const QStringList& diff) : - m_diffLines(diff), - m_currentModel(nullptr), - m_models(nullptr), - m_diffIterator(m_diffLines.begin()), - m_singleFileDiff(false), - m_malformed(false), - m_list(list) +ParserBase::ParserBase(const ModelList *list, const QStringList &diff) + : m_diffLines(diff) + , m_diffIterator(m_diffLines.begin()) + , m_list(list) { -// qCDebug(LIBKOMPAREDIFF2) << diff; -// qCDebug(LIBKOMPAREDIFF2) << m_diffLines; +// qCDebug(KOMPAREDIFF2_LOG) << diff; +// qCDebug(KOMPAREDIFF2_LOG) << m_diffLines; m_models = new DiffModelList(); // used in contexthunkheader - m_contextHunkHeader1.setPattern(QStringLiteral("\\*{15} ?(.*)\\n")); // capture is for function name - m_contextHunkHeader2.setPattern(QStringLiteral("\\*\\*\\* ([0-9]+),([0-9]+) \\*\\*\\*\\*.*\\n")); + m_contextHunkHeader1.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("\\*{15} ?(.*)\\n"))); // capture is for function name + m_contextHunkHeader2.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("\\*\\*\\* ([0-9]+),([0-9]+) \\*\\*\\*\\*.*\\n"))); // used in contexthunkbody - m_contextHunkHeader3.setPattern(QStringLiteral("--- ([0-9]+),([0-9]+) ----\\n")); + m_contextHunkHeader3.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("--- ([0-9]+),([0-9]+) ----\\n"))); - m_contextHunkBodyRemoved.setPattern(QStringLiteral("- (.*)")); - m_contextHunkBodyAdded.setPattern(QStringLiteral("\\+ (.*)")); - m_contextHunkBodyChanged.setPattern(QStringLiteral("! (.*)")); - m_contextHunkBodyContext.setPattern(QStringLiteral(" (.*)")); - m_contextHunkBodyLine.setPattern(QStringLiteral("[-\\+! ] (.*)")); + m_contextHunkBodyRemoved.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("- (.*)\\n"))); + m_contextHunkBodyAdded.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("\\+ (.*)\\n"))); + m_contextHunkBodyChanged.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("! (.*)\\n"))); + m_contextHunkBodyContext.setPattern(QRegularExpression::anchoredPattern(QStringLiteral(" (.*)\\n"))); + m_contextHunkBodyLine.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("[-\\+! ] (.*)\\n"))); // This regexp sucks... i'll see what happens - m_normalDiffHeader.setPattern(QStringLiteral("diff (?:(?:-|--)[a-zA-Z0-9=\\\"]+ )*(?:|-- +)(.*) +(.*)\\n")); - - m_normalHunkHeaderAdded.setPattern(QStringLiteral("([0-9]+)a([0-9]+)(|,[0-9]+)(.*)\\n")); - m_normalHunkHeaderRemoved.setPattern(QStringLiteral("([0-9]+)(|,[0-9]+)d([0-9]+)(.*)\\n")); - m_normalHunkHeaderChanged.setPattern(QStringLiteral("([0-9]+)(|,[0-9]+)c([0-9]+)(|,[0-9]+)(.*)\\n")); - - m_normalHunkBodyRemoved.setPattern(QStringLiteral("< (.*)")); - m_normalHunkBodyAdded.setPattern(QStringLiteral("> (.*)")); - m_normalHunkBodyDivider.setPattern(QStringLiteral("---\\n")); - - m_unifiedDiffHeader1.setPattern(QStringLiteral("--- ([^\\t]+)(?:\\t([^\\t]+)(?:\\t?)(.*))?\\n")); - m_unifiedDiffHeader2.setPattern(QStringLiteral("\\+\\+\\+ ([^\\t]+)(?:\\t([^\\t]+)(?:\\t?)(.*))?\\n")); - m_unifiedHunkHeader.setPattern(QStringLiteral("@@ -([0-9]+)(|,([0-9]+)) \\+([0-9]+)(|,([0-9]+)) @@(?: ?)(.*)\\n")); - m_unifiedHunkBodyAdded.setPattern(QStringLiteral("\\+(.*)")); - m_unifiedHunkBodyRemoved.setPattern(QStringLiteral("-(.*)")); - m_unifiedHunkBodyContext.setPattern(QStringLiteral(" (.*)")); - m_unifiedHunkBodyLine.setPattern(QStringLiteral("([-+ ])(.*)")); + m_normalDiffHeader.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("diff (?:(?:-|--)[a-zA-Z0-9=\\\"]+ )*(?:|-- +)(.*) +(.*)\\n"))); + + m_normalHunkHeaderAdded.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("([0-9]+)a([0-9]+)(|,[0-9]+)(.*)\\n"))); + m_normalHunkHeaderRemoved.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("([0-9]+)(|,[0-9]+)d([0-9]+)(.*)\\n"))); + m_normalHunkHeaderChanged.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("([0-9]+)(|,[0-9]+)c([0-9]+)(|,[0-9]+)(.*)\\n"))); + + m_normalHunkBodyRemoved.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("< (.*)\\n"))); + m_normalHunkBodyAdded.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("> (.*)\\n"))); + m_normalHunkBodyDivider.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("---\\n"))); + + m_unifiedDiffHeader1.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("--- ([^\\t]+)(?:\\t([^\\t]+)(?:\\t?)(.*))?\\n"))); + m_unifiedDiffHeader2.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("\\+\\+\\+ ([^\\t]+)(?:\\t([^\\t]+)(?:\\t?)(.*))?\\n"))); + m_unifiedHunkHeader.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("@@ -([0-9]+)(|,([0-9]+)) \\+([0-9]+)(|,([0-9]+)) @@(?: ?)(.*)\\n"))); } ParserBase::~ParserBase() @@ -105,30 +98,29 @@ ParserBase::~ParserBase() m_models = nullptr; // do not delete this, i pass it around... } -enum Kompare::Format ParserBase::determineFormat() +Format ParserBase::determineFormat() { // Write your own format detection routine damn it :) - return Kompare::UnknownFormat; + return UnknownFormat; } -DiffModelList* ParserBase::parse(bool* malformed) +DiffModelList *ParserBase::parse(bool *malformed) { - DiffModelList* result; - switch (determineFormat()) - { - case Kompare::Context : + DiffModelList *result; + switch (determineFormat()) { + case Context: result = parseContext(); break; - case Kompare::Ed : + case Ed: result = parseEd(); break; - case Kompare::Normal : + case Normal: result = parseNormal(); break; - case Kompare::RCS : + case RCS: result = parseRCS(); break; - case Kompare::Unified : + case Unified: result = parseUnified(); break; default: // Unknown and SideBySide for now @@ -146,35 +138,32 @@ DiffModelList* ParserBase::parse(bool* malformed) bool ParserBase::parseContextDiffHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseContextDiffHeader()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseContextDiffHeader()"; bool result = false; - while (m_diffIterator != m_diffLines.end()) - { - if (!m_contextDiffHeader1.exactMatch(*(m_diffIterator)++)) - { + while (m_diffIterator != m_diffLines.end()) { + const auto contextDiffHeader1Match = m_contextDiffHeader1.match(*(m_diffIterator)++); + if (!contextDiffHeader1Match.hasMatch()) { continue; } -// qCDebug(LIBKOMPAREDIFF2) << "Matched length Header1 = " << m_contextDiffHeader1.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched string Header1 = " << m_contextDiffHeader1.cap( 0 ); - if (m_diffIterator != m_diffLines.end() && m_contextDiffHeader2.exactMatch(*m_diffIterator)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Matched length Header2 = " << m_contextDiffHeader2.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched string Header2 = " << m_contextDiffHeader2.cap( 0 ); - - m_currentModel = new DiffModel(unescapePath(m_contextDiffHeader1.cap(1)), unescapePath(m_contextDiffHeader2.cap(1))); - m_currentModel->setSourceTimestamp(m_contextDiffHeader1.cap(3)); - m_currentModel->setSourceRevision(m_contextDiffHeader1.cap(5)); - m_currentModel->setDestinationTimestamp(m_contextDiffHeader2.cap(3)); - m_currentModel->setDestinationRevision(m_contextDiffHeader2.cap(5)); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header1 = " << contextDiffHeader1Match.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header1 = " << contextDiffHeader1Match.captured( 0 ); + const auto contextDiffHeader2Match = m_contextDiffHeader2.match(*m_diffIterator); + if (m_diffIterator != m_diffLines.end() && contextDiffHeader2Match.hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header2 = " << contextDiffHeader2Match.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header2 = " << contextDiffHeader2Match.captured( 0 ); + + m_currentModel = new DiffModel(unescapePath(contextDiffHeader1Match.captured(1)), unescapePath(contextDiffHeader2Match.captured(1))); + m_currentModel->setSourceTimestamp(contextDiffHeader1Match.captured(3)); + m_currentModel->setSourceRevision(contextDiffHeader1Match.captured(5)); + m_currentModel->setDestinationTimestamp(contextDiffHeader2Match.captured(3)); + m_currentModel->setDestinationRevision(contextDiffHeader2Match.captured(5)); ++m_diffIterator; result = true; break; - } - else - { + } else { // We're screwed, second line does not match or is not there... break; } @@ -193,34 +182,30 @@ bool ParserBase::parseEdDiffHeader() bool ParserBase::parseNormalDiffHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseNormalDiffHeader()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseNormalDiffHeader()"; bool result = false; - while (m_diffIterator != m_diffLines.end()) - { - if (m_normalDiffHeader.exactMatch(*m_diffIterator)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Matched length Header = " << m_normalDiffHeader.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched string Header = " << m_normalDiffHeader.cap( 0 ); + while (m_diffIterator != m_diffLines.end()) { + const auto normalDiffHeaderMatch = m_normalDiffHeader.match(*m_diffIterator); + if (normalDiffHeaderMatch.hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header = " << normalDiffHeaderMatch.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header = " << normalDiffHeaderMatch.captured( 0 ); m_currentModel = new DiffModel(); - m_currentModel->setSourceFile(unescapePath(m_normalDiffHeader.cap(1))); - m_currentModel->setDestinationFile(unescapePath(m_normalDiffHeader.cap(2))); + m_currentModel->setSourceFile(unescapePath(normalDiffHeaderMatch.captured(1))); + m_currentModel->setDestinationFile(unescapePath(normalDiffHeaderMatch.captured(2))); result = true; ++m_diffIterator; break; - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "No match for: " << (*m_diffIterator); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "No match for: " << (*m_diffIterator); } ++m_diffIterator; } - if (result == false) - { + if (result == false) { // Set this to the first line again and hope it is a single file diff m_diffIterator = m_diffLines.begin(); m_currentModel = new DiffModel(); @@ -237,34 +222,32 @@ bool ParserBase::parseRCSDiffHeader() bool ParserBase::parseUnifiedDiffHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseUnifiedDiffHeader()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseUnifiedDiffHeader()"; bool result = false; - while (m_diffIterator != m_diffLines.end()) // do not assume we start with the diffheader1 line + while (m_diffIterator != m_diffLines.end()) // do not assume we start with the diffheader1 line { - if (!m_unifiedDiffHeader1.exactMatch(*m_diffIterator)) - { + const auto unifiedDiffHeader1Match = m_unifiedDiffHeader1.match(*m_diffIterator); + if (!unifiedDiffHeader1Match.hasMatch()) { ++m_diffIterator; continue; } -// qCDebug(LIBKOMPAREDIFF2) << "Matched length Header1 = " << m_unifiedDiffHeader1.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched string Header1 = " << m_unifiedDiffHeader1.cap( 0 ); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header1 = " << unifiedDiffHeader1Match.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header1 = " << unifiedDiffHeader1Match.captured( 0 ); ++m_diffIterator; - if (m_diffIterator != m_diffLines.end() && m_unifiedDiffHeader2.exactMatch(*m_diffIterator)) - { - m_currentModel = new DiffModel(unescapePath(m_unifiedDiffHeader1.cap(1)), unescapePath(m_unifiedDiffHeader2.cap(1))); - m_currentModel->setSourceTimestamp(m_unifiedDiffHeader1.cap(2)); - m_currentModel->setSourceRevision(m_unifiedDiffHeader1.cap(4)); - m_currentModel->setDestinationTimestamp(m_unifiedDiffHeader2.cap(2)); - m_currentModel->setDestinationRevision(m_unifiedDiffHeader2.cap(4)); + const auto unifiedDiffHeader2Match = m_unifiedDiffHeader2.match(*m_diffIterator); + if (m_diffIterator != m_diffLines.end() && unifiedDiffHeader2Match.hasMatch()) { + m_currentModel = new DiffModel(unescapePath(unifiedDiffHeader1Match.captured(1)), unescapePath(unifiedDiffHeader2Match.captured(1))); + m_currentModel->setSourceTimestamp(unifiedDiffHeader1Match.captured(2)); + m_currentModel->setSourceRevision(unifiedDiffHeader1Match.captured(4)); + m_currentModel->setDestinationTimestamp(unifiedDiffHeader2Match.captured(2)); + m_currentModel->setDestinationRevision(unifiedDiffHeader2Match.captured(4)); ++m_diffIterator; result = true; break; - } - else - { + } else { // We're screwed, second line does not match or is not there... break; } @@ -275,12 +258,13 @@ bool ParserBase::parseUnifiedDiffHeader() bool ParserBase::parseContextHunkHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseContextHunkHeader()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseContextHunkHeader()"; if (m_diffIterator == m_diffLines.end()) return false; - if (!m_contextHunkHeader1.exactMatch(*(m_diffIterator))) + m_contextHunkHeader1Match = m_contextHunkHeader1.match(*(m_diffIterator)); + if (!m_contextHunkHeader1Match.hasMatch()) return false; // big fat trouble, aborting... ++m_diffIterator; @@ -288,7 +272,8 @@ bool ParserBase::parseContextHunkHeader() if (m_diffIterator == m_diffLines.end()) return false; - if (!m_contextHunkHeader2.exactMatch(*(m_diffIterator))) + m_contextHunkHeader2Match = m_contextHunkHeader2.match(*(m_diffIterator)); + if (!m_contextHunkHeader2Match.hasMatch()) return false; // big fat trouble, aborting... ++m_diffIterator; @@ -303,23 +288,16 @@ bool ParserBase::parseEdHunkHeader() bool ParserBase::parseNormalHunkHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseNormalHunkHeader()"; - if (m_diffIterator != m_diffLines.end()) - { -// qCDebug(LIBKOMPAREDIFF2) << "Header = " << *m_diffIterator; - if (m_normalHunkHeaderAdded.exactMatch(*m_diffIterator)) - { +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseNormalHunkHeader()"; + if (m_diffIterator != m_diffLines.end()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Header = " << *m_diffIterator; + if (m_normalHunkHeaderAddedMatch = m_normalHunkHeaderAdded.match(*m_diffIterator); m_normalHunkHeaderAddedMatch.hasMatch()) { m_normalDiffType = Difference::Insert; - } - else if (m_normalHunkHeaderRemoved.exactMatch(*m_diffIterator)) - { + } else if (m_normalHunkHeaderRemovedMatch = m_normalHunkHeaderRemoved.match(*m_diffIterator); m_normalHunkHeaderRemovedMatch.hasMatch()) { m_normalDiffType = Difference::Delete; - } - else if (m_normalHunkHeaderChanged.exactMatch(*m_diffIterator)) - { + } else if (m_normalHunkHeaderChangedMatch = m_normalHunkHeaderChanged.match(*m_diffIterator); m_normalHunkHeaderChangedMatch.hasMatch()) { m_normalDiffType = Difference::Change; - } - else + } else return false; ++m_diffIterator; @@ -336,114 +314,109 @@ bool ParserBase::parseRCSHunkHeader() bool ParserBase::parseUnifiedHunkHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseUnifiedHunkHeader()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseUnifiedHunkHeader()"; - if (m_diffIterator != m_diffLines.end() && m_unifiedHunkHeader.exactMatch(*m_diffIterator)) - { - ++m_diffIterator; - return true; - } - else - { -// qCDebug(LIBKOMPAREDIFF2) << "This is not a unified hunk header : " << (*m_diffIterator); - return false; + if (m_diffIterator != m_diffLines.end()) { + m_unifiedHunkHeaderMatch = m_unifiedHunkHeader.match(*m_diffIterator); + if (m_unifiedHunkHeaderMatch.hasMatch()) { + ++m_diffIterator; + return true; + } } - +// qCDebug(KOMPAREDIFF2_LOG) << "This is not a unified hunk header : " << (*m_diffIterator); + return false; } bool ParserBase::parseContextHunkBody() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseContextHunkBody()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseContextHunkBody()"; // Storing the src part of the hunk for later use QStringList oldLines; - for (; m_diffIterator != m_diffLines.end() && m_contextHunkBodyLine.exactMatch(*m_diffIterator); ++m_diffIterator) { -// qCDebug(LIBKOMPAREDIFF2) << "Added old line: " << *m_diffIterator; + for (; m_diffIterator != m_diffLines.end() && m_contextHunkBodyLine.match(*m_diffIterator).hasMatch(); ++m_diffIterator) { +// qCDebug(KOMPAREDIFF2_LOG) << "Added old line: " << *m_diffIterator; oldLines.append(*m_diffIterator); } - if (!m_contextHunkHeader3.exactMatch(*m_diffIterator)) + const auto contextHunkHeader3Match = m_contextHunkHeader3.match(*m_diffIterator); + if (!contextHunkHeader3Match.hasMatch()) return false; ++m_diffIterator; // Storing the dest part of the hunk for later use QStringList newLines; - for (; m_diffIterator != m_diffLines.end() && m_contextHunkBodyLine.exactMatch(*m_diffIterator); ++m_diffIterator) { -// qCDebug(LIBKOMPAREDIFF2) << "Added new line: " << *m_diffIterator; + for (; m_diffIterator != m_diffLines.end() && m_contextHunkBodyLine.match(*m_diffIterator).hasMatch(); ++m_diffIterator) { +// qCDebug(KOMPAREDIFF2_LOG) << "Added new line: " << *m_diffIterator; newLines.append(*m_diffIterator); } - QString function = m_contextHunkHeader1.cap(1); -// qCDebug(LIBKOMPAREDIFF2) << "Captured function: " << function; - int linenoA = m_contextHunkHeader2.cap(1).toInt(); -// qCDebug(LIBKOMPAREDIFF2) << "Source line number: " << linenoA; - int linenoB = m_contextHunkHeader3.cap(1).toInt(); -// qCDebug(LIBKOMPAREDIFF2) << "Dest line number: " << linenoB; + QString function = m_contextHunkHeader1Match.captured(1); +// qCDebug(KOMPAREDIFF2_LOG) << "Captured function: " << function; + int linenoA = m_contextHunkHeader2Match.captured(1).toInt(); +// qCDebug(KOMPAREDIFF2_LOG) << "Source line number: " << linenoA; + int linenoB = contextHunkHeader3Match.captured(1).toInt(); +// qCDebug(KOMPAREDIFF2_LOG) << "Dest line number: " << linenoB; - DiffHunk* hunk = new DiffHunk(linenoA, linenoB, function); + DiffHunk *hunk = new DiffHunk(linenoA, linenoB, function); m_currentModel->addHunk(hunk); QStringList::Iterator oldIt = oldLines.begin(); QStringList::Iterator newIt = newLines.begin(); - Difference* diff; - while (oldIt != oldLines.end() || newIt != newLines.end()) - { - if (oldIt != oldLines.end() && m_contextHunkBodyRemoved.exactMatch(*oldIt)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Delete: "; + Difference *diff; + while (oldIt != oldLines.end() || newIt != newLines.end()) { + if (oldIt != oldLines.end() && m_contextHunkBodyRemoved.match(*oldIt).hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Delete: "; diff = new Difference(linenoA, linenoB); diff->setType(Difference::Delete); m_currentModel->addDiff(diff); -// qCDebug(LIBKOMPAREDIFF2) << "Difference added"; +// qCDebug(KOMPAREDIFF2_LOG) << "Difference added"; hunk->add(diff); - for (; oldIt != oldLines.end() && m_contextHunkBodyRemoved.exactMatch(*oldIt); ++oldIt) - { -// qCDebug(LIBKOMPAREDIFF2) << " " << m_contextHunkBodyRemoved.cap( 1 ); - diff->addSourceLine(m_contextHunkBodyRemoved.cap(1)); + for (; oldIt != oldLines.end(); ++oldIt) { + const auto contextHunkBodyRemovedMatch = m_contextHunkBodyRemoved.match(*oldIt); + if (!contextHunkBodyRemovedMatch.hasMatch()) { + break; + } +// qCDebug(KOMPAREDIFF2_LOG) << " " << contextHunkBodyRemovedMatch.captured( 1 ); + diff->addSourceLine(contextHunkBodyRemovedMatch.captured(1)); ++linenoA; } - } - else if (newIt != newLines.end() && m_contextHunkBodyAdded.exactMatch(*newIt)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Insert: "; + } else if (newIt != newLines.end() && m_contextHunkBodyAdded.match(*newIt).hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Insert: "; diff = new Difference(linenoA, linenoB); diff->setType(Difference::Insert); m_currentModel->addDiff(diff); -// qCDebug(LIBKOMPAREDIFF2) << "Difference added"; +// qCDebug(KOMPAREDIFF2_LOG) << "Difference added"; hunk->add(diff); - for (; newIt != newLines.end() && m_contextHunkBodyAdded.exactMatch(*newIt); ++newIt) - { -// qCDebug(LIBKOMPAREDIFF2) << " " << m_contextHunkBodyAdded.cap( 1 ); - diff->addDestinationLine(m_contextHunkBodyAdded.cap(1)); + for (; newIt != newLines.end(); ++newIt) { + const auto contextHunkBodyAddedMatch = m_contextHunkBodyAdded.match(*newIt); + if (!contextHunkBodyAddedMatch.hasMatch()) { + break; + } +// qCDebug(KOMPAREDIFF2_LOG) << " " << contextHunkBodyAddedMatch.captured( 1 ); + diff->addDestinationLine(contextHunkBodyAddedMatch.captured(1)); ++linenoB; } - } - else if ((oldIt == oldLines.end() || m_contextHunkBodyContext.exactMatch(*oldIt)) && - (newIt == newLines.end() || m_contextHunkBodyContext.exactMatch(*newIt))) - { -// qCDebug(LIBKOMPAREDIFF2) << "Unchanged: "; + } else if ((oldIt == oldLines.end() || m_contextHunkBodyContext.match(*oldIt).hasMatch()) + && (newIt == newLines.end() || m_contextHunkBodyContext.match(*newIt).hasMatch())) { +// qCDebug(KOMPAREDIFF2_LOG) << "Unchanged: "; diff = new Difference(linenoA, linenoB); // Do not add this diff with addDiff to the model... no unchanged differences allowed in there... diff->setType(Difference::Unchanged); hunk->add(diff); - while ((oldIt == oldLines.end() || m_contextHunkBodyContext.exactMatch(*oldIt)) && - (newIt == newLines.end() || m_contextHunkBodyContext.exactMatch(*newIt)) && - (oldIt != oldLines.end() || newIt != newLines.end())) - { + while ((oldIt == oldLines.end() || m_contextHunkBodyContext.match(*oldIt).hasMatch()) + && (newIt == newLines.end() || m_contextHunkBodyContext.match(*newIt).hasMatch()) && (oldIt != oldLines.end() || newIt != newLines.end())) { QString l; - if (oldIt != oldLines.end()) - { - l = m_contextHunkBodyContext.cap(1); -// qCDebug(LIBKOMPAREDIFF2) << "old: " << l; + if (oldIt != oldLines.end()) { + l = m_contextHunkBodyContext.match(*oldIt).captured(1); +// qCDebug(KOMPAREDIFF2_LOG) << "old: " << l; ++oldIt; } - if (newIt != newLines.end()) - { - l = m_contextHunkBodyContext.cap(1); -// qCDebug(LIBKOMPAREDIFF2) << "new: " << l; + if (newIt != newLines.end()) { + l = m_contextHunkBodyContext.match(*newIt).captured(1); +// qCDebug(KOMPAREDIFF2_LOG) << "new: " << l; ++newIt; } diff->addSourceLine(l); @@ -451,32 +424,35 @@ bool ParserBase::parseContextHunkBody() ++linenoA; ++linenoB; } - } - else if ((oldIt != oldLines.end() && m_contextHunkBodyChanged.exactMatch(*oldIt)) || - (newIt != newLines.end() && m_contextHunkBodyChanged.exactMatch(*newIt))) - { -// qCDebug(LIBKOMPAREDIFF2) << "Changed: "; + } else if ((oldIt != oldLines.end() && m_contextHunkBodyChanged.match(*oldIt).hasMatch()) + || (newIt != newLines.end() && m_contextHunkBodyChanged.match(*newIt).hasMatch())) { +// qCDebug(KOMPAREDIFF2_LOG) << "Changed: "; diff = new Difference(linenoA, linenoB); diff->setType(Difference::Change); m_currentModel->addDiff(diff); -// qCDebug(LIBKOMPAREDIFF2) << "Difference added"; +// qCDebug(KOMPAREDIFF2_LOG) << "Difference added"; hunk->add(diff); - while (oldIt != oldLines.end() && m_contextHunkBodyChanged.exactMatch(*oldIt)) - { -// qCDebug(LIBKOMPAREDIFF2) << " " << m_contextHunkBodyChanged.cap( 1 ); - diff->addSourceLine(m_contextHunkBodyChanged.cap(1)); + while (oldIt != oldLines.end()) { + const auto contextHunkBodyChangedMatch = m_contextHunkBodyChanged.match(*oldIt); + if (!contextHunkBodyChangedMatch.hasMatch()) { + break; + } +// qCDebug(KOMPAREDIFF2_LOG) << " " << contextHunkBodyChangedMatch.captured( 1 ); + diff->addSourceLine(contextHunkBodyChangedMatch.captured(1)); ++linenoA; ++oldIt; } - while (newIt != newLines.end() && m_contextHunkBodyChanged.exactMatch(*newIt)) - { -// qCDebug(LIBKOMPAREDIFF2) << " " << m_contextHunkBodyChanged.cap( 1 ); - diff->addDestinationLine(m_contextHunkBodyChanged.cap(1)); + while (newIt != newLines.end()) { + const auto contextHunkBodyChangedMatch = m_contextHunkBodyChanged.match(*newIt); + if (!contextHunkBodyChangedMatch.hasMatch()) { + break; + } +// qCDebug(KOMPAREDIFF2_LOG) << " " << contextHunkBodyChangedMatch.captured( 1 ); + diff->addDestinationLine(contextHunkBodyChangedMatch.captured(1)); ++linenoB; ++newIt; } - } - else + } else return false; diff->determineInlineDifferences(); } @@ -491,59 +467,57 @@ bool ParserBase::parseEdHunkBody() bool ParserBase::parseNormalHunkBody() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseNormalHunkBody"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseNormalHunkBody"; QString type; int linenoA = 0, linenoB = 0; - if (m_normalDiffType == Difference::Insert) - { - linenoA = m_normalHunkHeaderAdded.cap(1).toInt(); - linenoB = m_normalHunkHeaderAdded.cap(2).toInt(); - } - else if (m_normalDiffType == Difference::Delete) - { - linenoA = m_normalHunkHeaderRemoved.cap(1).toInt(); - linenoB = m_normalHunkHeaderRemoved.cap(3).toInt(); - } - else if (m_normalDiffType == Difference::Change) - { - linenoA = m_normalHunkHeaderChanged.cap(1).toInt(); - linenoB = m_normalHunkHeaderChanged.cap(3).toInt(); + if (m_normalDiffType == Difference::Insert) { + linenoA = m_normalHunkHeaderAddedMatch.captured(1).toInt(); + linenoB = m_normalHunkHeaderAddedMatch.captured(2).toInt(); + } else if (m_normalDiffType == Difference::Delete) { + linenoA = m_normalHunkHeaderRemovedMatch.captured(1).toInt(); + linenoB = m_normalHunkHeaderRemovedMatch.captured(3).toInt(); + } else if (m_normalDiffType == Difference::Change) { + linenoA = m_normalHunkHeaderChangedMatch.captured(1).toInt(); + linenoB = m_normalHunkHeaderChangedMatch.captured(3).toInt(); } - DiffHunk* hunk = new DiffHunk(linenoA, linenoB); + DiffHunk *hunk = new DiffHunk(linenoA, linenoB); m_currentModel->addHunk(hunk); - Difference* diff = new Difference(linenoA, linenoB); + Difference *diff = new Difference(linenoA, linenoB); hunk->add(diff); m_currentModel->addDiff(diff); diff->setType(m_normalDiffType); if (m_normalDiffType == Difference::Change || m_normalDiffType == Difference::Delete) - for (; m_diffIterator != m_diffLines.end() && m_normalHunkBodyRemoved.exactMatch(*m_diffIterator); ++m_diffIterator) - { -// qCDebug(LIBKOMPAREDIFF2) << "Line = " << *m_diffIterator; - diff->addSourceLine(m_normalHunkBodyRemoved.cap(1)); + for (; m_diffIterator != m_diffLines.end(); ++m_diffIterator) { + const auto normalHunkBodyRemovedMatch = m_normalHunkBodyRemoved.match(*m_diffIterator); + if (!normalHunkBodyRemovedMatch.hasMatch()) { + break; + } +// qCDebug(KOMPAREDIFF2_LOG) << "Line = " << *m_diffIterator; + diff->addSourceLine(normalHunkBodyRemovedMatch.captured(1)); } - if (m_normalDiffType == Difference::Change) - { - if (m_diffIterator != m_diffLines.end() && m_normalHunkBodyDivider.exactMatch(*m_diffIterator)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Line = " << *m_diffIterator; + if (m_normalDiffType == Difference::Change) { + if (m_diffIterator != m_diffLines.end() && m_normalHunkBodyDivider.match(*m_diffIterator).hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Line = " << *m_diffIterator; ++m_diffIterator; - } - else + } else return false; } if (m_normalDiffType == Difference::Insert || m_normalDiffType == Difference::Change) - for (; m_diffIterator != m_diffLines.end() && m_normalHunkBodyAdded.exactMatch(*m_diffIterator); ++m_diffIterator) - { -// qCDebug(LIBKOMPAREDIFF2) << "Line = " << *m_diffIterator; - diff->addDestinationLine(m_normalHunkBodyAdded.cap(1)); + for (; m_diffIterator != m_diffLines.end(); ++m_diffIterator) { + const auto normalHunkBodyAddedMatch = m_normalHunkBodyAdded.match(*m_diffIterator); + if (!normalHunkBodyAddedMatch.hasMatch()) { + break; + } +// qCDebug(KOMPAREDIFF2_LOG) << "Line = " << *m_diffIterator; + diff->addDestinationLine(normalHunkBodyAddedMatch.captured(1)); } return true; @@ -554,7 +528,7 @@ bool ParserBase::parseRCSHunkBody() return false; } -bool ParserBase::matchesUnifiedHunkLine(const QString& line) const +bool ParserBase::matchesUnifiedHunkLine(const QString &line) const { static const QChar context = QLatin1Char(' '); static const QChar added = QLatin1Char('+'); @@ -567,17 +541,16 @@ bool ParserBase::matchesUnifiedHunkLine(const QString& line) const bool ParserBase::parseUnifiedHunkBody() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseUnifiedHunkBody"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseUnifiedHunkBody"; int linenoA = 0, linenoB = 0; bool wasNum; // Fetching the stuff we need from the hunkheader regexp that was parsed in parseUnifiedHunkHeader(); - linenoA = m_unifiedHunkHeader.cap(1).toInt(); + linenoA = m_unifiedHunkHeaderMatch.captured(1).toInt(); int lineCountA = 1, lineCountB = 1; // an omitted line count in the header implies a line count of 1 - if (!m_unifiedHunkHeader.cap(3).isEmpty()) - { - lineCountA = m_unifiedHunkHeader.cap(3).toInt(&wasNum); + if (!m_unifiedHunkHeaderMatch.captured(3).isEmpty()) { + lineCountA = m_unifiedHunkHeaderMatch.captured(3).toInt(&wasNum); if (!wasNum) return false; @@ -586,35 +559,32 @@ bool ParserBase::parseUnifiedHunkBody() if (lineCountA == 0) ++linenoA; } - linenoB = m_unifiedHunkHeader.cap(4).toInt(); - if (!m_unifiedHunkHeader.cap(6).isEmpty()) { - lineCountB = m_unifiedHunkHeader.cap(6).toInt(&wasNum); + linenoB = m_unifiedHunkHeaderMatch.captured(4).toInt(); + if (!m_unifiedHunkHeaderMatch.captured(6).isEmpty()) { + lineCountB = m_unifiedHunkHeaderMatch.captured(6).toInt(&wasNum); if (!wasNum) return false; if (lineCountB == 0) // see above ++linenoB; } - QString function = m_unifiedHunkHeader.cap(7); + QString function = m_unifiedHunkHeaderMatch.captured(7); - DiffHunk* hunk = new DiffHunk(linenoA, linenoB, function); + DiffHunk *hunk = new DiffHunk(linenoA, linenoB, function); m_currentModel->addHunk(hunk); const QStringList::ConstIterator m_diffLinesEnd = m_diffLines.end(); const QString context = QStringLiteral(" "); - const QString added = QStringLiteral("+"); + const QString added = QStringLiteral("+"); const QString removed = QStringLiteral("-"); - while (m_diffIterator != m_diffLinesEnd && matchesUnifiedHunkLine(*m_diffIterator) && (lineCountA || lineCountB)) - { - Difference* diff = new Difference(linenoA, linenoB); + while (m_diffIterator != m_diffLinesEnd && matchesUnifiedHunkLine(*m_diffIterator) && (lineCountA || lineCountB)) { + Difference *diff = new Difference(linenoA, linenoB); hunk->add(diff); - if ((*m_diffIterator).startsWith(context)) - { // context - for (; m_diffIterator != m_diffLinesEnd && (*m_diffIterator).startsWith(context) && (lineCountA || lineCountB); ++m_diffIterator) - { + if ((*m_diffIterator).startsWith(context)) { // context + for (; m_diffIterator != m_diffLinesEnd && (*m_diffIterator).startsWith(context) && (lineCountA || lineCountB); ++m_diffIterator) { diff->addSourceLine(QString(*m_diffIterator).remove(0, 1)); diff->addDestinationLine(QString(*m_diffIterator).remove(0, 1)); ++linenoA; @@ -622,35 +592,26 @@ bool ParserBase::parseUnifiedHunkBody() --lineCountA; --lineCountB; } - } - else - { // This is a real difference, not context - for (; m_diffIterator != m_diffLinesEnd && (*m_diffIterator).startsWith(removed) && (lineCountA || lineCountB); ++m_diffIterator) - { + } else { // This is a real difference, not context + for (; m_diffIterator != m_diffLinesEnd && (*m_diffIterator).startsWith(removed) && (lineCountA || lineCountB); ++m_diffIterator) { diff->addSourceLine(QString(*m_diffIterator).remove(0, 1)); ++linenoA; --lineCountA; } - for (; m_diffIterator != m_diffLinesEnd && (*m_diffIterator).startsWith(added) && (lineCountA || lineCountB); ++m_diffIterator) - { + for (; m_diffIterator != m_diffLinesEnd && (*m_diffIterator).startsWith(added) && (lineCountA || lineCountB); ++m_diffIterator) { diff->addDestinationLine(QString(*m_diffIterator).remove(0, 1)); ++linenoB; --lineCountB; } - if (diff->sourceLineCount() == 0) - { + if (diff->sourceLineCount() == 0) { diff->setType(Difference::Insert); -// qCDebug(LIBKOMPAREDIFF2) << "Insert difference"; - } - else if (diff->destinationLineCount() == 0) - { +// qCDebug(KOMPAREDIFF2_LOG) << "Insert difference"; + } else if (diff->destinationLineCount() == 0) { diff->setType(Difference::Delete); -// qCDebug(LIBKOMPAREDIFF2) << "Delete difference"; - } - else - { +// qCDebug(KOMPAREDIFF2_LOG) << "Delete difference"; + } else { diff->setType(Difference::Change); -// qCDebug(LIBKOMPAREDIFF2) << "Change difference"; +// qCDebug(KOMPAREDIFF2_LOG) << "Change difference"; } diff->determineInlineDifferences(); m_currentModel->addDiff(diff); @@ -660,20 +621,21 @@ bool ParserBase::parseUnifiedHunkBody() return true; } -void ParserBase::checkHeader(const QRegExp& header) +void ParserBase::checkHeader(const QRegularExpression &header) { - if (m_diffIterator != m_diffLines.end() - && !header.exactMatch(*m_diffIterator) - && !m_diffIterator->startsWith(QLatin1String("Index: ")) /* SVN diff */ - && !m_diffIterator->startsWith(QLatin1String("diff ")) /* concatenated diff */ - && !m_diffIterator->startsWith(QLatin1String("-- ")) /* git format-patch */) + // clang-format off + if (m_diffIterator != m_diffLines.end() && + !header.match(*m_diffIterator).hasMatch() && + !m_diffIterator->startsWith(QLatin1String("Index: ")) && /* SVN diff */ + !m_diffIterator->startsWith(QLatin1String("diff ")) && /* concatenated diff */ + !m_diffIterator->startsWith(QLatin1String("-- ")) /* git format-patch */) + // clang-format on m_malformed = true; } -DiffModelList* ParserBase::parseContext() +DiffModelList *ParserBase::parseContext() { - while (parseContextDiffHeader()) - { + while (parseContextDiffHeader()) { while (parseContextHunkHeader()) parseContextHunkBody(); if (m_currentModel->differenceCount() > 0) @@ -683,21 +645,17 @@ DiffModelList* ParserBase::parseContext() m_models->sort(); - if (m_models->count() > 0) - { + if (m_models->count() > 0) { return m_models; - } - else - { + } else { delete m_models; return nullptr; } } -DiffModelList* ParserBase::parseEd() +DiffModelList *ParserBase::parseEd() { - while (parseEdDiffHeader()) - { + while (parseEdDiffHeader()) { while (parseEdHunkHeader()) parseEdHunkBody(); if (m_currentModel->differenceCount() > 0) @@ -706,21 +664,17 @@ DiffModelList* ParserBase::parseEd() m_models->sort(); - if (m_models->count() > 0) - { + if (m_models->count() > 0) { return m_models; - } - else - { + } else { delete m_models; return nullptr; } } -DiffModelList* ParserBase::parseNormal() +DiffModelList *ParserBase::parseNormal() { - while (parseNormalDiffHeader()) - { + while (parseNormalDiffHeader()) { while (parseNormalHunkHeader()) parseNormalHunkBody(); if (m_currentModel->differenceCount() > 0) @@ -728,8 +682,7 @@ DiffModelList* ParserBase::parseNormal() checkHeader(m_normalDiffHeader); } - if (m_singleFileDiff) - { + if (m_singleFileDiff) { while (parseNormalHunkHeader()) parseNormalHunkBody(); if (m_currentModel->differenceCount() > 0) @@ -740,21 +693,17 @@ DiffModelList* ParserBase::parseNormal() m_models->sort(); - if (m_models->count() > 0) - { + if (m_models->count() > 0) { return m_models; - } - else - { + } else { delete m_models; return nullptr; } } -DiffModelList* ParserBase::parseRCS() +DiffModelList *ParserBase::parseRCS() { - while (parseRCSDiffHeader()) - { + while (parseRCSDiffHeader()) { while (parseRCSHunkHeader()) parseRCSHunkBody(); if (m_currentModel->differenceCount() > 0) @@ -763,25 +712,21 @@ DiffModelList* ParserBase::parseRCS() m_models->sort(); - if (m_models->count() > 0) - { + if (m_models->count() > 0) { return m_models; - } - else - { + } else { delete m_models; return nullptr; } } -DiffModelList* ParserBase::parseUnified() +DiffModelList *ParserBase::parseUnified() { - while (parseUnifiedDiffHeader()) - { + while (parseUnifiedDiffHeader()) { while (parseUnifiedHunkHeader()) parseUnifiedHunkBody(); -// qCDebug(LIBKOMPAREDIFF2) << "New model ready to be analyzed..."; -// qCDebug(LIBKOMPAREDIFF2) << " differenceCount() == " << m_currentModel->differenceCount(); +// qCDebug(KOMPAREDIFF2_LOG) << "New model ready to be analyzed..."; +// qCDebug(KOMPAREDIFF2_LOG) << " differenceCount() == " << m_currentModel->differenceCount(); if (m_currentModel->differenceCount() > 0) m_models->append(m_currentModel); checkHeader(m_unifiedDiffHeader1); @@ -789,14 +734,10 @@ DiffModelList* ParserBase::parseUnified() m_models->sort(); - if (m_models->count() > 0) - { + if (m_models->count() > 0) { return m_models; - } - else - { + } else { delete m_models; return nullptr; } } - diff --git a/src/parserbase.h b/src/parserbase.h index 00a0cbb..6613bed 100644 --- a/src/parserbase.h +++ b/src/parserbase.h @@ -1,40 +1,45 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-FileCopyrightText: 2010 Kevin Kofler + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2010 Kevin Kofler -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef DIFF2_PARSERBASE_H -#define DIFF2_PARSERBASE_H +#ifndef KOMPAREDIFF2_PARSERBASE_H +#define KOMPAREDIFF2_PARSERBASE_H -#include - -#include "kompare.h" +// lib #include "difference.h" +#include "global.h" +// Qt +#include +#include -class QStringList; class QString; -namespace Diff2 +namespace KompareDiff2 { -class KompareModelList; +class ModelList; class DiffModelList; class DiffModel; class ParserBase { public: - ParserBase(const KompareModelList* list, const QStringList& diff); + ParserBase(const ModelList *list, const QStringList &diff); virtual ~ParserBase(); static QString escapePath(QString path); static QString unescapePath(QString path); public: - enum Kompare::Format format() { return determineFormat(); }; - DiffModelList* parse(bool* malformed = nullptr); + Format format() + { + return determineFormat(); + }; + + DiffModelList *parse(bool *malformed = nullptr); protected: virtual bool parseContextDiffHeader(); @@ -55,75 +60,76 @@ class ParserBase virtual bool parseRCSHunkBody(); virtual bool parseUnifiedHunkBody(); - virtual DiffModelList* parseContext(); - virtual DiffModelList* parseEd(); - virtual DiffModelList* parseNormal(); - virtual DiffModelList* parseRCS(); - virtual DiffModelList* parseUnified(); + virtual DiffModelList *parseContext(); + virtual DiffModelList *parseEd(); + virtual DiffModelList *parseNormal(); + virtual DiffModelList *parseRCS(); + virtual DiffModelList *parseUnified(); protected: // Helper methods to speed things up - bool matchesUnifiedHunkLine(const QString& line) const; - void checkHeader(const QRegExp& header); + bool matchesUnifiedHunkLine(const QString &line) const; + void checkHeader(const QRegularExpression &header); protected: /** What is format of the diff */ - virtual enum Kompare::Format determineFormat(); + virtual Format determineFormat(); protected: // Regexps for context parsing - QRegExp m_contextDiffHeader1; - QRegExp m_contextDiffHeader2; + QRegularExpression m_contextDiffHeader1; + QRegularExpression m_contextDiffHeader2; - QRegExp m_contextHunkHeader1; - QRegExp m_contextHunkHeader2; - QRegExp m_contextHunkHeader3; + QRegularExpression m_contextHunkHeader1; + QRegularExpression m_contextHunkHeader2; + QRegularExpression m_contextHunkHeader3; + QRegularExpressionMatch m_contextHunkHeader1Match; + QRegularExpressionMatch m_contextHunkHeader2Match; - QRegExp m_contextHunkBodyRemoved; - QRegExp m_contextHunkBodyAdded; - QRegExp m_contextHunkBodyChanged; - QRegExp m_contextHunkBodyContext; - QRegExp m_contextHunkBodyLine; // Added for convenience + QRegularExpression m_contextHunkBodyRemoved; + QRegularExpression m_contextHunkBodyAdded; + QRegularExpression m_contextHunkBodyChanged; + QRegularExpression m_contextHunkBodyContext; + QRegularExpression m_contextHunkBodyLine; // Added for convenience // Regexps for normal parsing - QRegExp m_normalDiffHeader; + QRegularExpression m_normalDiffHeader; - QRegExp m_normalHunkHeaderAdded; - QRegExp m_normalHunkHeaderRemoved; - QRegExp m_normalHunkHeaderChanged; + QRegularExpression m_normalHunkHeaderAdded; + QRegularExpression m_normalHunkHeaderRemoved; + QRegularExpression m_normalHunkHeaderChanged; + QRegularExpressionMatch m_normalHunkHeaderAddedMatch; + QRegularExpressionMatch m_normalHunkHeaderRemovedMatch; + QRegularExpressionMatch m_normalHunkHeaderChangedMatch; - QRegExp m_normalHunkBodyRemoved; - QRegExp m_normalHunkBodyAdded; - QRegExp m_normalHunkBodyDivider; + QRegularExpression m_normalHunkBodyRemoved; + QRegularExpression m_normalHunkBodyAdded; + QRegularExpression m_normalHunkBodyDivider; - enum Difference::Type m_normalDiffType; + Difference::Type m_normalDiffType; // RegExps for rcs parsing - QRegExp m_rcsDiffHeader; + QRegularExpression m_rcsDiffHeader; // Regexps for unified parsing - QRegExp m_unifiedDiffHeader1; - QRegExp m_unifiedDiffHeader2; - - QRegExp m_unifiedHunkHeader; + QRegularExpression m_unifiedDiffHeader1; + QRegularExpression m_unifiedDiffHeader2; - QRegExp m_unifiedHunkBodyAdded; - QRegExp m_unifiedHunkBodyRemoved; - QRegExp m_unifiedHunkBodyContext; - QRegExp m_unifiedHunkBodyLine; // Added for convenience + QRegularExpression m_unifiedHunkHeader; + QRegularExpressionMatch m_unifiedHunkHeaderMatch; protected: - const QStringList& m_diffLines; - DiffModel* m_currentModel; - DiffModelList* m_models; + const QStringList &m_diffLines; + DiffModel *m_currentModel = nullptr; + DiffModelList *m_models = nullptr; QStringList::ConstIterator m_diffIterator; - bool m_singleFileDiff; - bool m_malformed; + bool m_singleFileDiff = false; + bool m_malformed = false; protected: - const KompareModelList* m_list; + const ModelList *m_list; }; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif diff --git a/src/perforceparser.cpp b/src/perforceparser.cpp index fed37ca..90b7007 100644 --- a/src/perforceparser.cpp +++ b/src/perforceparser.cpp @@ -1,113 +1,102 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ #include "perforceparser.h" -#include - -#include +// lib #include "diffmodel.h" +#include +// Qt +#include -using namespace Diff2; +using namespace KompareDiff2; -PerforceParser::PerforceParser(const KompareModelList* list, const QStringList& diff) : ParserBase(list, diff) +PerforceParser::PerforceParser(const ModelList *list, const QStringList &diff) + : ParserBase(list, diff) { - m_contextDiffHeader1.setPattern(QStringLiteral("==== (.*) - (.*) ====\\n")); - m_contextDiffHeader1.setMinimal(true); - m_normalDiffHeader.setPattern(QStringLiteral("==== (.*) - (.*) ====\\n")); - m_normalDiffHeader.setMinimal(true); - m_rcsDiffHeader.setPattern(QStringLiteral("==== (.*) - (.*) ====\\n")); - m_rcsDiffHeader.setMinimal(true); - m_unifiedDiffHeader1.setPattern(QStringLiteral("==== (.*) - (.*) ====\\n")); - m_unifiedDiffHeader1.setMinimal(true); + m_contextDiffHeader1.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("==== (.*) - (.*) ====\\n"))); + m_contextDiffHeader1.setPatternOptions(QRegularExpression::InvertedGreedinessOption); + m_normalDiffHeader.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("==== (.*) - (.*) ====\\n"))); + m_normalDiffHeader.setPatternOptions(QRegularExpression::InvertedGreedinessOption); + m_rcsDiffHeader.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("==== (.*) - (.*) ====\\n"))); + m_rcsDiffHeader.setPatternOptions(QRegularExpression::InvertedGreedinessOption); + m_unifiedDiffHeader1.setPattern(QRegularExpression::anchoredPattern(QStringLiteral("==== (.*) - (.*) ====\\n"))); + m_unifiedDiffHeader1.setPatternOptions(QRegularExpression::InvertedGreedinessOption); } -PerforceParser::~PerforceParser() -{ -} +PerforceParser::~PerforceParser() = default; -enum Kompare::Format PerforceParser::determineFormat() +Format PerforceParser::determineFormat() { - qCDebug(LIBKOMPAREDIFF2) << "Determining the format of the Perforce Diff"; + qCDebug(KOMPAREDIFF2_LOG) << "Determining the format of the Perforce Diff"; - QRegExp unifiedRE(QStringLiteral("^@@")); - QRegExp contextRE(QStringLiteral("^\\*{15}")); - QRegExp normalRE(QStringLiteral("^\\d+(|,\\d+)[acd]\\d+(|,\\d+)")); - QRegExp rcsRE(QStringLiteral("^[acd]\\d+ \\d+")); + QRegularExpression unifiedRE(QStringLiteral("^@@")); + QRegularExpression contextRE(QStringLiteral("^\\*{15}")); + QRegularExpression normalRE(QStringLiteral("^\\d+(|,\\d+)[acd]\\d+(|,\\d+)")); + QRegularExpression rcsRE(QStringLiteral("^[acd]\\d+ \\d+")); // Summary is not supported since it gives no useful parsable info - QStringList::ConstIterator it = m_diffLines.begin(); - - while (it != m_diffLines.end()) - { - if (it->indexOf(unifiedRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Unified diff..."; - return Kompare::Unified; + for (const QString &diffLine : std::as_const(m_diffLines)) { + if (diffLine.indexOf(unifiedRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Unified diff..."; + return Unified; } - else if (it->indexOf(contextRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Context diff..."; - return Kompare::Context; + if (diffLine.indexOf(contextRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Context diff..."; + return Context; } - else if (it->indexOf(normalRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a Normal diff..."; - return Kompare::Normal; + if (diffLine.indexOf(normalRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a Normal diff..."; + return Normal; } - else if (it->indexOf(rcsRE, 0) == 0) - { - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from a RCS diff..."; - return Kompare::RCS; + if (diffLine.indexOf(rcsRE, 0) == 0) { + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from a RCS diff..."; + return RCS; } - ++it; } - qCDebug(LIBKOMPAREDIFF2) << "Difflines are from an unknown diff..."; - return Kompare::UnknownFormat; + qCDebug(KOMPAREDIFF2_LOG) << "Difflines are from an unknown diff..."; + return UnknownFormat; } bool PerforceParser::parseContextDiffHeader() { -// qCDebug(LIBKOMPAREDIFF2) << "ParserBase::parseContextDiffHeader()"; +// qCDebug(KOMPAREDIFF2_LOG) << "ParserBase::parseContextDiffHeader()"; bool result = false; QStringList::ConstIterator itEnd = m_diffLines.end(); - QRegExp sourceFileRE(QStringLiteral("([^\\#]+)#(\\d+)")); - QRegExp destinationFileRE(QStringLiteral("([^\\#]+)#(|\\d+)")); + const QRegularExpression sourceFileRE(QRegularExpression::anchoredPattern(QStringLiteral("([^\\#]+)#(\\d+)"))); + const QRegularExpression destinationFileRE(QRegularExpression::anchoredPattern(QStringLiteral("([^\\#]+)#(|\\d+)"))); - while (m_diffIterator != itEnd) - { - if (m_contextDiffHeader1.exactMatch(*(m_diffIterator)++)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Matched length Header1 = " << m_contextDiffHeader1.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched string Header1 = " << m_contextDiffHeader1.cap( 0 ); -// qCDebug(LIBKOMPAREDIFF2) << "First capture Header1 = " << m_contextDiffHeader1.cap( 1 ); -// qCDebug(LIBKOMPAREDIFF2) << "Second capture Header1 = " << m_contextDiffHeader1.cap( 2 ); + while (m_diffIterator != itEnd) { + const auto contextDiffHeader1Match = m_contextDiffHeader1.match(*(m_diffIterator)++); + if (contextDiffHeader1Match.hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header1 = " << contextDiffHeader1Match.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header1 = " << contextDiffHeader1Match.captured( 0 ); +// qCDebug(KOMPAREDIFF2_LOG) << "First capture Header1 = " << contextDiffHeader1Match.captured( 1 ); +// qCDebug(KOMPAREDIFF2_LOG) << "Second capture Header1 = " << contextDiffHeader1Match.captured( 2 ); m_currentModel = new DiffModel(); - sourceFileRE.exactMatch(m_contextDiffHeader1.cap(1)); - destinationFileRE.exactMatch(m_contextDiffHeader1.cap(2)); - qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << sourceFileRE.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << destinationFileRE.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << sourceFileRE.capturedTexts(); - qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << destinationFileRE.capturedTexts(); - qCDebug(LIBKOMPAREDIFF2) << "Source File : " << sourceFileRE.cap(1); - qCDebug(LIBKOMPAREDIFF2) << "Destination File : " << destinationFileRE.cap(1); - m_currentModel->setSourceFile(sourceFileRE.cap(1)); - m_currentModel->setDestinationFile(destinationFileRE.cap(1)); + const auto sourceFileREMatch = sourceFileRE.match(contextDiffHeader1Match.captured(1)); + const auto destinationFileREMatch = destinationFileRE.match(contextDiffHeader1Match.captured(2)); + qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << sourceFileREMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << destinationFileREMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << sourceFileREMatch.capturedTexts(); + qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << destinationFileREMatch.capturedTexts(); + qCDebug(KOMPAREDIFF2_LOG) << "Source File : " << sourceFileREMatch.captured(1); + qCDebug(KOMPAREDIFF2_LOG) << "Destination File : " << destinationFileREMatch.captured(1); + m_currentModel->setSourceFile(sourceFileREMatch.captured(1)); + m_currentModel->setDestinationFile(destinationFileREMatch.captured(1)); result = true; break; - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << m_contextDiffHeader1.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << m_contextDiffHeader1.capturedTexts(); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << contextDiffHeader1Match.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << contextDiffHeader1Match.capturedTexts(); } } @@ -120,40 +109,37 @@ bool PerforceParser::parseNormalDiffHeader() QStringList::ConstIterator itEnd = m_diffLines.end(); - QRegExp sourceFileRE(QStringLiteral("([^\\#]+)#(\\d+)")); - QRegExp destinationFileRE(QStringLiteral("([^\\#]+)#(|\\d+)")); + QRegularExpression sourceFileRE(QRegularExpression::anchoredPattern(QStringLiteral("([^\\#]+)#(\\d+)"))); + QRegularExpression destinationFileRE(QRegularExpression::anchoredPattern(QStringLiteral("([^\\#]+)#(|\\d+)"))); - while (m_diffIterator != itEnd) - { - qCDebug(LIBKOMPAREDIFF2) << "Line = " << *m_diffIterator; - qCDebug(LIBKOMPAREDIFF2) << "String length = " << (*m_diffIterator).length(); - if (m_normalDiffHeader.exactMatch(*(m_diffIterator)++)) - { - qCDebug(LIBKOMPAREDIFF2) << "Matched length Header1 = " << m_normalDiffHeader.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Matched string Header1 = " << m_normalDiffHeader.cap(0); - qCDebug(LIBKOMPAREDIFF2) << "First capture Header1 = \"" << m_normalDiffHeader.cap(1) << "\""; - qCDebug(LIBKOMPAREDIFF2) << "Second capture Header1 = \"" << m_normalDiffHeader.cap(2) << "\""; + while (m_diffIterator != itEnd) { + qCDebug(KOMPAREDIFF2_LOG) << "Line = " << *m_diffIterator; + qCDebug(KOMPAREDIFF2_LOG) << "String length = " << (*m_diffIterator).length(); + const auto normalDiffHeaderMatch = m_normalDiffHeader.match(*(m_diffIterator)++); + if (normalDiffHeaderMatch.hasMatch()) { + qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header1 = " << normalDiffHeaderMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header1 = " << normalDiffHeaderMatch.captured(0); + qCDebug(KOMPAREDIFF2_LOG) << "First capture Header1 = \"" << normalDiffHeaderMatch.captured(1) << "\""; + qCDebug(KOMPAREDIFF2_LOG) << "Second capture Header1 = \"" << normalDiffHeaderMatch.captured(2) << "\""; m_currentModel = new DiffModel(); - sourceFileRE.exactMatch(m_normalDiffHeader.cap(1)); - destinationFileRE.exactMatch(m_normalDiffHeader.cap(2)); - qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << sourceFileRE.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << destinationFileRE.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << sourceFileRE.capturedTexts(); - qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << destinationFileRE.capturedTexts(); - qCDebug(LIBKOMPAREDIFF2) << "Source File : " << sourceFileRE.cap(1); - qCDebug(LIBKOMPAREDIFF2) << "Destination File : " << destinationFileRE.cap(1); - m_currentModel->setSourceFile(sourceFileRE.cap(1)); - m_currentModel->setDestinationFile(destinationFileRE.cap(1)); + const auto sourceFileREMatch = sourceFileRE.match(normalDiffHeaderMatch.captured(1)); + const auto destinationFileREMatch = destinationFileRE.match(normalDiffHeaderMatch.captured(2)); + qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << sourceFileREMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << destinationFileREMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << sourceFileREMatch.capturedTexts(); + qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << destinationFileREMatch.capturedTexts(); + qCDebug(KOMPAREDIFF2_LOG) << "Source File : " << sourceFileREMatch.captured(1); + qCDebug(KOMPAREDIFF2_LOG) << "Destination File : " << destinationFileREMatch.captured(1); + m_currentModel->setSourceFile(sourceFileREMatch.captured(1)); + m_currentModel->setDestinationFile(destinationFileREMatch.captured(1)); result = true; break; - } - else - { - qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << m_normalDiffHeader.matchedLength(); - qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << m_normalDiffHeader.capturedTexts(); + } else { + qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << normalDiffHeaderMatch.capturedLength(); + qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << normalDiffHeaderMatch.capturedTexts(); } } @@ -171,43 +157,39 @@ bool PerforceParser::parseUnifiedDiffHeader() QStringList::ConstIterator itEnd = m_diffLines.end(); - QRegExp sourceFileRE(QStringLiteral("([^\\#]+)#(\\d+)")); - QRegExp destinationFileRE(QStringLiteral("([^\\#]+)#(|\\d+)")); + QRegularExpression sourceFileRE(QRegularExpression::anchoredPattern(QStringLiteral("([^\\#]+)#(\\d+)"))); + QRegularExpression destinationFileRE(QRegularExpression::anchoredPattern(QStringLiteral("([^\\#]+)#(|\\d+)"))); - while (m_diffIterator != itEnd) - { -// qCDebug(LIBKOMPAREDIFF2) << "Line = " << *m_diffIterator; -// qCDebug(LIBKOMPAREDIFF2) << "String length = " << (*m_diffIterator).length(); - if (m_unifiedDiffHeader1.exactMatch(*(m_diffIterator)++)) - { -// qCDebug(LIBKOMPAREDIFF2) << "Matched length Header1 = " << m_unifiedDiffHeader1.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched string Header1 = " << m_unifiedDiffHeader1.cap( 0 ); -// qCDebug(LIBKOMPAREDIFF2) << "First capture Header1 = \"" << m_unifiedDiffHeader1.cap( 1 ) << "\""; -// qCDebug(LIBKOMPAREDIFF2) << "Second capture Header1 = \"" << m_unifiedDiffHeader1.cap( 2 ) << "\""; + while (m_diffIterator != itEnd) { +// qCDebug(KOMPAREDIFF2_LOG) << "Line = " << *m_diffIterator; +// qCDebug(KOMPAREDIFF2_LOG) << "String length = " << (*m_diffIterator).length(); + const auto unifiedDiffHeader1Match = m_unifiedDiffHeader1.match(*(m_diffIterator)++); + if (unifiedDiffHeader1Match.hasMatch()) { +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length Header1 = " << unifiedDiffHeader1Match.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched string Header1 = " << unifiedDiffHeader1Match.captured( 0 ); +// qCDebug(KOMPAREDIFF2_LOG) << "First capture Header1 = \"" << unifiedDiffHeader1Match.captured( 1 ) << "\""; +// qCDebug(KOMPAREDIFF2_LOG) << "Second capture Header1 = \"" << unifiedDiffHeader1Match.captured( 2 ) << "\""; m_currentModel = new DiffModel(); - sourceFileRE.exactMatch(m_unifiedDiffHeader1.cap(1)); - destinationFileRE.exactMatch(m_unifiedDiffHeader1.cap(2)); -// qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << sourceFileRE.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << destinationFileRE.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << sourceFileRE.capturedTexts(); -// qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << destinationFileRE.capturedTexts(); -// qCDebug(LIBKOMPAREDIFF2) << "Source File : " << sourceFileRE.cap( 1 ); -// qCDebug(LIBKOMPAREDIFF2) << "Destination File : " << destinationFileRE.cap( 1 ); - m_currentModel->setSourceFile(sourceFileRE.cap(1)); - m_currentModel->setDestinationFile(destinationFileRE.cap(1)); + const auto sourceFileREMatch = sourceFileRE.match(unifiedDiffHeader1Match.captured(1)); + const auto destinationFileREMatch = destinationFileRE.match(unifiedDiffHeader1Match.captured(2)); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << sourceFileREMatch.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << destinationFileREMatch.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << sourceFileREMatch.capturedTexts(); +// qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << destinationFileREMatch.capturedTexts(); +// qCDebug(KOMPAREDIFF2_LOG) << "Source File : " << sourceFileREMatch.captured( 1 ); +// qCDebug(KOMPAREDIFF2_LOG) << "Destination File : " << destinationFileREMatch.captured( 1 ); + m_currentModel->setSourceFile(sourceFileREMatch.captured(1)); + m_currentModel->setDestinationFile(destinationFileREMatch.captured(1)); result = true; break; - } - else - { -// qCDebug(LIBKOMPAREDIFF2) << "Matched length = " << m_unifiedDiffHeader1.matchedLength(); -// qCDebug(LIBKOMPAREDIFF2) << "Captured texts = " << m_unifiedDiffHeader1.capturedTexts(); + } else { +// qCDebug(KOMPAREDIFF2_LOG) << "Matched length = " << unifiedDiffHeader1Match.capturedLength(); +// qCDebug(KOMPAREDIFF2_LOG) << "Captured texts = " << unifiedDiffHeader1Match.capturedTexts(); } } return result; } - diff --git a/src/perforceparser.h b/src/perforceparser.h index 9880d67..dc82a36 100644 --- a/src/perforceparser.h +++ b/src/perforceparser.h @@ -1,21 +1,22 @@ /* -SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman + SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman -SPDX-License-Identifier: GPL-2.0-or-later + SPDX-License-Identifier: GPL-2.0-or-later */ -#ifndef PERFORCE_PARSER_H -#define PERFORCE_PARSER_H +#ifndef KOMPAREDIFF2_PERFORCEPARSER_H +#define KOMPAREDIFF2_PERFORCEPARSER_H +// lib #include "parserbase.h" -namespace Diff2 +namespace KompareDiff2 { class PerforceParser : public ParserBase { public: - PerforceParser(const KompareModelList* list, const QStringList& diff); + PerforceParser(const ModelList *list, const QStringList &diff); ~PerforceParser() override; protected: @@ -25,9 +26,9 @@ class PerforceParser : public ParserBase bool parseUnifiedDiffHeader() override; protected: - enum Kompare::Format determineFormat() override; + Format determineFormat() override; }; -} // End of namespace Diff2 +} // End of namespace KompareDiff2 #endif diff --git a/src/settingsbase.cpp b/src/settingsbase.cpp deleted file mode 100644 index 3dcf350..0000000 --- a/src/settingsbase.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* -SPDX-FileCopyrightText: 2001 Otto Bruggeman -SPDX-FileCopyrightText: 2001 John Firebaugh - -SPDX-License-Identifier: GPL-2.0-or-later -*/ - -#include "settingsbase.h" - -#include - -SettingsBase::SettingsBase(QWidget* parent) : QObject(parent) -{ - -} - -SettingsBase::~SettingsBase() -{ - -} - -void SettingsBase::loadSettings(KConfig* /* config */) -{ -} - -void SettingsBase::saveSettings(KConfig* /* config */) -{ -} - diff --git a/src/settingsbase.h b/src/settingsbase.h deleted file mode 100644 index d14296d..0000000 --- a/src/settingsbase.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -SPDX-FileCopyrightText: 2001 Otto Bruggeman -SPDX-FileCopyrightText: 2001 John Firebaugh - -SPDX-License-Identifier: GPL-2.0-or-later -*/ - -#ifndef SETTINGSBASE_H -#define SETTINGSBASE_H - -#include - -#include "diff2_export.h" - -class QWidget; -class KConfig; - -/** - * Base class for settings classes. - */ -class DIFF2_EXPORT SettingsBase : public QObject -{ - Q_OBJECT -public: - explicit SettingsBase(QWidget* parent); - ~SettingsBase() override; - -public: - virtual void loadSettings(KConfig* config); - virtual void saveSettings(KConfig* config); -}; - -#endif diff --git a/src/stringlistpair.cpp b/src/stringlistpair.cpp index 44c53aa..5e45ce7 100644 --- a/src/stringlistpair.cpp +++ b/src/stringlistpair.cpp @@ -1,14 +1,15 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ #include "stringlistpair.h" +// Qt #include -using namespace Diff2; +using namespace KompareDiff2; unsigned int StringListPair::lengthFirst() const { @@ -30,26 +31,25 @@ MarkerList StringListPair::markerListSecond() const return m_markersSecond; } -void StringListPair::prependFirst(Marker* marker) +void StringListPair::prependFirst(Marker *marker) { m_markersFirst.prepend(marker); } -void StringListPair::prependSecond(Marker* marker) +void StringListPair::prependSecond(Marker *marker) { m_markersSecond.prepend(marker); } -StringListPair::StringListPair(const QStringList& first, const QStringList& second) - : m_first(first), m_second(second) -{ +StringListPair::StringListPair(const QStringList &first, const QStringList &second) + : m_first(first) + , m_second(second) // Do not forget about 1 virtual element - see LevenshteinTable - m_lengthFirst = first.length() + 1; - m_lengthSecond = second.length() + 1; - - m_hashesFirst = new unsigned int[m_lengthFirst]; - m_hashesSecond = new unsigned int[m_lengthSecond]; - + , m_lengthFirst(first.length() + 1) + , m_lengthSecond(second.length() + 1) + , m_hashesFirst(m_lengthFirst) + , m_hashesSecond(m_lengthSecond) +{ m_hashesFirst[0] = qHash(QString()); for (unsigned int i = 1; i < m_lengthFirst; ++i) { m_hashesFirst[i] = qHash(first[i - 1]); @@ -60,11 +60,7 @@ StringListPair::StringListPair(const QStringList& first, const QStringList& seco } } -StringListPair::~StringListPair() -{ - delete[] m_hashesFirst; - delete[] m_hashesSecond; -} +StringListPair::~StringListPair() = default; bool StringListPair::equal(unsigned int firstIndex, unsigned int secondIndex) const { diff --git a/src/stringlistpair.h b/src/stringlistpair.h index 4b876c0..ea09317 100644 --- a/src/stringlistpair.h +++ b/src/stringlistpair.h @@ -1,42 +1,49 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ -#ifndef STRINGLISTPAIR_H -#define STRINGLISTPAIR_H +#ifndef KOMPAREDIFF2_STRINGLISTPAIR_H +#define KOMPAREDIFF2_STRINGLISTPAIR_H -#include +// lib #include "marker.h" +// Qt +#include +// Std +#include -namespace Diff2 { +namespace KompareDiff2 +{ -class StringListPair { +class StringListPair +{ public: - StringListPair(const QStringList& first, const QStringList& second); + StringListPair(const QStringList &first, const QStringList &second); ~StringListPair(); bool equal(unsigned int firstIndex, unsigned int secondIndex) const; unsigned int lengthFirst() const; unsigned int lengthSecond() const; MarkerList markerListFirst() const; MarkerList markerListSecond() const; - void prependFirst(Marker* marker); - void prependSecond(Marker* marker); + void prependFirst(Marker *marker); + void prependSecond(Marker *marker); bool needFineGrainedOutput(unsigned int difference) const; const static bool allowReplace = false; + private: const QStringList m_first; const QStringList m_second; - unsigned int m_lengthFirst; - unsigned int m_lengthSecond; - unsigned int* m_hashesFirst; - unsigned int* m_hashesSecond; + const unsigned int m_lengthFirst; + const unsigned int m_lengthSecond; + std::vector m_hashesFirst; + std::vector m_hashesSecond; MarkerList m_markersFirst; MarkerList m_markersSecond; }; } -#endif // STRINGLISTPAIR_H +#endif // KOMPAREDIFF2_STRINGLISTPAIR_H diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 10d1885..5cb9f8f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -14,8 +14,8 @@ include_directories( ) ecm_qt_declare_logging_category(komparediff2_DBG_SRCS - HEADER komparediffdebug.h - IDENTIFIER LIBKOMPAREDIFF2 + HEADER komparediff2_logging.h + IDENTIFIER KOMPAREDIFF2_LOG CATEGORY_NAME "libkomparediff" ) @@ -26,43 +26,59 @@ target_sources(interactiveDiffTest PRIVATE ${LIB_SOURCE_DIR}/perforceparser.cpp ${LIB_SOURCE_DIR}/cvsdiffparser.cpp ${LIB_SOURCE_DIR}/difference.cpp + ${LIB_SOURCE_DIR}/differencestring.cpp ${LIB_SOURCE_DIR}/diffhunk.cpp ${LIB_SOURCE_DIR}/diffmodel.cpp + ${LIB_SOURCE_DIR}/diffmodel_p.cpp ${LIB_SOURCE_DIR}/diffmodellist.cpp ${LIB_SOURCE_DIR}/diffparser.cpp - ${LIB_SOURCE_DIR}/komparemodellist.cpp + ${LIB_SOURCE_DIR}/info.cpp + ${LIB_SOURCE_DIR}/modellist.cpp + ${LIB_SOURCE_DIR}/modellist_p.cpp ${LIB_SOURCE_DIR}/kompareprocess.cpp ${LIB_SOURCE_DIR}/parser.cpp ${LIB_SOURCE_DIR}/parserbase.cpp ${LIB_SOURCE_DIR}/stringlistpair.cpp - ${LIB_SOURCE_DIR}/kompare.cpp ${komparediff2_DBG_SRCS} ) add_test(NAME libkomparediff2-interactiveDiffTest COMMAND interactiveDiffTest) ecm_mark_as_test(interactiveDiffTest) -set_target_properties(interactiveDiffTest PROPERTIES COMPILE_FLAGS "-DDIFF2_EXPORT=") +# Configure export macros to be setup as with a static lib +# as the source files are reused for the tests. +# Saves doing a separate export header. +target_compile_definitions(interactiveDiffTest + PUBLIC + KOMPAREDIFF2_STATIC_DEFINE +) target_link_libraries(interactiveDiffTest - Qt5::Core - Qt5::Test - KF5::CoreAddons - KF5::I18n - KF5::XmlGui - KF5::KIOCore + Qt6::Core + Qt6::Test + KF6::CoreAddons + KF6::I18n + KF6::XmlGui + KF6::KIOCore ) add_executable(levenshteintest) target_sources(levenshteintest PRIVATE levenshteintest.cpp ${LIB_SOURCE_DIR}/difference.cpp + ${LIB_SOURCE_DIR}/differencestring.cpp ${LIB_SOURCE_DIR}/stringlistpair.cpp ${komparediff2_DBG_SRCS} ) add_test(NAME libkomparediff2-levenshteintest COMMAND levenshteintest) ecm_mark_as_test(levenshteintest) -set_target_properties(levenshteintest PROPERTIES COMPILE_FLAGS "-DDIFF2_EXPORT=") +# Configure export macros to be setup as with a static lib +# as the source files are reused for the tests. +# Saves doing a separate export header. +target_compile_definitions(levenshteintest + PUBLIC + KOMPAREDIFF2_STATIC_DEFINE +) target_link_libraries(levenshteintest - Qt5::Test - Qt5::Core + Qt6::Test + Qt6::Core ) diff --git a/tests/interactivedifftest.cpp b/tests/interactivedifftest.cpp index f4921b5..b6a930b 100644 --- a/tests/interactivedifftest.cpp +++ b/tests/interactivedifftest.cpp @@ -1,42 +1,53 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ #include "interactivedifftest.h" -#include +// lib #include "diffmodel.h" #include "diffmodellist.h" #include "parser.h" +// Qt +#include -using namespace Diff2; +using namespace KompareDiff2; -typedef QHash > DifferenceHash; +typedef QHash> DifferenceHash; Q_DECLARE_METATYPE(DifferenceHash); -typedef QHash > LineNumberHash; +typedef QHash> LineNumberHash; Q_DECLARE_METATYPE(LineNumberHash); -void InteractiveDiffTest::CompareDifferenceStringList(const DifferenceStringList& actual, const QStringList& expected) +void InteractiveDiffTest::CompareDifferenceStringList(const DifferenceStringList &actual, const QStringList &expected) { DifferenceStringListConstIterator actualIter; QStringList::const_iterator expectedIter; - for (actualIter = actual.constBegin(), expectedIter = expected.constBegin(); actualIter != actual.constEnd() && expectedIter != expected.constEnd(); ++actualIter, ++expectedIter) { + for (actualIter = actual.constBegin(), expectedIter = expected.constBegin(); actualIter != actual.constEnd() && expectedIter != expected.constEnd(); + ++actualIter, ++expectedIter) { QCOMPARE((*actualIter)->string(), *expectedIter); } if (actualIter != actual.constEnd()) { - QFAIL(QStringLiteral("Actual has too many items, starting with '%1', line %2").arg((*actualIter)->string()).arg(actualIter - actual.constBegin()).toLatin1().constData()); + QFAIL(QStringLiteral("Actual has too many items, starting with '%1', line %2") + .arg((*actualIter)->string()) + .arg(actualIter - actual.constBegin()) + .toLatin1() + .constData()); } if (expectedIter != expected.constEnd()) { - QFAIL(QStringLiteral("Actual has too few items, no match for '%1', line %2").arg(*expectedIter).arg(expectedIter - expected.constBegin()).toLatin1().constData()); + QFAIL(QStringLiteral("Actual has too few items, no match for '%1', line %2") + .arg(*expectedIter) + .arg(expectedIter - expected.constBegin()) + .toLatin1() + .constData()); } } // The most basic test - something is actually working void InteractiveDiffTest::testOneLineChange() { - DiffModel* model = new DiffModel(); + DiffModel *model = new DiffModel(); QStringList newLines; newLines << "newline\n"; QStringList oldLines; @@ -45,7 +56,7 @@ void InteractiveDiffTest::testOneLineChange() QCOMPARE(model->differences()->size(), 1); QCOMPARE(model->differenceCount(), 1); - const Difference* diff = model->differenceAt(0); + const Difference *diff = model->differenceAt(0); CompareDifferenceStringList(diff->sourceLines(), oldLines); CompareDifferenceStringList(diff->destinationLines(), newLines); QCOMPARE(diff->type(), int(Difference::Change)); @@ -53,15 +64,16 @@ void InteractiveDiffTest::testOneLineChange() void InteractiveDiffTest::testSameLine() { - DiffModel* model = new DiffModel(); + DiffModel *model = new DiffModel(); QStringList newLines; newLines << "oldline2\n"; QStringList oldLines; - oldLines << "oldline1\n" << "oldline2\n"; + oldLines << "oldline1\n" + << "oldline2\n"; model->linesChanged(oldLines, newLines, 2); QCOMPARE(model->differenceCount(), 1); - const Difference* diff = model->differenceAt(0); + const Difference *diff = model->differenceAt(0); CompareDifferenceStringList(diff->sourceLines(), QStringList() << "oldline1\n"); CompareDifferenceStringList(diff->destinationLines(), QStringList()); QCOMPARE(diff->type(), int(Difference::Delete)); @@ -72,10 +84,10 @@ void InteractiveDiffTest::testDifferenceContents() QFETCH(QStringList, patch); Parser parser(nullptr); bool malformed; - DiffModelList* models = parser.parse(patch, &malformed); + DiffModelList *models = parser.parse(patch, &malformed); QVERIFY(!malformed); QCOMPARE(models->size(), 1); - DiffModel* model = models->at(0); + DiffModel *model = models->at(0); QFETCH(QStringList, oldLines); QFETCH(QStringList, newLines); @@ -88,7 +100,7 @@ void InteractiveDiffTest::testDifferenceContents() QFETCH(DifferenceHash, expectedDifferences); for (DifferenceHash::ConstIterator iter = expectedDifferences.constBegin(); iter != expectedDifferences.constEnd(); ++iter) { - const Difference* diff = model->differenceAt(iter.key()); + const Difference *diff = model->differenceAt(iter.key()); CompareDifferenceStringList(diff->sourceLines(), iter.value().first); CompareDifferenceStringList(diff->destinationLines(), iter.value().second); } @@ -97,8 +109,8 @@ void InteractiveDiffTest::testDifferenceContents() void InteractiveDiffTest::testDifferenceContents_data() { QTest::addColumn("patch"); - QTest::addColumn("oldLines"); // lines that are replaced - QTest::addColumn("newLines"); // replacement lines + QTest::addColumn("oldLines"); // lines that are replaced + QTest::addColumn("newLines"); // replacement lines QTest::addColumn("editLineNumber"); QTest::addColumn("isAlreadyApplied"); QTest::addColumn("expectedDifferenceCount"); @@ -106,26 +118,31 @@ void InteractiveDiffTest::testDifferenceContents_data() { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,5 +1,5 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - " efgh\n" << - "-delete2\n" << - "+insert2\n" << - " ijkl\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,5 +1,5 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << " efgh\n" + << "-delete2\n" + << "+insert2\n" + << " ijkl\n"; QStringList newLines; - newLines << "newline1\n" << "newline2\n"; + newLines << "newline1\n" + << "newline2\n"; QStringList oldLines; oldLines << "efgh\n"; QStringList sourceLines; - sourceLines << "delete1\n" << "efgh\n" << "delete2\n"; + sourceLines << "delete1\n" + << "efgh\n" + << "delete2\n"; QStringList destinationLines; - destinationLines << "insert1\n" << "newline1\n" << "newline2\n" << "insert2\n"; + destinationLines << "insert1\n" + << "newline1\n" + << "newline2\n" + << "insert2\n"; DifferenceHash expectedDifferences; expectedDifferences.insert(0, qMakePair(sourceLines, destinationLines)); @@ -133,25 +150,28 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; newLines << "newline1\n"; QStringList oldLines; oldLines << "efgh\n"; QStringList sourceLines; - sourceLines << "delete1\n" << "delete2\n" << "efgh\n"; + sourceLines << "delete1\n" + << "delete2\n" + << "efgh\n"; QStringList destinationLines; - destinationLines << "insert1\n" << "insert2\n" << "newline1\n"; + destinationLines << "insert1\n" + << "insert2\n" + << "newline1\n"; DifferenceHash expectedDifferences; expectedDifferences.insert(0, qMakePair(sourceLines, destinationLines)); @@ -160,14 +180,13 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,3 +1,3 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,3 +1,3 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << " efgh\n"; QStringList newLines; newLines << "delete1\n"; @@ -177,33 +196,32 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,3 +1,2 @@\n" << - " abcd\n" << - "-delete1\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,3 +1,2 @@\n" + << " abcd\n" + << "-delete1\n" + << " efgh\n"; QStringList newLines; - newLines << "abcd\n" << "delete1\n"; + newLines << "abcd\n" + << "delete1\n"; QStringList oldLines; oldLines << "abcd\n"; QTest::newRow("Revert deletion") << patch << oldLines << newLines << 1 << true << 0 << DifferenceHash(); } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,5 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - "+insert3\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,5 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << "+insert3\n" + << " efgh\n"; QStringList newLines; newLines << "delete2\n"; @@ -217,25 +235,32 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; - newLines << "newline1\n" << "newline2\n"; + newLines << "newline1\n" + << "newline2\n"; QStringList oldLines; - oldLines << "abcd\n" << "insert1\n" << "insert2\n" << "efgh\n"; + oldLines << "abcd\n" + << "insert1\n" + << "insert2\n" + << "efgh\n"; QStringList sourceLines; - sourceLines << "abcd\n" << "delete1\n" << "delete2\n" << "efgh\n"; + sourceLines << "abcd\n" + << "delete1\n" + << "delete2\n" + << "efgh\n"; QStringList destinationLines; - destinationLines << "newline1\n" << "newline2\n"; + destinationLines << "newline1\n" + << "newline2\n"; DifferenceHash expectedDifferences; expectedDifferences.insert(0, qMakePair(sourceLines, destinationLines)); @@ -244,25 +269,30 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; - newLines << "newline1\n" << "newline2\n"; + newLines << "newline1\n" + << "newline2\n"; QStringList oldLines; - oldLines << "insert2\n" << "efgh\n"; + oldLines << "insert2\n" + << "efgh\n"; QStringList sourceLines; - sourceLines << "delete1\n" << "delete2\n" << "efgh\n"; + sourceLines << "delete1\n" + << "delete2\n" + << "efgh\n"; QStringList destinationLines; - destinationLines << "insert1\n" << "newline1\n" << "newline2\n"; + destinationLines << "insert1\n" + << "newline1\n" + << "newline2\n"; DifferenceHash expectedDifferences; expectedDifferences.insert(0, qMakePair(sourceLines, destinationLines)); @@ -271,13 +301,12 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,2 +1,3 @@\n" << - " abcd\n" << - "+\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,2 +1,3 @@\n" + << " abcd\n" + << "+\n" + << " efgh\n"; QStringList newLines; newLines << "a\n"; @@ -290,22 +319,21 @@ void InteractiveDiffTest::testDifferenceContents_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,3 +1,3 @@\n" << - " abcd\n" << - "+insert1\n" << - "+insert2\n" << - "+insert3\n" << - "+insert4\n" << - "+insert5\n" << - " efgh\n" << - "@@ -10,3 +15,3 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,3 +1,3 @@\n" + << " abcd\n" + << "+insert1\n" + << "+insert2\n" + << "+insert3\n" + << "+insert4\n" + << "+insert5\n" + << " efgh\n" + << "@@ -10,3 +15,3 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << " efgh\n"; QStringList newLines; newLines << "newline1\n"; @@ -321,35 +349,36 @@ void InteractiveDiffTest::testDifferenceContents_data() void InteractiveDiffTest::testLineNumbers_data() { QTest::addColumn("patch"); - QTest::addColumn("oldLines"); // lines that are replaced - QTest::addColumn("newLines"); // replacement lines + QTest::addColumn("oldLines"); // lines that are replaced + QTest::addColumn("newLines"); // replacement lines QTest::addColumn("editLineNumber"); QTest::addColumn("expectedDifferenceCount"); QTest::addColumn("expectedLineNumbers"); { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,6 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - "+insert3\n" << - "+insert4\n" << - " efgh\n" << - "@@ -15,3 +17,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,6 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << "+insert3\n" + << "+insert4\n" + << " efgh\n" + << "@@ -15,3 +17,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; - newLines << "newline1\n" << "newline2\n" << "newline2\n"; + newLines << "newline1\n" + << "newline2\n" + << "newline2\n"; QStringList oldLines; oldLines << "oldline1\n"; LineNumberHash expectedLineNumbers; @@ -359,24 +388,23 @@ void InteractiveDiffTest::testLineNumbers_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,6 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - "+insert3\n" << - "+insert4\n" << - " efgh\n" << - "@@ -15,3 +17,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,6 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << "+insert3\n" + << "+insert4\n" + << " efgh\n" + << "@@ -15,3 +17,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; newLines << "newline1\n"; @@ -390,24 +418,23 @@ void InteractiveDiffTest::testLineNumbers_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,4 +1,6 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - "+insert3\n" << - "+insert4\n" << - " efgh\n" << - "@@ -15,3 +17,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,4 +1,6 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << "+insert3\n" + << "+insert4\n" + << " efgh\n" + << "@@ -15,3 +17,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; newLines << "newline1\n"; @@ -421,16 +448,15 @@ void InteractiveDiffTest::testLineNumbers_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -10,4 +10,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "-delete2\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -10,4 +10,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "-delete2\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n"; QStringList newLines; newLines << "newline1\n"; @@ -444,29 +470,28 @@ void InteractiveDiffTest::testLineNumbers_data() } { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" << - "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" << - "@@ -1,3 +1,4 @@\n" << - " abcd\n" << - "-delete1\n" << - "+insert1\n" << - "+insert2\n" << - " efgh\n" << - "@@ -11,4 +12,5 @@\n" << - " abcd\n" << - "-delete2\n" << - "-delete3\n" << - "+insert3\n" << - "+insert4\n" << - "+insert5\n" << - " efgh\n" << - "@@ -21,4 +23,3 @@\n" << - " abcd\n" << - "-delete4\n" << - "-delete5\n" << - "+insert6\n" << - " efgh\n"; + patch << "--- file1\t2011-01-01 20:23:45.000000000 +0300\n" + << "+++ file2\t2011-01-01 20:24:02.000000000 +0300\n" + << "@@ -1,3 +1,4 @@\n" + << " abcd\n" + << "-delete1\n" + << "+insert1\n" + << "+insert2\n" + << " efgh\n" + << "@@ -11,4 +12,5 @@\n" + << " abcd\n" + << "-delete2\n" + << "-delete3\n" + << "+insert3\n" + << "+insert4\n" + << "+insert5\n" + << " efgh\n" + << "@@ -21,4 +23,3 @@\n" + << " abcd\n" + << "-delete4\n" + << "-delete5\n" + << "+insert6\n" + << " efgh\n"; QStringList newLines; newLines << "delete2\n"; @@ -487,10 +512,10 @@ void InteractiveDiffTest::testLineNumbers() QFETCH(QStringList, patch); Parser parser(nullptr); bool malformed; - DiffModelList* models = parser.parse(patch, &malformed); + DiffModelList *models = parser.parse(patch, &malformed); QVERIFY(!malformed); QCOMPARE(models->size(), 1); - DiffModel* model = models->at(0); + DiffModel *model = models->at(0); model->applyAllDifferences(true); QFETCH(QStringList, oldLines); @@ -502,7 +527,7 @@ void InteractiveDiffTest::testLineNumbers() QFETCH(LineNumberHash, expectedLineNumbers); for (LineNumberHash::ConstIterator iter = expectedLineNumbers.constBegin(); iter != expectedLineNumbers.constEnd(); ++iter) { - const Difference* diff = model->differenceAt(iter.key()); + const Difference *diff = model->differenceAt(iter.key()); QCOMPARE(diff->sourceLineNumber(), iter.value().first); QCOMPARE(diff->trackingDestinationLineNumber(), iter.value().second); } @@ -511,11 +536,11 @@ void InteractiveDiffTest::testLineNumbers() // When the new diff and an existing unapplied one are on neighbour lines, do not merge the unapplied with the new. void InteractiveDiffTest::testAppliedTouch() { - Difference* first = new Difference(2, 2); + Difference *first = new Difference(2, 2); first->addSourceLine(QString("delete1")); first->addDestinationLine(QString("insert1")); first->apply(false); - Difference* second = new Difference(4, 4); + Difference *second = new Difference(4, 4); second->addSourceLine(QString("delete2")); second->addDestinationLine(QString("insert2")); second->apply(false); @@ -531,13 +556,13 @@ void InteractiveDiffTest::testAppliedTouch() // When the new diff and an existing unapplied one intersect, the unapplied one should be removed void InteractiveDiffTest::testAppliedIntersect() { - Difference* first = new Difference(2, 2); + Difference *first = new Difference(2, 2); first->addSourceLine(QString("delete1")); first->addSourceLine(QString("delete2")); first->addDestinationLine(QString("insert1")); first->addDestinationLine(QString("insert2")); first->apply(false); - Difference* second = new Difference(5, 5); + Difference *second = new Difference(5, 5); second->addSourceLine(QString("delete3")); second->addSourceLine(QString("delete4")); second->addDestinationLine(QString("insert3")); @@ -547,12 +572,14 @@ void InteractiveDiffTest::testAppliedIntersect() model.addDiff(first); model.addDiff(second); QStringList removedLines; - removedLines << "delete2\n" << "oldline1\n" << "delete3\n"; + removedLines << "delete2\n" + << "oldline1\n" + << "delete3\n"; QStringList insertedLines; insertedLines << "newline1\n"; model.linesChanged(removedLines, insertedLines, 3); QCOMPARE(model.differenceCount(), 1); - const Difference* newDiff = model.differenceAt(0); + const Difference *newDiff = model.differenceAt(0); QCOMPARE(newDiff->applied(), true); QCOMPARE(newDiff->sourceLineNumber(), 3); QCOMPARE(newDiff->trackingDestinationLineNumber(), 3); @@ -562,11 +589,11 @@ void InteractiveDiffTest::testAppliedIntersect() void InteractiveDiffTest::testExistingAndApplied() { - Difference* first = new Difference(2, 2); + Difference *first = new Difference(2, 2); first->addSourceLine(QString("delete1")); first->addDestinationLine(QString("insert1")); first->apply(true); - Difference* second = new Difference(3, 3); + Difference *second = new Difference(3, 3); second->addSourceLine(QString("delete2")); second->addDestinationLine(QString("insert2")); second->apply(false); @@ -585,7 +612,7 @@ void InteractiveDiffTest::testExistingAndApplied() void InteractiveDiffTest::testOneLineDeletionUnapplied() { - Difference* unappliedDeletion = new Difference(1, 1); + Difference *unappliedDeletion = new Difference(1, 1); unappliedDeletion->addSourceLine("delete1\n"); unappliedDeletion->apply(false); DiffModel model; @@ -596,7 +623,7 @@ void InteractiveDiffTest::testOneLineDeletionUnapplied() insertedLines << "newline1\n"; model.linesChanged(removedLines, insertedLines, 1); QCOMPARE(model.differenceCount(), 1); - const Difference* actual = model.differenceAt(0); + const Difference *actual = model.differenceAt(0); CompareDifferenceStringList(actual->sourceLines(), removedLines); CompareDifferenceStringList(actual->destinationLines(), insertedLines); } @@ -604,44 +631,43 @@ void InteractiveDiffTest::testOneLineDeletionUnapplied() void InteractiveDiffTest::testApplyUnapply() { QStringList patch; - patch << - "--- file1\t2011-01-01 20:23:45 +0300\n" << - "+++ file2\t2011-01-01 20:24:02 +0300\n" << - "@@ -1,3 +1,4 @@\n" << - " line1\n" << - "-delete1\n" << - "+insert1\n" << - "+insert2\n" << - " line2\n" << - "@@ -11,4 +12,5 @@\n" << - " line3\n" << - "-delete2\n" << - "-delete3\n" << - "+insert3\n" << - "+insert4\n" << - "+insert5\n" << - " line4\n" << - "@@ -21,4 +23,2 @@\n" << - " line5\n" << - "-delete4\n" << - "-delete5\n" << - " line6\n" << - "@@ -31,3 +31,3 @@\n" << - " line7\n" << - "-delete6\n" << - "+insert6\n" << - " line8\n"; + patch << "--- file1\t2011-01-01 20:23:45 +0300\n" + << "+++ file2\t2011-01-01 20:24:02 +0300\n" + << "@@ -1,3 +1,4 @@\n" + << " line1\n" + << "-delete1\n" + << "+insert1\n" + << "+insert2\n" + << " line2\n" + << "@@ -11,4 +12,5 @@\n" + << " line3\n" + << "-delete2\n" + << "-delete3\n" + << "+insert3\n" + << "+insert4\n" + << "+insert5\n" + << " line4\n" + << "@@ -21,4 +23,2 @@\n" + << " line5\n" + << "-delete4\n" + << "-delete5\n" + << " line6\n" + << "@@ -31,3 +31,3 @@\n" + << " line7\n" + << "-delete6\n" + << "+insert6\n" + << " line8\n"; Parser parser(nullptr); bool malformed; - DiffModelList* models = parser.parse(patch, &malformed); + DiffModelList *models = parser.parse(patch, &malformed); QVERIFY(!malformed); QCOMPARE(models->size(), 1); - DiffModel* model = models->at(0); + DiffModel *model = models->at(0); QCOMPARE(model->differenceCount(), 4); model->applyAllDifferences(true); const auto differences = *model->differences(); - for (Difference* diff : differences) { + for (Difference *diff : differences) { QVERIFY(diff->applied()); } model->applyAllDifferences(false); @@ -717,56 +743,66 @@ void InteractiveDiffTest::testApplyUnapply() QCOMPARE(model->differenceAt(3)->trackingDestinationLineNumber(), 32); } -static void -contextDiff1() +static void contextDiff1() { QStringList patch; - patch << - "commit 7377fcc682e85ef9784adb2a2da2c8c6756f9018 (HEAD, KDE/4.11)\n" << - "Author: Dr. Chocholoušek \n" << - "AuthorDate: Sat Jan 25 17:30:01 2014 +0100\n" << - "\n" << - " Fake diff.\n" << - "\n" << - "diff --git a/libdiff2/diffmodel.cpp b/libdiff2/diffmodel.cpp\n" << - "new file mode 100644\n" << - "index a42e82d..a8da0c9\n" << - "*** a/libdiff2/diffmodel.cpp\n" << // note the missing timestamps - "--- b/libdiff2/diffmodel.cpp\n" << - "*************** DiffModel::DiffModel() :\n" << - "*** 58,64 ****\n" << - " m_sourceFile( "" ),\n" << - " m_destinationFile( "" ),\n" << - " m_sourceTimestamp( "" ),\n" << - "! m_destinationTimestamp( "" ),\n" << - " m_sourceRevision( "" ),\n" << - " m_destinationRevision( "" ),\n" << - " m_appliedCount( 0 ),\n" << - "--- 58,64 ----\n" << - " m_sourceFile( "" ),\n" << - " m_destinationFile( "" ),\n" << - " m_sourceTimestamp( "" ),\n" << - "! m_destinationTimestamp( \"doh\" ),\n" << - " m_sourceRevision( "" ),\n" << - " m_destinationRevision( "" ),\n" << - " m_appliedCount( 0 ),\n" << - "*************** void DiffModel::splitSourceInPathAndFile\n" << - "*** 84,89 ****\n" << - "--- 84,91 ----\n" << - " if( ( pos = m_source.lastIndexOf( \"/\" ) ) >= 0 )\n" << - " m_sourcePath = m_source.mid( 0, pos+1 );\n" << - " \n" << - "+ add_this;\n" << - "+ \n" << - " if( ( pos = m_source.lastIndexOf( \"/\" ) ) >= 0 )\n" << - " m_sourceFile = m_source.mid( pos+1, m_source.length() - pos );\n" << - " else\n"; + patch << "commit 7377fcc682e85ef9784adb2a2da2c8c6756f9018 (HEAD, KDE/4.11)\n" + << "Author: Dr. Chocholoušek \n" + << "AuthorDate: Sat Jan 25 17:30:01 2014 +0100\n" + << "\n" + << " Fake diff.\n" + << "\n" + << "diff --git a/libdiff2/diffmodel.cpp b/libdiff2/diffmodel.cpp\n" + << "new file mode 100644\n" + << "index a42e82d..a8da0c9\n" + << "*** a/libdiff2/diffmodel.cpp\n" + << // note the missing timestamps + "--- b/libdiff2/diffmodel.cpp\n" + << "*************** DiffModel::DiffModel() :\n" + << "*** 58,64 ****\n" + << " m_sourceFile( " + " ),\n" + << " m_destinationFile( " + " ),\n" + << " m_sourceTimestamp( " + " ),\n" + << "! m_destinationTimestamp( " + " ),\n" + << " m_sourceRevision( " + " ),\n" + << " m_destinationRevision( " + " ),\n" + << " m_appliedCount( 0 ),\n" + << "--- 58,64 ----\n" + << " m_sourceFile( " + " ),\n" + << " m_destinationFile( " + " ),\n" + << " m_sourceTimestamp( " + " ),\n" + << "! m_destinationTimestamp( \"doh\" ),\n" + << " m_sourceRevision( " + " ),\n" + << " m_destinationRevision( " + " ),\n" + << " m_appliedCount( 0 ),\n" + << "*************** void DiffModel::splitSourceInPathAndFile\n" + << "*** 84,89 ****\n" + << "--- 84,91 ----\n" + << " if( ( pos = m_source.lastIndexOf( \"/\" ) ) >= 0 )\n" + << " m_sourcePath = m_source.mid( 0, pos+1 );\n" + << " \n" + << "+ add_this;\n" + << "+ \n" + << " if( ( pos = m_source.lastIndexOf( \"/\" ) ) >= 0 )\n" + << " m_sourceFile = m_source.mid( pos+1, m_source.length() - pos );\n" + << " else\n"; Parser parser(nullptr); bool malformed; - DiffModelList* models = parser.parse(patch, &malformed); + DiffModelList *models = parser.parse(patch, &malformed); QVERIFY(!malformed); QCOMPARE(models->size(), 1); - DiffModel* model = models->at(0); + DiffModel *model = models->at(0); QCOMPARE(model->differenceCount(), 2); model->applyAllDifferences(true); QVERIFY(model->differenceAt(0)->applied()); @@ -776,30 +812,36 @@ contextDiff1() QCOMPARE(model->differenceAt(1)->trackingDestinationLineNumber(), 87); } -static void -contextDiff2() +static void contextDiff2() { QStringList patch; - patch << - "*** a/libdiff2/diffmodel.cpp\n" << - "--- b/libdiff2/diffmodel.cpp\n" << - "***************\n" << - "*** 55,60 **** DiffModel::DiffModel() :\n" << // note the context here - "--- 55,61 ----\n" << - " m_destination( "" ),\n" << - " m_sourcePath( "" ),\n" << - " m_destinationPath( "" ),\n" << - "+ m_hoh ( "" );\n" << - " m_sourceFile( "" ),\n" << - " m_destinationFile( "" ),\n" << - " m_sourceTimestamp( "" ),\n"; + patch << "*** a/libdiff2/diffmodel.cpp\n" + << "--- b/libdiff2/diffmodel.cpp\n" + << "***************\n" + << "*** 55,60 **** DiffModel::DiffModel() :\n" + << // note the context here + "--- 55,61 ----\n" + << " m_destination( " + " ),\n" + << " m_sourcePath( " + " ),\n" + << " m_destinationPath( " + " ),\n" + << "+ m_hoh ( " + " );\n" + << " m_sourceFile( " + " ),\n" + << " m_destinationFile( " + " ),\n" + << " m_sourceTimestamp( " + " ),\n"; Parser parser(nullptr); bool malformed; - DiffModelList* models = parser.parse(patch, &malformed); + DiffModelList *models = parser.parse(patch, &malformed); QVERIFY(!malformed); QCOMPARE(models->size(), 1); - DiffModel* model = models->at(0); + DiffModel *model = models->at(0); QCOMPARE(model->differenceCount(), 1); model->applyAllDifferences(true); QVERIFY(model->differenceAt(0)->applied()); @@ -816,17 +858,16 @@ void InteractiveDiffTest::testContextDiff() void InteractiveDiffTest::testNormalDiff() { QStringList patch; - patch << - "1c1\n" << - "< a\n" << - "---\n" << - "> b\n"; + patch << "1c1\n" + << "< a\n" + << "---\n" + << "> b\n"; Parser parser(nullptr); bool malformed; - DiffModelList* models = parser.parse(patch, &malformed); + DiffModelList *models = parser.parse(patch, &malformed); QVERIFY(!malformed); QCOMPARE(models->size(), 1); - DiffModel* model = models->at(0); + DiffModel *model = models->at(0); QCOMPARE(model->differenceCount(), 1); model->applyAllDifferences(true); QVERIFY(model->differenceAt(0)->applied()); @@ -835,3 +876,5 @@ void InteractiveDiffTest::testNormalDiff() } QTEST_GUILESS_MAIN(InteractiveDiffTest); + +#include "moc_interactivedifftest.cpp" diff --git a/tests/interactivedifftest.h b/tests/interactivedifftest.h index 2a14b82..9dd6b1b 100644 --- a/tests/interactivedifftest.h +++ b/tests/interactivedifftest.h @@ -1,15 +1,16 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ #ifndef INTERACTIVEDIFFTEST_H #define INTERACTIVEDIFFTEST_H -#include - +// lib #include "difference.h" +// Qt +#include class InteractiveDiffTest : public QObject { @@ -28,8 +29,9 @@ private Q_SLOTS: void testApplyUnapply(); void testContextDiff(); void testNormalDiff(); + private: - void CompareDifferenceStringList(const Diff2::DifferenceStringList& actual, const QStringList& expected); + void CompareDifferenceStringList(const KompareDiff2::DifferenceStringList &actual, const QStringList &expected); }; #endif // INTERACTIVEDIFFTEST_H diff --git a/tests/levenshteintest.cpp b/tests/levenshteintest.cpp index 9c55ff4..e79a5db 100644 --- a/tests/levenshteintest.cpp +++ b/tests/levenshteintest.cpp @@ -1,22 +1,26 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ #include "levenshteintest.h" -#include +// lib #include "difference.h" #include "differencestringpair.h" #include "levenshteintable.h" #include "stringlistpair.h" +// Qt +#include -using namespace Diff2; +using namespace KompareDiff2; -namespace QTest { +namespace QTest +{ -template<> char* toString(const Marker& marker) +template<> +char *toString(const Marker &marker) { QByteArray result = "Marker("; if (marker.type() == Marker::Start) { @@ -33,9 +37,9 @@ template<> char* toString(const Marker& marker) void LevenshteinTest::testFirstEmptyString() { - DifferenceString* string1 = new DifferenceString(QString("12345")); - DifferenceString* string2 = new DifferenceString(QString()); - DifferenceStringPair* pair = new DifferenceStringPair(string1, string2); + DifferenceString *string1 = new DifferenceString(QString("12345")); + DifferenceString *string2 = new DifferenceString(QString()); + DifferenceStringPair *pair = new DifferenceStringPair(string1, string2); LevenshteinTable table; table.createTable(pair); table.createListsOfMarkers(); @@ -53,9 +57,9 @@ void LevenshteinTest::testFirstEmptyString() void LevenshteinTest::testSecondEmptyString() { - DifferenceString* string1 = new DifferenceString(QString()); - DifferenceString* string2 = new DifferenceString(QString("12345")); - DifferenceStringPair* pair = new DifferenceStringPair(string1, string2); + DifferenceString *string1 = new DifferenceString(QString()); + DifferenceString *string2 = new DifferenceString(QString("12345")); + DifferenceStringPair *pair = new DifferenceStringPair(string1, string2); LevenshteinTable table; table.createTable(pair); table.createListsOfMarkers(); @@ -71,12 +75,11 @@ void LevenshteinTest::testSecondEmptyString() } } - void LevenshteinTest::testDifferenceStrings() { - DifferenceString* string1 = new DifferenceString(QString("aaabcddefghik")); - DifferenceString* string2 = new DifferenceString(QString("aabcefghijk")); - DifferenceStringPair* pair = new DifferenceStringPair(string1, string2); + DifferenceString *string1 = new DifferenceString(QString("aaabcddefghik")); + DifferenceString *string2 = new DifferenceString(QString("aabcefghijk")); + DifferenceStringPair *pair = new DifferenceStringPair(string1, string2); LevenshteinTable table; table.createTable(pair); table.createListsOfMarkers(); @@ -95,10 +98,21 @@ void LevenshteinTest::testDifferenceStrings() void LevenshteinTest::testStringLists() { QStringList list1; - list1 << "delete1" << "line1" << "line2" << "line3" << "delete2" << "delete3" << "line4"; + list1 << "delete1" + << "line1" + << "line2" + << "line3" + << "delete2" + << "delete3" + << "line4"; QStringList list2; - list2 << "line1" << "line2" << "line3" << "insert1" << "line4" << "insert2"; - StringListPair* pair = new StringListPair(list1, list2); + list2 << "line1" + << "line2" + << "line3" + << "insert1" + << "line4" + << "insert2"; + StringListPair *pair = new StringListPair(list1, list2); LevenshteinTable table; table.createTable(pair); table.createListsOfMarkers(); @@ -118,10 +132,16 @@ void LevenshteinTest::testStringLists() void LevenshteinTest::testSmth() { QStringList list1; - list1 << "insert1\n" << "newline1\n" << "newline2\n" << "insert2\n";; + list1 << "insert1\n" + << "newline1\n" + << "newline2\n" + << "insert2\n"; + ; QStringList list2; - list2 << "delete1\n" << "efgh\n" << "delete2\n"; - StringListPair* pair = new StringListPair(list1, list2); + list2 << "delete1\n" + << "efgh\n" + << "delete2\n"; + StringListPair *pair = new StringListPair(list1, list2); LevenshteinTable table; table.createTable(pair); table.createListsOfMarkers(); @@ -132,11 +152,12 @@ void LevenshteinTest::testSmth() QCOMPARE(*pair->markerListFirst()[i], *markersFirstExpected[i]); } MarkerList markersSecondExpected; - markersSecondExpected << new Marker(Marker::Start, 0) << new Marker(Marker::End, 3); + markersSecondExpected << new Marker(Marker::Start, 0) << new Marker(Marker::End, 3); for (int i = 0; i < markersSecondExpected.size(); ++i) { QCOMPARE(*pair->markerListSecond()[i], *markersSecondExpected[i]); } } - QTEST_GUILESS_MAIN(LevenshteinTest); + +#include "moc_levenshteintest.cpp" diff --git a/tests/levenshteintest.h b/tests/levenshteintest.h index c4b2347..76e0c58 100644 --- a/tests/levenshteintest.h +++ b/tests/levenshteintest.h @@ -1,12 +1,13 @@ /* -SPDX-FileCopyrightText: 2011 Dmitry Risenberg + SPDX-FileCopyrightText: 2011 Dmitry Risenberg -SPDX-License-Identifier: LGPL-2.0-or-later + SPDX-License-Identifier: LGPL-2.0-or-later */ #ifndef LEVENSHTEINTEST_H #define LEVENSHTEINTEST_H +// Qt #include class LevenshteinTest : public QObject