Пример #1
0
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");
}
Пример #2
0
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);
}