static void default_source_import (nodePtr node) { gchar *filename, *backupFilename; gchar *content; gssize length; debug_enter ("default_source_source_import"); g_assert (TRUE == feedlistImport); filename = default_source_source_get_feedlist (node); backupFilename = g_strdup_printf("%s.backup", filename); if (g_file_test (filename, G_FILE_TEST_EXISTS)) { if (!import_OPML_feedlist (filename, node, FALSE, TRUE)) g_error ("Fatal: Feed list import failed! You might want to try to restore\n" "the feed list file %s from the backup in %s", filename, backupFilename); /* upon successful import create a backup copy of the feed list */ if (g_file_get_contents (filename, &content, &length, NULL)) { g_file_set_contents (backupFilename, content, length, NULL); g_free (content); } } else { /* If subscriptions could not be loaded try cache migration or provide a default feed list */ gchar *filename14 = g_strdup_printf ("%s/.liferea_1.4/feedlist.opml", g_get_home_dir ()); gchar *filename16 = g_strdup_printf ("%s/.liferea_1.6/feedlist.opml", g_get_home_dir ()); gchar *filename18 = g_strdup_printf ("%s/.liferea_1.8/feedlist.opml", g_get_home_dir ()); if (g_file_test (filename18, G_FILE_TEST_EXISTS)) { migration_execute (MIGRATION_FROM_18, node); } else if (g_file_test (filename16, G_FILE_TEST_EXISTS)) { migration_execute (MIGRATION_FROM_16, node); } else if (g_file_test (filename14, G_FILE_TEST_EXISTS)) { migration_execute (MIGRATION_FROM_14, node); } else { gchar *filename = common_get_localized_filename (PACKAGE_DATA_DIR "/" PACKAGE "/opml/feedlist_%s.opml"); if (!filename) g_error ("Fatal: No migration possible and no default feedlist found!"); if (!import_OPML_feedlist (filename, node, FALSE, TRUE)) g_error ("Fatal: Feed list import failed!"); g_free (filename); } g_free (filename18); g_free (filename16); g_free (filename14); } g_free (filename); g_free (backupFilename); feedlistImport = FALSE; debug_exit ("default_source_source_import"); }
static void liferea_shell_add_html_tab (const gchar *file, const gchar *name) { gchar *filepattern = g_strdup_printf (PACKAGE_DATA_DIR "/" PACKAGE "/doc/html/%s", file); gchar *filename = common_get_localized_filename (filepattern); gchar *fileuri = g_strdup_printf ("file://%s", filename); browser_tabs_add_new (fileuri, name, TRUE); g_free (filepattern); g_free (filename); g_free (fileuri); }