Aegisub/core
Niels Martin Hansen e5ef7b4be2 Various Unicode-related fixes.
Changed some types to lower the amount of int/size_t inconsistencies. This might have introduced some stupid bugs... beware!
Removed old, unused "project file" code. (cleanup)

Fixed bug #195: "Join (as karaoke)" is broken when 2 lines don't follow immediately after another

Implemented feature req #184: Text Only Export

Fixed bug #180: conversion from srt to ass doesn't specify WrapStyle

Implemented feature req #188: highlighting of currently selected style in the styles manager

Originally committed to SVN as r537.
2006-10-19 22:53:06 +00:00
..
bitmaps New splash 2006-08-07 20:35:22 +00:00
boost Commited a stripped-down version of boost, to use its shared_ptr class. If it doesn't work, just don't build ass_attachment.cpp (and bitch at AMZ!) 2006-06-30 21:21:30 +00:00
build More hacking about with the revision number stuff. Now build timestamp is derived with __DATE__ and __TIME__, and make-svn-rev-header.py checks if there's any need to update the .h file, which should result in less needless rebuilds/relinks. 2006-06-27 18:06:31 +00:00
macosx Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
posix move autotools to root 2006-05-06 12:58:01 +00:00
about.cpp Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
about.h Removed multiple splashes and replaced them with a new one 2006-04-27 18:12:48 +00:00
aegisublocale.cpp __WIN32__ / WIN32 -> __WINDOWS__ 2006-05-10 00:33:44 +00:00
aegisublocale.h Added destructor -> no memory leaks 2006-02-02 22:20:49 +00:00
aspell_wrap.cpp An early and totally not working implementation of PRS writing 2006-03-29 22:39:41 +00:00
aspell_wrap.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_attachment.cpp Fixed another file attachment bug 2006-07-08 02:30:18 +00:00
ass_attachment.h Fixed another file attachment bug 2006-07-08 02:30:18 +00:00
ass_dialogue.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
ass_dialogue.h Added clone function for better copying of AssEntry and derived classes 2006-02-27 09:07:08 +00:00
ass_entry.cpp Attachments seem to work for mod3 files 2006-06-30 23:37:30 +00:00
ass_entry.h Added AssAttachment class to deal with attached files 2006-06-30 20:56:16 +00:00
ass_export_filter.cpp Minor change in Export Filter interface. 2006-04-28 20:22:35 +00:00
ass_export_filter.h Minor change in Export Filter interface. 2006-04-28 20:22:35 +00:00
ass_exporter.cpp Minor change in Export Filter interface. 2006-04-28 20:22:35 +00:00
ass_exporter.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_file.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
ass_file.h Fixed the default resolution for video display and resolution resampler when the script's field is blank. 2006-07-01 07:22:57 +00:00
ass_override.cpp Made style's font size, scale x and scale y floats. Also made \fs take float as parameter. 2006-04-04 20:41:09 +00:00
ass_override.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_style.cpp Originally committed to SVN as r313. 2006-04-13 06:24:36 +00:00
ass_style.h Made style's font size, scale x and scale y floats. Also made \fs take float as parameter. 2006-04-04 20:41:09 +00:00
ass_style_storage.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
ass_style_storage.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_time.cpp Fixed critical ass_time bug 2006-02-22 07:36:38 +00:00
ass_time.h AssTime changed to store data as miliseconds internally (overall faster, uses less ram) 2006-02-21 22:09:15 +00:00
audio_box.cpp Anything that stops audio will also stop video too, now 2006-07-01 23:31:15 +00:00
audio_box.h Pomyk's no focus on scrollbars patch 2006-03-05 20:31:04 +00:00
audio_display.cpp Cut off spectrum at 2/3 of nyquist frequency. 2006-08-27 23:31:20 +00:00
audio_display.h Placeholder Edit->Sort menu entry and disabled audio scrubbing again 2006-07-06 22:39:58 +00:00
audio_karaoke.cpp ReleaseCapture -> ReleaseMouse (former is WIN32!!!) 2006-07-07 22:47:36 +00:00
audio_karaoke.h Karaoke syllable selection by dragging 2006-06-27 04:04:40 +00:00
audio_player.cpp Finished separation of audio provider and player 2006-02-25 07:41:18 +00:00
audio_player.h Finished separation of audio provider and player 2006-02-25 07:41:18 +00:00
audio_player_portaudio.cpp Preparations for audio scrubbing 2006-07-04 05:10:29 +00:00
audio_player_portaudio.h The Emp^W realPlayPos strikes back. Respect audio latency. 2006-04-20 12:02:38 +00:00
audio_provider.cpp Playing in video mode will now play the audio as well even if it hasn't been previously loaded into audio mode (experimental). 2006-07-01 06:32:11 +00:00
audio_provider.h Playing in video mode will now play the audio as well even if it hasn't been previously loaded into audio mode (experimental). 2006-07-01 06:32:11 +00:00
audio_provider_avs.cpp someone needs to smoke less pot. remove unused stuff... 2006-04-17 00:59:28 +00:00
audio_provider_avs.h HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_hd.cpp HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_hd.h Set svn:eol-style to native for most (all?) text files 2006-04-14 02:51:37 +00:00
audio_provider_lavc.cpp now, if you do stuff PROPERLY, it works. even with ffmpeg. 2006-04-15 09:57:36 +00:00
audio_provider_lavc.h un-break VC++ 2006-04-14 22:56:17 +00:00
audio_provider_ram.cpp HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_ram.h RAM cache separated from avisynth provider 2006-02-25 08:26:29 +00:00
audio_provider_stream.cpp fix 64bit stuff 2006-07-07 22:47:55 +00:00
audio_provider_stream.h Still broken (and disabled) scrub code 2006-07-04 07:00:58 +00:00
automation.cpp Re-fixed VFR bug #138... (rolling back previous fix) 2006-06-27 19:11:41 +00:00
automation.h Initial work on auto4 implementation. 2006-04-16 04:05:16 +00:00
automation_filter.cpp Fixed building of automation 2006-05-01 20:00:59 +00:00
automation_filter.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
automation_gui.cpp Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
automation_gui.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
avisynth.h Originally committed to SVN as r116. 2006-02-22 19:55:33 +00:00
avisynth_wrap.cpp An early and totally not working implementation of PRS writing 2006-03-29 22:39:41 +00:00
avisynth_wrap.h An early and totally not working implementation of PRS writing 2006-03-29 22:39:41 +00:00
base_grid.cpp Improved the speed of grid drawing with tags hidden. 2006-07-08 22:33:21 +00:00
base_grid.h Right-clicking on the header of the subtitles grid will now bring up a popup menu that allows you to disable columns. 2006-06-27 05:13:41 +00:00
changelog.txt Rewrote audio spectrum rendering algo 2006-08-27 22:29:14 +00:00
colorspace.cpp Completed HSV-HSL conversion function, looks like it's correct now. 2006-03-18 02:21:54 +00:00
colorspace.h Added functions for direct conversion between HSL and HSV. (hsl_to_hsv is still incomplete, and works over rgb atm) 2006-03-17 01:59:41 +00:00
dialog_associations.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_associations.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_attachments.cpp Delete & extract buttons in attachment list will now only be enabled if at least one item is selected. 2006-07-08 23:18:07 +00:00
dialog_attachments.h Delete & extract buttons in attachment list will now only be enabled if at least one item is selected. 2006-07-08 23:18:07 +00:00
dialog_colorpicker.cpp Automation scripts updated, mainly heavy commenting on the demo scripts. Updated readme files for script directories. 2006-07-10 22:07:24 +00:00
dialog_colorpicker.h Colorpicker graphical redesign. 2006-07-06 22:16:27 +00:00
dialog_export.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
dialog_export.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_fextracker.cpp Typo fix, updated pt_BR subtitles 2006-05-17 00:48:00 +00:00
dialog_fextracker.h moved events for fextracker & fexmovement into its own file 2006-01-29 20:48:05 +00:00
dialog_hotkeys.cpp Fixed bug in Spanish translation, with V key not working. 2006-07-16 14:47:08 +00:00
dialog_hotkeys.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_jumpto.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_jumpto.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_options.cpp Added placeholder options dialog 2006-06-19 02:51:06 +00:00
dialog_options.h Added placeholder options dialog 2006-06-19 02:51:06 +00:00
dialog_progress.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_progress.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_properties.cpp Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
dialog_properties.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_resample.cpp Fixed the default resolution for video display and resolution resampler when the script's field is blank. 2006-07-01 07:22:57 +00:00
dialog_resample.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_search_replace.cpp Removed the "Help" button from Find/Replace dialog. 2006-03-14 00:39:33 +00:00
dialog_search_replace.h Applied some Pomyk patches 2006-03-05 20:42:38 +00:00
dialog_selection.cpp Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
dialog_selection.h Added Pomyk's patch to be able to choose from comments or not in selection dialogue 2006-02-25 18:10:02 +00:00
dialog_shift_times.cpp Re-fixed VFR bug #138... (rolling back previous fix) 2006-06-27 19:11:41 +00:00
dialog_shift_times.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_spellcheck.cpp More code cleaning up and fixing! 2006-02-22 06:08:35 +00:00
dialog_spellcheck.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_style_editor.cpp Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
dialog_style_editor.h Changed the style editor to use a dropdown box for the font encodings. 2006-04-19 23:47:41 +00:00
dialog_style_manager.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
dialog_style_manager.h Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
dialog_styling_assistant.cpp More vfr fun for everyone 2006-02-24 16:45:10 +00:00
dialog_styling_assistant.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_timing_processor.cpp Re-fixed VFR bug #138... (rolling back previous fix) 2006-06-27 19:11:41 +00:00
dialog_timing_processor.h Separated keyframe thresholds on the timing post-processor in start and end. 2006-03-21 09:24:46 +00:00
dialog_translation.cpp Some clean up of grid classes 2006-02-22 04:59:39 +00:00
dialog_translation.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
drop.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
drop.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_clean_info.cpp Minor change in Export Filter interface. 2006-04-28 20:22:35 +00:00
export_clean_info.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_fixstyle.cpp Minor change in Export Filter interface. 2006-04-28 20:22:35 +00:00
export_fixstyle.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_framerate.cpp Re-fixed VFR bug #138... (rolling back previous fix) 2006-06-27 19:11:41 +00:00
export_framerate.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
fextracker_main_events.cpp Modified path to fextracker headers 2006-03-05 19:14:42 +00:00
fft.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
fft.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
fonts_collector.cpp Fonts collector now flags the file as modified if set to attach to file. 2006-07-08 23:07:24 +00:00
fonts_collector.h Fonts collector now flags the file as modified if set to attach to file. 2006-07-08 23:07:24 +00:00
frame_main.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
frame_main.h Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
frame_main_events.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
hilimod_textctrl.cpp - Text edit boxes in the subtitle editing area will now revert to unmodified if you restore the original text. (AMZ) 2006-06-27 04:13:34 +00:00
hilimod_textctrl.h - Text edit boxes in the subtitle editing area will now revert to unmodified if you restore the original text. (AMZ) 2006-06-27 04:13:34 +00:00
hotkeys.cpp Added hotkey to Audio's "play to end of file" (defaulting to "T"). 2006-07-01 06:37:46 +00:00
hotkeys.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
kana_table.cpp Added a hiragana/katakana table class 2006-05-05 18:52:09 +00:00
kana_table.h Added a hiragana/katakana table class 2006-05-05 18:52:09 +00:00
lavc_file.cpp properly include wx headers 2006-04-14 23:05:48 +00:00
lavc_file.h Removed unused vars from colorpicker dialog. 2006-04-16 00:10:21 +00:00
main.cpp Recovered subtitle files are now saved in their own subfolder. 2006-07-06 23:20:30 +00:00
main.h Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
Makefile.am sync automake 2006-07-07 22:48:10 +00:00
MatroskaParser.c Yuvi's mac compatibility patch applied 2006-06-19 02:57:27 +00:00
MatroskaParser.h Matroska parsing implemented 2006-02-23 01:44:48 +00:00
md5.c Improved and untested PRS encoder 2006-03-31 04:13:38 +00:00
md5.h Improved and untested PRS encoder 2006-03-31 04:13:38 +00:00
mkv_wrap.cpp Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
mkv_wrap.h Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
options.cpp Recovered subtitle files are now saved in their own subfolder. 2006-07-06 23:20:30 +00:00
options.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
readme.txt Changed build-versioning system. You are now required to use make-svn-rev-header.py and create a personal build-credit.h file. 2006-05-07 12:38:33 +00:00
res.rc Attachment list dialog implemented, only lists so far. 2006-07-01 02:27:37 +00:00
splash.cpp Removed multiple splashes and replaced them with a new one 2006-04-27 18:12:48 +00:00
splash.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
static_bmp.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
static_bmp.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
string_codec.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
string_codec.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
subs_edit_box.cpp Fixed bug with \fn button 2006-07-13 02:10:19 +00:00
subs_edit_box.h - Text edit boxes in the subtitle editing area will now revert to unmodified if you restore the original text. (AMZ) 2006-06-27 04:13:34 +00:00
subs_grid.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
subs_grid.h Right-clicking on the header of the subtitles grid will now bring up a popup menu that allows you to disable columns. 2006-06-27 05:13:41 +00:00
subtitle_format.cpp Attachment list dialog implemented, only lists so far. 2006-07-01 02:27:37 +00:00
subtitle_format.h Attachment list dialog implemented, only lists so far. 2006-07-01 02:27:37 +00:00
subtitle_format_ass.cpp Updated version.cpp to say 1.11. 2006-08-24 00:38:49 +00:00
subtitle_format_ass.h Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format_prs.cpp Disabled PRS exporting (for 1.10 release) 2006-08-07 21:30:45 +00:00
subtitle_format_prs.h Originally committed to SVN as r292. 2006-04-02 18:11:06 +00:00
subtitle_format_srt.cpp Fixed bug #122 (crash on SRT export.) 2006-06-21 21:58:23 +00:00
subtitle_format_srt.h Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format_txt.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
subtitle_format_txt.h Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
subtitle_provider.cpp properly detect missing subtitle provider 2006-05-06 16:21:03 +00:00
subtitle_provider.h fix SubtitleProvider initialization order 2006-05-06 02:41:50 +00:00
subtitle_provider_asa.cpp adapt to fixed asa color 2006-05-25 16:05:53 +00:00
text_file_reader.cpp Text file reader and writer classes now have special cases for Win32, for properly handling Unicode filenames. 2006-08-28 20:00:51 +00:00
text_file_reader.h Text file reader and writer classes now have special cases for Win32, for properly handling Unicode filenames. 2006-08-28 20:00:51 +00:00
text_file_writer.cpp Text file reader and writer classes now have special cases for Win32, for properly handling Unicode filenames. 2006-08-28 20:00:51 +00:00
text_file_writer.h Text file reader and writer classes now have special cases for Win32, for properly handling Unicode filenames. 2006-08-28 20:00:51 +00:00
timeedit_ctrl.cpp Re-fixed VFR bug #138... (rolling back previous fix) 2006-06-27 19:11:41 +00:00
timeedit_ctrl.h Changed behavior of commiting time 2006-02-19 03:33:13 +00:00
tip.cpp Slightly improved (and apparently broken?) PRS encoding 2006-03-31 02:06:50 +00:00
tip.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
todo.txt Minor stuff 2006-06-08 21:03:05 +00:00
toggle_bitmap.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
toggle_bitmap.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
utils.cpp Attachment list dialog implemented, only lists so far. 2006-07-01 02:27:37 +00:00
utils.h Attachment list dialog implemented, only lists so far. 2006-07-01 02:27:37 +00:00
validators.cpp Fixed setting of font size on the style editor 2006-05-09 01:22:42 +00:00
validators.h Fixed setting of font size on the style editor 2006-05-09 01:22:42 +00:00
variable_data.cpp Fixed crash with changing font properties via the subtitle edit box when there was a \fs override tag earlier in the line. 2006-07-08 22:11:42 +00:00
variable_data.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
version.cpp Updated version.cpp to say 1.11. 2006-08-24 00:38:49 +00:00
version.h Changed build-versioning system. You are now required to use make-svn-rev-header.py and create a personal build-credit.h file. 2006-05-07 12:38:33 +00:00
vfr.cpp Various Unicode-related fixes. 2006-10-19 22:53:06 +00:00
vfr.h Fixed minor glitch and some little update to vfr 2006-02-24 23:07:30 +00:00
vfw_wrap.cpp Originally committed to SVN as r349. 2006-04-19 21:55:02 +00:00
vfw_wrap.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
video_box.cpp Added a hiragana/katakana table class 2006-05-05 18:52:09 +00:00
video_box.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
video_display.cpp Anything that stops audio will also stop video too, now 2006-07-01 23:31:15 +00:00
video_display.h Added support for 2.35 and custom aspect ratio 2006-05-15 23:44:53 +00:00
video_provider.cpp catch const wchar_t * 2006-04-14 16:46:38 +00:00
video_provider.h SubtitleProvider interface 2006-05-06 01:05:46 +00:00
video_provider_avs.cpp An early and totally not working implementation of PRS writing 2006-03-29 22:39:41 +00:00
video_provider_avs.h Originally committed to SVN as r365. 2006-05-06 01:17:34 +00:00
video_provider_lavc.cpp Small ASA fixes 2006-05-11 21:11:59 +00:00
video_provider_lavc.h LAVCVideoProvider overlay support 2006-05-06 01:06:22 +00:00
video_slider.cpp Middle clicking the video seek bar and audio display will now focus them. 2006-03-05 04:41:59 +00:00
video_slider.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
video_zoom.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
video_zoom.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
yatta_wrap.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
yatta_wrap.h add newline at end of yatta_wrap.h 2006-01-17 00:39:18 +00:00

Aegisub Source Code Documentation


Some thoughts:

First, some of the code is pretty readable, some is decent, and some is patched up crap. Good luck. ;)
Second, if you want to code anything for Aegisub, you will need to agree to these terms:
  1. You will release the patch to the public domain or give its copyright to one of the developers. This is to stop a source file from being owned by too many people. (Exception: MAJOR changes might be accepted under BSD license under your name. Consult the developers)
  2. Make SURE it compiles and works fine before submitting to developers.
  3. Stick to the coding standards. That is, no GNU-style identing and crap.
Third, this is all available under the BSD license. According to GNU itself, BSD is GPL-compatible, meaning that you can link GPL code to BSD code. Keep in mind, though, that if a source file has mixed BSD and GPL content, it becomes ruled by GPL.


Some notes about the procedure:
All paths should be added to the global msvc settings or you might encounter some problems.
This guide assumes Visual Studio 2003 is used, it might work in other versions but it is guaranteed
to fail with other compilers due to the avisynth dependency.
While you can compile most libraries yourself these instructions will assume you want to
download precompiled versions whenever possible. Also note that in  most other cases where
precompiled libraries are available they're unsuitable for use in aegisub.

Building instructions (dependencies):

1. Download and install wxWidgets 2.6.x (www.wxwidgets.org, 2.6.2 used when this guide was written).
Open include\wx\msw\setup.h and set WXWIN_COMPATIBILITY_2_4 to 0 and wxUSE_UNICODE to 1. To compile the libraries
first open the visual studio command prompt and go to build\msw. Run "nmake makefile.vc UNICODE=1 BUILD=debug"
and then "nmake makefile.vc UNICODE=1 BUILD=release" to generate the libraries required for aegisub.

Include:
  include
  lib\vc_lib\mswu
Libraries:
  lib\vc_lib

2. Download and compile freetype2 (www.freetype.org). The easiest way to do this is to open the solution found in
builds\win32\visualc\freetype.sln and then batch build all configurations.

Include:
  include
Libraries:
  objs

3. Download and compile lua (www.lua.org). This easiest done by copying the contents of include, src/lib and src/lua
to src (overwriting makefiles makes no difference here). Create a new win32 c++ project, select static library,
blank project and uncheck precompiled headers. Add all h and c files in src to the project and set code generation
to multi threaded (debug) dll in the configurations, set the output names to lua50MT(d).lib in the lib directory.
Batch compile.

Include:
  include
Libraries:
  lib

4. Download and compile portaudio (www.portaudio.com). If you want to compile the directsound version
you need to have the directx9 sdk properly set up before continuing. This process is very similar to lua. First copy
the contents of pa_common to the pa_win_wmme and pa_win_ds dirs. Create a blank project and add all files in pa_win_ds
(for directshow) or in pa_win_wmme (for wmme audio output) to the project. Set the library name to PAStaticDSMT(d).lib
and the output path to lib. Set the code generation to multi threaded (debug) dll and batch compile.

Include:
  pa_common
Libraries:
  lib

5. OPTIONAL - You can safely skip this step if you don't intend to work on the aspell part of aegisub. It's disabled in
the release builds. Download precompiled libs for aspell (aspell.net/win32/) the current direct link is
http://ftp.gnu.org/gnu/aspell/w32/aspell-dev-0-50-3-3.zip.

Include:
  include
Libraries:
  lib
  
6. Install a Python interpreter if you don't have one already, you will NEED it to run a script during the
build process.
http://www.python.org/download

Building instructions (aegisub):

1. Create a new blank Win32 c++ project in msvc.

2. Add all h, cpp and rc files in the "core", "PRS" and "FexTrackerSource" folders to the project.

3. Open the project settings. Add UNICODE to the preprocessor defines, and set the code generation to multi threaded (debug) dll.

3.1. OPTIONAL - Define NO_SPELLCHECKER if you want to compile without aspell support.

4. Set up the build-versioning stuff.

4.1. Open projects settings and select All Configurations. Go to Build Events, Pre-build Event.
Change the Command Line to the following two lines (click "..."):
  cd $(InputDir)\core\build
  c:\python24\python.exe make-svn-rev-header.py
You'll obviously want to change the path to the Python interpreter.

4.2 Create the file core/build/build-credit.h and add this line to it:
  #define BUILD_CREDIT "yournick"
Of course without indendation and replacing the yournick part.

5. Add the libraries to the linker input. If you compiled portaudio with wmme you have to remove dsound.lib and srmiids.lib
and replace PAStaticDS*.lib with the wmme version. Remove libaspell-15-dll.lib if you defined NO_SPELLCHECKER.

Link to these libraries for release:
freetype2110MT.lib libaspell-15-dll.lib wxzlib.lib wxpng.lib wxregexu.lib wxmsw26u_adv.lib wxmsw26u_core.lib wxbase26u.lib wxmsw26u_media.lib dsound.lib PAStaticDSMT.lib Vfw32.lib winmm.lib lua50MT.lib comctl32.lib rpcrt4.lib advapi32.lib wsock32.lib strmiids.lib

Link to these libraries for debug:
freetype2110MT_D.lib libaspell-15-dll.lib dsound.lib PAStaticDSMTd.lib Vfw32.lib lua50MTd.lib wxzlibd.lib wxpngd.lib wxregexud.lib wxbase26ud.lib wxmsw26ud_media.lib wxmsw26ud_core.lib wxmsw26ud_adv.lib comctl32.lib rpcrt4.lib winmm.lib advapi32.lib wsock32.lib strmiids.lib

6. Compile and wait.