- for (RecentSessions::iterator i = rs.begin(); i != rs.end(); ++i) {
- recent << (*i).first << '\n' << (*i).second << endl;
+ {
+ stringstream recent;
+
+ for (RecentSessions::iterator i = rs.begin(); i != rs.end(); ++i) {
+ recent << (*i).first << '\n' << (*i).second << endl;
+ }
+
+ string recentString = recent.str();
+ size_t writeSize = recentString.length();
+
+ fwrite(recentString.c_str(), sizeof(char), writeSize, fout);
+
+ if (ferror(fout))
+ {
+ error << string_compose (_("Error writing recent sessions file %1 (%2)"), recent_file_name, strerror (errno)) << endmsg;
+ fclose(fout);
+ return -1;
+ }