+ : name_(name), email_(email), used_(true),
+ buffer_id_(computeHash(name, email))
+{}
+
+
+Author::Author(int buffer_id)
+ : name_(convert<docstring>(buffer_id)), email_(docstring()), used_(false),
+ buffer_id_(buffer_id)
+{}
+
+
+docstring Author::nameAndEmail() const
+{
+ if (email().empty())
+ return name();
+ else
+ return bformat(_("%1$s[[name]] (%2$s[[email]])"), name(), email());
+}
+
+
+bool Author::valid() const