Fix directory creation on destination
When a file not exists on destination directory, Kompare needs to create it. However, Kompare creates a directory instead.
Before the fix:
libkomparediff: KompareModelList::saveDestination:
libkomparediff: Tempfilename (save) : "/tmp/kompare.BjhJsO"
libkomparediff: Model->path+file : "/home/demitrius/Downloads/compare/1/" "problem.txt"
libkomparediff: info->localdest : "/home/demitrius/Downloads/compare/1"
libkomparediff: DestinationURL : QUrl("file:///home/demitrius/Downloads/compare/1")
libkomparediff: tmp : "/problem.txt"
libkomparediff: fullDestinationPath : QUrl("file:///home/demitrius/Downloads/compare/1//problem.txt")
kf.kio.slaves.file: copy() QUrl("file:///tmp/kompare.BjhJsO") to QUrl("file:///home/demitrius/Downloads/compare/1//problem.txt") mode= -1
After the fix:
libkomparediff: KompareModelList::saveDestination:
libkomparediff: Tempfilename (save) : "/tmp/kompare.BcyxWY"
libkomparediff: Model->path+file : "/home/demitrius/Downloads/compare/1/" "problem.txt"
libkomparediff: info->localdest : "/home/demitrius/Downloads/compare/1"
libkomparediff: DestinationURL : QUrl("file:///home/demitrius/Downloads/compare/1")
libkomparediff: tmp : "/"
libkomparediff: fullDestinationPath : QUrl("file:///home/demitrius/Downloads/compare/1/")
kf.kio.slaves.file: copy() QUrl("file:///tmp/kompare.BcyxWY") to QUrl("file:///home/demitrius/Downloads/compare/1/problem.txt") mode= -1
kf.kio.slaves.file: the file doesn't have any xattr
When there is a subdirectory that also not exists on destination, Kompare creates nothing.
Before the fix:
libkomparediff: KompareModelList::saveDestination:
libkomparediff: Tempfilename (save) : "/tmp/kompare.FvyVpn"
libkomparediff: Model->path+file : "/home/demitrius/work/project_b/subdir/" "test.txt"
libkomparediff: info->localdest : "/home/demitrius/work/project_b/"
libkomparediff: DestinationURL : QUrl("file:///home/demitrius/work/project_b/")
libkomparediff: tmp : "subdir/test.txt"
libkomparediff: fullDestinationPath : QUrl("file:///home/demitrius/work/project_b//subdir/test.txt")
After the fixes:
libkomparediff: KompareModelList::saveDestination:
libkomparediff: Tempfilename (save) : "/tmp/kompare.bYakdZ"
libkomparediff: Model->path+file : "/home/demitrius/work/project_b/subdir/" "test.txt"
libkomparediff: info->localdest : "/home/demitrius/work/project_b/"
libkomparediff: DestinationURL : QUrl("file:///home/demitrius/work/project_b/")
libkomparediff: tmp : "subdir/"
libkomparediff: fullDestinationPath : QUrl("file:///home/demitrius/work/project_b/subdir/")
kf.kio.slaves.file: copy() QUrl("file:///tmp/kompare.bYakdZ") to QUrl("file:///home/demitrius/work/project_b/subdir/test.txt") mode= -1
kf.kio.slaves.file: the file doesn't have any xattr
I remove the double slash, but I am not sure if it will cause trouble.
Related: https://bugs.kde.org/show_bug.cgi?id=441131 https://bugs.kde.org/show_bug.cgi?id=126870