if (strlen(sigfile) < 2)
return;
- sigprg = popen(sigfile+1, "r");
+ sigprg = popen(sigfile+1, "rb");
if (sigprg) {
buf = g_malloc(buf_len);
g_return_if_fail(file != NULL);
- if ((fp = fopen(file, "r")) == NULL) {
+ if ((fp = fopen(file, "rb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
return;
}
alertpanel_notice(_("File %s is empty."), file);
return;
}
- if ((fp = fopen(file, "r")) == NULL) {
+ if ((fp = fopen(file, "rb")) == NULL) {
alertpanel_error(_("Can't read %s."), file);
return;
}
size_t len;
gchar buf[BUFFSIZE];
- if ((fp = fopen(compose->bounce_filename, "r")) == NULL) {
+ if ((fp = fopen(compose->bounce_filename, "rb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
return -1;
}
- if ((fdest = fopen(file, "w")) == NULL) {
+ if ((fdest = fopen(file, "wb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
fclose(fp);
return -1;
const gchar *out_codeset;
EncodingType encoding;
- if ((fp = fopen(file, "w")) == NULL) {
+ if ((fp = fopen(file, "wb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
return -1;
}
buf = conv_codeset_strdup(chars, src_codeset, out_codeset);
if (!buf) {
- g_free(chars);
- fclose(fp);
- unlink(file);
- alertpanel_error(_("Can't convert the codeset of the message."));
- return -1;
+ AlertValue aval;
+
+ aval = alertpanel
+ (_("Error"),
+ _("Can't convert the character encoding of the message.\n"
+ "Send it anyway?"), _("Yes"), _("+No"), NULL);
+ if (aval != G_ALERTDEFAULT) {
+ g_free(chars);
+ fclose(fp);
+ unlink(file);
+ return -1;
+ } else {
+ buf = g_strdup(chars);
+ }
}
}
g_free(chars);
size_t len;
gchar *chars;
- if ((fp = fopen(file, "w")) == NULL) {
+ if ((fp = fopen(file, "wb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
return -1;
}
/* add queue header */
tmp = g_strdup_printf("%s%cqueue.%d", g_get_tmp_dir(),
- G_DIR_SEPARATOR, (gint)compose);
- if ((fp = fopen(tmp, "w")) == NULL) {
+ G_DIR_SEPARATOR, (gint)compose);
+ if ((fp = fopen(tmp, "wb")) == NULL) {
FILE_OP_ERROR(tmp, "fopen");
g_free(tmp);
return -1;
}
- if ((src_fp = fopen(tmp2, "r")) == NULL) {
+ if ((src_fp = fopen(tmp2, "rb")) == NULL) {
FILE_OP_ERROR(tmp2, "fopen");
fclose(fp);
unlink(tmp);
for (row = 0; (ainfo = gtk_clist_get_row_data(clist, row)) != NULL;
row++) {
- if ((attach_fp = fopen(ainfo->file, "r")) == NULL) {
+ gchar buf[BUFFSIZE];
+ gchar inbuf[B64_LINE_SIZE], outbuf[B64_BUFFSIZE];
+
+ if ((attach_fp = fopen(ainfo->file, "rb")) == NULL) {
g_warning(_("Can't open file %s\n"), ainfo->file);
continue;
}
fprintf(fp, "Content-Transfer-Encoding: %s\n\n",
procmime_get_encoding_str(ainfo->encoding));
- if (ainfo->encoding == ENC_7BIT) {
- gchar buf[BUFFSIZE];
+ switch (ainfo->encoding) {
+
+ case ENC_7BIT:
+ case ENC_8BIT:
+ /* if (ainfo->encoding == ENC_7BIT) { */
while (fgets(buf, sizeof(buf), attach_fp) != NULL) {
strcrchomp(buf);
fputs(buf, fp);
}
- } else {
- gchar inbuf[B64_LINE_SIZE], outbuf[B64_BUFFSIZE];
+ break;
+ /* } else { */
+ case ENC_BASE64:
while ((len = fread(inbuf, sizeof(gchar),
B64_LINE_SIZE, attach_fp))
fputs(outbuf, fp);
fputc('\n', fp);
}
+ break;
}
fclose(attach_fp);
GTK_SIGNAL_FUNC(compose_delete_cb), compose);
gtk_signal_connect(GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC(compose_destroy_cb), compose);
- gtk_signal_connect(GTK_OBJECT(window), "focus_in_event",
- GTK_SIGNAL_FUNC(manage_window_focus_in), NULL);
- gtk_signal_connect(GTK_OBJECT(window), "focus_out_event",
- GTK_SIGNAL_FUNC(manage_window_focus_out), NULL);
+ MANAGE_WINDOW_SIGNALS_CONNECT(window);
gtk_widget_realize(window);
gtkut_widget_set_composer_icon(window);
optmenu_menu = gtk_menu_new();
MENUITEM_ADD(optmenu_menu, menuitem, "7bit", ENC_7BIT);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), optmenu_menu);
+#if 0
gtk_widget_set_sensitive(menuitem, FALSE);
+#endif
MENUITEM_ADD(optmenu_menu, menuitem, "8bit", ENC_8BIT);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), optmenu_menu);
+#if 0
gtk_widget_set_sensitive(menuitem, FALSE);
+#endif
MENUITEM_ADD(optmenu_menu, menuitem, "quoted-printable", ENC_QUOTED_PRINTABLE);
gtk_widget_set_sensitive(menuitem, FALSE);
MENUITEM_ADD(optmenu_menu, menuitem, "base64", ENC_BASE64);
static void select_account(Compose * compose, PrefsAccount * ac)
{
+#if USE_GPGME
+ GtkItemFactory *ifactory;
+ GtkWidget *menuitem;
+#endif /* USE_GPGME */
compose->account = ac;
compose_set_title(compose);
}
gtk_widget_queue_resize(compose->table_vbox);
#endif
+#if USE_GPGME
+ ifactory = gtk_item_factory_from_widget(compose->menubar);
+ menu_set_sensitive(ifactory,
+ "/Message/Sign", TRUE);
+ menu_set_sensitive(ifactory,
+ "/Message/Encrypt", TRUE);
+
+ menuitem = gtk_item_factory_get_item(ifactory, "/Message/Sign");
+ if (ac->default_sign)
+ gtk_check_menu_item_set_active
+ (GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+ else
+ gtk_check_menu_item_set_active
+ (GTK_CHECK_MENU_ITEM(menuitem), FALSE);
+
+ menuitem = gtk_item_factory_get_item(ifactory, "/Message/Encrypt");
+ if (ac->default_encrypt)
+ gtk_check_menu_item_set_active
+ (GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+ else
+ gtk_check_menu_item_set_active
+ (GTK_CHECK_MENU_ITEM(menuitem), FALSE);
+#endif /* USE_GPGME */
+
}
static void account_activated(GtkMenuItem *menuitem, gpointer data)