DataRecovery::DataRecovery(Context* context) : m_tempDir(NULL) , m_backup(NULL) , m_context(context) { // Check if there is already data to recover const base::string existent_data_path = get_config_string("DataRecovery", "Path", ""); if (!existent_data_path.empty() && base::directory_exists(existent_data_path)) { // Load the backup data. m_tempDir = new base::TempDir(); m_tempDir->attach(existent_data_path); m_backup = new Backup(existent_data_path); } else { // Create a new directory to save the backup information. m_tempDir = new base::TempDir(PACKAGE); m_backup = new Backup(m_tempDir->path()); set_config_string("DataRecovery", "Path", m_tempDir->path().c_str()); flush_config_file(); } m_context->addObserver(this); }
void ui::clipboard::set_text(const char *text) { lowlevel_set_clipboard_text(text); #ifdef WIN32 if (IsClipboardFormatAvailable(CF_UNICODETEXT)) { if (OpenClipboard(win_get_window())) { EmptyClipboard(); if (!clipboard_text.empty()) { std::wstring wstr = base::from_utf8(clipboard_text); int len = wstr.size(); HGLOBAL hglobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(WCHAR)*(len+1)); LPWSTR lpstr = static_cast<LPWSTR>(GlobalLock(hglobal)); std::copy(wstr.begin(), wstr.end(), lpstr); GlobalUnlock(hglobal); SetClipboardData(CF_UNICODETEXT, hglobal); } CloseClipboard(); } } #endif }
static base::string remove_backslash_if_needed(const base::string& filename) { if (!filename.empty() && base::is_path_separator(*(filename.end()-1))) { int len = filename.size(); #ifdef HAVE_DRIVES // if the name is C:\ or something like that, the backslash isn't // removed if (len == 3 && filename[1] == ':') return filename; #else // this is just the root '/' slash if (len == 1) return filename; #endif return base::remove_path_separator(filename); } return filename; }