The caller of the function `generateUniqueOutputFileName` knows
whether or not the base name given to the function is the base name of
the first added file or the current content of the destination file
name control. Only in the latter case is the suffix added for
uniqueness present and has to be removed.
The prior selection was pretty Western-centric with a couple of
additions from Asia. However, there are so many more languages, and
for a lot of them there are many more native speakers than for those
which were on the list before this change.
The new list simply mirrors Wikipedia's "List of languages by number
of native speakers" found at
https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers
Additionally the GUI will only show the often used languages in
drop-down boxes by default.
Both can still be changed in the preferences.
Problematic were files for which DOS-style EOLs were
detected (carriage return followed by newline, \r\n) but which had
some lines terminated solely by a newline (\n). In such a case the
EOL was only detected upon seeing the next \r\n, and the value
returned from the `getline()` function would return something that
everyone would judge to be multiple lines of text.
Fixes#2594.
In this particular case the `clip_codec_information` field contained
the value `FMTS`. The file in the `STREAM` sub-directory still has the
extension `.m2ts`, though.
Fixes#2601.
Due to argument-dependent lookup rules the `boost::algorithm::split`
function has always been considered by the compiler when resolving an
unqualified call to `split`.
Before Boost 1.71.0 the `boost::algorithm::split` function took an
lvalue reference as its `Input` argument. Therefore a temporary
instance of `std::string` would cause `boost::algorithm::split` not to
be considered due to SFINAE, and the compiler would keep looking,
finally finding the top-level `split` function.
In Boost 1.71.0 the first argument was changed to an rvalue
reference. Therefore the temporary `std::string` instance is now a
valid argument to the function, and the compiler considers
`boost::algorithm::split` to be a possible call. Other functions
aren't looked up.
The fix is easy: just be explicit which namespace to take the symbol
from. That way argument-dependent lookup will not be done.
Fixes#2599.