This is in the code path used for querying the user for a file name to
save to, e.g. when browsing for the destination file in the
multiplexer or when saving an attachment in the header editor.
Fixes#3049.
Windows Explorer will delete the dragged file if the target
applications accepts a move action. This happens when the user presses
shift while dropping the file. Forcing the action to be a copy action
causes Windows Explorer not to delete the dragged files.
Other file manages I tested (Total Commander on Windows, krusader &
Dolphin on Linux) never acted this way, no matter which keys were
pressed.
The original algorithm built a huge regular expression with all
enabled languages as alternatives. With the presence of ISO 639-3
languages this regular expression could become too big for the
underlying PCRE library to handle.
The new algorithm splits the file name on boundary characters and
matches the resulting parts against the list of enabled languages. No
more huge regular expression.
Fixes#3048.
Using the "add source files" button has its own configurable default
action. In fact, there are two classes of adding files:
1. Using the "add source files" button including its popup-menu
actions or the context menu on entries in the "files" view
2. Dragging & dropping files from external programs into the
multiplexer, using the copy & paste functionality ("Multiplexer"
menu → "Add files from clipboard") or adding files via command-line
arguments.
The reason separating the two is that the "add source files" button &
the associated context menu entries have always hat the semantics of
adding files to the current multiplex tab whereas dragging & dropping
was often done with files for which new multiplex settings should be
created. In short, both functionality was used for distinct use cases.
Fixes#3035.