" sys.exit(1)\n\n";
// Delete the infile
- script << "unlinkNoThrow(infile)\n\n";
+ script << "if infile != outfile:\n"
+ " unlinkNoThrow(infile)\n\n";
}
// Build the conversion command
string const infile = outfile;
string const infile_base = changeExtension(infile, string());
- outfile = addExtension(to_base, conv.To->extension());
+ outfile = conv.result_file.empty()
+ ? addExtension(to_base, conv.To->extension())
+ : addName(subst(conv.result_dir,
+ token_base, infile_base),
+ subst(conv.result_file,
+ token_base, onlyFileName(infile_base)));
+
+ // If two formats share the same extension we may get identical names
+ if (outfile == infile && conv.result_file.empty()) {
+ string const new_base = FileName::tempName(tmp).toFilesystemEncoding();
+ outfile = addExtension(new_base, conv.To->extension());
+ }
// Store these names in the python script
script << "infile = "