https://bugs.kde.org/show_bug.cgi?id=524190

            Bug ID: 524190
           Summary: Rescan changes directory comparison into merge mode
    Classification: Applications
           Product: kdiff3
      Version First unspecified
       Reported In:
          Platform: Other
                OS: Microsoft Windows
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: application
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

SUMMARY

Using "Rescan" in a directory comparison changes the internal mode
from directory comparison to directory merge.

STEPS TO REPRODUCE

1. On Windows, start a comparison of two directories, for example
   using the Explorer context menu "Compare with...".
2. Double-click a file in the directory comparison.
   The file opens as a normal comparison.
3. Select Folder -> Rescan.
4. Double-click a file again.

OBSERVED RESULT

After "Rescan", KDiff3 behaves as if the directory comparison were
a directory merge.

This is especially easy to notice when a normal preprocessor is
configured:

Before Rescan, double-clicking a file opens it without a warning.

After Rescan, double-clicking a file shows the warning that the
preprocessor is unsafe during file merging.

EXPECTED RESULT

Rescan should preserve the current directory comparison/merge mode.

SOFTWARE/OS VERSIONS

KDiff3: 1.12.4
Operating System: Windows 11 x64

ADDITIONAL INFORMATION

The source code appears to explain the behavior.

DirectoryMergeWindow::reload() calls:

    init(true);

But init() is declared as:

    bool init(bool bDirectoryMerge, bool bReload = false);

Therefore reload() sets bDirectoryMerge to true and leaves bReload
false.

The current comparison/merge mode should probably be preserved,
for example:

    init(d->m_bDirectoryMerge, true);

The same init(true) call also appears to be present in the current
master branch.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to