All current renderers and muxers have no issues with longer timestamps.
However, classic VSFilter keeping track of time with a 32-bit int,
leads to a more meaningful limit at 596h, so enforce that instead.
Since the stringification code for SRT and ASS (but not SMPTE) relied on
hours being single digit, replace them with a simple format string.
GUI inputs are still limited to <10h, but at least
pre-existing timestamps no longer get mangled.
The highlighting distinguishes drawing commands from coordinates, and
colors x and y coordinates in different colors to make coordinates
easier to visually parse. Furthermore, in cubic Bezier curves, it
underlines the coordinates which corresponds to endpoints of the curves.
* [git] ignore IDE setting, Meson subprojects
* [win_installer] rename *.mo -> *.gmo
* [win_installer] only add aeg translations
* [win_installer] split aeg/wx translations
* [win_installer] gen & pack translations
* [git] ignore hunspell source dir
* [git] ignore uchardet source dir
* [test] Generate the test executable
run with `meson test`
* [test] add tools to remove test data files
`unset.bat FULL_PATH`
* [test] set to correct Error type
* [test] Set Source character sets to UTF-8 for MSVC
* [test] move test data files to build_root
* [git] remove IDE dir
* [git] ignore gtest subprojects
* [ci] run test in ci
* [meson/test] use more meaningful name
* [test] Add more comments and help msg
The thes file was using \r\n line ends, and \r was not stripped, causing the encoding string has a \r at its end.
Use binary mode and always use \n as line ends.
boost::split_iterator type-erases the predicate, which makes it require
a virtual call per character (!) along with a heap allocation. As it
turns out we only ever need one predicate (comparing to a single
character), so replace it with a split_iterator that just does that.
It's modestly faster, significantly more type-safe, and doesn't assert
when there's too few arguments, which causes problems for plural forms.
Closes#1733.
Make the vtables less absurdly huge (knocks 100KB off aegisub32.exe),
eliminate some copies of the values when constructing the options, and
use an enum class for the value type.