-// https://stackoverflow.com/a/8615450/2995591
-#include <glob.h> // glob(), globfree()
-#include <cstring> // memset()
-#include <vector>
-#include <string>
+static void last_stored_write(const char *last_stored_fn,const string &filename,uint64_t offset) {
+ int last_stored_fd(open(last_stored_fn,O_WRONLY|O_CREAT|O_TRUNC,0644));
+ if (last_stored_fd==-1)
+ fatal("Error storing filename to %s: %m",last_stored_fn);
+ write_safe(last_stored_fd,filename.c_str(),filename.length());
+ write_safe(last_stored_fd,'\n');
+ string offsetstr(stringf("%zu",(size_t)offset));
+ write_safe(last_stored_fd,offsetstr.c_str(),offsetstr.length());
+ write_safe(last_stored_fd,'\n');
+ if (close(last_stored_fd))
+ fatal("Error closing %s: %m",last_stored_fn);
+}
+
+static string my_basename(const string &path) {
+ size_t slash(path.find_last_of('/'));
+ if (slash!=string::npos)
+ return path.substr(slash+1);
+ return path;
+}