From 1906cddf04319f0d98fc325388ababf2d8591122 Mon Sep 17 00:00:00 2001 From: Hermann Kraus Date: Sat, 25 Feb 2012 00:53:09 +0100 Subject: [PATCH] Improve error messages. --- include/mapnik/font_engine_freetype.hpp | 4 ++++ src/processed_text.cpp | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/mapnik/font_engine_freetype.hpp b/include/mapnik/font_engine_freetype.hpp index fd35e834b..7e881e35f 100644 --- a/include/mapnik/font_engine_freetype.hpp +++ b/include/mapnik/font_engine_freetype.hpp @@ -301,6 +301,10 @@ public: if (face_ptr face = get_face(*name)) { face_set->add(face); + } else { +#ifdef MAPNIK_DEBUG + std::cerr << "Failed to find face '" << *name << "' in font set '" << fset.get_name() << "'\n"; +#endif } } return face_set; diff --git a/src/processed_text.cpp b/src/processed_text.cpp index 35109a724..3a6949487 100644 --- a/src/processed_text.cpp +++ b/src/processed_text.cpp @@ -39,9 +39,16 @@ string_info &processed_text::get_string_info() { char_properties const &p = itr->p; face_set_ptr faces = font_manager_.get_face_set(p.face_name, p.fontset); - if (faces->size() <= 0) + if (faces->size() == 0) { - throw config_error("Unable to find specified font face '" + p.face_name + "'"); + if (!p.fontset.get_name().empty()) + { + throw config_error("Unable to find specified font set '" + p.face_name + "'"); + } else if (!p.face_name.empty()) { + throw config_error("Unable to find specified font face '" + p.face_name + "'"); + } else { + throw config_error("Both font set and face name are empty!"); + } } faces->set_character_sizes(p.text_size * scale_factor_); faces->get_string_info(info_, itr->str, &(itr->p));