mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-31 10:46:16 +00:00
textproc/kdiff3: fix output of merged file
Fix spurious newlines and missing newline at the end of file. Upstream report: https://bugs.kde.org/show_bug.cgi?id=437570 Upstream merge request: https://invent.kde.org/sdk/kdiff3/-/merge_requests/31 PR: 256606 Reported by: emaste
This commit is contained in:
parent
0170dc011f
commit
efda9660cc
@ -1,5 +1,6 @@
|
||||
PORTNAME= kdiff3
|
||||
DISTVERSION= 1.9.2
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= textproc kde
|
||||
MASTER_SITES= KDE/stable/${PORTNAME}
|
||||
|
||||
|
50
textproc/kdiff3/files/patch-src_mergeresultwindow.cpp
Normal file
50
textproc/kdiff3/files/patch-src_mergeresultwindow.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
See https://invent.kde.org/sdk/kdiff3/-/merge_requests/31
|
||||
|
||||
When writing out files, don't treat removed lines as real lines,
|
||||
and append a newline to the whole output file.
|
||||
--- src/mergeresultwindow.cpp.orig 2021-05-17 17:26:58 UTC
|
||||
+++ src/mergeresultwindow.cpp
|
||||
@@ -2964,6 +2964,9 @@ bool MergeResultWindow::saveDocument(const QString& fi
|
||||
textOutStream.setGenerateByteOrderMark(true); // Only for UTF-16
|
||||
textOutStream.setCodec(pEncoding);
|
||||
|
||||
+ // Determine the line feed for this file
|
||||
+ const QString lineFeed(eLineEndStyle == eLineEndStyleDos ? QString("\r\n") : QString("\n"));
|
||||
+
|
||||
int line = 0;
|
||||
MergeLineList::iterator mlIt = m_mergeLineList.begin();
|
||||
for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt)
|
||||
@@ -2976,18 +2979,14 @@ bool MergeResultWindow::saveDocument(const QString& fi
|
||||
|
||||
if(mel.isEditableText())
|
||||
{
|
||||
- QString str = mel.getString(m_pldA, m_pldB, m_pldC);
|
||||
+ const QString str = mel.getString(m_pldA, m_pldB, m_pldC);
|
||||
|
||||
- if(line > 0) // Prepend line feed, but not for first line
|
||||
+ if(line > 0 && !mel.isRemoved())
|
||||
{
|
||||
- if(eLineEndStyle == eLineEndStyleDos)
|
||||
- {
|
||||
- str.prepend("\r\n");
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- str.prepend("\n");
|
||||
- }
|
||||
+ // Put line feed between lines, but not for the first line
|
||||
+ // or between lines that have been removed (because there
|
||||
+ // isn't a line there).
|
||||
+ textOutStream << lineFeed;
|
||||
}
|
||||
|
||||
textOutStream << str;
|
||||
@@ -2995,6 +2994,8 @@ bool MergeResultWindow::saveDocument(const QString& fi
|
||||
}
|
||||
}
|
||||
}
|
||||
+ // At the end of the stream, needs a newline
|
||||
+ textOutStream << lineFeed;
|
||||
textOutStream.flush();
|
||||
bool bSuccess = file.writeFile(dataArray.data(), dataArray.size());
|
||||
if(!bSuccess)
|
Loading…
Reference in New Issue
Block a user