Thomas Goyne
c9ffffda54
Fix compilation with clang
2013-02-08 09:53:34 -08:00
Thomas Goyne
d34f88080c
Fix directory iteration on Windows XP
2013-02-08 09:03:00 -08:00
Thomas Goyne
73217fd0e9
Move uuencoding logic to libaegisub and add tests
2013-02-07 16:02:44 -08:00
Thomas Goyne
2bad9029cb
Set ?data in a way that works with spaces in the path on Windows
2013-02-06 19:15:21 -08:00
Thomas Goyne
f0054f61bc
Fix crash on exit from the dispatch thread pool
2013-02-06 13:38:35 -08:00
Thomas Goyne
d7531a723a
Add missing include in dialogue_parser.h
2013-02-06 13:38:34 -08:00
Thomas Goyne
6cb9665202
Support extensions with multiple dots in agi::fs::HasExtension
2013-02-06 13:38:34 -08:00
Thomas Goyne
10a88dfb52
Use boost.locale for spellchecker word splitting
...
This is currently only correct if the UI language is the same as the
subtitles language as the global locale is used, but it should still
never be worse than the small hardcoded table of word splitters.
Closes #1206 .
2013-02-06 13:38:33 -08:00
Thomas Goyne
47c36c9033
Use ICU/boost.locale for case-insensitive searching
...
Do proper unicode case-folding for case-insensitive searching rather
than converting only ascii characters to lowercase. The Turkish 'i' is
still not handled correctly (since it's the only place where
case-folding is locale-dependent), but that's probably not worth caring
about as long as we don't have a Turkish UI translation.
This affects both the find/replace dialog and the select lines dialog.
Closes #1342 .
2013-02-06 13:38:33 -08:00
Thomas Goyne
bc5417de4a
Give all of the Aegisub-created threads names
2013-02-06 13:22:32 -08:00
Thomas Goyne
5092ab20c9
Do logging on a background thread
...
Makes logging actually thread-safe and slightly improves performance.
2013-02-06 13:22:17 -08:00
Thomas Goyne
2d646b447d
Don't add a hardcoded path that's unlikely to actually exist to the include path on OS X
2013-02-06 13:22:16 -08:00
Thomas Goyne
a942687050
Use a circular buffer to store only the last 250 log messages
2013-02-06 13:22:16 -08:00
Thomas Goyne
c6005be4a1
Write log files incrementally so that they actually exist for crashes
2013-02-06 13:22:16 -08:00
Thomas Goyne
101721863a
Make log messages a little saner
2013-02-06 13:22:16 -08:00
Thomas Goyne
69e1744fc7
Make agi::util::time_log less insane
2013-02-06 13:22:16 -08:00
Thomas Goyne
1e0f08c0ed
Mostly purge wxWidgets from non-UI stuff
...
Use boost::filesystem::path for all paths, and std::string for all other
strings, converting to/from wxString as close to the actual uses of wx
as possible.
Where possible, replace the uses of non-UI wxWidgets functionality with
the additions to the standard library in C++11, or the equivalents in
boost.
Move the path token management logic to libaegisub (and rewrite it in
the process).
Add a basic thread pool based on asio and std::thread to libaegisub.
This touches nearly every file in the project and a nontrivial amount of
code had to be rewritten entirely, so there's probably a lot of broken
stuff.
2013-02-06 13:22:15 -08:00
Thomas Goyne
10e06ac3f9
Build and/or link the non-header-only boost libraries
2013-02-01 19:07:51 -08:00
Thomas Goyne
e8344ab0c7
Add agi::util::Remove for deleting files
2013-01-03 17:36:50 -08:00
Thomas Goyne
cec5f2256c
Add agi::util::try_parse
2013-01-03 17:36:50 -08:00
Thomas Goyne
1f1cb36b6d
Extract TEXT -> DRAWING conversion from SplitWords
2012-12-31 07:09:31 -08:00
Thomas Goyne
e270dc9aec
Use stable_vector for AudioProviderRam's cache
...
stable_vector allocates its elements non-contiguously (as is required
for stability), while still giving O(1) indexing.
2012-12-22 14:44:35 -08:00
Thomas Goyne
835f7c0f78
Only enable the Remove Word button when the word can be removed. Updates #1184 .
2012-12-21 16:56:26 -08:00
Stjepan Henc
fe630e052b
Add Remove Word button to the spellchecker dialog. Updates #1184 .
2012-12-21 16:56:26 -08:00
Thomas Goyne
eab11666a9
Remove some cruft from option.h
2012-12-17 09:32:42 -08:00
Thomas Goyne
fee60be5db
Announce the set of lines changed in commits
...
Currently this is only populated when commits are amended, for the
simple reason that it's the only time that AssFile knows what lines
changed. It is probably worth expanding this in the future.
2012-12-17 09:32:42 -08:00
Thomas Goyne
cccd95941d
Fix syntax highlighting for multiple karaoke templater expression blocks
2012-12-07 18:20:09 -08:00
Thomas Goyne
d3fc4dcb25
Remove things used in one (or zero) files from agi_pre.h
2012-12-02 06:33:30 -08:00
Thomas Goyne
96cf5ea7ed
Kill the #ifndef AGI_PRE guards
...
They don't actually improve compilation performance and make it more
annoying to modify what things are in the precompiled header.
2012-12-02 06:33:29 -08:00
Thomas Goyne
0b19908e7b
Use std::prev and std::next where applicable
2012-11-30 10:54:57 -08:00
Thomas Goyne
0483c1cfbe
Fix string vs color logic in the option parsing
2012-11-24 16:24:00 -08:00
Thomas Goyne
b055abae44
Fix compliation with gcc 4.7
2012-11-15 18:15:40 -08:00
Thomas Goyne
47c678bd63
Make UCDetect a little less insane
2012-11-13 08:46:31 -08:00
Thomas Goyne
2dd1da8333
Use C++11 stuff in libaegisub
2012-11-13 08:46:30 -08:00
Thomas Goyne
6212afb314
Add karaoke templater support to the syntax highlighter
2012-11-12 18:35:27 -08:00
Thomas Goyne
b3c1af11b7
Fix handling of unclosed override blocks starting at position 0
2012-11-12 18:35:27 -08:00
Thomas Goyne
7ca7b1d934
Fix syntax highlighting for fonts with spaces
2012-11-12 18:35:27 -08:00
Thomas Goyne
88fdee726b
Extract word-splitting logic from the syntax highlighter
2012-11-12 18:35:25 -08:00
Thomas Goyne
238356406f
Extract calltip logic from the edit ctrl to libaegisub
2012-11-12 18:35:25 -08:00
Thomas Goyne
e4d6b8661b
Add range adaptor for filtering to a specific subclass from a heterogeneous range
...
This makes looping over the subtitle file and parsed dialogue lines less
awkward in many cases.
2012-11-12 18:35:25 -08:00
Thomas Goyne
1848aad5c1
Fix compilation with C++ 11/libc++
2012-11-12 18:35:21 -08:00
Thomas Goyne
ebd56f2163
Include cstdint rather than stdint.h
2012-11-10 18:05:57 -08:00
Thomas Goyne
0893ed3f0a
Remove references to tr1
2012-11-10 18:05:57 -08:00
Thomas Goyne
9d4be82be8
Replace syntax highlighting logic with new stuff in libaegisub
2012-11-10 18:05:57 -08:00
Thomas Goyne
76adcad999
Move the spellchecker base class to libaegisub
2012-11-10 18:05:57 -08:00
Thomas Goyne
47bafe4b9f
Add a lexer for the body of dialogue lines to libaegisub
2012-11-10 18:05:56 -08:00
Thomas Goyne
9088ae994c
Remove windows.h from the precompiled header
...
It's only used by a few source files and it defines a ton of garbage.
2012-11-10 18:05:56 -08:00
Thomas Goyne
08983adc96
Move agi::Color parsing to its own file
...
Keeping all uses of boost.spirit in a single translation unit helps
avoid having it murder compile times, which requires that it be off by
itself.
2012-11-10 18:05:56 -08:00
Thomas Goyne
ea5428b65f
Replace AssColor with agi::Color
...
Add agi::Color, and replace AssColor and all uses of wxColor that are
not immediately passed to/from wx with it.
2012-11-10 18:05:56 -08:00
Thomas Goyne
28175aadbe
Switch to boost.container for containers of incomplete types
...
STL containers are not required to support incomplete types, and while
most implementations do, clang's libc++ does not.
2012-11-10 18:05:56 -08:00
Thomas Goyne
a266d32ce4
Remove pointless GetString override in the list option values
2012-10-27 05:54:50 -07:00
Thomas Goyne
e44c47c863
Remove $Id$ markers since git doesn't support them
2012-10-25 17:39:49 -07:00
Thomas Goyne
67c01d11f6
Delete unfinished and unused stuff from libaegisub
2012-10-25 17:39:49 -07:00
Thomas Goyne
decbf06de3
Timestamp temporary files to reduce the chance of name collisions
2012-10-21 15:29:52 -07:00
Thomas Goyne
b43f27396e
Verify that creating the temp file for saving actually succeeded
2012-10-21 15:29:52 -07:00
Thomas Goyne
715c882a97
Actually check MoveFileEx's return value
2012-10-21 08:13:46 -07:00
Thomas Goyne
da79178cc9
Add _tmp before the extension when saving
...
This makes it easier to open the temporary file if an error occurs at
some point in the saving process.
2012-10-21 08:04:06 -07:00
Thomas Goyne
c7fb6a57a4
Remove the platform-specific agi::io implementations since they were nearly identical
2012-10-21 08:00:02 -07:00
Thomas Goyne
938ccfe39b
Mark TimecodeRange::operator< as const
2012-10-16 15:53:49 -07:00
Thomas Goyne
682c7d5371
Fix an occasional crash on startup on Windows debug builds
...
Some of the debug iterator code seems to not like 'delete map[key]', so
change things a little to do things in a way that appears to be fine.
2012-10-16 09:51:31 -07:00
Thomas Goyne
53433426bb
Fix some stuff from Coverity Scan
...
Mostly just bugs in unreachable code and stylistic things, but there's a
few incorrect reachable things that were working by coincidence and
gratuitous dynamic_casts.
2012-10-15 18:16:09 -07:00
Thomas Goyne
a0c92f83f9
Fix some PVS-Studio warnings
2012-10-12 14:51:30 -07:00
Thomas Goyne
79ef194238
Fix compilation error with clang
2012-10-12 14:36:29 -07:00
Thomas Goyne
863e041d4d
Honor the configured MRU limits
...
Actually use the limits set in the preferences dialog rather than always
limiting the MRU lists to 16.
Currently only the Find and Replace limits can be set to above 16 due to
how the open recent items commands are implemented.
Closes #1528 .
2012-10-11 10:19:49 -07:00
Thomas Goyne
0a5fa6ff39
Don't use ARC in the Obj-C++ code
...
It never allocated any non-autoreleased objects so ARC wasn't actually
doing anything other than breaking compilation with gcc.
2012-09-29 22:10:45 -07:00
Thomas Goyne
b0036b4d99
Statically link libaegisub
...
Dynamically linking it caused a steady stream of issues for no apparent
benefits.
2012-08-21 07:02:45 -07:00
Thomas Goyne
1e030289ad
Revamp how version tagging works
...
Rather than having it be a configurable option, simply build in final
release mode if Aegisub is being built from a signed tag, and get the
version information from that tag.
Drop the version number from the OS X app bundle when not building from
a tag as it done everywhere else. Drop the arch suffix since ppc hasn't
been tested in years and isn't worth testing as it's only going to get
less relevant as time goes on.
Remove some redundant definitions in the build system.
2012-08-19 14:33:50 -07:00
Thomas Goyne
e945c02151
Fix some warnings
...
Originally committed to SVN as r6919.
2012-06-25 14:21:32 +00:00
Thomas Goyne
0f071d978a
Rewrite the OS X bundle utils in Obj-C++ and return std::strings rather than malloced char *
...
Originally committed to SVN as r6896.
2012-06-12 03:13:49 +00:00
Thomas Goyne
dc5d6c9a4a
Add missing include in unix/log.cpp and wrap includes in #ifndef LAGI_PRE
...
Originally committed to SVN as r6876.
2012-05-26 17:00:16 +00:00
cantabile
54a08a44c1
stdout log emitter: flush stdout after every printf() if stdout is not a terminal
...
This makes it possible to watch aegisub's output in realtime even if its
stdout is redirected to a file.
Originally committed to SVN as r6793.
2012-05-15 14:06:18 +00:00
Thomas Goyne
1d15bf273a
Fix compilation failure from incomplete merging in r6692
...
Originally committed to SVN as r6696.
2012-04-12 15:40:25 +00:00
Thomas Goyne
bdafd8f201
Reset to the platform-specific default option values rather than the global defaults
...
Originally committed to SVN as r6692.
2012-04-11 04:10:56 +00:00
Thomas Goyne
b11e3d7f3a
gcc 4.7 compilation fixes
...
Originally committed to SVN as r6647.
2012-04-03 17:38:45 +00:00
Thomas Goyne
e6697b1923
Fix fallbacks for invalid characters when converting charsets
...
r6632 made ConverterImpl have a vtable, which makes the iconv_fallbacks
parent no longer the first thing in the object, so add an explicit cast.
Originally committed to SVN as r6639.
2012-03-31 00:28:55 +00:00
Thomas Goyne
028fd3b4ba
Add line-wrapping logic to libaegisub
...
Originally committed to SVN as r6635.
2012-03-29 19:05:16 +00:00
Thomas Goyne
f31d9a5a8b
Add converter to ISO-6937-2
...
glibc's iconv implementation supports ISO-6937-2, but libiconv doesn't
due to that these days the only place it's used is in a few old subtitle
formats. As a result, on everything but linux we need our own converter.
Conversion from ISO-6937-2 is currently not supported.
Originally committed to SVN as r6632.
2012-03-29 19:04:49 +00:00
Thomas Goyne
71776940f6
Rewrite SMPTE timecode handling
...
Move SMPTE handling to agi::vfr::Framerate to get all of the interesting
logic dealing with timcodes in one place, and to make it testable.
Completely rewrite the SMPTE time conversions as testing them reveals
that they were incorrect in some cases.
Originally committed to SVN as r6631.
2012-03-29 19:04:36 +00:00
Thomas Goyne
0b9a21bf82
Hide SinkMessage's copy constructor and assignment operator
...
Originally committed to SVN as r6601.
2012-03-25 04:05:20 +00:00
Thomas Goyne
77e755d109
Allow duplicated timestamps as real files do have them; simply skip all but the last frame with the same timestamp
...
Originally committed to SVN as r6566.
2012-03-11 23:05:08 +00:00
Thomas Goyne
12511901a9
Fix bad string concatenation in a json parse error message
...
Originally committed to SVN as r6559.
2012-03-10 02:16:20 +00:00
Thomas Goyne
759b8433c1
Silence some clang warnings
...
Originally committed to SVN as r6558.
2012-03-10 02:16:08 +00:00
Thomas Goyne
7f8aecd7fa
Use int64_t for progress reporting rather than int as it's what ffms2 requires. Fixes magic jumping progress bars during indexing.
...
Originally committed to SVN as r6556.
2012-03-10 01:00:13 +00:00
Thomas Goyne
0d45f98ae8
Cast time_ts passed to printf to a known type
...
Originally committed to SVN as r6510.
2012-02-23 19:28:00 +00:00
Thomas Goyne
6cf122dea2
Remove the time_t overload of UnknownElement and just cast to int64_t
...
Originally committed to SVN as r6508.
2012-02-23 19:27:42 +00:00
Thomas Goyne
b9ddf00ead
Add a scoped holder similar to scoped_ptr for handles that may or may not be pointers
...
Originally committed to SVN as r6491.
2012-02-20 18:22:04 +00:00
Thomas Goyne
b8a7c6cb1e
Remove scoped_ptr::swap
...
Originally committed to SVN as r6431.
2012-02-02 19:18:10 +00:00
Thomas Goyne
983ffc1e83
Add some dumb heuristics to detect binary files in the charset detector to avoid taking forever feeding hundreds of MB through it. Closes #1438 .
...
Originally committed to SVN as r6405.
2012-01-31 04:03:55 +00:00
Thomas Goyne
d68a395499
Open files in binary mode for charset detection
...
Originally committed to SVN as r6404.
2012-01-31 04:03:50 +00:00
Thomas Goyne
f774f21903
Explicitly do nothing when an empty container is passed to delete_clear as it's oddly slow otherwise
...
Originally committed to SVN as r6402.
2012-01-31 00:44:55 +00:00
Thomas Goyne
a4eb7ef528
Fix crash with empty hotkeys. Closes #1420 .
...
Originally committed to SVN as r6360.
2012-01-25 19:07:18 +00:00
Thomas Goyne
46986c6944
Fix new[]/delete mismatch
...
Originally committed to SVN as r6306.
2012-01-18 20:08:24 +00:00
Thomas Goyne
3ed84ba70d
Update distdir generation
...
The list of files to include was out of date and only included files
for dependencies which were actually enabled, and the script was
FreeBSD-specific.
Originally committed to SVN as r6298.
2012-01-14 18:46:43 +00:00
Thomas Goyne
5774e87248
Add files which were missed in r6278
...
Originally committed to SVN as r6283.
2012-01-13 14:37:15 +00:00
Thomas Goyne
7dd6cfe37d
Derive agi::acs exceptions from agi::FileSystemError and friends rather than having two sets of errors for the same thing
...
Originally committed to SVN as r6278.
2012-01-12 22:31:54 +00:00
Thomas Goyne
3c62a38c7a
Replace MyThes thesaurus implementation with a custom one
...
Fixes a pile of unicode-related issues, such as dictionaries in a path
which does not fit into the system's local charset, and significantly
cuts down on the amount of code.
Originally committed to SVN as r6250.
2012-01-08 01:36:50 +00:00
Thomas Goyne
e2d31b708e
Split the json log writing into a seperate class from LogSink
...
Originally committed to SVN as r6248.
2012-01-08 01:36:23 +00:00
Thomas Goyne
d148bbbf2a
Make agi::log::LogSink take ownership of the emitters passed to it
...
Originally committed to SVN as r6246.
2012-01-08 01:36:09 +00:00
Thomas Goyne
d2d28401bd
Change how local config mode works
...
Rather than loading both the local and user config files and saving to
the local directory if an option is set, simply try to load the local
config file, and if it exists switch to local mode and never even touch
the user file.
Originally committed to SVN as r6244.
2012-01-08 01:35:56 +00:00
Thomas Goyne
56337beb11
Use OutputDebugStringW rather than OutputDebugStringA in the windows debug logging so that unicode actually works
...
Originally committed to SVN as r6242.
2012-01-08 01:35:43 +00:00