diff --git a/aegilib/aegilib_2008.vcproj b/aegilib/aegilib_2008.vcproj
index 5d2dac68f..ec11ba3f8 100644
--- a/aegilib/aegilib_2008.vcproj
+++ b/aegilib/aegilib_2008.vcproj
@@ -178,6 +178,10 @@
RelativePath=".\include\athenasub\athenasub.h"
>
+
+
diff --git a/aegilib/include/athenasub/athenatime.h b/aegilib/include/athenasub/athenatime.h
index daaba9c35..50fe387d0 100644
--- a/aegilib/include/athenasub/athenatime.h
+++ b/aegilib/include/athenasub/athenatime.h
@@ -44,9 +44,9 @@ namespace Athenasub {
public:
Time() { ms = 0; }
- Time(int milliseconds) { ms = milliseconds; }
+ Time(int milliseconds) { SetMS(milliseconds); }
- inline void SetMS(int milliseconds) { ms = milliseconds; }
+ inline void SetMS(int milliseconds) { ms = milliseconds > 0 ? milliseconds : 0; }
inline int GetMS() const { return ms; }
};
diff --git a/aegilib/src/formats/format_ass_dialogue.cpp b/aegilib/src/formats/format_ass_dialogue.cpp
index ccc49a91a..6ae61bcdb 100644
--- a/aegilib/src/formats/format_ass_dialogue.cpp
+++ b/aegilib/src/formats/format_ass_dialogue.cpp
@@ -92,6 +92,12 @@ String GetTimeString(const Time& time,int ms_precision,int h_precision)
else if (ms_precision == 1) _ms /= 100;
else if (ms_precision == 0) _ms = 0;
+ // Asserts
+ assert(h >= 0 && h <= 9);
+ assert(min >= 0 && min <= 59);
+ assert(s >= 0 && s <= 59);
+ assert(_ms >= 0 && _ms <= 999);
+
// Get write buffer
String final;
size_t size = 7+h_precision+ms_precision;
@@ -110,7 +116,7 @@ String GetTimeString(const Time& time,int ms_precision,int h_precision)
final.WriteNumber(temp,_ms,ms_precision,pos);
// Write terminator
- final.WriteText("\0",1,pos);
+ //final.WriteText("\0",1,pos);
// Restore string's state and return
final.SetSize(pos-1);
diff --git a/aegilib/test/src/main.cpp b/aegilib/test/src/main.cpp
index 3d56e2449..3cca7f84e 100644
--- a/aegilib/test/src/main.cpp
+++ b/aegilib/test/src/main.cpp
@@ -86,16 +86,15 @@ int main()
// Save subtitles
cout << "Saving file... ";
timer.Start();
- control->SaveFile(L"subs_out.ass",L"UTF-8");
+ control->SaveFile("subs_out.ass","UTF-8");
timer.Pause();
cout << "Done in " << timer.Time() << " ms.\n";
- system("pause");
// Issue an action
#ifdef WXDEBUG
- int n = 1;
-#else
int n = 1000;
+#else
+ int n = 1;
#endif
cout << "Executing action " << n << " times... ";
timer.Start();
@@ -117,8 +116,6 @@ int main()
timer.Pause();
cout << "Done in " << timer.Time() << " ms.\n";
- system("pause");
-
// Rollback
cout << "Undoing " << n-1 << " times... ";
timer.Start();
@@ -128,8 +125,6 @@ int main()
timer.Pause();
cout << "Done in " << timer.Time() << " ms.\n";
- system("pause");
-
// Undo
n = 1000;
cout << "Undoing and redoing " << n << " times... ";
@@ -143,21 +138,17 @@ int main()
// Get style test
ConstStyle style = control->GetStyle("japro1_star");
- cout << "Style " << style->GetName().c_str() << " font is " << style->GetFontName().c_str() << " " << style->GetFontSize() << ".\n";
+ cout << "Style " << style->GetName() << " font is " << style->GetFontName() << " " << style->GetFontSize() << ".\n";
// Save a few more
control->SaveFile("subs_out2.ass","UTF-8");
control->Undo();
control->SaveFile("subs_out3.ass","UTF-8");
-
- system("pause");
}
catch (std::exception &e) {
cout << "\n\nException: " << e.what() << endl << endl;
}
- system("pause");
-
return true;
}