version 0.3.17
[fms.git] / src / freenet / captcha / alternatecaptchafonts.cpp
index da7b267..1941a43 100644 (file)
@@ -4,6 +4,7 @@
 \r
 #include <Poco/Path.h>\r
 #include <Poco/DirectoryIterator.h>\r
+#include <Poco/Exception.h>\r
 \r
 bool AlternateCaptchaFonts::m_fontsloaded(false);\r
 std::vector<FreeImage::Font> AlternateCaptchaFonts::m_fonts;\r
@@ -21,19 +22,34 @@ AlternateCaptchaFonts::AlternateCaptchaFonts()
 void AlternateCaptchaFonts::LoadFonts()\r
 {\r
 \r
-       FreeImage::Bitmap bmp;\r
-       Poco::Path path("fonts");\r
-       Poco::DirectoryIterator di(path);\r
-       Poco::DirectoryIterator end;\r
-\r
-       while(di!=end)\r
+       try\r
        {\r
-               if(di.name().find("bmp")!=std::string::npos)\r
+               FreeImage::Bitmap bmp;\r
+               Poco::Path path("fonts");\r
+               Poco::DirectoryIterator di(path);\r
+               Poco::DirectoryIterator end;\r
+\r
+               while(di!=end)\r
+               {\r
+                       if(di.name().find("bmp")!=std::string::npos)\r
+                       {\r
+                               bmp.Load("bmp",di.path().toString());\r
+                               m_fonts.push_back(FreeImage::Font(bmp));\r
+                       }\r
+                       ++di;\r
+               }\r
+               if(m_fonts.size()==0)\r
                {\r
-                       bmp.Load("bmp",di.path().toString());\r
-                       m_fonts.push_back(FreeImage::Font(bmp));\r
+                       m_log->fatal("AlternateCaptchaFonts::LoadFonts You have no loadable fonts in the font directory!");\r
                }\r
-               ++di;\r
+       }\r
+       catch(Poco::Exception &e)\r
+       {\r
+               m_log->error("AlternateCaptchaFonts::LoadFonts caught "+e.displayText());\r
+       }\r
+       catch(...)\r
+       {\r
+               m_log->error("AlternateCaptchaFonts::LoadFonts caught unknown exception");\r
        }\r
 \r
 }\r