コード例 #1
0
ファイル: keyring.c プロジェクト: N8Fear/purple-facebook
static void
purple_keyring_drop_passwords(PurpleKeyring *keyring,
                              PurpleKeyringDropCallback cb, gpointer data)
{
    GList *it;
    PurpleKeyringSave save_cb;
    PurpleKeyringDropTracker *tracker;

    g_return_if_fail(keyring != NULL);

    save_cb = purple_keyring_get_save_password(keyring);
    g_assert(save_cb != NULL);

    tracker = g_new0(PurpleKeyringDropTracker, 1);
    tracker->cb = cb;
    tracker->cb_data = data;

    for (it = purple_accounts_get_all(); it != NULL; it = it->next) {
        PurpleAccount *account = it->data;

        tracker->drop_outstanding++;
        if (it->next == NULL)
            tracker->finished = TRUE;

        save_cb(account, NULL, purple_keyring_drop_passwords_save_cb,
                tracker);
    }
}
コード例 #2
0
ファイル: keyring.c プロジェクト: N8Fear/purple-facebook
static void
purple_keyring_set_inuse_read_cb(PurpleAccount *account, const gchar *password,
                                 GError *error, gpointer _tracker)
{
    PurpleKeyringChangeTracker *tracker = _tracker;
    PurpleKeyringSave save_cb;

    g_return_if_fail(account != NULL);
    g_return_if_fail(tracker != NULL);

    if (tracker->abort) {
        purple_keyring_set_inuse_save_cb(account, NULL, tracker);
        return;
    }

    if (error != NULL) {
        if (tracker->force == TRUE || g_error_matches(error,
                PURPLE_KEYRING_ERROR,
                PURPLE_KEYRING_ERROR_NOPASSWORD))
        {
            /* Don't save password, and ignore it. */
        } else {
            tracker->abort = TRUE;
        }
        purple_keyring_set_inuse_save_cb(account, error, tracker);
        return;
    }

    save_cb = purple_keyring_get_save_password(tracker->new_kr);
    g_assert(save_cb != NULL);

    save_cb(account, password, purple_keyring_set_inuse_save_cb, tracker);
}
コード例 #3
0
ファイル: q9.cpp プロジェクト: qartis/gdb-challenges
int check_save(void) {
  if (!changed) return 1;

  int r = fltk::choice("The current file has not been saved.\n"
                    "Would you like to save it now?",
                    "Cancel", "Save", "Don't Save");

  if (r == 1) {
    save_cb(); // Save the file...
    return !changed;
  }

  return (r == 2) ? 1 : 0;
}
コード例 #4
0
void save_cb(GtkButton* button, gpointer user_data)
{
    /* Load save dialog */
    int response = gtk_dialog_run(GTK_DIALOG(save_dialog));
    if(response != 0) {
        gtk_widget_hide(GTK_WIDGET(save_dialog));
        return;
    }

    /* Get filename */
    char* filename;
    filename = gtk_file_chooser_get_filename(save_dialog);

    /* Check is not empty */
    DEBUG("Selected file: %s\n", filename);
    if((filename == NULL) || is_empty_string(filename)) {
        show_error(window, "Please select a file.");
        g_free(filename);
        save_cb(button, user_data);
        return;
    }
    gtk_widget_hide(GTK_WIDGET(save_dialog));

    /* Check extension */
    if(!g_str_has_suffix(filename, ".bip")) {
        char* new_filename = g_strdup_printf("%s.bip", filename);
        g_free(filename);
        filename = new_filename;
    }

    /* Try to open file for writing */
    FILE* file = fopen(filename, "w");
    if(file == NULL) {
        show_error(window, "An error ocurred while trying to open "
                           "the file. Check you have permissions.");
        g_free(filename);
        return;
    }

    /* Save current context */
    DEBUG("Saving to file %s\n", filename);
    save(file);

    /* Free resources */
    fclose(file);
    g_free(filename);
}
コード例 #5
0
ファイル: gdict-applet.c プロジェクト: monsta/mate-utils
static void
gdict_applet_cmd_save (GtkAction *action,
			GdictApplet       *applet)
{
  save_cb (NULL, applet);
}
コード例 #6
0
ファイル: selector.c プロジェクト: alex179ohm/wsn-tools
static void exit_cb(void)
{
  save_cb();
}