--- a/src/rcldb/rcldb.cpp
+++ b/src/rcldb/rcldb.cpp
@@ -1,5 +1,5 @@
#ifndef lint
-static char rcsid[] = "@(#$Id: rcldb.cpp,v 1.122 2007-07-12 17:28:11 dockes Exp $ (C) 2004 J.F.Dockes";
+static char rcsid[] = "@(#$Id: rcldb.cpp,v 1.123 2007-09-07 08:05:19 dockes Exp $ (C) 2004 J.F.Dockes";
#endif
/*
* This program is free software; you can redistribute it and/or modify
@@ -179,8 +179,16 @@
} catch (const Xapian::Error &e) {
ermsg = e.get_msg().c_str();
break;
+ } catch (const string &s) {
+ ermsg = s;
+ if (ermsg.empty())
+ ermsg = "Empty error message";
+ } catch (const char *s) {
+ ermsg = s ? s : "";
+ if (ermsg.empty())
+ ermsg = "Empty error message";
} catch (...) {
- ermsg= "Unknown error";
+ ermsg= "Unknown xapian error (not Xapian::Error or string)";
break;
}
}