+shared_ptr<Cinema>
+find_cinema (string cinema_name)
+{
+ list<shared_ptr<Cinema> > cinemas = Config::instance()->cinemas ();
+ list<shared_ptr<Cinema> >::const_iterator i = cinemas.begin();
+ while (
+ i != cinemas.end() &&
+ (*i)->name != cinema_name &&
+ find ((*i)->emails.begin(), (*i)->emails.end(), cinema_name) == (*i)->emails.end()) {
+
+ ++i;
+ }
+
+ if (i == cinemas.end ()) {
+ cerr << program_name << ": could not find cinema \"" << cinema_name << "\"\n";
+ exit (EXIT_FAILURE);
+ }
+
+ return *i;
+}
+